(Libro) La PC Por Dentro

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 229

r

-~------- ···-""

LA PC POR DENIRO
ARQUITECTURA Y FUNCIONAMIENTO
DE COMPUTADORAS

MARIO CARLOS GINZBURG


INGENIERO ELECTRONICO (UBA)
------------··----

A Piyi, Jeronimo y Rafael

JNTRODUCCION GENERAL A LA INFORMATICA:


1 LA PC POR DENTRO, ARQUITECTURA Y FUNCIONAMIENTO DE COMPUTADORAS
Cuarta Edici6n

M.C.Ginzburg

Es propiedad - Queda hecho el dep6sito que marca la ley


Impreso en la Argentina - Printed In Argentina

DERECHOS RESERVADOS © 2006

ISBN-10: 987-05-0916-9
ISBN-13: 978-987-05-0916-5

Ginzburg, Mario Carlos


lntroducci6n general a la informatica : la pc por dentro : arquitectura y
funcionamiento de ordenadores I Mario Carlos Ginzburg ; ilustrado por
Rafael Ginzburg - 4a ed. - Buenos Aires: el autor, 2006.
232 p.; 20x28 cm.

ISBN 987-05-0916-9

1. Informatica. I. Ginzburg, Rafael, ilus. II. Tftulo


COD 004.1

Fecha de catalogacion: 03/05/2006

No se permite la reproducci6n total o parcial de esta obra, ni el almacenamiento en un sistema de


informatica, ni transmisi6n en cualquier forma o por cualquier media electr6nico, mecanico,
fotocopia, registro u otros medics, sin el permiso previo y la autorizaci6n escrita del autor.
1
PRO LOCO

Esta obra ha sido pensada para un Iector sin experiencia previa alguna en el terreno de la computaci6n
I~
o informatica. j
1
Al comenzar cada tema nuevo se buscan analogias con la vida real. Asi, como paso previo al esquema general
de un computador, se considera una fabrica, que de forma similar produce productos segun las instrucciones que
dejan los clientes. El contenido de cada posici6n de memoria se visualiza como 8 Haves de encendido de luz; y para
entender que significa que una memoria sea "random" se recurre al selector de canales de un televisor. Al tratar
c6mo se le ordena al computador que debe hacer, se pone de relieve la semejanza con la forma de operar con una
calculadora portatil comun. Del mismo modo, el "pipe line" de un procesador ;:,.:! comprende a traves de un lavadero
automatico de autos; el concepto de "buffer" mediante buzones y del papel que juega la pileta en la descarga de un
lavarropas, etc.

Esta primera unidad abarca los temas fundamentales del funcionamiento de un computador.
Con ella se busca brindarle al lector en for ma clara, cone is a, _v practica, los conocimientos basicos para entender
c6mo funciona el interior de una PC modema, y en general cuaiquier computador. Se eligi6, por ser mas didactico eI
metodo de preguntas-respuestas acerca de los temas esenciales que se deben conocer.
Las prijneras secciones constituyen el tronco o basamento medular de la presente unidad y de la obra en
general. Las siguientes son desarrollos mas detallados de las primeras.
De esta forma, el lector progresa en el estudio del Iibro y de cada tema conforme a sus necesidades de
profundizacion o aplicacion practica.
Completan la Unidad 1 apendices sabre el sistema binario, software (en especial sistemas operativos y virus},
una Historia del desarrollo del hardware y software hasta 2006, un modelo circuital didactico de funcionamiento de
.un procesador, con elementos RISC, y un Complemento para enteros y punto flotante.
La segunda unidad de la presente obra, trata en detalle el funcionamiento y uso practico de los perifericos,
algunos de los cuales se comienzan a ver en esta unidad.
Temas como la programaci6n en Assembler, y la confecci6n de pequefios programas tfpicos estan contenidos en
la Unidad J. Se inciuyen llamados a subrutinas, vectores interrupci6n y marrejo de pitas.
Los circuitos 16gicos de un computador: compuertas, UAL, flip flops, fegistros, secuenciadores, descriptos
ailadamente se integrarr en un modelo didactico sencillo pro RISC muy sencillo, y se tratan en la obra "De Ia
Compuerta al Computador" pr6xima a aparecer. En la preserrte edici6n se ha conservado un Modelo Circuitar
didactico de una UCP capaz de ejecutar instrucciones, que no requiere rringun conocimient<:J de circuitos 16gicos.

Por que emplear un microcomputador como modelo de fimcionamiento de computadoras:


Cuando_lntel lanz6 el 80386 en 1985, que podia ejecutar 6 millones de instrucciones por segundo (mips), tuvo
I
I
lugar un salto notable en la performance de los microprocesadores. Ya el 80286 ejecutaba 2·,5 mips,. y permitfa
i operar en multitarea (multitasking), con un sistema operativo apropiado.
I Luego, en 1991 y 1993 Intel produjo el 80486 y el Pentium I. Los siguientes procesadores de Intel contienen un
nucleo RISC, siendo que los procesadores RISC (Power PC, Alpha, MIPS, i860, etc.), se lanzaron en la decada de

I 1980.
La tendencia actual es usar cada vez en mayor medida Ia conexi6n en red de microcomputadoras (sean personales
J o estaciones de trabajo) para nuevos emprendimientos o en reemplazo de las grandes mainji-ames. Estas quedan
restringidas para areas reservadas o muy especiales ..
Un 486 o un Pentium, al igual que los microprocesadores RISC tienen una elevada complejidad intema.
Procesadores RISC operando en paralefo forman parte de supercomputadoras.
Los microprocesadores han ido incorporando paulatinamente todas las innovaciones que antes eran privativas de
las grandes computadoras y supercomputadoras. Asi, el "pipe line" (ya presente en el 8086), el modo· protegido para
"multitasking"', la memoria "cache" interna, el coprocesador maternatico y la concepci6n superescafar pasaron: a
formar parte del cual'quier microprocesador actual.
Al aparecer err el mercado en 1986 los primeros RISC, ocurrio que estos microprocesadores presentaban
innovaciones que los procesadores de las grandes y minicm·-~putadoras ( del tipo CISC} no poseian. Los buses
rapidos como el PCI express mejoraron notablemen!e la performance de los computadores personales.

Por lo ta~to, hoy dfa conocer el funcionamiento de un microprocesador moderno implica estar actualizado con las
principales innovaciones tecnol6gicas ocurridas en el desarrcllo de las computadoras
~.o:..; princip;os de foncio11a.miento de ios dos nive1e.-. de cache en ulia microcomput~dora son l\.)S rnismus que
µ... ra computaduras mas grand,;s. Lo mismo respecto al pipe line, modo protegido, coprocesador. etc. Ig1ialmeme
son comunes a todos !os procesad_u_res_la..s_ fuf1ciones de la Unidad de Control la UAL. los registros. la memoria -
principal, las interfaces, los perifericos, los buse.·. etc.

R.esulta asi que conocer cstos temas en un microcomputador permite abordarJas en cualquier [ip0 de computador
corriente, siendo que todns est1n basacios en el modelos de Von Neumann.
SIMB(
Pr.ro ade.r'las de servir como modelos p<:ra explicar c6mo funciona un cornputador, Ios microcomputadores tienc
Ia. VL·ntc..jd de ser acc,;sibks a i11as per.sonas por su bajo costo. Ahora, quienes estudian cstos temas pucden visualizar L,QUE s
en la pantalla de una PC aspectos de su funcionamiento que antes se veian en forma abstracra en Ios libros, por la QUEC<
imposibilidad de experimentar en minis o grandes computadoras
Esta cuarta edici6n conserva el caracter te6rico-practico de esta obra con el uso del Debug para visualizar en
"camara lenta" los resultados de la ejecuci6n de cada instrucci6n de un progr::ima, y agrega ejercicios integradores BASE
para numeros enteros, flags y reales, asf como las bases para la comprensi6n de estos en el Complemento final.
Asimismo, la presente edici6n, en funci6n de Ia experiencia docente permanente del autor, se han puesto de L,QUE ~
relieve conceptos impom1ntes que se daban por supuestos, o que pueden pasar inadvertidos en una lectura rapida. iQUE!
ENTRE
Agrndecjmientos: (,CUAL
0 y 1
1
A mis hijos Rafael que tambien en esta edici6n interpret6 y realiz6 con claridad dibujos complementarios, y
Jeronimo (Ana!ista de Sistemas U. de Sistemas FCEyN) por su lect11ra crftica de las novedades escritas.
A mi ayudant0 Pablo Salaberri que siempre me acerca informaci6n sobre distintos tcmas, y que seguramente HARI
pro11to colaborara en proximas ediciones de unidades de'e·sta obra. (,QUEJ
(,CU Al
A mis alumnos, cuyas pregtrntas, dudas e inquietudes me: µermiten aprend~~ c6mo mejorar distintos temas. YQUI
L,QUE1
INFOR
(,C6M1
(,QUE
El autor CON

LAM
z,Ql}E
L,CO~
z,QUI
z,QUI
L,QUI
z,QUI
z,QDi
L,QUI
z,QUJ
SUS
t,QUl
z,QUJ
LA l\
z,ES I

ELS
t,QU
z,QU
t,Ql}
t,CO
YC
t,QU

UTil
DEL
L,COI\
t,COI\
DEU
misrnus q ue
INDICE DE TElVIAS
Ig11aJmeme
la memoria

computador

SIMBOLOS, DATOS, PROCESOS DE DA TOS E INFORMACION


dores tienc
visuc.liLar (.QUE SIGNIFICA QUE UN COMPUTADOR RE~LIZA AUTOMATICAMENTE PROCESOS DE DATOS
ros, por la QUE CONSTAN DE ENTRADA, MEMORIZACION, PROCESAMIENTO Y SALIDA

sualizar en
tegradores BASES PREVIAS PARA EL ESTUDIO DEL INTERIOR DE UN COMPUTADOR
inal.
puesto de z,QUE SEMEJANZAS TIENE UN COMPUTADOR CON UNA FABkICA QUE PRODUCE A PEDIDO ? 5
iQUE ES LO BASICO QUE SE NECESITA CONOCER ACERCA DE BITS, BYTES Y DE LA EQUIV ALEN CIA
apida.
ENTRE BINARIO Y HEXA PARA OPERAR UN COMPUTADOR? 6
z,CUAL ES LA VENTAJA DE OPERAR CON DOS ESTADOS ELECTRICOS CORRESPONDIENTES AL
0 Y I BINARIOS ? 8
ntarios v
'.
HARDWARE DEL COMPUTADOR 8
uramente z,QUE ES EL HARDWARE? 8
z,CUALES SON LOS BLOQUES CONSTITUYENT,ES BASICOS DEL HARDWARE DE UN COMPUTADOR
as. Y QUE FUNCIONES CUMPLEN EN SU FUNCIONAMIENTO ? IO
(.QUE CORRESPONDENCIA DE FUNCIONES PUEDEN ESTABLECERSE ENTRE LA PRODUCCION DE
INFORMACION POR UN COMPUTADOR Y UNA PRODUCCION FABRIL? 15
z,COMO PUEDE RESUMIRSE EL FUNCIONAMIENTO BASICO DE UN COMPUTADOR? 15
(.QUE REGISTROS DE LA UCP FALTA DEFINIR PARA REALIZAR LAS PRIMERAS PRACTICAS
or CON EL PROGRAMA DEBUG, A FIN DE OPERAR EN EL INTERIOR DE UN COMPUTADOR? 15

LA MEMORIA PRINCIPAL 0 CENTRAL 16


z,QUE SON LAS DIRECCIONES Y LOS CONTENIDOS DE LA MEMORIA PRINCIPAL? 16
z,COMO SE DIRECCIONA, SE LEE Y SE ESCRIBE LA MEMORIA PRINCIPAL? 18
(.QUE ES TIEMPO DE ACCESO A MEMORIA Y SU MED IDA EN NANOSEGUNDOS? 19
z,QUE SIGNIFICA QUE EL ACCESO A LA MEMORIA PRINCIPAL ES AL AZAR (RANDOM)? 20
(.QUE TIENEN DE COMUN Y DIFERENTE LAS ZONAS RAMY ROM DE MEMORIA? 20
._;,QUE CONTIENE LA PORCION ROM DE MEMORIA PRINCIPAL (ROM BIOS) ? 21
(.QUE TIPOS DE MEMORIAS DE SEMICONDUCTORES CON "RANDOM ACCES" SE FABRICAN? 22
(,QUE ES CAPACIDAD DE MEMORIA, Y QUE SON LAS UNIDADES KB, MB, GB? 23
z,QUE RELACION EXISTE ENTRE LA CAPACIDAD DE UNA MEMORIA, LA CANTIDAD DE BITS QUE TIENEN
SUS DIRECCIONES Y EL NUMERO DE LINEAS DE DIRECCION? 24
(,QUE ES EL BIT DE PARIDAD EN MEMORIA PRINCIPAL, Y PARA QUE SE EMPLEA? 25
z,QUE ES UN MICROPROCESADOR DE 8, 16 6 32 BITS Y QUE RELACION TIENE ELLO CON LOS REGISTROS,
LA MEMORIA PRINCIPAL Y LAS LiNEAS DE DATOS DEL BUS? 25
z,ES CORRECTO AFIRMAR QUE LOS REGISTROS DE LA UCP CONFORMAN UNA PEQUENA RAM ? 26

EL SOFTWARE, LOS DATOS Y SU CODIFICACION 27


(,QUE ES EL SOFTWARE 0 "LOGICAL"? 27
z,QUE ES EL FIRMWARE? 29
(.QUE ES UN MICROPROCESADOR DEDICADO? 29
z,COMO SE PREPARA EL PROCESO DE DATOS EN EL COMPUTADOR ANTES DEFINIDO,
Y COMO SE LE ORDENA A ESTE QUE DEBE HACER? 30
(.QUE SERIA ''ALTO" Y "BAJO" NIVEL EN LA CODIFICACION DE DATOS EFECTUADA? 32

UTILIZACION DEL PROGRAMA DEBUG DEL DOS PARA VISUALIZAR EL INTERIOR


DEL COM·PUTADOR 33
(,COMO SE USA EL DEBUG PARA ESCRIBIR DATOS E INSTRUCCIONES EN MEMORIA? 33
z,COMO ENCUENTRA LA UC EN MEMORIA LA PRIMER INSTRUCCION Y LAS SIGUIENTES
DE UN PROGRAMA A EJECUTAR, MEDIANTE EL REGISTRO IP? 35
c:,QUEN SE E~CARGA DE DAR LA DIRECCION DE LA PRIMER INSTRUCCION DE CADA PROGRAt\1A A
~Q
35
EJECCTJ\R ? ' ' T

-COt\10 SE CA~fBIA rvlEDIANTE EL DEBUG LA DIRECCION DE INSTRUCCION QUE INDICA EL IP? 36


~ CO~fO PC EDE VISUALIZARSE MEDIANTE EL DEBUG LA FORMA EN QUE SE VAN PROCESANDO
-----t:'d~+GS~-Ab-EJEG1:JTA.~SE b-AS INSTRUGCIONES EN UNA ::?C ?
0
36
·CcSMO ORDENAR QUE LOS CODIGOS DE MAQUINA DEL PROCESO ANTERIOR SEAN EJECUTADOS
UNA
TR.AS OTRO AUTOMATICAMENTE, CONFORME SUCEDE REALMENTE? 38

PAPEL DE LA UC Y DE LOS MHZ DEL RELOJ EN LA EJECUCION DE LAS INSTRUCCIONES 39


(.COMO SE EJECUTAN LAS INSTRUCCIONES II A 15 MEDIANTE MOVIMIENTOS SIMPLES ENTRE
MEMORIA Y REGISTROS DE LA UCP ORDENADOS POR LA UC ? 39
(,QUE SECUENCIA DE PASOS ORDENA LA UC PARA EJECUTAR ~ADA INSTRUCCION? 43
(,COMO HACE LA UC PARA NO EQUIVOCARSE CON TANTOS NUMEROS CONTENIDOS EN MEMORIA
QUE PUEDEN S?R INS'fRUCCIONES, DATOS 0 DIRECCIONES? , 43
(,QUE ANALOGIA DIDACTICA PUEDE ESTABLECERSE PARA VISUALIZAR LA ACTIVIDAD BASICA
DE ORGANIZAR MOVIMIENTOS Y OPERACIONES QUE REALIZA LA UC ? 44
(.QUE RELACION EX~STE ENTRE LOS MOVIMIENTOS QUE OCURREN DURANTE LA EJECUCION
DE UNA INSTRUCCION Y EL RELOJ DE SINCRONISMO DEL PROCESADOR? 45 p,
i,DE QUE FORMA LA UC PASA DE UN MOVIMIENTO A OTRO? 47
i,DONDE RESIDE LA "INTELIGENCIA"' DE LA UC, PARA "SABER" LOS MOVIMIENTOS A REALIZAR? 48 z,C
L(
(,(
z,C
UAL: OPERACIONES LOGICAS Y DE COMPARACION E INDICADORES QUE GENERA 49
z,C
.!,CUA.LES SON LAS OPERACIONES LOGICAS QUE REALIZA LA UAL, Y COMO SE COMPARAN
(,(
NUMEROS EN UN COMPUTADOR POR MEDIO DE ELLA? . ' 49
I:
(,QUE SON LOS INDICADORES ("FLAGS'') DE RESULTADO GENERADOS POR LA UAL
Y CONTENIDOS EN EL REGISTRO DE ESTADO DE LA UCP ? 50
(,EN QUE SE DIFERENCIAN LA UAL Y EL COPROCESADOR MATEMATICO QUE OPERA
CON NUMEROS REALES REPRESENTADOS EN PUNTO "PUNTO FLOTANTE'' ? 51
(,QUE SON LOS MIPS Y LAS MFLOPS? 52
UTILIDAD DE LAS INSTRUCCIONES DE SAL TO 53
(,COMO OPERAN LAS INSTRUCCIONES DE SAL TO CONDICIONADO Y POR QUE SON ESENCIALES? 53
A
R
ENTRADAS Y SALIDAS: SENALES, PERIFERICOS, BUSES Y PORTS EN EL CAMINO QUE SJ
z,<
REALIZAN LOS DA TOS 58
;}
(,COMO VIAJAN LOS BITS DE UN LUGAR A OTRO EN UN COMPUTADOR ? 58
lQUE DIFERENCIA EXISTE ENTRE TRANSMISION DE BITS EN PARALELO YEN SERIE? 60
s
z,<
lQUE ES INFORMACION DIGITAL, Y QUE SIGNIFICA COMPUTADOR "DIGITAL" ? 61
(,QUE IMPLICA UNA CONVERSION ANALOGICA-DIGITAL (AID) YEN QUE PERIFERICOS TIENE LUGAR? 65
s
(,QUE IMPLICA UNA CONVERSION DIGITAL-ANALOGICA (D/A) Y QUE PERIFERICOS LA LLEVAN A CABO? 66
s
(,QUE HARDWARE ENCONTRAMOS PARA LA ENTRADA/SALIDA DE DATOS, DESDE LOS PERIFERICOS
c
HASTA LA PORCION CENTRAL DE UN COMPUTADOR ? 67
c
i,DE QUE FORMA INTERVIENEN LOS CUATRO SUBSISTEMAS CITADOS EN OPERACIONES DE E/N UNA PC? 68
c
l~
(,QUEESUNPORT? 76 0
l,POR QUE OPERAN COMO "BUFFERS" CIERTAS ZONAS DE MEMORIA, LOS PORTS DE UNA INTERFAZ, (,l
LA MEMORIA CACHE Y OTRAS MEMORIAS ? 76 ll
(,QUE SON LAS DIRECCIONES DE LOS PORTS DE UNA INTERFAZ, Y COMO SE VINCULA ESTA (,I
CON LA PORCION CENTRAL A TRAVES DEL BUS AL CUAL SE CONECTA? 78
l,COMO SE ESCRIBE 0 LEE DESDE UN MICROPROCESADOR 80X86 UN REGISTRO PORT
c
l'
MEDIANTE LAS INSTRUCCIONES IN Y OUT? 79
l
(,QUE SE DENOMINA "PORT SERIE" Y "PORT PARALELO"? 81 E
l,CUAL ES LA ESTRUCTURA INTERNA DE UNA INTERFAZ ''PORT PARALELO", Y QUE PROTOCOLO
CUMPLE UNA IMPRESORA CONECTADA A ELLA? 82
i,CUAL ES LA ESTRUCTURA INTERNA DE UNA INTERFAZ "PORT SERIE", Y COMO ESTA PREPARADA A
PARA CONECTAR UN MODEM USANDO EL PROTOCOLO RS232C? 84 s
(,CUA.LES SON LAS CARACTERISTICAS DE OTRAS INTERFACES, COMO LA DE UNIDAD DE DISQUETE. (
LA DE UNIDAD DE DISCO RIGIDO Y LA DE VIDEO ? 88
L,EN QUE SE DIFERENCIA UNA EIS POR ACCESO INDIRECTO A MEMORIA (AIM),
DE UNA EIS POR ACCESO DIRECTO A MEMORIA (ADM) ? 88 }.
I

LAS INTERRUPCIONES POR HARDWARE: "TIMBRES" PARA LLAMAR A SUBRUTINAS 91


(,QUE SON LAS INTERRUPCIONES? 91
l,C~~)lvfO OPERA UNA INTERRUPCION POR HARDWARE EXTERNA? 92
l,COJ\tfO OPERA.N LAS INTERRUPCIONES POR SOFTWARE? 93 c
(,COMO SE RETORNA AL PROGRA\1A INTERRUMPIDO? 94 I
I

c:,QUE ES LA ZONA DE MEMORIA PRINCIPAL DENOMINADA "PILA'? 94


35
36
· -- ---M-EMO!U.A-CACHKY. JERARQUIA DE MEMORIAS EN UN COMPUTADOR 96
36 96

38
c:,QUE ES UNA MEMORIA CACHE?
6coMO ES LA ESTRUCTURA DE UN CACHE DE CORRESPONDENCIA DIRECTA?
t,QUE ES LA NENIRUA CACHE DE CORRESPONDENCIA DIRECTA POR CONJUNTOS?
(.QUE COMPRENDE LA JERARQUIA DE MEMORIAS DE UN COMPUTADOR?
97
101
102
!..
39
DETALLES DE LOS BUSES 103
39 c:,QUE CARACTERISTICAS TIENEN LOS BUSES COMPARTIDOS? 103
43 c:,QUE ES UNA JERARQUIA DE BUSES? 104
c:,COMO FUNCIONA EL BUS PCI ? 105
43 z,QUE ES EL CONEXIONADO SCSI? 107
z,COMO FUNCONA EL BUS USB ? 109
44

45 PARA ENTENDER EL PENTIUM Y LOS ACTUALES PROCESADORES RISC I 14


47 L,QUE ES EL "MODELO DE VON NEUMANN'', YEN QUE MEDIDA LOS PROCESADORES ACTUALES
48 114
LO CUMPLEN?
L,QUE MEJORA EN LA VELOCIDAD PRESENTAN LOS PROCESADORES ACTUALES CON "PIPE LINE"? 114
z.QUE ES EL MULTIPROCESAMIENTO 0 PROCESAMIENTO EN PARALELO 116
49 L,COMO FUNCIONA BASICAMENTE UN MICROPROCESADOR 486? 116
,~

z.QUE TIENE EN COMUN Y COMO FUNCIONA EL PENTIUM EN RELACION CON LA OPERACION


49 DE UN 486? , 120
;, QUE CARACTERISTICAS TIENEN LOS PROCESADORES CISC ? 123
50 124
;,EN QUE SE DIFERENCIAN LOS PROCESADORES RISC DE LOS CISC ?
z,COMO FUN CI ONA LA FAMILIA P6 (PENTIUM PRO, II, III, Y EL CELERON? 125
51 130
z,COMO FUNCIONA EL XEON Y PENTIUM 4 CON HYPER THREADING?
52
53
3 133
APENDICE 1
REPRESENTACION DE DATOS EN UN COMPUTADOR OPERACIONES CON BINARIOS 133
SISTEMAS NUMERICOS POSICIONALES 133
L,QUE ES UN SISTEMA NUMERICO POSICIONAL? 133
z.CUALES SON LAS CARACTERISTICAS DE LOS SISTEMAS NUMERICOS POSICIONALES? 134
SISTEMAS NU MERI COS OCTAL, BIN ARIO Y HEXADECIMAL 135
z.QUE SIMBOLOS SE EMPLEAN EN OTRAS BASES NUMERICAS? 135
SISTEMA BINARIO
137
SISTEMA HEXADECIMAL 138
CONVERSIONES ENTRE BASES NUMERICAS 140
CONVERSION DE UNA BASE CUALQUIERA A BASE DIEZ 140
CONVERSION DE BASE DIEZ A OTRA BASE CUALQUIERA POR EL METODO DE LAS PESAS 141
z,COMO SE PASA DIRECTAMENTE DE BINARIO A HEXA, Y VICEVERSA? 142
OPERACIONES ARITMETICAS CONNUMEROS BINARIOS NATURALES 143
z,DE QUE FORMA LA UAL SUMA DOS NUMEROS ? 143
z.COMO EFECTUA LA UAL UNA ARESTA SIN PEDIR PRESTADO, MEDIANTE UNA SUMA? 144
z,COMO SE MULTIPLICAN Y DIVIDEN MANUALMENTE NUMEROS BINARIOS NATURALES? 144
CODIFICACION ASCII DE CARACTERES ALF ANUMERICOS Y UNICODE 145
145
L,QUE ES EL CODIGO ASCII?
146
z,QUE ES EL UNICODE
EJERCICIO SISTEMATIZADOR DE CODIGOS Y EJERCICIO INTEGRADOR DE CONOCIMIENTOS 148

153
APENDICE 2
153
SISTEMAS OPERATIVOS
CLASIFICACION DEL SOFTWARE
153

APENDICE3:
HISTORIA DE LA COMPUTACION 157

APENDICE 4
MODELO CIRCUITAL DIDACTICO DE UCP 173
z,COMO SE EJECUTA EL PROGRAMA CONSTITUIDO POR Il, 12, I3, 14 EN EL MODELO
DE LA FIGURA A.4.6 Y SIGUIENTES 176
COi\IPLEMENTO
---C~ODJF-ICAQQN-Y-QPERAE-ION DE ENTEROS Y REALES. FLAGS DE LA UAL
RESTA DE NUMEROS NATURALES SIN PEDIR PRESTADO. MEDIANTE LA SUMA DEL 185
MINUENDO MAS EL COMPLEMENTO DEL SUSTRAENDO
REPRESENTACION DE ENTEROS USANDO DIGITO DE SIGNO Y EL COMPLEMENTO CUI-I
DE SU MAGNITUD
COMPLEMENTO AL MODULO 0 A LA BASE CUI-3
NUMEROS BINARIOS CON BIT DE SIGNO CORRESPONDIENTES A "INTEGERS'" CUJ-5
CALCULO DEL COMPLEMENTO AL MODULO A TRAVES DEL COMPLEMENTO AL CUl-3
MODULO MENOS UNO
PROPAGACION DE SIGNO CUI-6
SUMA DE ENTEROS REPRESENTADOS CON DIGITO 0 BIT DE SIGNO CUI-8
SUMA DE ENTEROS REPRESENTADOS POR BINARIOS NATURALES CONBIT DE SIGNO CUI-9
REST A DE BINARIOS ENTEROS CON BIT DE SIGNO CUI-IO
EJERCICIOS RELACIONADOS CON ENTEROS CUI-12
INDICADORES DE ESTADO SZVC CUI-15
EJERCICIOS SOBRE FLAGS CUI-17
NUMEROS BINARIOS FRACCIONARIOS CUl-23

[
REPRESENTACION EN PUNTO FLOTANTE DE NUMEROS REALES CUI-25
CODIFICACION Y SUMA EN BCD NATURAL CUl-27
DECIMAL EMPAQUETADO (PACKED) CUI-31
EJERCICIO INTEGRADOR DE CONOCIMIENTOS PARA INTEGERS CUI-32
EJERCICIO INTEGRADOR DE CONOCIMIENTOS PARA REALES CUI-33
CUI-35
INDICE ALFATEMATICO DE LA UNIDAD l
230
BIBLIOGRAFIA
232
1-1

185
SIMBOLQS, DATOS,
UI-I PROCESOS DE DATOS
!-3
J-5 E INFORMACION
I-3

I-6
!-8
-9
l-10
1-12
I-15
-17
-23
-25 Se debe tener siempre presente queen esencia un computador lleva a cabo procesos de datos, con la
-n particularidad que puede operar velozmente gran cantidad de datos en forma automatica, sin
31 intervenci6n humana.
32
-33 Como primer paso para ubicarse en el funcionamiento de un computador es importante tener en
35 claro los cuatro subprocesos principales'tj_ue realiza (Entrada, Memorizaci6n, Procesamiento y Salirla),
y ver que nos son familiares, por estar presentes en cualquier proceso de datos -mental, manual, o
0
con calculadora- que hacemos sin computador.
2
En los parrafos siguientes se pasa revista a procesos semejantes a los que ocurrel1 dentro de un sistema de
computaci6n, a la par que se tratan conceptos tales coma simbolos, datos, e informaci6n asociada a decision.
Para no sucurnbir, los seres vivientes debemos permanentemente llevar a cabo anticipaciones previsoras
que aseguren una buena adaptaci6n al mundo exterior. Por ejemplo, cuando sin damos cuenta exponemos
alguna parte de nuestro cuerpo a una fuente de calor excesivo, la retiramos rapidamente, sin pensar.
En "camara lenta" podemos descomponer el proceso ocurrido en cuatro subprocesos:
1. Las celulas de nuestra piel de la zona expuesta han convertido la acci6n calorffica intensa
proveniente del exterior en sen.ales electricas que van hacia la medula, sin pasar por el cerebro.
Asi se ha internalizado dicha acci6n, o sea que se dio entrada a nuestro sistema de algo exterior
representado por sen.ales intemas que podemos operar.
2. Celulas de la medula memorizan informaciones anteriores vitales -via c6digo genetico- acerca
de sen.ales electricas que son "normales", por no superar su intensidad cierto umbral ancestral
de "peligrosidad". Las sen.ales que de modo continua Hegan del exterior tambien son retenidas
muy brevemente.
3. Este tiempo es el necesario para que mediante otras funciones de la medula se pueda
determinar, cotejar, comparar -como quiera llamarse- si nose super6 dicho umbra!. En esencia
se han procesado sen.ales electricas, con un cierto resultado.
4. Si del cotejo llevado a cabo resulta que la senal recibida supera ese umbral, c6digos geneticos
almacenados desatan reacciones, a partir de sen.ales electricas enviadas a musculos del cuerpo
para alejar la zona en peligro de la fuente calorifica extema. Esta vez se han convertido sen.ales
intemas en acciones (movimientos) hacia el mundo exterior. 0 sea que nuestro organismo dio
salida, exterioriz6, el resultado del cotejo efectuado.

En un nivel de anticipaci6n mas abstracto, cerebral, no es necesario por ejemplo, que una fuente calorifica
peligrosa este cerca nuestro para alejamos de ella. Basta que alguien nos comunique de la existencia de
un incendio pr6ximo para que, de ser necesario, tomemos la decision de alejamos del peligro. El mensaje
que recibimos consiste en sen.ales audibles, que simbolizan, representan, el incendio, sin necesidad que
el mismo este presente frente nuestro. Estas sen.ales audibles, merced al 6rgano del oido o la vista, se
convierten en sefi.ales electricas que permiten almacenar ese dato simb6licamente en el cerebra.
De igual forma, cuando pensamos en relaci6n con cualquier tema, mentalmente realizamos
operaciones con imagenes y palabras que son simbolos que representan sucesos, objetos, personas,
1-2
etc., que no necesitan estar presentes necesariamente.
Mas concretamente, realizamos operaci~nes sobre representaciones simb61icas de propiedades,
cualidades conocidas de entes0 sucesos.
Estas representaciones simb6licas son datos que seleccionamos, reunimos, y sobre los cuales operamos.
La operatoria realizada con simbolos que seleccionamos y reunimos, da por resultado infonnaci6n, qu€·
tambien son simbolos de propiedades de entes y sucesos, que antes desconociamos. Si bien datos e infor.·
maci6n pueden ser sin6nimos en el lenguaje comtin, en Informatica son "input"-"output" de un proceso

lnformaci6n ~ Decisi6n

La inform.aci6n sirve para tomar decisiones, con vistas a un accionar concreto (presente o futuro), y se: Figura 1.
obtiene realizando operaciones sobre datos. Su elaboraci6n permite tomar conocimiento de alg6n aspecto.\
de la realidad desconocido, lo cual disminuye la incertidumbre e:xistente antes de tomar una decision. ··

Por ejemplo, supongamos que una persona tiene que comprar un mismo articulo en tres comercios (
diferentes. Antes de concretar su compra, en su mente podra tener las siguientes altemativas: ·
Si en el comercio A el precio es mas barato, entonces compro en A
Si en el comercio Bel precio es mas barato, entonces compro en B
Si en el comercio C el precio es mas barato, entonces compro en C
Dicha persona por los medias apropiados obtendra el valor de venta de dicho articulo en cada
comercio (datas), como ser en el A: $20; en el B: $19, y en el C: $ 21. Luego realizara
aperaciones de comparaci6n entre los datos a fin de determinar cual es el precio mas bajo. Entonces
habra elaborado la informaci6n que le interesaba, supuestamente constituida por la representaci6n
simb61ica "en B venden mas barato", la cual le permitira tomar la decision de comprar en el
comercio B entre las tres altemativas posibles. Obviamente, de no haber elaborado informaci6n, y si
campra sin mas en A 6 en C, la decision hubiese sido mal tomada, si el objetivo es el menor costo.

La informaci6n producida en un proceso de datos puede servir coma dato en otro proceso.
A continuaci6n determinaremas cuatra subprocesos en que puede dividirse un proceso de datos mental
entre los innumerables que realizamos con el fin de obtener informaci6n, para poder conducirnos,
para determinar par media de representaciones simb6licas que hacer en cada situaci6n cotidiana.
Supongamos que alguien debe ir al cine a cierta hora, y debe decidir: si alcanza a baftarse o no; c6mo ha
de vestirse acorde al clima reinante, y a que hora debe salir para llegar a horario. En este momento
· podrfa tener expectativas tales como "si tengo tiempo me gustaria bafiarme", "si el tiempo esta lindo me
gustaria usar tal vestimenta", etc.
El procesamiento de datos que llevara a cabo puede descomponerse en una serie de acciones que ocurriran
en su interior, que estan en relaci6n con los bloques referenciados de a) hasta e) en la siguiente figura 1.1
La persona en cuesti6n podr:ia proceder asi:
a) Entrada: primero incorporaria selectivamente los datos pertinentes necesarios, usando
tipicamente la vista y el oido para sensarlos del exterior.
b) Memorizaci6n: los registraria en su mente, reunidos:
• Ir al cine
• Hora de inicia de la funci6n: 20 hs (leida en un peri6dico)
• Hora actual: 19 hs (leida en un reloj)
• Estada y pron6stico del tiempo (de la radio o television)
• Rapa de vestir para ese tiempo (dato en su memaria)
• Tiempo que tarda en bafiarse: 15' (dato en su memoria)
• Tiempo de viaje normal: 15' (dato en su memoria)
1-3

Cerebro: zona
piedades, . dememoria

operamo(
ci6n, qui
os e infor:
roceso

uro), Y se! Figura 1.1 BLOQUE BLOQUE


SENSOR-CONVERSOR CONMEMORIA
n aspecto!
n. I
----~
mercios · Los val ores asf hallados a partir de los datos primarios conocidos seran nuevos datos elaborados (informaci6n)
s: Al realizar los calculos anteriores tarnbien se establecieron relaciones de orden, al suponer que se hace primero
y que despues. A continuaci6n relacionarf(l el pron6stico del tiempo con la ropa mas adecuada y lista para usar
en esas condiciones climaticas, y estab1ecerfa relaciones de equivalencia, entre vestimentas que tienen
propiedades de abrigo similares. Eso tambien supone que debi6 realizar una clasificaci6n. Luego podrfa usar su
memoria, para extraer el dato estimativo de cuanto tiempo le lleva vestirse de una manera o de otra, etc.
n cada·· d) Conforme al resultado del procesamiento de datos efectuado en el paso anterior, poseera la siguiente
alizara informaci6n, queen forma escrita podrfa expresarse asf: "Dispongo de mas de media hora hasta salir,
ntonces i tiempo suficiente para bafiarme rapido y vestirme con tal o tales prendas que estan listas para usar. Como
ntaci6n : maxima debo salir a las 19.45 hs". Ha resultado ast un nuevo conjunto de representaciones
r en el simb6licas significativas, obtenidas a partir de aquellas correspondientes a Los datos primarios.
6n, y si Se han obtenido simbolos a partir de otros simbolos.
osto. e) El resultado alcanzado (informaci6n "interna") puede ser exteriorizado como informaci6n externa, ya sea
en forma verbal o escrita, si el cerebra ordena a los musculos relacionados con el habla que actuen, o a
los musculos de la mano que escriban, respectivamente. Asf exteriorizada, esta informaci6n por ejemplo
podrfa comunicarse a otra persona, para que lo ayude a decidir correctamente. Si queda en la memoria de
la persona que la elabor6, ella tomara luego las decisiones pertinentes.

mental Como punto de partida para comprender el funcionamiento de un computador, describiremos un proceso de
datos manual auxiliado por calculadora. Este proceso, tambien puede desglosarse en cuatro subprocesos:
cirnos,
. entrada, memorizaci6n, procesamiento y salida, esquematizados en la figura 1.2
Antes de la aparici6n de computadoras, una supuesta oficina de calculos de ingenierfa funcionaba de la siguiente
moha
forma. Una persona id6nea en el manejo de una calculadora comun, se dedicaba a realizar operaciones con esta.
mento
Calculistas programaban la serie de operaciones a realizar por el "id6neo" con la calculadora, y otra persona
dome
"auxiliar" las escribfa ordenadamente en una planilla con renglones numerados, y tambien en ella los datos a
procesar. La ultima orden de la secuencia puede indicar escribir en otra planilla una copia del resultado obtenido.
urriran Por ejemplo, una secuencia sencilla de operaciones ordenadas, que denominaremos instruccionesn
0

1
(simbolizadas I 1, I 2, ... ) escritas en renglones sucesivos, podria ser la siguiente:
I 1: Registrar en el visor de la calculadora el numero que esta en el rengl6n 5000 (o sea el 1020)
ando 12: Sumarle al nt1mero del visor el nillnero que esta en el rengl6n 5000 (nuevamente el 1020)
13: Restarle al numero del visor el numero que esta en el rengl6n 5006 (o sea el 2040)
14 : Escribir el resultado que totaliza el visor en el rengl6n 5010 (o sea el 0000 ira al rengl6n 5010)
I5: Copiar en la planilla auxiliar el valor que indica el rengl6n 5010.
"'1Es importante seguir en detalle esta secuencia de instrucciones, pues mas adelante se repiten
como instrucciones de ma uina ue se e ·ecutaran en una PC
1-4 [v1.Ginzt

o~
"'\' ~ Resu!tados
(simbolos) Que~

EJECUCION DE
Figura 1.2 INSTRUCCIONES
DAR ENTRADA MEMORIZACION YCAL CUL OS DAR SALIDA

El primer bloque del esquema de la figura 1.2 da cuenta de la entrada de datos e instrucciones a la
planilla, merced a la acci6n de la persona que program6 las operaciones a efectuar. El "id6neo"
leera en el orden dado cada instrucci6n, y digitara en la calculadora la tecla correspondiente a la
operaci6n que se ordena. Luego localizara en la planilla y leera el numero que interviene en dicha
operaci6n, el cual sera introducido a la calculadora por media de su teclado. ~~
La operaci6n ordenada se llevara a cabo al pulsar la tecla igual (=).Un resultado parcial o total que Matena I
esta en el visor de la calculadora podra registrarse (escribirse) en un rengl6n indicado de la planilla,
cada vez que una instrucci6n (como 14 ) asi lo ordene.
Con el cuarto bloque conversor se representa la acci6n del "id6neo" de dar salida hacia otra planilla auxiliar
algilll resultado o dato existente en la planilla principal, cuando asi lo prescribe una instrucci6n (como 15) \;
lnstrucc
Para los valores numericos supuestos en los renglones, la operaci6n realizada fue 1020 + 1020 - 2040 = O
habiendose asignado el resultado 0 al rengl6n 5010. Si llamamos R al resultado la secuencia de
instrucciones anterior hallar el valor de la variable R en la P+P- =R

1, Cua/es son las operaciones primarias en los procesos de datos ?


Existen 8 acciones primarias ("primitivas") que pueden encontrarse en distintos procesos de datos:
• Entrar datos al sistema encargado de procesarlos ,
• Asignar un valor como perteneciente a un determinado nombre de datos o variables
• Comparar dos valores de datos para conocer la relaci6n (< = >) existente entre ellos
• Archivar: almacenar datos durante un tiempo en algun medio
• Recuperar: leer, datos archivados en algun media
• Calcular: generar, un nuevo valor aplicando una funci6n matematica o textual
• Borrar datos archivados
• Dar salida: exteriorizar, obten_er del sistema datos resultantes.
:M.Ginzburg 1-5
----
-8AS_ES_~REVIAS PARA EL
ESTUDIO DEL INTERIOR
DE UN COMPUTADOR
Que semejanzas tiene un computador con una fabrica que produce a pedido ?

UN/DAD
PRODUCT/VA

nes a Ia f
neo" EXPEDICION
te a Ia
n dicha
'~
otal que f Materia·;f,~'a
planilla, !
ii'
;}

auxiliar l
mol5) l Q
2040 0 l
== lnstrucciones
ncia de 1 !
- .

Figura 1.3

La Unidad Productiva (UP) de la fabrica de la fig. 1.3 produce piezas de metal a pedido (en este caso tomillos).
Para ello se deben proveer (a traves de Recepci6n) Ia materia prima y las instrucciones para producir cada pieza,
que iran a boxes numerados del Dep6sito (D). Cada instrucci6n sera pedida al dep6sito y luego cumplimentada
por la Oficina de Control (OC), para Io cual debe llegar desde SU box a la Mesa de lnstrucciones (Ml).
La materia prima (cilindro en este caso) ira desde el box donde se halla hacia una estanteria E, y de esta al tomo
automatico de la Unidad Transformadora (UT) comandada por Ia OC segun lo que ordena cada instrucci6n.
La OC no puede ver gue hay en cada box. Las instrucciones siempre se ubican en boxes numerados conse-
cutivamente desde el 30. Para localizar cada instrucci6n la OC tiene en una mesa un contador mecanico para
os? localizar instrucciones (CLI), que siempre arranca de 30 con un pulsador para av,anzarlo.
Funcionamiento: una vez que instrucciones y materia prima estan en D suF:na el timbre, con lo cual la OC pide la
instrucci6n (11) que esta en el box cuyo numero (30) es el que aparece en cl CLI, siendo que la misma ira hacia Ia
Ml Luego desde la OC se pulsa el bot6n del CLI para que su numero suba uno (31), a fin de que permita localizar
12 cuando suene otra vez el timbre. Cuando 11 llega a la MI en la OC se lee que ordena "Pasar Ia pieza que esta en el
box 44 (cilindro en este caso) hacia E", por b que Ia OC impartira dircstivas rara que se cumpla dicha orden.
Cuando ello ocurra, el cilindro que esta en 44 habra llegado a E, con lo cual sonara cl timbre. Entonces la OC pedira
la instrucci6n (12) que esta en el box 31, ;ndicado por el CLI, y pulsara su bot6n para que indique 32.
Cuando 12 11ega a MI para ser leida por la OC ordena "Pasar a Ia UT la pieza que esta en E (el cilindro),
darle forma de cono y dejarlo en E". La OC ordenara los movimientos y a la UT Ia operaci6n a realizar para
ejecutar la orden, luego de Io cual sonara el timbre. Entonces la OC pedira la instrucci6n (1 3) que esta en el
box 32, indicado por el CLI, y pulsara su bot6n para que indique 33.
13 ordena "Pasar a la UT la pieza que esta en E (en este caso el cono), darle forma de tornillo y dejarlo en E". La OC
Ilevara a cabo la orden, sonara el timbre, pedira 14 y el CLI pasara a 34. I" ordena "Pasar lo que esra en Eal box 21 ".
M.Ginzbur;M.Ginzburg 1-7

n el box2j En general, en cada sistema numerico posicional, partiendo de grupos de un elemento, cada tipo de grupo es tantas veces
mayor que el anterior como la cantidad de sfmbolos empleada en un sistema (1 Oveces en decimal, dos veces en binario)
fi-un_c_z_·o-n-~--------1-L~-~aa-·a-s~lemu.1rumii'fco es una m.a;w;u di:;ti::tG, de di'vid.f:- er; g;;.;pos de ese si:;tema a! cc::j::::tc de e!ementos cuyo
7: mJ.mero se quiere simbolizar. Se pueden formar hasta k grupos de cada tipo, siendo k el simbolo mayor del sistema:
hasta 9 en decimal; solo hasta un grupo de cada tipo, o ninguno, en binario, y hasta 15 = F en hexadeciamal.

ones) .-~ 8 4 2 1 _ _ _ _ _ _ _ ___;..__~ Asi, en el sistema binario que usa dos simbolos O y 1 para repre-sentar cualquier
Memoria '.~ numero (con el mismo significado de dichos sfmbolos en decimal), cada grupo sera el
fi
..~ 0 Ox8 + Ox4 + Ox2 + Oxl
doble que el anterior. Simbolizados en decimal serian: 1, 2, 4, 8, 16, 32, 64,
erminadas~ 1 Ox8 + Ox4 + Ox2 + lxl 128, ... Como el sfmbolo mayor es 1, solo se puede formar hasta un grupo de
~
2 Ox8 + Ox4 + lx2 + Oxl cada ti po. Un conjunto que en decimal se simboliza 13 (formado por un grupo de 10
Dep6sitJ 8 4 2 1
.' ~ 3 Ox8 + Ox4 + lx2 + lxl
perac1on ~l y 3 grupos de 1) en binario sera: 11 0 1.
nericos) Y;, 4 Ox8 + lx4 + Ox2 + Oxl
Ello significa que se pudo formar un grupo de 8 (Ix8), y que con los 13 - 8 = 5
ii 5 Ox8 + lx4 + Ox2 + lxl elementos restantes se pudo fom1ar un grupo de 4 (lx4), y que con los 5 - 4 = i ·
~
~~
6 = Ox8 + lx4 + lx2 + Oxl restantes nose pudo formar ningun (0) grupo de 2, pero sf un grupo de l (1xl). De
~. este modo lx8 + lx4 + Ox2 + lxl = 13
teria prim~} 7 = Ox8 + lx4 + lx2 + lxl Por lo tanto ahora el mismo conjunto que en decimal se habia dividido en un grupo
li
~- 8 = · 1x8 + Ox4 + Ox2 + Ox 1 de 10 y 3 grupos de 1, en binario se ha dividido en un grupo de 8, un grupo de 4 y
ar. i 9 lx8 + Ox4 + Ox2 + lxl un grupo de l. En la fig, 1.4 aparecen formados como cuartetos los numeros
ue operanr] binaries queen decimal se corresponden con los numeros del 0 al 15.
~ 10 = l x8 + Ox4 + 1x2 + Ox 1 128 64 32 16 8 4 2 1
~1
ero de ~ 11 = lx8 + Ox4 + lx2 + lxl El 130 decimal en binario seria: 10000010
33 a34se.~ Cada uno de los simbolos que compone un numero binario es un digito binario, en
12 = lx8 + lx4 + Ox2 + Oxl
.
ma (dato ~
~t 13 = lx8 + lx4 + Ox2 + lxl
ingles binary digit, abreviado bit.
Vale decir que un bit puede valer 0 6 I. El 1101 tiene 4 bits, y el 100000 l 0
---:.1
~1;
14 = lx8+ lx4+ lx2+0xl tiene 8 bits. Cualquier conjunto de 8 bits se denomina byte (octeto en castellano ).
~1 15 = lx8 + lx4 + lx2 + lxl
nde va et/l El sistema numerico hexadecimal ("hexa") usa 16 sfmbolos, del 0 a F (con
CLI (IP). ~ su correspondencia en decimal y binario indicada en la fig. 1.4), con los
Figura 1.4
cuales se puede formar cualquier nillnero. Los sfmbolos del 0 al 9 tienen el
U (IP). li mismo significado que los analogos decimales.
de datos Puesto que en binario se requiere para representar un mismo nlimero algo mas del triple de dfgitos queen decimal, y
o (bus) a dado que la informaci6n en el interior de un computador es de 8, 16, 32, 64 y hasta 128 bits, resulta engorrosa de ver
rieos). en pantalla,. libros y otros medios, y tambien para escribirlos. La tabla de la fig 1.4 permite pasar rapidamente, por simple
reemplazo, cualquier nillnero binario a hexa y viceversa.
mbolos) Para ello se separa visualmente el nillnero binario, suponiendo que sea 11000000 en cuartetos: 1100 0000.
apel Ios En la figura 1.4 vemos que 1100 en hexa es Cy que 0000 es O; por lo tanto 11000000 =CO.
rmaci6n Si usando el Debug, en la pantalla leemos que un registro contiene A5B4, hallando el cuarteto que le corresponde a
En un cada simbolo y reemplazando, resulta: A 5 B 4 = 1010 0101 1011 0100~ 0 sea si leemos A5B4, en el interior del
computador existen esos 16 bits.
Vale la pena recalcar queen el interior de un computador no puede existir "hexa". Solo hay binario.

tCual es la ventaja de operar en el interior de un computador con dos estados


,.,,'!!!~~!~~w~2~~~2.~!;':!!;~"<f,,!!L~,£!,!""2!~~~!~'&t.2<~>,·w@;"!;;<1f;;'t<',>t.'f.i1%l>;\'@<Wii~"-""''%~,z.,.rf;"'>fil;i;i;t""'iM'%''~'''"'""''»cw;;;t<'~"'J.~'fifcf@r.;'1;;;w'{;*'"""~1#M't.{¥1;;>•'•t.i~r<l;;<"w"~""'
La breve explicaci6n conceptual que sigue ,hace hincapie en la complejidad tecnol6gica y Ia menor confiabilidad que implicaria
establecer diez estados electricos necesarios para representar dfgitos decimales
Los millones de transistores que componen hoy dfa los circuitos de un computador funcionan como las Haves de dos estados, "si-no"
usadas para la electricidad hogarefia; pero por ser los transistores dispositivos electr6nicos, pueden cambiar de un estado al otro
arias y
millones de veces por segundo. Esto es, cada transistor opera en uno de dos estados perfectrimente definidos: deja pasar la corriente
nario y
electrica (1) o no (0).
Operar tecnol6gicamente con dos estados es mucho mas simple, y tambien mas confiable, que hacer trabajar a los transistores
con diez valores de corrientes o tensiones electricas distintos, con el fin de generar diez estados diferentes, para poder
de 100
representar los digitos 0 al 9 del sistema decimal.
ro sf 9 Por otra parte, dichos valores deberian permanecer fijos con la temperatura, con la complicaci6n que ademas, debido a las
dispersiones propias del proceso de fabricaci6n de circuitos integrados ("chips"), los valores de las corrientes generadas
ados (0 variarian naturalmente en mas o en menos -dentro de un cierto range respecto a valores nominales promedio- con cada
circuito que sale de fabrica.
1-9

-
~.

o uriJ
mente;

es de
ados.
) que·

queta

son·
s Ios;
ual.
mado

un

.3
atos
bajo
ico.

o de
un
can

de
0.
1.2
ida
me-
10)
de
ia. Figura 1.5
Este dibujo es un esquema con los dibujos aproximados de los conectores, chips y dispositivos mas importantes para el usuario, que aparecen en la foto
a completa de la "motherboard" de Intel® 0865GRH desarrollado por Intel Corporation para el Pentium® 4 y Celeron® .
En Internet http://www.intel.com/design/motherbd se encuentran detalles importantes de esta "mother", en particular el chipset. ROM, conexi6n de
los m6dulos de memoria y otros temas importantes.
1-10

un registro de instrucci6n (RI) de la Unidad Central de Procesamiento (Procesador), donde


permanece mientras se ejecuta, para que la Unidad de Control interprete que operaci6n ordena ella.
-------~---4.:-GntLnuacion, a traves del rriicmo bus, el date a op2rar por did-ta irtstrucci6n liega desde menioria a un ,
1
registro acumulador AX del procesador, antes de ser operado (conforme a Ia operaci6n ordenada) en la
Unidad Aritmetica, a fin de obtener un resultado. Este puede sustituir en el registro AX al dato ya operada2
y luego pasar a memoria -nuevamente a traves de! bus citado- si una instrucci6n asi lo ordena. . .. ·. . . . ·.....
Si por ejemplo se quiere enviar ditho resultado al exterior para ser visto en pantalla, o para ser guardado en •
el disco rigido o en un disquete, ello se consigue mediante la ejecuci6n de instrucciones que asi lo drdenen.

--1ENTRADAf • IMEMORIZACION-1- - - ·IPROCESAMIENT01-f- - - - - i tISALIDAt--

-~,~ Unidad
de
Registros Control
Unidadde (UC)
disco

Unidadde
disquete

Tee/ado

Un/dad Central
de Proceso (UCP)

Perifericos
deentrada Fig. 1.6

En la figura 1.6 se ha reemplazado al id6neo" de la figura 1.2 -encargado de obtener de la memoria


0

en el orden establecido cada instrucci6n y ejecutarla- por un circuito denominado "Unidad de


Control" (UC), capaz de realizar sus mismas acciones basicas, pero millones de veces mas veloz.
Dichas acciones formaban parte de una secuencia siempre repetitiva:
• obtener de la memoria la pr6xiffia instrucci6n que corresponde ejecutar,
• localizar los datos a operar (en la memoria principal, o en un registro coma AX u otro, segUn. se ardene)
• ordenarle al circuito de la Unidad Aritmetica que realice con dichos datos la aperaci6n indicada,
• guardar el resultada en un registro acumulador o en memaria principal
Por lo tanto:

La UC tiene a su cargo el secuenciamiento de las acciones necesarias que deben realizar los circuitos
involucrados en la ejecuci6n de cada instrucci6n, segUn. el c6digo de la misma; y tambien tiene a su
cuidado el orden ·de ejecuci6n de las instrucciones de un programa, confonne coma este fue establecido

La calculadora de la figura 1.2 se ha dividido en dos porciones: una que contiene los circuitos de
calculo, que denominaremos Unidad Aritmetica L6gica (UAL o ALU en ingles), y otra constituida

Del mismo modo que al registro visualizable en una calculadora llega un numero, o como en la figura 1.3 la materia prima queda
;ransitoriamente en una estanteria, antes de ser tratada por el tomo.
- Como en el registro visualizable de una calculadora el resultado reemplaza a un numero operado.
1-11
•t-
1
,. donde por el registro acurnulador designado AX, para datos y resultados (que en la calculadora es su
:a:::::-:e-:-ll-:--a_.~---~r_;:.e.s..gt.....is_t_r_o_v_is_ualizable). La UC ordenara mediante sefi.ales electricas transmitidas por cables, las
ona a un: operaciones (sunia, resta, niultiplicaci6n, etc.) que debe realizar la UAL. Esta fortrta de control
da) en la} electr6nico directo reemplaza a las lentas teclas de una calculadora de la figura 1.2. Asimismo, el
2
perado ) hecho de tener un registro separado, permite a la UC entrar al mismo datos a operar en forma
electr6nica directa, mediante cables que llegan a el, sin que tampoco se requiere teclas para ello.
±dado en·~
enen, La UAL sirve para realizar las operaciones aribneticas o 16gicas que le ordena la UC, siendo
auxiliada por registros acumuladores para guardar transitoriamente resultados datos y resultados.

M.entras que la UC es la encargada de ordenar operaciones de lectura-escritura de registros y de memoria,


asi coma de las operaciones que debe realizar la UAL, esta es pasiva: no puede emitir orden alguna.
Por lo tanto, la UAL no ejecuta instrucciones. 0 sea, no puede ordenar las operaciones correspondientes a
los pasos que requiere la ejecuci6n una instrucci6n. S6lo realiza uno de ellos: la operaci6n aritmeti.ca o 16gica
que la instrucci6n ordena, cuando asi lo requiere la UC. Mediante una operaci6n de la UAL, a partir de uno
o dos nlimeros (materia prima) se puede obtener un nU:rnero (resultado) que antes no existia.
Conforme al proceso de la figura 1.2, no debe perderse nunca de vista que el conjunto UAL-
Acumulador Jarman de hecho una calculadora con funciones semejantes a una de bolsillo, siendo la
UC la encargada de manejarla, segun la operaci6n ordenada.
La palabra "L6gica" de las siglas UAL puede llevar a equivocos, en el senti.do de suponer inteligencia.
Como se ejemplifica en 1.8, las operaciones "16gicas" de la UAL son las operaciones AND, OR, negaci6n, etc

Se denomina Unidad Central de Proceso (UCP o CPU en ingles) al conjunto formado por:
• la Unidad de Control
• la Unidad Aritmetico-L6gica
• los registros (coma el AX, RI y otros) usados durante la ejecuci6n de cada instrucci6n.

La UCP es el bloque donde se lleva a cabo la ejecuci6n de las instrucciones. Hada ella se didgen las .•·-., :·- · \,~··,
~"'. . ·
instrucciones que seran ejecutadas (una vez que la UC decodifique su c6digo), y los datos para ser : ,.~. .(
operados por la UAL; a la par que de la misma salen resultados generados por la UAL.
Como se vera, ademas del registro acumulador definido, en la UCP existen otros registros ;5'
·;
necesarios para la ejecuci6n de las instrucciones, que se iran definiendo. ;(+
oos-
da Los termino~ UCP, microproc~~ador y procesador suelen ser sin6nimos.

oria Al igual que el dep6sito fabril de la figura 1.3, la memoria principal o central o interna almacena materia
4
de prima (datos), instrucciones, y los resultados del proceso realizado en circuitos electr6nicos • 0 sea:

La memoria principal (MP) almacena instrucciones de programas, que pr6ximamente seran


ejecutadas en la UCP, y los datos que ellas ordenan procesar (operar); asi como resultados
intermedios y finales de operaciones sobre datos recientemente llevadas a cabo en la UCP.
e)
da,
1 La palabra "registro" en general indica un circuito que puede almacenar (o sea registrar) temporariamente datos o instrucciones.
Si bien en un computador hay registros en distintos subsistemas, (y tambien podemos Hamar registro a cada celda de 8 bits de memoria
principal ya cada "port", ubicado como ser en una plaqueta insertable), registro "a secas", sin aditamentos, implica un registro de la UCP.

Los registros de la UCP sirven para guardar transitoriamente inforrnaci6n relacionada con la instrucci6n en curso de ejecuci6n, y
con las pr6ximas instrucciones a ejecutar. Por ejemplo, el 80386 y 80486 tienen 8 registros de uso general de la UCP.

Esta informaci6n se refiere a c6digos de instrucci6n, datos (a operar o resultados), Y direcciones de memoria.
2 Este puede contener otros circuitos, como el coprocesador matematico, la memoria cache, el reloj de xx- MHz (megahertz) Y otros.
de
En el chip de un microprocesador no esta contenida la MP. En este chip hoy encontramos el coprocesador matematico, a tratar.
da 4 La exigencia de una memoria intema electn5nica para instrucciones y datos a procesar, tiene que ver con la necesidad de acceder a
ella rapidamente en el interior del computador. Esto es, puesto que la UCP opera a velocidades electr6nicas, debe poder leer o escribir dicha
da memoria a una velocidad compatible con la suya. Si la UCP tuviera como memoria un disco (memoria exterior) estarfa atada a los tiempos
de acceso a este, que implican la realizaci6n de movimientos mecanicos, con lo cual se desaprovecharia la rapidez de procesamiento
electr6nico de la UCP. Por lo tanto, si una de las virtudes de un computador es su rapidez, la memoria tambien debe estar constituida por
circuitos electr6nicos para el almacenfilniento y lectura de informaci6n.
---------- h
y

Vale decir, los datos que se procesan y el programa que se ejecuta para ese proceso deben estar en MP. Cada
progrmna comparte la MP con sus datos, pero las instrucciones est.In en zma zona y las datos en otra.
------1~J.Ii:formaci6.i1 queaa almacenada temporariamente m.ientras se opera con ella ; pudiendo ser
1

luego reem.plazada por otras instrucciones a ejecutar, y datos que estas procesan. Tambien existen
programas que residen en MP en forma permanente, com.a los del sistema operativo,. que facilitan
el uso de un com.putador, cuya ejecuci6n se altema con la de program.as de los usuarios.
Las instrucciones y datos a procesar que pasan a la UCP llegan a la MP desde el exterior del com.putador
(figura 1.6); y los resultados que llegan a MP provenientes de la UCP deben luego pasar al exterior:
En una operaci6n de entrada, la :NIP es el destino de instrucciones y datos provenieri.tes del exterior (que
ingresan a traves de unidades de discos o disquetes, teclado, mouse,. m.6dem., u otros).
Asimism.o, en una operaci6n de salida, la MP es el origen de resultados que deben salir al exterior
(a traves del monitor, impresora, unidades de discos 0 disquetes, modem, u otros).
Tipicamente las programas llegan a MP -para ser ejecutados- provenientes de archivos en discos o disquetes.
Los datos a procesar pueden llegar a MP provenientes del exterior desde cualquier periferico.
Los dispositivos que se encargan de entrar desde el exterior datos o instrucciones hacia el
computador, o dar salida de resultados del computador al exterior, se denominan perifericos o
unidades de entrada/salida.
Para tal fin su funci6n principal es convertir datos externos en intemos en las operaciones de
entrada, 0 a la inversa en las operaciones de salida.
Un periferico oficia de "frontera" entre el exterior y el interior de un computador para la conversion
de sei\ales. Del mismo modo (figura 1.1), nuestros ojos, oidos, piel,. etc., sensan sei\ales externas y
las transform.an en sen.ales electricas que van hacia nuestro cerebro o m.edula. Nuestras cuerdas
vocales y cavidades asodadas permiten un proceso opuesto para la comunicaci6n con el exterior.
Hay que diferenciar el periferico de lo que es su exterior. Asi, para los perifericos unidades de discos (o
disquetes), el exterior esta constituido por el disco; para la impresora el exterior es el papet para el
m.6dem. es la linea telef6nica, etc.
Usualmente, en un sistema de computaci6n personal existe un conjunto de perifericos (teclado,
mouse, y otros) construidos s6lo para entrar del exterior datos o instrucciones, que se escriben en MP.
Perifericos como el monitor con pantalla y la im.presora solo pueden dar salida a datos o resultados.
En cambio, las unidades de discos o disquetes y el modem. son perifericos que operan ya sea para
entrada o salida, pudiendo llevar a cabo una de estas operaciones por vez. Por tal motivo, en el
esquema de la figura 1.6 aparecen repetidos en la entrada y salida, aunque en realidad se trata siempre
de la misma unidad actuando de una forma u otra, com.a ya se expres6.
La denominaci6n "perifericos" proviene de su posici6n, vinculada al m.undo exterior en relaci6n
con la porci6n central o interna, constituida por el m.icroprocesador (UCP) y la memoria principal.
Por las razones que se exponen en la secci6n 1.10, un periferico no se conecta directamente a la porci6n
central, sino por intermedio de una interfaz circuital (indicada con la letra I en la figura 1.6), queen una
PC en general esta contenida en una plaqueta que se inserta en un z6calo apropiado (figuras 1.60 a 1.65).
Debe consignarse que Ia UC no gobiema directamente a los perifencos m.ediante lineas qt:t.e llegan a
ellos, sinoque la UCP ejecuta un subprogram.a preparado para cada p~riferico)'merced al CW~ldesde la
UCP llega a la interfaz del periferico cada comando que ordena a la electr6nica de este que debehacen
Los perifericos como el teclado, el monitor, la hnpresora, el graficador ("plotter") y cualquier otro que
perrnita la cornunicaci6n directa m.ediante simbolos usados por los hombres, se denominan tenninales.
Las unidades de disco (m.agnetico u 6ptico), de disquete, de cinta son perifericos conocidos como unidades
de almacenamiento masivo,. tambien denominadas memorias auxiliares o extemas o secundarias.
Distintos circuitos de un computador se com.unican entre si m.ediante un conjunto de conductores (cables o

En general los resultados son guardados como archivos en un disco (rigido o disquete) o son impresos en papel. De no hacerse asf, los
resultados se perderian al apagarse el equipo, pues la MP no los puede conservar si falta energia. Un programa que fue ejecutado es
reernplazado por otro a ejecutar, proveniente del disco, siendo que la mayoria de los programas que estan en MP son copia de los que estan
en el disco. En MP tambien existen programas y datos en forma pennanente, como los usados cada vez que se enciende un equipo.
1-13
.::
rida lineas) que interconectan electricamente las patas de los chips que contienen dichos circuitos.
Asi, las lineas conductoras de electricidad que salen de las patas del chip de un rnicroprocesador
s_e_r____¥;:----p-ar_a_tr.-an---srnitir-direccion-es; ir:.stniccicnes, datos y resultados; constih1yen el denominado "bus local".
:en ~ Un bus de un computador es una estructura de interconexi6n para la comunicaci6n selectiva entre dos
:an
0mas m6dulos de un computador, a fin de poder transmitir in£ormaci6n entre dos m6dulos por vez.

En general, en un bus encontramos lineas para direcciones, datos, y sefi.ales de control (a veces
lor
denominadas bus de direcciones, bus de datos, y bus de control, respectivamente - Ver figura 1.8).
Las lineas de direcci6n, conducen de UCP a MP cada combinaci6n de unos y ceros que mdica
ue d6nde localizar mstrucciones o datos en MP. Es unidireccional.
Las lfneas de datos, en cada lectura de MP conducen de esta hacia la UCP tanto datos a operar como instruc-
or ciones; yen una escritura conducen desde la UCP hacia MP datos resultantes. Son pues, lineas bidireccimuzles.
Las lfneas de control, son unidireccionales individuales para que la UCP de 6rdenes -c6mo leer o escribir
MP- y para que ella reciba sen.ales -como la que orig:ina la MP para indicar lectura efectivizada-
-:?S.

Un bus presente en las PC es el bus PCI (Peripheral Component Interconnect) creado por Intel, al cual -a
traves de z6calos (figura 1.5)- se conectan plaquetas para conexi6n de perifericos, y de otros buses. Este bus
tambien emplea las tres clases de lfneas citadas. No esta vinculado directamente al procesador central.
En la secci6n 1.13 se detalla este bus, el USB y el SCSI, y en la figura 1.80 se da un mapa de c6mo se comu-
nican entre si (como sugieren las figs 1.6 y 1.7) a traves de chips que hacen de "puente" entre distintos buses.
e Las sefiales electricas digitales se transmi~en por las Hneas de un bus como se indica en la fig 1.48

n Las figuras 1.7 y 1.6 son en esencia sirnilares, salvo la


y UCP ubicaci6n relativa de la UCP (mas acorde a la figura
S 1.3), y que los perifericos de entrada o salida (segtin
UAL UC indica el sentido de las flechas) aparecen espacial-
mente en un mismo nivel de proceso, aunque como
se aclar6, por ejemplo una unidad de disco cuando
acrua como periferico de entrada no puede simulta-
Mouse neamente operar para salida, y viceversa.
En ambas figuras se han respetado los origenes y
destinos de los movimientos.
Otra diferencia menor, pero importante, es que por la
fonna en que se comunican los buses de la figura 1.7, es
factible que datos o instrucciones que entraron por un
periferico, en lugar de pasar directamente a memoria
principal1, primero pasen a un registro de la UCP, y de
11
este a memoria, resultando una triangulaci6n".
Esto es lo que sucede en una PC cuando se entran
datos desde el teclado, el mouse, o el disco rigido. 1:

II
~
Memoria Asimismo, en una operaci6n de salida, un resultado en
Principal memoria puede pasar a un registro de la UCP, y desde
este ir a un periferico. Asi se realiza una impresi6n o '

un almacenamiento en el rigido en una PC. '

En cambio, la unidad de disquete envia o recibe infor--


11
maci6n directamente a memoria, sin triangulaci6n"
CD ROM Estas altemativas de triangulaci6n para entradas y

____ ..,
salidas no se han c:libujado, para no complicar la figura.
En la -"mother" de una PC existen chips" que inte-
11

2
Peritericos gran distintas funciones, constituyendo el "chipset"

Figura 1.7

Conocido como "Acceso Directo a Memoria" (ADM 0 sea DMA en ingles). Es la forma te6ricamente mas nipida de dar entrada o
salida a la informaci6n, que emplean masivamente los computadores med_ianos y grande:. P_o~ las r~o~es que ~~ ~~ponen mas adelante
(secci6n 1.10), en una PC con un procesador rapido como el 486 o el Pentium, resulta mas rap1da la tnangulac10n que el ADM.
2 Para el Pentium estan las "chipsets" de Intel: 430FX (Triton), 430 HX (Triton II) y 430VX, Y el 450GX para el Pentium Pro.
1-15

I cA9 I
0 CENTRAL ~
~
~~~~!~~'![1,~,~~$~~~!~!1~~!!~~£'l'l!~~!f!~~l~~.!~~!!!!/!1~~!~~e!if:!ffE:!w.~;*~'~~,~~~~~,~~~~"'"*R%,~~1,*
La memoria principal almacena bits (unos y ceros) en celdas independientes, aisladas entre si, que
tde esta conectI
contienen un byte (8 bits) de informaci6n (figura 1.8, pagina 1.16).
r los datos al ei"l
Cada celda se localiza en el conjunto mediante un numero binario identificatorio, que constituye su
ones para llev~~
"direcci6n", o indicaci6n de su "posici6n" en ese conjunto.
6n de entrada \:
Este nillnero no se puede alterar, pues esta establecido circuitalmente.
Por lo tanto, en relaci6n con cada celda se tiene dos nt1meros binarios:
• un nt1mero fijo, la direcci6n (de mas de 20 bits), que presentado en los circuitos de la
memoria permite acceder a una celda; y
Ycasconl! • un nt1mero de 8 bits, que es ei contenido informativo de esa celda, o sea la combinaci6n de
unos y ceros almacenada en ella. Este numero puede cambiarse si la memoria es alterable.
Es costumbre representar las celdas de una memoria, o una porci6n de ella, mediante un conjunto de
t6, para luegl~ casilleros verticales formando una "escalera", siendo sus direcciones nlimeros binarios consecutivos
a instrucci6nr' Estos nlimeros binarios se escriben en papel o en pantalla al lado de cada celda, en su equivalente
de la planm: hexadecimal, como muestra la figura 1.8, a fin de no tener que visualizar largas cadenas de unos y ceros.
6n. En la figura 1.8(pag1-16) se supone queen las lineas del bus de direceiones (ampliado con la "lupa")
ncipal (MP)r se envfa la direcci6n 0000 0010 0000 0111 = 0207H, en la cual esta almacenado el byte 01100001=61 H
na el mismq·;
Puede ayudar a entender mejor el concepto de byte almacenado, si se piensa
que en cada casillero existen 8 Haves del tipo "si-no" (figura 1.9), como las
p existe otro
comunes de pared para encender la luz, cada una para retener un uno ("si") o
'registro de'J'
un cero ("no") 1• Entonces, para una celda dada, como la que contiene
denominado?.\
01100001, la combinaci6n de unos y ceros que estan formando las 8 Haves es
ual permitEl 0 la informaci6n contenida en dicha celda. La informaci6n que almacena cada
z ~ Figura 1.9
grupo de 8 Haves puede referirse a instrucciones o datos.
El modelo de las llaves tainbien es util para tener presente que en cada posici6n de MP siempre
existe una cierta combinaci6n de unos y ceros, o sea no es posible que ella no contenga "nada",
pues las 8 llaves siempre estan presentes, cada una en "si" o en "no".

indicacio- i
rezca en el r Puesto que la palabra "registro" en un significado general indica algtin lugar donde datos se
ustraendo. ' pueden registrar, guardar, podria designarse "registro" a cada celda de memoria, y decir que la MP
esultado de ; esta formada por un conjunto de registros independientes de 8 bits cada uno. Para evitar tener que
edido. aclarar "registro de la UCP" y "registro de MP", se entiende que "registro" a secas significa que f'
estado del J de la UCP, y las celdas de MP se denominan "posiciones".
6 o no el: Cuando los datos o instrucciones ocupen mas de un byte, se almacenan fragmentados en varios bytes, los
ado citado, ·~· cuales deben estar contenidos en celdas consecutivas de memoria, o sea en direcciones sucesivas
En una operaci6n de lectura o escritura de MP se puede acceder a varias celdas consecutivas.
11
Un cierto nUm.ero de estas (2, 4, u 8 bytes) suele denominarse palabra ( word") de memoria
e. Temol6gicamente la MP reside en microcircuitos electr6nicos, que pueden guardar un cierto nUm.ero de
egmento de bits, construidos sobre una .fina capa de silicio (semiconductor), conformando un "chip" (.figura 8.12) Este se
mplicidad, se protege con un encapsulado de plastico o ceramica en fonna de pastilla con "patas" metalicas para cone-
la memoria,
xionado. Se requieren varias pastillas para lograr el total de memoria necesaria (.figura 1.8, a la izquierda)
1-19

cinta ~; Dada que una vez que lleg6 una direcci6n al decodificador cualquiera de sus 2n salidas tarda igual en
.,,.--fr_en_'t_e___~----P¥-"asar a 5 volts, _r~?~.!~ que no importa cual el nUrn.ero que recibi6 el decodificador, la celda
onnaci0.;r ~orrespondiente se accedera en el rnismo tiempo (esto permite efacceso random y sin bdsqueda).
tables. ~ En un esquema de memoria al lado de cada celda se acostumbra a escribir su direcci6n en hexadecimal
otonera s~ (que en este caso van de 0000 a FFFF), siendo A320 la direcci6n de la celda supuestamente direccionada.
Y el c~~ Se comprende que las celdas no tienen fisicamente ning-Un nUrn.ero grabado para identificarlas, sino
ver pa~ que es el decodificar el que se encarga de establecer la correspondencia entre el nillnero binario que es
§I la direcci6n de la celda a acceder y la celda asociada con dicho nUrn.ero, mediante el conductor
r algo, ~~ conectado a dicha celda. Esto ultimo implica que para cada direcci6n que llega al decodificador,
e con ~ siempre se accedera a la rnisma celda, puesto que el conexionado viene fijado en la fabricaci6n de
cualqui~~ cada chip de memoria, y es identico para todos 10s chips del rnismo tipo y fabricante.
ntalla ci~ Esta tecruca puede asimilarse a un supuesto sistema de localizaci6n de viviendas, en el cual en cada esquina
e canaf1 existe una botonera en la que se entra el nlimero de la casa a localizar, y luego se enciende una luz en la
mo Y sn; entrada de dicha casa, para ubicarla sin blisquedas. Ello exige que de la botonera debe ir un cable a cada ca-
iere lllli~ sa, de modo que con cada direcci6n se energice el cable que enciende la luz de la vivienda correspondiente.
elevisor.''
memorii1
en igua,·:
a. En la fig. 1.12.a se supuso un solo decodificador conceptual, con una salida por celda. La figura 1.12.b
mo pan~ muestra que cada celda se localiza en la. intersecci6n de dos lineas, por ejemplo la horizontal 11 y la
vertical 01 para la direcci6n 1101. Por lo tanto en realidad se usan dos decodificadores: a cada uno va la
nes que s;! mitad de los bits de cada direcci6n. En nuestro caso A3 va al decodificador horizontal, y 20 al vertical.
V citadoJ-
de uq! ./, Como
aparecel\~ -
se accede a celdas consecutivas en un solo acceso a memoria ?
-- ~*~~*~~~&~fu.~m:::~-::~m-:m-mM~m:.~t::~:mf.:~::~~&-::::::r$~~~
-~ El decodificador de una memoria de 2" celdas (figura 1.12.a) solo permite acceder a una celda par vez para
ma cadi'-! leerla o escribirla. Si se quiere acceder tambien a la celda siguiente, esta tambien debe ser luego direc-
recciori;! cionada, para que luego el decodificador la identifique. Operando de esta forma, para acceder a dos
a forma'' celda consecutivas harian falta dos tiempos de acceso; y cuatro para cuatro celdas consecutivas, etc.
direcciofi A fin de poder acceder en un solo tiempo de acceso a 2k celdas consecutivas se debe disponer en princi-
o de UJ~ pio de 2k m6dulos (bancos) de memoria independientes. Para las DRAM existe la variante "interleavinglt.
a enRDU Acceder por ejemplo a 2 celdas consecutivas (figura 1.10) supone 2 m6dulos (figura 1.12.a.2) cada uno
tJ
con su decodificador y 16 lineas para datos en el bus que va a la UCP. La idea basica es la siguiente:
l control
sor. 'ff Memoria que
seftal~j vela UCP
.H
J~ 01101100 000
00(1-)
la celdiJ 10011111 001
el cankl 01(1)
010
011 10(1)
xiste ~J 100
101
11 (1)
en 11P)if
ci6n qu~ 110
:~
'.~~
111 Figura 1.12 .a.2
-;:rr
Si bien la UCP direcciona una memoria de 8 celdas (000 a 111), esta en realidad consta de dos
-i m6dulos separados de 4 celdas (00 a 11). Si la UCP necesita direccionar 2 bytes, como ser los de las
~~::?;S::..~:=*»-~~~
_, celdas 000 y 001, enviara la direcci6n (par) de la primera (000) por el bus de direcciones. A los dos
neas de! decodificadores de los dos m6dulos no les llega el bit extrema derecho de la direcci6n emitida por la
1.12.a)J UCP, sino que a ambos les llega la direcci6n 00, y cada modulo en una lectura enviara el contenido de
ia derj 8 bits correspondiente a esa direcci6n al bus de datos, como se indica. Asi la UCP recibira juntas los
dor. - dos bytes de las direcciones 000 y 001, en el tiempo que dura un acceso, siendo que se realizaron dos
ntes a ( accesos de igual duraci6n simultaneamente. El modulo izquierdo aportara las direcciories pares (000,
010, 100 y 110) y el derecho las impares restantes, o sea que el valor 0 6 1 del Ultimo bit derecho de
rf 1-21
----nii
de los d~ La cuesti6n de las denominaciones se cornplica, desde que, para una porci6n de la MP, a partir de los
,~
af\.os 70 se ernplean _chi_p_s_ ~e rnernoria ROM, siglas correspondientes a Read Only Memory (memoria
n-a-r~a-e~l-q_u..i;;1-----d-=-e-s-=-6l~o-,le-c-=-tur-a). Estos chips contienen un prograrna para el arranque inicial de los cornputadores
modulo~ (secci6n 1.15), y los prograrnas del BIOS (ver mas abajo)
te. ~I La ROM es una rnernoria electr6nica de acceso random, cuya escritura dernanda rnuchisirno mas :,

ue a cad~ tiernpo que su lectura, pero que tiene la ventaja de ser "no voldtil", o sea que alrnacena la informaci6n '
be envia~ en forma No necesita electrica rnantener los datos. Si leerlos.
no o do~~f
nent~. ;a
mona es~
. §
nanuento~
que parafi
ralizarse~!
Por lo tanto:
f MEMORIA PRINCIPAL es RAM + ROM1 I
-~- Las porciones RAM y ROM tienen en comlin, que al contenido de cualquier posic:i.6n de las misrnas se
puede acceder "al random", o sea en igual tiernpo, sin busquedas, indicando un nillnero que la identifica,
;~
que es su direcc:i.6n" siendo dicho tiempo rnenor en la RAM. Difieren en que cada posic:i.6n RAM puede ser
leida o escrita cuantas veces sea, siendo su contenido volatil, mientras que se accede al contenido no volatil
'l''''''"''''-''''''"'n'""''"~i de una posic:i.6n ROM solo para leerla. ·
ente PCIJ
nciones·;~
·rfi

a~~!:~
e contro{J En una PC la porc:i.6n de memoria principal que es ROM se denomina ROM BIOS ("Basic Input Output
ando Ia'~J System"). Contiene por un lado programas que se ejecutan al encender un computador y sirven para:
:~~ • Verificar el correcto funcionamiento del hardware y su configuraci6n
e podef~ • Traer del disco a memoria principal (o sea escribir en esta) una copia de programas del sistema
e accesdf1 operativo del computador (acci6n conocida como "bootear" o "arrancar" el sistema)
:I Por otro lado, almacena prograrnas que se usan perrnanentemente para la transferencia de datos
res que'? entre perifericos y memoria, sea en operaciones de entrada o salida de datos.
ga eiec:,~ Tarnbien la ROM BIOS contiene tablas, por ejemplo relativas a caracteristicas de discos.
·~~-
f.
pci6n de1
amente.;i (,Que tipos de memorias "random acces" de semiconductores se fabrican ?
n En el siguiente cuadro se clasifican las memorias a que hace menci6n la pregunta en tres grupos, en relaci6n
ompen-,(~ con la facilidad y rapidez con que puede ser re-escrito cada byte de las mismas.
!m
dor unajt
tambien~
Memorias de semiconductores con "random acces"
Clase Tipos Caracteristicas de re-escritura V olatilidad
Memorias de DRAM Cada byte direccionado puede ser re-escrito en
lectura y escritura SRAM igual tiempo que se tarda su lectura, cuantas Son volatiles
VRAM veces se necesite
Memorias para ser EPROM Una vez que la memoria fue escrita, se puede re-
ea eran 'f mayormente leida EEPROM escribir ("reprogramar") un numero ilirnitado o No son
desee -~ "Read Mostly Flash ROM muy grande de veces, pero la escritura es lenta volatiles
---.:~ Memory" (RMM) comparada con el tiernpo de lectura de un byte ..
,·')_

e corta 'n Memorias para PROM Una vez que la memoria fue escrita, nose puede No son
xpresa•~ ser solo leidas ROM re-escribir volatiles
'"

Mas especfficarnente, desde un punto de vista electr6nico, Ia memoria principal es por lo general: DRAM + EPROM
o tambien hoy dfa: SDRAM +FLASH ROM (mas adelante se tratan las subclases de RAM y ROM)
1-22

Las memorias DRAI\.-11 tienen en cada celda un transistor y un capacitor microsc6pico. El capacitor preseni
dos estados: cargado guarda un uno, y descargado un cero. Al capacitor, al igual que una pequena bateti{ ·
--------f1... ,ay-que-reponerle la earga 2led:rica qu.c: pi2rd2, cada 10-20 milisegundos (acci6n de ;'refrescd1). Est-
requiere una constante circulaci6n de corrientes electricas hacia las celdas de una DRAM. Por ello se llaut~
memoria "dintimica".
En cambio, cada celda de las memorias SR.AM ("Static RAM") consta de 4 6 6 transistores, q~
1
forman un circuito con memoria, conocido como "flip-flop". Este permanece "estaticamente' en ll!
estado electrico (0) 6 en otro estado (1) mientras no se apague el computador (o se ordene pasar di
un estado al otro en una escritura de la celda). Al no guardar la SRAM los bits en capacitores, nl
requiere circulaci6n peri6dica de corrientes en su interior, coma sucede en la DRAM.
Dado que un flip-flop tarda varias veces menos en cambiar de estado que un capacitor una SRAM ~ 1

mas rdpida que una DRAM. Pero debido a que es varias veces mascara que una DRAM (por su meno
capacidad por chip) no se utilizan chips SRAM en memoria principal, sino en la memoria cache (a tratar;
Por ejemplo, si una DRAM tiene 60 nanoseg de acceso, una SRAM tiene 20 nanoseg. o menos.
"
El esquema de la figura 1.12.b con solo 16 celdas de 8 bits.·
con 16 direcciones que van de 0000 a 1111, servira pare
entender mas en detalle una DRAM. Cada celda se localiZi
en la intersecci6n de una lfnea horizontal (LH) con otn ·
vertical (LV), y cada lfnea se selecciona con la mitad de lo:
bits de cada direcci6n. Si por el bus de direcciones se envfi
una direcci6n como 1101, esta se parte en dos mitades: 11 J
01. Primera los bits 11 seleccionan la LH 11, y luego los bit
01 la LV 01. Asi queda seleccionada la celda que suponemof
OD contiene 01011000. Si es una lectura, una copia de 0101100(
pasa al registro de salida, y de este al bus de datos.
Igualmente, como ser, direcciones de 20 bits se parten en dof
grupos de 10 bits.
Figura 1.12.b 0111
Las nuevas generaciones de DRAM se disefiaron para trabajai
rapidamente con transferencias de bloques de bytes.
Dos tipos de DRAM se comenzaron a utilizar buses de 66 Mhz: la FPM RAM y la EDO RAM (o FPN
DRAM y EOO DRAM)
Cada vez que en una DRAM corriente se accede a una celda (con LH y LV), se accede mas rapido a la celdi
siguiente aumentando en uno solo LV (por ejemplo con LH = 11, LV pasa de 01 a 10). Esto se denomiru
"Page Mode". En una FPM RAM (Fast Page Mode) luego de direccionar una celda, LV se incrementa en
uno automaticamente. Esto es, en FPM se supone que luego de acceder a una celda se va a acceder a ij
/1 11

siguiente. Para la primer celda, como deben llegar LH y luego LV, se tarda como ser 60 nseg, pero luego ~;;
cada acceso siguiente, como solo debe llegar LV se tarda < 25 nseg en obtener el contenido. Esta forma dj
acceso, a un bloque de celdas consecutivas, se conoce como modo "burst" (rafaga), siendo que en el presen~
basta dar la primer direcci6n y la longitud de la rafaga, no siendo necesario perder tiempo generandq
direcciones consecutivas. n
Una EDO RAM opera parecida a la FPM RAM, pero una vez que al registro de salida llega el dato, l~
mantiene (de ahi su nombre: uExtended Data Output") para que no se pierda, dado que entoncel
tambien a la par comienza el acceso a la celda que esta en la siguiente LV, como en las FPM RAM. EstJ
paralelismo intemo que se debe a la existencia de registros intermedios, en general se conoce el)
hardware como "pipe line" o "segmentaci6n'. ·
De concepci6n semejante es la pipe lifle Burst BOO.RAM (BEDO RAM).
Las EDRAM (Enhanced DRAM, o sea DRAM mejorada) o CDRAM (Cache DRAM), integran en el chip un
cache SRAM que almacena los contenidos completos de la Ultima linea leida. El refresco se realiza a la paI
que se lee dicho cache, con lo cual este no afecta tanto al acceso a un chip para ser leido o escrito
Las RDRAM de Rambus® son una innovaci6n basada en un bus corto y rapido (500 Mbps contra 33
Mbps de una DRAM corriente) al que pueden conectarse mas de 300 chips. En cada acceso solo se indica

Chips de memoria DRAM conforman los denominados m6dulos de memoria SIMM (Single In-:Jine Memory Module), y en
m6dulos DIMM (Dual In Line Memory Module), que son pequeiias plaquetas con chips DRAM, que se insertan a Ia "motherboard" a
traves de unos z6calos (figuras 1.8 y 1.5).
r
:~·

1-23

or pre~ la primer direcci6n, el m~.mero de bytes, y si es lectura o escritura.


en_-a_b_at=e~nt_;---Ii-a_SDRAM (§yg_~o_nous DRAM) intercambia datos con el cache o la UCP al ritmo de una senal
sco"). Es~ de reloj extema relacionada con los Mhz de la UCP, operando asi con SUS eri.fraaas y salidas en
lo se naJ <~
sincronismo con ella. Asi se evitan retardos y esperas. Si en un determinado ciclo del reloj es
"' direccionada, luego de una cantidad fija de ciclos se obtiene el dato.
tores, qJ Tambien existen las ESDRAM (Enhanced DRAM) con un cache SRAM incorporado
nte" en 41 Las DDR SDRAM (Double Data Rate SDRAM) realizan transacciones en ambos flancos del reloj.
pasar d; En los chips SDRAM figura un mimero dado en nseg. (por ej. 10 nseg.), que nose refiere al tie.mpo de
itores, n:t acceso, sino a la duraci6n del periodo del reloj que se puede aplicar (o sea 100 Nfhz para 10 nseg)
"· Con un bus de 100 Nfhz (100 millones cidos/seg) que tenga 64 lineas, se pueden transferir 8 bytes en
SRAM e! cada ciclo, o sea 64 Bytes I cielo x 100 millones ciclos I seg = 64 Mbytes / seg.
su men0~~
(a trata{: Entre las memorias estaticas (SRAM) muy usadas en los caches extemos (4 nseg < tacc < 20 nseg) encontramos:
La SRAM asincr6nica (Async SRAM): en el momento que pone un dato en las lfneas de datos, activa una
linea qu~ va a la UCP. Es la mas lenta de las SRAM para cache extemo.
de 8 bi4: La SRAM sincr6nica rapida (Sync burst SRAM), que funciona en sincronismo con los pulsos reloj de
ra par,j la UCP. Asi, cada dato leido llega a la UCP en sincronismo con un pulso reloj.
localizJ La "pipe lined burst" SRAM (PB SRAM): merced a sus registros de entrada y salida, una vez que
con otr:~ ~. ellos estan cargados, permiten que rnientras esta presente en las salidas el contenido de una celda direc-
d de lo~~ cionada, se realicen accesos a celdas de direcciones siguientes ("pipe line"). Para buses de hasta 133 Nfhz
se envi1~
es: 11 ',:1 Los chips de memoria de video VRAM (Video RAM) forman parte de la memoria principal, pero estan en
los bit~ la plaqueta de video (fig 1.65). Guardan la informaci6n que sale por pantalla. Estos chips tienen casi el doble
1i
onemo) de patas que los de cualquier RAM. Esto se debe a que una VRAM tiene un bus de direcciones y datos para
10110(i!, ser escritos por la UCP, y otro bus para direcciones y datos para ser leidos por los circuitos de la plaqueta de
e datoi} video, que manejan el monitor. Por eso se dice que la VRAM es una memoria de "dos puertas", dado que
n en d<rl simultaneamente que es escrita por la UCP, puede ser leida por la plaqueta.
i;::
fr
Tambien existen EDOVRAM, semejantes a las subclases DRAM antes citadas.
.~~
Otras RAM para las plaquetas de vfdeo son: la WRAM (Window RAM) que acelera la generaci6n de grafi-
trabaja'!· cos, dado que ha sido pensada para anticipar las operaciones tfpicas que se realizan en vfdeo; y la 3D RAM,
especialmente creadas para manejar graficos en tres dimensiones. Contienen varias UAL en su interior.
(o FPNi
Los primeros chips ROM (hoy denominados ROM "fabricados a medida" se encargaban a los fabri-
_'j cantes de chips, indicandole el contenido que debia tener cada celda. Entonces, cuando se
la cektl fabricaba cada chip, se grab ab an los contenidos que siempre tendria. La adquisici6n de estos chips
nomin~ hoy s6lo se justifica econ6micamente si se encargan decenas de miles de chips iguales.
menta et1 A dilerencia, los chips PROM ("Programmable ROM") se fabrican en serie, pero el
:Ii'~
eder a ~l Alambres de interior de cada chip esta preparado para que -en una segunda etapa- quien utilice
uegoif. conexi6n entre uno o miles de estos chips pueda escribir una sola vez los contenidos que tendran
orma -~ hip y patas sus celdas. Esto se realiza en un dispositivo electr6nico que se vende para tal fin .
9
resen fl~· ::-"''" Una vez asi grabada ("programada"), una PROM no puede ser re-escrita.
nerandj ~-. . -'-'-~-"· Chip de silicio 1 'd bl
con circuitos Las ROM de la clase RMM, para ser mayormente ei as, son reprograma es, o

dato, ii
toncJ~
sea se pueden volver a escribir, siendo que la escritura es poco frecuente frente a
Ventana circular las operaciones corrientes de lectura.

i" transparente Un ti.po de IDv1M alin usada para ROM BIOS en las PC es la EPROM ("Erasable-
M. Est!l Programmable ROM"). Los pastillas EPROM se carac-terizan por presentar una
oce Ji r~t
ventanilla transparente en su cara superior (fig. 1.13), que normalmente esta cubierta
!!f
:1J
por una etiqueta plateada autoadhesiva
Figura 1.13 Se puede cambiar el contenido de tad.as las celdas, re-escribiendo el nuevo contenido
hip wI que tendra cada una en un dispositivo semejante al usado para las PROM. Previo a ello
la parJ se debe "borrar" e'erase") el contenido de todas las celdas1• Esto se logra hacienda pasar luz U.V por la
ventana durante unos 15 minutos.
ntra 33• Una EEPROM, o E2PROM ("Electrically Erasable ROM") 2 no requiere el borrado de todas las celdas
indica· con luz U.V, dado que -como en una RAM- se puede seleccionar cada direcci6n que se quiere re-
escribir., sin sacar la pastilla del circuito donde opera. Esto puede hacerse unas 10.000 veces.
), y en
oard" a Observese al respecto, que este proceso de borrado no es necesario en una RAM, pues una escritura borra un contenido anterior.
2
A veces identificada con las denominadas EAROM ("Electrically Alterable ROM")
1-25

se borri1 •
Que relaci6n existe entre la capacidad de una memoria, la cantidad de bits
ste tipo,~ LJe-Jienen SUS direc~_l<;Jfl~~ Y el numero de /fneas de direcci6n ?
ROM de~~~'-l."'iS.~"'-""""""~'"""~~;,,m,"'""""*"''"""'"""'""""'''@'~'rni:':''%"'""':'~""iB<'"'"'~'':'"'''"''""'";':"';':;~;,,;;,,;,,,,,""'"8£'"''''''@""''"'''''"'''''"'''';~m,:;;"'''''"'"';,,,,"''''''''•"'""'"'""''•'""'*''''''''0"''"'''"''"'°"""''~"""''""'""'''>;;.'-<K•>;;;,:1"<w''Tu::'"'~'b~'''''''''''$"'io'iiff~~i~";;~*""'"'~'"'
mother. i En una memoria que guarda un byte por posici6n, debe haber tantas posiciones como bytes tenga la
su chip.~ memoria. Esto es, una memoria de 2 MB implica que se deben identificar 2097152 posiciones distintas,
··~ asignandole un nUm.ero binario distinto para cada una, que es su direcci6n. Se acostumbra a asignar el
cero a la primer posici6n, por lo cual la ultima seria en decimal el nlimero 2097151.
Una memoria tiene un numero N de celdas que siempre es una potencia de dos, por lo cual las ..;»

mismas se localizan mediante direcciones que son nUm.eros binarios que van de 000 .... 000 hasta
111 .... 111, siendo que a cada celda le corresponde uno de esos ntimeros como direcci6n. L-~
amemof, Las potencias de dos de la figura 1.14 sirven para determinar cuantos bits deben tener los nillneros bina
N=2k·" rios que son las direcciones de una memoria, de forma de adjudicar un ntimero distinto a cada posici6n.
tes (MB De la figura 1.4 resulta que con 4 bits se pueden formar 16 = 24 combinaciones binarios (o sea nlimeros
binarios) distintas. Inversamente, si se quiere formar 16 ntimeros binarios distintos hacen falta 4 bits.
Del mismo modo, por ejemplo, dado que 2 MB =221, resulta que el exponente 21 indica la cantidad de
ser lOt; bits que debe tener cada direcci6n, para formar 2.097.152 de direcciones distintas, como se necesita.
Por ejemplo, una direcci6n de 21 bits seria 0 10010111100110101110 = 0979AE en hexa, segtin lo visto.
La primer direcci6n de memoria seria un numero binario con 21 ceros = 0 0000 0000 0000 0000 0000
en 655f == 00000 en hexa; y la ultima otro de 21 unos = 1 1111 1111 1111 1111 1111 = lFFFFF en hexa.
4 KByte;
De la tablw resulta que al subir uno el exponente del numero dos, se duplica la ccmtidad de memoria.
bytesD 0 sea, si una memoria tiene el doble de capacidad que otra, los numeros que Jarman las direcciones de la
mega").'J primera deben tener un bit mas que los numeros que Jarman las direcciones de la segunda.
z22/220[i Sise quiere operar mentalmente, se debe tener presente que 210 =1 KB,
MB. .
J
y que 220 =210 x 210 =1 KB x lKB = 1024x1024 = 1 MB.
o. A fin de cakular cuantos bits tienen las direcciones de una memoria de 8 MB, partiendo de que 1
giga")/ MB necesita 20, que 2 MB necesitan 21, que 4 MB necesitan 22, resulta que 8 MB necesitan 23 bits.
Puesto que por cada Hnea de direcciones de un bus transmite un bit, en principio deben utilizarse
al menos tantas lfneas de direcci6n como cantidad de bits tenga cada direcci6n.
eraliza·l
a usaH
ompara, (,Que es el bit de paridad en memoria principal, y para que se emplea ?
mple!] Supongamos que el contenido de una posici6n de memoria leida es 01000001, pero que por un ruido
(interferencia electromagnetica) durante la operaci6n de lectura, la UCP recibe 01000011, o sea que el bit
a es di; marcado se recibe invertido. Entonces la combinaci6n recibida sera otra, sin que se pueda notar el error.
unad't Como se verificara, ampliando la capacidad de una memoria de Jorma que cada posici6n contenga un bit extra
acida1'. (o sea 9 bits), puede detectarse si se ha producido un solo error por inversion, como el ejemplificado.
veces' El bit denominado de "paridad", que se agrega al byte a almacenar, debe ser siempre de valor tal
oria er que el conjunto de los 9 bits almacenados tenga un numero par de unos (paridad par de unos).
e4M( En el momenta en que se escribe cualquier posiCi6n de memoria un circuito calcula el valor (0 61)
ntara i:: que debe tener dicho bit; y cuando se lee cualquier posici6n, el mismo circuito verifica que los 9 bits
leidos presenten paridad par de unos. Caso contrario se interrumpe el programa en curso para
pasa avisar que hay un problema de error de paridad en memoria.
r l02i: En una memoria con paridad, cuando por ejemplo se escribe la combinaci6n 01000001 antes citada,
cione! 1
dicho circuito le agregara un bit de valor 0 (en negrita): 010000010 • Asi el nuevo conjunto de 9 bit
KB. almacenado presentara un numero par de unos.
,8 KE De esta forma, si durante la lectura en lugar de leerse 010000010, se lee 010000110 por que el bit subrayado
e un:·; se invirti.6, se detectara un error, dado que estos 9 bits tendran un nillnero impar de unos, en lugar de ser
B di par Por lo tanto, esta convenci6n -de igual paridad en la escritura y lectura- sirve para detectar si uno solo
de 1: de los bits recibidos cambi6 de valor, que es la mayor·probabilidad de errores en una lectura de memoria.
sta e1 Si los bits errados son dos, la paridad par seguira, y no hay forma de detectar una combinaci6n mal recibida.
DIMN

Para todas las combinaciones de 8 bits a escribir que tengan un m1mero par de unos, el bit de paridad seni 0, mientras que las que
tengan un numero impar de unos, dicho bit valdra 1. Por ejemplo 01101101 se almacenani en memoria como 011011011.
ECC (Error Correction Code) usado en servers, usando paridad no solo permite detectar bits errados, sino tambien corregirlos.
.----------~------------------------........--

Por esta manera facil y veloz de cambiar de programa en el interior de un computador, es~1
n
resulta una herramienta tan versatil para efectuar cualquier proceso de datos. Cambiando li'
tJ
programa se modificara el comportamiento de la maquina. ~ I
Una computadora para aplicaciones comerciales puede convertirse en una de tipo cientific( r
~
utilizando un programa adecuado. Se modifica el procedimiento sin cambiar de equipo.
En todos las casos descriptos nos encontramos con el aprovechamiento multiple de un misni. 1
c
equipamiento fisico (hardware), como si cada procedimiento programado que se ordena realiza
r
(software) generara un dispositivo fisico a la medida del proceso que ordena ese plan.
~

I
J
I
Cada marca y modelo de computador tiene un repertorio definido de c6digos de instrucciones qu
· puede ejecutar, acorde a las posibilidades funcionales de su hardware.
1
r
l
No acepta instrucciones que no pertenezcan al mismo. Una misma instrucci6n, como ser sumar, ti.en j
distinto c6digo en dos procesadores distintos.
1
Software de un computador, es cualquier programa que puede ser almacenado total o parciaJ.
mente en su memoria principal, para ser ejecutado por el procesador de dicho computador.

Su nombre hace referenda al hecho de que los programas son materia ductil, "blanda" (usoft" er
ingles). Esto es, las programas son faciles de modificar, y de cambiar unos par otros en la memoria principi
de un computador, para que este, siendo hardware fijo, sea una herramienta de multiples usos. '
. Dicha facilidad se debe a que las programas no Jarman, fisicamente, parte del hardware, sino que esfl
les sirve de soporte material. Unicamente se modifica el estado electrico de los circuitos de la memoric
0
principal, mediante sefiales electricas transparentes" al operador 0 al proceso.
El software tambien puede registrarse en cintas, discos magneticos u otros medios.
La esencia del software son las algoritmos 2que el expresa, representa. Ellos son expresados mediantf
t,01.M.
::~·.;;;~;:;'$$~X:.::::~-.:.::::::;=.im

programas usando determinados lenguajes. Cada programa que puede ejecutarse en un computad01
-al ser almacenado en memoria, y luego ejecutado- permite llevar a cabo un cierto proceso de datos.
Debido a esta relaci6n del software con algoritmos, es que a veces se lo denomina "logical".

En el apendice A.2 se encontrara una clasificaci6n del software, donde se incluyen la funci6n de un siste-
ma operativo y de programas utilitarios, asf como el software constituido por las denominados f/virus".

Sean del sistema operativo, del usuario (procesadores de texto, base de data, traductores de lenguajes, de juegos), de diagn6stico, etc.
Un algoritmo es un procedimiento que asegura, mediante un numero finito de pasos, una salida requerida, a partir de una entrada
dada, independientemente del tiempo en que se realiza. Las conocidas reglas aprendidas en la escuela primaria para realizaf
manualmente las cuatro operaciones aritmeticas, son algoritmos.
i
1-30 ~ \LGinzburg

t Como se prepara el proceso de datos en el computador antes definido,_-c_~ ~


_ _ _ _ _..,.
_ _ _ _ _ _ ,,,_ _ _ _ _ ,If___ -·-- - ...,. - - -!"' - " - - .- - ~ - -· - •- - • - - ~

En cualquier proc-eso de d~tos con computador, es indispensable escribir en memoria los datos~ Et t~
las instrucciones def programa, antes de comenzar a ejecutar estas. El programa Debug pefl11i
realizar facilmente esto por medio del teclado 1, como se describe en Ia pr6xima pregunta. !
..----------------------------------------------r
Es esencial releer paso a paso la explicaci6n relacionada con las figuras 1.2 y 1.3, pues sirve de base pairi
comprender c6mo funciona un computador, y para experimentarlo en una PC, asi como para los temas qii~
siguen. Al final del Apendice Al se da un ejercicio integrador basado.en el ejemplo aquf desarrollado. tt
'---=--------"'--------___;;_---__;_:=--------___;;_-"'--~-----------~ 0202 ''--~
El proceso de datos a codificar, que sera luego llevado a cabo en una PC es semejante al proceso manual que ilus~'.~ 0203
la figura 1.2 .. Dicho proceso estaba descrito por la secuencia de instrucciones 11 a 15 • Por simplicidad didactic;} ,.,., _____ _
02 04
codificaremos y ej ecutaremos las 4 primeras, o sea que efectuaremos R = P + P - Q :.,
Supondremos que los datos son P = 1020H y Q = 2040H •
2
::1
0205

1. Codificqci611 de los datos: ,.


Primera escribiremos en memoria estos datos de dos bytes que en binario serfan: son 0001 0000 0010 0000 X
1020H y 0010 0000 0100 0000 = 2040H, conforme a las equivalencias dadas por la tabla de la figura 1.4, detallad ·
en el Apendice 1. Dado que cada celda de memoria guarda un byte, P y Q deben ocupar dos celdas sucesivas cada uno'
Se han asignado arbitrariamente las direcciones 5000H y 500JH4 a P, y 5006H y 5007H5 a Q (en la fig 1.15 se supo~'
escritas Py Q). N6tese que primero (en la direcci6n mas baja (5000H para Py 5006H para Q) se escribe en la(
UCP de Intel™ la mitad derecha de cada numero (20 y 40 respectivamente). 0 sea XXYY se escribe YYXX.
Al resultado R de hacer P + P - Q le asignar~inos direcciones 5010 y 5011, asumiendo que ocupara 2 bytes.
Las direcciones tambien estan escritas en hexa, aun ue dentro de un com utador solo uedenexistir unos y ceros.
La direcci6n de un dato puede ser elegida arbitrariamente, siempre que dicha direcci6n sea la que forme parte de
instrucci6n que va a operar dicho dato, puesto que una instrucci6n debe indicar c6mo localizar el dato a operar.

2. Codificaci611 de las i11struccio11es en c6digo de nuiquina:


Habiendo establecido que el dato 1020H ocupara las direcciones 5000H y 500JH, y que el dato 2040H estara en
binario en 5006H y 5007H, ahora se pueden codificar y escribir las instrucciones, puesto que como veremos,
para codificarlas se requiere primero conocer las direcciones elegidas donde se han guardado Los datos.

La combinaci6n binaria que codifica una instrucci6n constituye su "c6digo de instrucci6n" o "c6digo de
maquina"6 , en el sentido que es' el c6digo que "entiende" la maquina, o sea los circuitos de la UC.
Cada procesador tiene SUS propios c6digos de maquina que puede ejecutar.

El c6digo de maquina comprende necesariamente el c6digo de la operaci6n (cod-op) ordenada (transferir, sumar,
restar, comparar, dividir, saltar a otra instrucci6n ... ). Si el dato a operar esta en memoria, al cod-op le sigue una
direcci6n7 que indica d6nde este se encuentra (o d6nde memorizar un resultado que esra en un registro de UCP, si se
ordena una escritura). No confundir el valor de un dato con el valor de su direcci6n.

MEM 0RIA f

1
En la practica esto solo ocurre cuando se desarrollan o modifican programas, dado que el sistema operativo se encarga de manejar la
escritura rapida en memoria principal de las instrucciones de los programas a ejecutar, que trae de! disco. Asi, cuando desde Windows
llamamos a un procesador de texto, este programa en pocos instantes esta en memoria, esperando que modulo del mismo se va a ejecutar, de
acuerdo con nuestros requerimientos. Los datos (Ietras, palabras) van entrando a memoria a traves de! teclado, a una velocidad que depende
de! usuario, siendo tambien ubicados en la zona de memoria que se Jes ha asignado mediante la ejecucion de subrutinas.
2
Sumar 1020 + 1020 resulta 2040 tanto en decimal como en hexa (H), pero como se indico anteriormente, la cantidad de unidades que
representan los sumandos y el resultado son distintas en ambos sistemas de numeracion. Se han elegido ex profeso, por razones didacticas,
los datos indicados, ara evitar resultados ue recien ueden inte retarse en conocimiento el A end ice I. Se ha revisto ue el resultado sea cero.
3
Cuando en un computador un dato o una instrucci6n no entra en una posicion de memoria, se fragmenta en posiciones
sucesivas, y se localiza por la direccion de la pritnera.
Como se vera, el Debug permite escribir direcciones desde la 0100 H = 0000 0001 0000 0000 binario hasta la FFFF H = 1111 111 I
I I 11 1111 binario = 65535d, por Io que se dispone cerca de ese numero de celdas (bytes) libres para almacenamiento.
) Las letras P Y Q que en alto nivel se denominan variables, a nivel de maguina se corresponden con las direcciones de memoria
(5000H Y 5006H) elegidas para las mismas .. Los valores particulares 1020H y 2040H que en esta oportunidad tienense han asignado a
dichas variables se corresponden con los contenidos a escribir en esas direcciones de memoria. (o sea los mismos 1020H y 2040H)
~ Los archivos que guardan instrucciones en codigo de maquina se denominan "archivos de c6digo" o "ejecutables"
0 un numero relacionado con ella. Si el dato esta en un registro de la UCP el codigo de operacion determina de que registro se trata.
Si el dato a operar es siempre el mismo (constante) en l!-lgar de dicha direcci6n puede ir el valor de! dato, pero con un cod-op particular.
~finidol
~----------------------------------
'
I
--------J~LG~i~n~zb~u~r~g:__~~~~~~~~~~~~~~~~-----------~~----~~~-~~-l_-__:.:31
----''-f""~----L--A.:...n_general una instruccion o~~ena una operacion (mediante su cod-op), y en relaci6n con esta permite localizar

~

Luno 0 dos datos a operar (en este caso darido SU direcci6n en memona), e iileiifa donde guardar ei res-ulrndv.

El formato de las instrucciones usadas es: ICODIGO DE OPERACI6N DIRECCI6N DEL DATO

Teniendo presente el proceso de datos con calculadora de la figura 1.2, la instrucci6n


11 11 del mismo, adaptada para una PC, ordenaria la operaci6n de '1ransferir (mover)
AX-M 5000/1 hacia el registro AX (de 2 bytes) una copia de un numero de 2 bytes localizable en la
direcci6n de memoria que indican los dos ultimos bytes de la instrucci6n" (en este
(AX= P)
caso es 5000H). 0 sea escribir en AX una copia del numero 1020H, que es el que se
12 r--J
encuentra en dicha direcci6n 1 en este ejemplo, lo cual implica que se destruira el
AX-AX+ M5000/1 =
= nu.mero que antes estaba en AX.
:::t:> r-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~--,

(AX= P + P) ~ I Esto puede simbolizarse asi: AX~ M5000 y 5001

Para un procesador de Intel o de AMD el c6d-op que ordena la operaci6n


13 escrita entre comillas es AlH = 10100001 2 .
=
AX-AX - M5006/7 ~ El c6digo de mciquina de 11 comprende su cod-op Al, seguido de la direcci6n del
dato a operar (en este caso fue elegida 5000H3). Por lo tanto, el c6digo de maquina
(AX= P+ P- Q)
completo que se escribira en memoria (figura 1.15) es A10050H = 1010 0001 0000
0000 0101 0000 en binario, o sea que 11 consta de 24 bits= 3 bytes, por lo que
ocupara tres posiciones consecutivas de memoria. Se ha elegido arbitrariamente para
11 (y tambien para la secuencia de instrucciones a ejecutar) que la primer direcci6n a
partir de la cual se escriben los tres bytes que la fonnan sea 0200H. 0 sea que 11
ocupa las direcciones 0200H a 0202H, con su c6digo de maquina fraccionado en Al
00 50 en esas direcciones.

estara er'.:
veremo&\'i
___
ata;. ~
';~{ =
:;
La instrucci6n 12 ordena "sumar al numero contenido en el registro AX, una
copia del numero de 2 bytes localizable en la direcci6n de memoria que
indican los dos ultimas bytes de la instrucci6n" ( que en este caso vuelve a s~r
6digo di.}
e laud 5006 ::::; 5000H, por haberse sumado P + P).
., =
~,~~~~~~~~~~~~-----,

----iR 7 . En simbolos: AX ~ AX + M5000 y 5001


, sumar1J 0 sea sumarle al nfunero que existia en AX una copia del nfunero 1020H (que es el
gue um'! 5010 que esra en dicha direcci6n), y el resultado escribirl0 en lugar del nllinero que existia
CP, si se~ 11 en AX. La operaci6n escrita entre comillas la ordena el cod-op 0306H, al cual debe
seguirle la direcci6n del dato (5000H), por lo que el c6digo de maquina de 12 sera
0306 0050H (0050 corresponde a 5000 con las mitades traspuestas) queen binario es:
;!1 MEM0RJAPRIN CIP AL DRAM 0000 0011 0000 0110 0000 0000 0101 0000. Estos 32 bits = 4 bytes
~y
~Figura 1.15 obligatoriamente deben ser escritos a continuaci6n del c6digo de Ii, o sea que
anejar lac[. · ocupara las posiciones 0203H a 0206H (figura 1.15).
Window(
cutar, de·~ _13 ordena "restar al nfunero contenido en AX una copia del nfunero de 2 bytes localizable en la direcci6n de memoria
depende,i que indican los 2 uliimos bytes de la instrucci6n',4 (5006H en este caso, donde esra el dato 2040 H).
ades que5
acticas,;~ 1
En gran medida es equivalente a pulsar MR en una calculadora de bolsillo, si previamente se ha memorizado 1020, con lo cual este
ea cero. · numero aparecera en el visor, sin importar lo que el visor tenga antes. Dado que, como dijimos, los circuitos de calculo y el registro
icionesJ acumulador de la UCP se comportan en gran medida como una calculadora, es importante ir notando que las instrucciones (c6digos)
de maquina mas simples -que son tambien las mas usadas- ordenan operaciones del tipo de las que realiza una calculadora.
2
111111,i ' Los c6digos que usaremos para las instrucciones son los reales que "entiende" cualquier microprocesador de Intel™, del 80286 al
Pentium, o sus "clones" de AMD. Pueden hallarse usando el Debug, como se indicara, al tratar Assembler en la Unidad 3.
emoria En relaci6n a los c6digos, si en lugar del registro AX se bu bi era usado el BX para la misma orden, el c6digo hubiera sido 8B 1E H
gnado a 3
Si bien el dato a operar esta en las direcciones .5000H y 5001H, basta con dar la primera, dado que el c6digo de operaci6n (AlH)
H)
cuando se ejecute la inst.rucci6n ordenara a la UCP pedir lo que esta en 5000H y 50001H.
El Debug simula un 286, por lo que en este ejemplo estamos operando con numeros de! tamafio de un word. Cambiando el c6digo de Ia
e trata. instrucci6n puede ordenarse leer s6lo la direcci6n 500.0.
cular. 4
Como si en una calculadora que hemos memorizado el numero 2040 pulsaramos sucesivamente las teclas - MR
1-33
-
t·1
~-lSO_D£L PROGRAMA DEBUG
DEL DOS PARA VISUALIZAR EL
INTERIOR DEL COMPUTADOR
~
da e~ ·Como se usa el Debug para escribir datos e inst
n qui""'~'li>-~~~"fil"'*''"*""";;:c"'i-w'"""$."'';''"'"'*'"'i"'''"''''''';*tlIBl:,;,ot,;;:,;:s:,,;,:""''@;:;;;,''"'"'"'""rns;';sl'-~;;,;:,:;,:;,':'i;<•''?llli'li''"''''@:$';s;;:'°"'""'"'''"m;s;:,:,;:s;s;;os%1;<;;;'°"'rn';;;'S;:;,'S;;@:@;:,r,:;;s:''"'"'*,,%'''
ori:~ A continuaci6n se indican los pasos a dar para llamar al program
ogre.I esta en Windows 98 y NT), y luego poder leery escribir los datos
:j figura 1.15. El procedimiento sirve en general para leer o escribir
on'.t.J En negrita aparece aquello que escribe el DOS (y que interesa
i mayilscula lo que debe escribir el usuario (con la tipografia que sea:
e Iaj~ Los numeros que se tipean y los que aparecen en pantalla son h
ro a~ en el interior de un computador solo puede haber unos y ceros.
cual~
dor.i C:\> DEBUG -1
"J;:"';
~
-·~~
'if~
Un gui6n que aparece titilante debajo de la C, indica que el Debug esta listo para que a continuaci6n
del gui6n se escriba un comando. Para leer o escribir la memoria se tipea la letra E (examinar) seguida
de la primer direcci6n que se quiere leer o escribir. Por ejemplo, si se quiere conocer el contenido de
uyo.~ posiciones de memoria a partir de la direcci6n 5000 H, primero se tipea el comando E 5000 seguido de
un Enter (-1), con lo cual en la pantalla se vera, por ejemplo, lo siguiente:
uaje 1:
sto~; -E 5000-1 (tipeado por el usuario para examinar memoria)
0500 309D:5000 lF. (mostrado por el Debug)
1
ce-'.1 Esto nos dice que la direcci6n 5000H (0101 0000 0000 0000) de memoria tiene por contenido la
las combinaci6n lF H = 00011111. Esta combinaci6n es la que estaba almacenada en la direcci6n SOOOH
2
Ien.:· en la PC que hemos utilizado, pero que otro dfa, o en otra PC sera distinta • Lo mismo vale para 309D
eto··.• se
Si luego de leer la 5000H quiere leer el contenido de la posici(m siguiente 5001H, no hace falta repetir el
comando E. Basta con pulsar la barra de espaciado luego del Ultimo valor leido -en este caso lF - para que
lea·. en pantalla aparezca el nUm.ero que guarda la posici6n 5001 (06 en este caso como aparece a continuaci6n).
-E 5000-1 (Examinar memoria)
se~

~~··\~~·\
309D:5000 lF. \ 0 6 . 50. SD. 46. BO.

500~5001
309D:5008 09. 6A. FF. 9A. 66. OE.
ajo';
las;• 309D:5010 FD. 11.
... . 5006 5007
de':' Del mismo modo si se vuelve a pulsar la barra se conocera el contenido de la posici6n 5002H, y asi de
de!; seguido para determinar contenidos de posiciones consecutivas de memoria. Por razones de claridad,
aparecen hasta 8 lecturas de posiciones por rengl6n, y para no llenar la pantalla con nUm.eros, solo se muestra
If
Aunque esto por el momenta no es relevante, conviene aclarar que realidad se trata de una zona (segmento) de memoria con mas de
64000 posiciones (bytes), numerados con direcciones que van de OOOOH hasta FFFFH. La direcci6n OOOOH es la primer posici6n de este
segmento de memoria, y no el cero de la memoria. La direcci6n de memoria donde comienza este segmento esta en relaci6n con el valor
la . 309D que aparece a la izquierda de 5000. Dicho 0000 corresponde a la direcci6n de memoria 30900 H (309D con el agregado de un cero,
as conforme a la convenci6n para los 80x86 de Intel). Si a 309DO le sumamos 5000 H se tendria 35900 H = 0011 0101 1001 1101 0000 en
binario (20 bits), que serfa una direcci6n de memoria que esta 5000 H posiciones despues de 309D. Puesto que las direcciones de memoria
20
ejemplificadas son de 20 bits, significa que se trata de una memoria de 1 megabyte, como se deduce de la figura 1.14 (2 = 1 MB)
Este es el tamaiio de memoria que "ve" el DOS, desde la direcci6n 00000000000000000000 = 00000 H hasta la
1111111111111111111 == FFFFF H. Este tema se vera en detalle al tratar este sistema operativo en la Unidad 3.
2
Conforme al modelo de 8 llaves "si-no" por celda de memoria, las mismas siempre estanformando una combinaci6n de unos y
ceros determinada. No es factible que no haya "nada" en una posici6n. Cuando se enciende un computador, en cada posici6n se forrna
un numero al azar, que no tiene por que ser el IF ejemplificado en esta obra.
~-SO _ DEL PROGRAM_A DFBUG n
DEL DOS PARA VISUALIZAR EL
AX''

caso ),.,··
INTERIOR DEL COMPUTADOR
__l,
--~

eda en.I ·Como se usa el Debug para escribir datos e instrucciones en memoria ?
mori:~ A continuaci6n se indican los pasos a dar para llamar al programa Debug desde el DOS (que tambien
rogre,1{ esta en Windows 98 y NT), y luego poder leery escribir los datos e instrucciones como se plantea en la
f! figura 1.15. El procedimiento sirve en general para leer o escribir la memoria principal de una PC.
_ _ f~ En negrita aparece aquello que escribe el DOS (y que interesa a los fines didacticos), y en cursiva
ccionifl maytiscula lo que debe escribir el usuario (con la tipografia que sea). El simbolo .J indica la tecla "Enter".
Y de la~i~ Los numeros que se tipean y los que aparecen en pantalla son hexadecimales, aunque como sabemos
mero ~! en el interior de un computador solo puede haber unos y ceros.
e cual);;
gador.:~ C:\> DEBUG ..J

Un gui6n que aparece titilante debajo de la C, indica que el Debug esta listo para que a continuaci6n
del gui6n se escriba un comando. Para leer o escribir la memoria se tipea la letra E (examinar) seguida
de la primer direcci6n que se quiere leer o escribir. Por ejemplo, si se quiere conocer el contenido de
cuyo]i posiciones de memoria a partir de la direcci6n 5000 H, primero se tipea el comando E 5000 seguido de
;J
un Enter (J), con lo cual en la pantalla se vera, por ejemplo, lo siguiente:
°uaie;~
b :J .i~
vistoi& -E 5000 ..J (tipeado por el usuario para examinar memoria)
00501} 309D:5000 lF. (mostrado por el Debug)
Jt
,!f
proce-J; Esto nos dice que la direcci6n SOOOH (0101 0000 0000 0000) de memoria1 tiene por contenido la
ue los.f. combinaci6n lF H = 00011111. Esta combinaci6n es la que estaba almacenada en la direcci6n SOOOH
n len-~
2
en la PC que hemos utilizado, pero que otro dfa, o en otra PC sera distinta • Lo mismo vale para 309D
puseto.i Si luego de leer la 5000H se quiere leer el contenido de la posici<;Jn siguiente 5001H, no hace falta repetir el
na. b! comando E. Basta con pulsar la barra de espaciado luego del Ultimo valor leido -en este caso lF - para que
mplea~ en pantalla aparezca el n6mero que guarda la posici6n 5001 (06 en este caso como aparece a continuaci6n).
~ -E5000 ..J (Examinar memoria)
da se~·

~:: \~!.~ ~~. ~!:\~~-\


309D:5000 SD. 46. BO.
309D:5008 9A. 66. OE.
bajom
o las·~ 309D:5010 FD. 11.
5000 5001 ... 5006 5007
s de~ Del mismo modo si se vuelve a pulsar la barra se conocera el contenido de la posici6n 5002H, y asi de
s de '1 seguido para determinar contenidos de posiciones consecutivas de memoria. Por razones de claridad,
aparecen hasta 8 lecturas de posiciones por rengl6n, y para no llenar la pantalla con n6meros; solo se muestra
f
Aunque esto por el momento no es relevante, conviene aclarar que realidad se trata de una zona (segmento) de memoria con mas de
64000 posiciones (bytes), numerados con direcciones que van de OOOOH hasta FFFFH. La direcci6n OOOOH es Ia primer posici6n de este
segmento de memoria, y no el cero de la memoria. La direcci6n de memoria donde comienza este segrnento estd en relaci6n con el valor
ella ~;
309D que aparece a la izquierda de 5000. Dicho 0000 corresponde a la direcci6n de memoria 30900 H (309D con el agregado de un cero,
mas .1 conforme a la convenci6n para los 80x86 de Intel). Si a 309DO le sumamos 5000 H se tendria 35900 H = 0011 0101 1001 1101 0000 en
binario (20 bits), que seria una direcci6n de memoria que esta 5000 H posiciones despues de 309D. Puesto que las direcciones de memoria
20
ejemplificadas son de 20 bits, significa que se trata de una memoria de 1 megabyte, como se deduce de la figura 1.14 (2 = 1 MB)
le Este es el tamafio de memoria que "ve" el DOS, desde Ia direcci6n 00000000000000000000 = 00000 H hasta la
1111111111111111111 = = FFFFF H. Este tema se vera en detalle al tratar este sistema operativo en la Unidad 3.
2
ra Conforme al modelo de 8 llaves "si-no" por celda de memoria, las mismas siempre estdnformando una combinaci6n de unos Y
o ceros detenninada. No es factible que no haya "nada" en una posici6n. Cuando se enciende un computador, en cada posici6n se forma
un mimero al azar, que no tiene por que ser el IF ejemplificado en esta obra.
1-34
~~~~~-~~----~-~-~-~~~~--~~~-~-----~--~~--~-~
r
~
~
i---
una direcci6n. a la izquierda de cada rengl6n. Ast luego de la 5000 no apareceran en pantalla 5001 a 5007 (%~
- - - - _ _ __,_,ah.o"""' rl,of-,.::~:r!··~~~~~'!"C'O ~11c:-1,?l,.-y'\,Q:t""\.f-o -.:h~c ,..:J;"h,.,;-=i~-:.c.
c,.o.;:; ...... l.....,...,....,_ 1. . . C' .cl"""'. . l/""\C"' .,.,.. ...... l"'._,.........,.\ l .......... ,............ .-.------ ~
.C0/mo
'-''·"··::... ........,;.L """-'-'-'-··..i....l..J..~U....t....1..0'- ·v j_U ....... ""'-"-"-... L-.....1. ...._,
rA"1""Y"\r"'\
"--\..J..L..Ll.'-"
rt'""'\...-..
.:>'-L&.c.u..c;:uL .J.Q..:'.:) J...L.C.:11...-LU..4.V \.A....U....l~J"·'-'•·"-a.v '-V.l.L J.VU VCU..V..LC~)J y
"'l"?
J..uc:5v
t::f'\/'\ ....
a..flCU...CLC::: ....;~ v.J __
If. •

Entonces, si a partir de la indicaci6n anterior pulsamos repetidamente la barra de espaciado, SJ.~':!!~(1 i


obtendrfa un vuelco de memoria del tipo siguiente (distinto para cada oportunidad y computador): ~ A l · ··
Cuando se quiere dejar de leer se pulsa Enter (-1), como se indica en el Ultimo rengl6n, con lo cual welve~ lz
aparecer el gui6n titilante del Debug, esperando un nuevo comando. En general se debe pulsar Enter lue~ E
de escribir un comando o cuando se quiere que aparezca el gui6n titilante, para indicarle un nuevc'.~ si
comando al Debug. Los valores que aparecen varian de un computador a otro, yen un mismo computadoii'. b
Con el Debug es factible leer cualquier zona de memoria, sea RAM o ROM. ~ S

Escritura de los datos en memoria mediante el Debug: "' b


0
El ejemplo anterior mostr6 la lectura de posiciones consecutivas de memoria. Tambien es posible luego f
I
leer una posici6n cambiar su contenido, o sea escribirle un n6mero de dos digitos en hexa (equivalente a Ur;·
I
byte binario). Este numero se debe escribir a continuaci6n del punto que acompafia a cada valor leido, en~J
:r
espacio que para tal fin se ha reservado. Luego de escribir el nuevo contenido que tendra una posici6n, ~~
1
puede leer la siguiente pulsando la barra de la forma vista. Si tambien se desea cambiar el contenido de esij~
1
posici6n, debe escribirse el nuevo valor despues del punto del contenido anterior, y asi de seguido. ''
Volviendo al proceso de datos de la figura 1.15 escribiremos en 5000 y 5001 los contenidos 20 y 10 (qut
corresponden al data P = 1020 H, yen 5006 y 5007, los contenidos 40 y 20, correspondientes a Q = 2040 Bfa

1
Figura 1.16
Si se quiere corroborar que los valores recien escritos son los nuevos contenidos de las posiciones{
modificadas, nuevamente se ordena examinar, debiendo resultar: ·
-E 5000 ..J (Examinar memoria)
309D:5000 20. 10~ 50. SD. 46. BO. 40. 20. ..J 1,Qui~
de ca£
De esta manera se han escrito en las posiciones 5000, 5001, 5006 y 5007 los datos queen la figura 1.15:
aparecen escritos en la "escalera" (que representa las posiciones de memoria). En las posiciones 5010 y
5011 debera ir el resultado de la operaci6n a realizar, en reemplazo de los contenidos que existan (en este;
caso FD y 11, como surge de la primer lectura realizada), por lo que no interesa estos valores (FD y 11)
Cori el mismo procedimiento se escriben en memoria los c6digos de maquina de las,
instrucciones, a partir de la direcci6n elegida 0200H
-E 200 ..J (Examinar memoria y escribir en ella)
3090:0200 25.Al F3.00 AA.50 D0.03 09.06 56.00 00.50 AB.2B
3090:0208 49.06 FF.06 00.50 12.A.3 FF.JO FA.50 ..J

Verificando luego si la escritura anterior es correcta, resulta:


-E200 ..J (Examinar memoria)
3090:0200 Al. 00. 50. 03. 06. 00. 50. 2B.
3090:0208 06. 06. 50. A3 10 50 ..J

De esta forma hemos realizado la escritura en memoria de las instrucciones.


Suponiendo que se quiera salir del Debug, se debe tipear Q (Quit) para volver al DOS:
-Q ..J (para salir del Debug)
C:\> (el DOS espera comando)

De aca en adelante se designa con la palabra "figura" a porciones de la pantalla que se verfan usando el programa Debug.
1-35
i.
t'i
:::s
00
como encuentra la UC el? memoria la primer instruccion y las
~ (~,
rr,~e-.~""-~:!~}!~!2l?;f:~'!x€~~[!2~::':"''~!~£~~!::;;"":!2'~~!f!}2!~,,,~L~~~!:!~~"'~~:~'~w~Bw'''*"~'s''~~&~'':'''''~~,,~""*''''
r): ,J ·-- Ant~rio~ente se esta~leci6 que el registro punte/r~ de ~nstrucc.i?n (I~) tiene la funci6n de indicar
uelv~~ la drrecc10n de memona donde se encuentra la proxrma m.strucc1on a eJecutar.
er lu~i En el programa codificado (figura 1.15) la primer instrucci6n comienza en la direcci6n 0200f1, y las dos
nue~l siguientes en 0203H yen 0207H. Por lo tanto, en este caso IP debera contener sucesivamente los valores
utad~ binarios que en hexa son: 0200H, 0203H y 0207H, como se verificara cuando se ejecuten esas instrucciones.
i Suponiendo que IP empiece con el valor 0200H -ya veremos c6mo- puesto que el c6digo de I 1 ocupa 3
j bytes, (esto lo "conocera" la UC al ejecutar 11), si la UC hace la suma (con su calculador que es la UAL)

:~g: l ~~~:oo!~d~o!!,~~~=:~~~:::~o~ ~;e~~;;::c~~~ ~~~ :~e~c~~~;;~!eu~::~'I,


Por ultimo si a 0207 le sumamos 4 (cantidad de bytes de 13), obtenemos 020B, direcci6n de~ (en
;-;:~ hexa despues de 7 siguen 8, 9, A, B) Asf sucesivamente la UC va cambiando el valor de IP' para ir
localizando en memoria las sucesivas instrucciones que debe ejecutar.
de esv}
N Esta es la forma pensada para que la UC localice y ejecute, en el orden establecido, cada una de las
(onf·:·f·f instrucciones que forman una secuencia. Por lo tanto, para respetar estas "reglas de juego' las 1

0
..... instrucciones a ejecutar deben estar escritas en posiciones consecutivas de memoria.
40R'~
~ Una "instrucci6n de salto'' -a tratar- permite no seguir la ejecuci6n de un programa con la
instrucci6n que esta escrita a continuaci6n de. ella en memoria, sino continuar con otra instrucci6n,
cuya direcci6n debe permitir formar instrucci6n de salto. El valor de esta direcci6n debe pasar al IP.
0 sea que igualmente esta instrucci6n permite encontrar la que le sigue.
Por la tanto, cada instrucci6n permite determinar donde estti la siguiente a ejecutar, y par
consiguiente, establecer el valor que tendrti el registro IP

11
~i 1, Quien se encarga de proporcionar la direccion de la primer instrucci6n
~ff de cada programa a ejecutar . ?
l. ri~ "\[email protected]%:@?.:iil1m<~<@:f.tt%:;<;t'Sm:?Ji:>>f,lll;~l%:iirnlliiii§.:;i;:;<lmi:'l~'l:\';:<<l<~f&\'.l:''\$<i;;,';;@ml<>.<f.kt:>;<;;:%io';;0>::l;@'::;''ll'1'1;;i;::\::\c@:@;s:::>:llllo'll<:::i';i.'l:O::'it\%'ltl%;\@?Ml;l.,,'l::ll?.ix:',~iW/.<%ill!@AA;!'*'1"i'mmmiMfo@*li:%1i:WXil\;%::ll<'$oi~<'<1Wi&,~l~<~<l:<l:>t.Wii"~lii::?i~<i:M'fil&Zi'>il1@i;~:~<f.£>'1~%:BU&~ftt;W
10 r. En las practicas que realizaremos con el Debug, seremos nosotros quienes nos encargaremos de
este~ escribir en el IP la direcci6n de la primer instrucci6n de una secuencia que queremos ejecutar.
Puesto que un computador pasa automaticamente de la ejecuci6n de un programa a otro, se supone
que tiene que existir un mecanismo para hacer esto. A continuaci6n daremos un esbozo acerca de
las~ c6mo esto ultimo tiene lugar, o sea quien se encarga de dar al IP la direcci6n donde comienza cada
nuevo programa a ejecutar, una vez que el misrno y los datos se han escrito en memoria.
Cuando se enciende un computador, el primer programa que se ejecuta es siempre el mismo. Los
c6c:ligos de sus instrucciones estan permanentemente en la porci6n ROM de memoria principal,
siendo que el hardware (circuiterfa) provee la direcci6n de la primer instrucci6n a ejecutar. 0 se
que el hardware inicializa el valor del IP al encender el equipo, asi como el valor de otros registros. 2
Las primeras generaciones de computadoras que se construyeron -hoy visibles en fotos o museos-
presentaban un gran panel frontal lleno de llaves "si-no". El operador tenia que cargar mediante dichas
llaves, un registro equivalente al IP con la direcci6n donde estaba la primera instrucci6n del primer
programa a ejecutar. Algo semejante haremos muy pronto mediante el teclado y el programa Debug.
Como resultado de la ejecuci6n de dicho programa almacenado en ROM, se escribe en memoria
principal una copia de programas que estan en el disco. Estos al ser ejecutados traen a memoria los
programas del "sistema operativo", que tambien estan en el disco como archivos. Luego de lo cual
en pantalla aparece C> o alguna imagen con opciones, para indicar al sistema operativo mediante
un comando, que ro ran:1a se desea traer a memoria.

E;t~'-·se ~onsigue si la Ultima instrucci6n del programa del SO que encarga de esta tarea, es una instruc- se
ci6n de salto, que indique la direcci6n donde esta la primer instrucci6n del programa del usuario a ejecutar.

La UC necesita "anotar" en IP el valor de la direcci6n que calcul6 mediante la UAL. De no memorizarlo en IP, se perderia dicho valor
2
Como el registro CS (code segment) de la UCP que junto con IP constituyen un contador de programa (CP)
f ii
I
1-37

nJl
_c" "'·'-----~-o-:-m-de_o~t~r::;~~~Pe~~;i~
ita
i~
..... :1;~a~~1~~ rp:e:ro~~:J~au~~ili~~~~osq_~~ ~~;;~~~a~1pvo:i~;
0200 que le habfamos asignado mediante RIP. Si bien AX contiene OOOOH (16 ceros en binario), este
valor particular no interesa, pues I1 ordena escribir 1020H, destruyendo el valor anterior (OOOOH).
El tercer rengl6n se refiere a la memoria principal. El valor 0200 (igual al de Il?) corrobora Ia direcci6n
donde empieza la pr6xima instrucci6n a ejecutar, y al lado del mismo el c6digo A10050, que es el que
habiamos escrito en memoria para Ii, como puede verificarse (que sera el valor que tendra el registro RI)
O sea que es la instrucci6n que queremos ejecutar en primer lugar. En la parte derecha indica que
en la direcci6n 5000 (involucrada en la instrucci6n) se tiene el valor 1020 (dato antes escrito)
Puesto que IP=0200, el data 1020 y el c6digo A10050 de la instrucci6n son correctos, podemos
ejecutar esta. Para ello simplemente se da el comando T, y luego el Debug visualiza la misma
informaci6n la con los cambios habidos de la de la instrucci6n:

'"''-~
mJr, Figura 1.19
te ··.~
e!;1
ti Constatamos que 11 se ha ejecutado correctamente, pues se ha cumplido la orden que portaba su
c6digo: escribir en AX una copia del contenido de la posici6n 5000, que era 1020. Si observamos el
tercer rengl6n vemos que en 5000 sigue estando 1020. Tambien ha cambiado IP a 0203, para
apuntar la direcci6n de 12, como habiamos previsto al hablar de IP. Asimismo vemos que el c6digo
2
03060050 de 12 es el correcto, por lo que podemos ejecutar 12 :
-T .J (Ejecuci6n de la instrucci6n 12)
AX=2040 BX=OOOO CX=OOQO DX=OOOO SP=FFEE BP=OOOO Sl=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0207 NV UP EI PL NZ NA PO NC
2
309D:0207 2B060650 SUB AX, [5006] DS:5006=2040

Figura 1.20
Se ha realizado lo que ordenaba 12: sumar al valor 1020 de AX el contenido de 5000 (que es 1020), y
el resultado (2040) escribirlo en lugar de 1020. Tambien se verifica que el dato es 2040, y que
2B060650 es el c6digo de 13 , instrucci6n de resta que pasaremos a ejecutar:

-T ....1 (Ejecuci6n de la instrucci6n 13)


AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=020B NV UP EI PL ZR NA PE NC

309D:020B A31050 MOY [5010), AX DS:5010=FD11

Figura 1.21
13 ordenaba restar a AX el contenido de 5006, que es 2040H, o sea que se ha efectuado 2040H - 2040H =
= OOOOH, como aparece en AX.
-T ...J (Ejecuci6n de la instrucci6n ~)
AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=020E NV UP EI PL ZR NA PE NC

309D:020B BB1026 MOV BX,2610

Figura 1.22

~j
En la Unidad 3 al ejemplificar secuencias mas complejas, usaremos casi todos ellos, al igual que muy pronto los "flags" o indicadores
e'.· de estado (NV UP EI, etc.). Los registros DS, CS, SS, ES, todos con el valor de referenda 309D mencionado en un pie de pagina anterior.
De tener valores diferentes cada uno, perrniten definir para Datos, C6digo, Stack y Extension, cuatro zonas independientes de memoria de
64000 direcciones (posiciones de un byte). Como todos tienen igual valor, las cuatro zonas ( "segmentos") estan superpuestas en una sola.
2
Por razones didacticas se ha elegido el mismo dato para 11 e h pudiendo estar en otra direcci6n el dato que se opera en 12
1-39

__ _El _DE_ LA UC Y DE LOS MHz ?


~

DEL RELOJ EN LA EJECUCION t1_


0
-,.,
,....;.

DE LAS INSTRUCCIONES
j,C6mo se ejecutan. las in~trucciones 11 a 14 mediante movimientos
~;.!!Ee!;~,,%~}2~!~'!;,,,!!2,~!!2~~~!~'!!J:~,~~~fl!~!!2~;,,,';!~;;;!~}d£,~"l'2~~~~~f!~~lle~~!"!~,~~,£~,,2,,~"';',l''''''''"'"'"'''~~,"'"'
Con el fin de comprender mejor como opera la UC, veremos mas en detalle L:forma en que se ejecutan las
instrucciones, a partir del esquema de la figura 1.8, con el agregado de los registros de direcciones (RDI) y de
datos (RDA), definidos en la secci6n 1.4 al tratar el acceso al azar.
Como se vio en relaci6n con la figura 1.15 cada sentencia (orden) de W1 programa en alto nivel (como R = P + P - T) es
traducida por un programa compilador en una secuencia de instrucciones (6rdenes mas simples, en nuestro
ejemplo 11 , 12 , 13 e 14) que una UC puede ejecutar.

A su vez, la ejecuci6n de cada instrucci6n se divide en pasos aun mas simples (4 en nuestro caso, figs 1.23 a
1.25). Las acciones que debe ordenar/controlar la UC en cada uno de estos 4 pasos estan determinadas por 4
combinaciones binarias llamadas "microc6digos" que van apareciendo una tras otra en las lineas de control
con cada uno de los pulsos que constituyen los Mhz (figurassl.29 y 1.30).
Estas lineas salen de la UC hacia la UAL, los registros y la memoria (fig. 1.31). La ejecuci6n de una instrucci6n
implica una secuencia de movimientos de transferencia de bytes entre memoria principal y registros de la UCP
(o entre estos ultimos), establecidos por la UC en un orden determinado, segun el c6digo de dicha instrucci6n.
Tambien puede ordenarse una operaci6n en la UAL

Cada segundo puede ejecutarse algunos millones de instrucciones, para lo cual deben sucederse muchos
mil/ones de estos movimientos de pasaje de direcciones, c6digos, datos y resultados, al ritmo de millones
de impulsos electricos por segundo ("megahertz", abreviados MHz 1) que le Began a la UC, generados
regularmente por un cristal piezo-electrico de cuarzo o "reloj" ("clock").
Asi se habla de microprocesadores (con reloj) de 100 MHz, 1 GHz, etc. En principio, a mayor numero de
MHz podran suceder mas de estos movimientos por segundo, con lo cual se podran ejecutar mas
instrucciones por segundo. Un Pentium actual de 1 GHz puede ejecutar mas de mil millones de instrucciones
por segundo (1000 MIPS), yen ciertos casos hasta 3000 MIPS.
Describiremos en un modelo simplificado, el orden, origen y destino de estos movimientos, que deben llevarse a
cabo durante la ejecuci6n de una instrucci6n, para Ii, 12, 13 e14, y los agruparemos por etapas
Dichos movimientos el Debug no los puede mostrar, como tampoco muestra los registros RI, RDI y RDA.

Asi se comprendera que la UC tiene como funci6n primera dar 6rdenes de operaciones de lectura o escritura
a la memoria y registros de la UCP, y ordenar que operaci6n debe hacer la UAL, o sea controlar, en el
sentido de dar 6rdenes, a esos dispositivos. De ahi su nombre de "unidad de control"
A fin de hacer mas simple la explicaci6n, supondremos que cuando la UC ordena leer la zona de instrucciones de
2
memoria -a la cual apunta el valor de IP- pide 4 bytes consecutivos de c6digo de instrucci6n . Para ello, si
3
por ejemplo es IP= 0200, asumiremos que primero pide leer 0200 y 0201, y luego 0202 y 0203 . Los contenidos de
estas posiciones Hegan al registro de instrucci6n RI (figura 1.23).
Para leer dos (o mas) direcciones consecutivas basta dar el nllinero correspondiente a la primera de ellas.
Durante la obtenci6n y ejecuci6n de una instrucci6n, ocurren en definitiva las siguientes acciones y

En Electricidad, si un fen6meno sucede X veces por segundo se dice que tiene una frecuencia de repetici6n de X Hertz (hercios),
en honor a Hertz, descubridor de las ondas electromagneticas. Un Hertz (Hz) es un ciclo por segundo; 1000 Hz son un kilohertz (Khz);
1000000 Hz son un megahertz (Mhz)
2
En los microprocesadores actuales, para ganar tiempo, mientras se estan ejecutando instrucciones pedidas anteriormente, se van
leyendo de MP c6digos de instrucciones a ser ejecutados Iocalizados en posiciones consecutivas. Las instrucciones pedidas con
anticipaci6n se guardan en una memoria interna de! microprocesador. Esto se describe en la secci6n 1.14.
3
0 sea estamos suponiendo un microprocesador como el 80286 que opera con un word de 16 bits
1-40
·
movim1entos · · les (fi1guras 1._.)
prmc1pa ?6) , con los o b.~et1vos
?,.., a 1.- · · d"1can. que coma se vera ~
que se m r:Ginzburg
comunes en general a todas las instrucciones. Para las operaciones de Iectura de Ia memoria principal (MP),J ,;..
~~~~~~~~~~
debe tener prese~~ ~I esquema de la figura 1.10. Comenzaremos con 11 (figura 1.23). -;!le 1

1. Movimientos para direccionar y obtener el c6digo de la instrucci6n en el registro RI (Igu ' ·


para cualquier instrucci6n)
a. La UC pone en 1 la Iinea LIE (lectura), y ordena enviar al registro RDI una copia de la direcci6n
0200 H = 0000 0010 0000 0000 que indica el IP. De este modo dicho numero, de 16 bits, llegani a
a traves de 16 lineas de direcci6n del bus (una linea para cada bit). 3.
b. La MP envia juntos los contenidos de la posici6n direccionada y de la siguiente (0200 y 0201 ), o sea en a.
caso el nt1mero Al 00, queen binario serfa 10100001 00000000. Estos 16 bits van por las 16 Iineas de
del bus, hacia el registro RDA 1, y de este al RI. Luego siguen la misma ruta los contenidos 50 y 03
direcciones 0202 y 0203, como se plante6 mas arriba. En consecuencia, al cabo de estos movimientos,
RI existira en binario Ia combinaci6n queen hexa es Al005003, que corresponde al c6digo de mt1qumalc
b.
la instrµcci6n pedida (11 en este caso).
4.

5.

(en
AX
La
RE la f
RI
estE
del
La
cor
ant
El
sun
s
}3
Pw
Pai
1.2
En
del
cm
En
Pu
qui
de:
IP

C6rno llega a la UCP el c6digo de una instrucci6n C6mo llega a un registro de la UCP un date a operar

Fi~ura 1.23 Figura 1.24

ins
la i
Es importante notar que en una lectura de MP, los datos de las posiciones leidas permanecen intactos, y una copia de Jos 2
mismos reemplaza a los que existian en el registro de destino, los cuales se pierden.
0 sea que una lectura de MP implica una escritura en un registro de la UCP.
Esto es semejante cuando en un calculador se pulsa la tecla RM, y una copia de lo que esta memorizado pasa al visor, perdiendose el
numero que este contenia anteriormente_
1-41
~
'J-
Decodificaci6n (Deterrnina las pr6ximos movimientos a realizar por la UC para ejecutar la instrucci6n que esta en RI y
-"---"-~~----..!lkcz~u_!_.r£et:.::!w'. .:·a:.:t:::o.::d=:as las instmcciones)
Cuando uncodigodemaquina (en este caso Al005003) liega al 1egistro RI, el c6digo de operaci6n (en
1
este caso Al) es "decodificado" por la UC. Esto es. el c6digo es detectado por circuitos de la UC, y su
combinaci6n particular de unos y ceros desencadena una secuencia de acciones que ya han
sido preparadas para esa combinaci6n cuando se diseii6 el procesador, a saber:
3. Movimientos para direccionar y leer un operando (data a operar), cuyo destino es el registro RDA (fig 1.24)
a. La UC pone en 1 la Iinea LIE (Iectura), y ordena enviar al registro RDI una copia de la direcci6n
formada por los dos bytes del c6digo de maquina que siguen al c6digo de operaci6n (en este caso 0050),
pero traspuestos ( o sea 5000), con lo cual dicho numero llega a MP a traves de las 16 lineas de direcci6n
del bus.
b. La MP envfajuntos los contenidos de la posici6n direccionada y de la siguiente (5000 y 5001), o sea en este
caso el dato 1020H. Los 16 bits del mismo Hegan par las lfneas de datos al registro RDA.

4. Movimientos y acciones para cumplimentar Ia operaci6n que ordena Ia instrucci6n:


11 ordena transferir desde MP hacia AX un dato. Puesto que este ya se encuentra en RDA, solo resta el movi-
imiento de pasar dicho dato del RDA al registro AX (figura 1.24), donde queda almacenado.
De esta forma se ha ejecutado lo ordenado por 11.

5. Movimientos y acciones para que IP contenga la direcci6n de la pr6xima instrucci6n a ejecutar:


En la UAL se debe sumar al contenido del registro IP, la cantidad de bytes que ocupa Ia instrucci6n ejecutada
(en este caso 3), y reemplazar el valor anterior (0200) por el resultado de la suma (0203) 1•

La ejecuci6n de 12 (que ordena sumar al registro AX el dato que esta en 5000H) empieza con los pasos la. y 1 b. de
la figura 1.23 (iguales para todas las instrucciones). En la. sera 0203 la direcci6n que apunta IP; yen lb. al registro
RI llegara 0306 0050 que es el c6digo de 12 Ademas, 12 tiene en comun con 11 el movimiento 3a. y la direcci6n en
este caso es tambien 5000 H. En el movimiento 3b. (figura 1.25) el dato (en este ejemplo otra vez 1020H) obtenido
de la lectura de la direcci6n 5000H llega al registro RDA.
La operaci6n ordenada en el paso 4 ahora es sumar el operando (1020H) -que esta en RDA- al data
contenido en AX (1020H). El resultado de la suma (2040H) debe guardarse en AX reemplazando al valor • ~-
anterior 1020H, que se pierde (igual que una calculadora cuando se suma). . \V
El paso 5 consistira en cambiar el valor de IP, de modo que apunte a la direcci6n de 13, para lo cual la UC debe ;.:l
sumar 4(pues12 ocupa 4 posiciones de memoria) al valor 0203, de fonna que IP indique 0207 H. I+
13 se ejecuta con los mismos movimientos que 12 con la unica diferencia que la UC ordena una resta a la UAL 2
Puede verificarse que mediante ellos se llega a los resultados hallados con el Debug. (figura 1.21).
Para la instrucci6n 14 (que ordena guardar en 5010H el contenido de AX), luego del movimiento lb. (figura
1.23) se tendra en RI su c6digo A31050.
En el movimiento 3a. -como en 11- se ordena enviar al registro RDI una copia de la direcci6n fonnada por los dos bytes
del c6digo de maquina que siguen al c6digo de operaci6n (en este caso 1050), pero traspuestos ( o sea 501 OH), con lo
cual dicho numero llega a MP a traves de las 16 lineas de direcci6n <lei bus. (fig. 1.26).
En el paso 3b. el dato (0000 H) que se debe enviar a MP para cumplimentar la operaci6n, pasara al RDA.
Puesto que la operaci6n ordenada en esencia es una escritura de memoria, el paso 4. consiste simplemente en
que la UC pone en 0 la linea LIE (escritura), con Io cual enviara hacia MP, por las lineas de datos, una copia
3
de! contenido de RDA (en este caso 0000 H). Este se esc.ribira en las posiciones 50 I 0 y 5011 • En el paso 5 el
IP se actualiza en 020E (no dibujado).

perar

Esta acci6n circuital no es visualizable en la figura 1.23. Supondremos que cuando la UC lee el primer byte del c6digo (Al) de una
instrucci6n detecta cuantos bytes la componen y que representa cada uno. Por lo tanto la UC asi "sabe" que 03 no forma parte del c6digo de
la instrucci6n. Recordar que esta ordenaba enviar hacia AX una copia del numero contenido en la direcci6n 5000 (y en la 5001)
2
pia de lo! En los pasos 3b de las instrucciones h e h tiene lugar una lectura de memoria seguida de una operaci6n aritmetica.

En general, en una operacion de escritura en MP (o en cualquier registro). se destruye el contenido que tenia antes la
iendose i posicion escrita, la cual pasa a almacenar el nuevo valor escrito. Los datos leidos en el registro de origen. cuya copiafue
escrita en MP (destino), permanecen intactos. Asimismo, una escritura de MP supone una lectura de un registro de la UCP.
1-45
M.Ginzburg
En primer lugar, en las figuras citadas resulta que ni datos ni instrucciones entran a la UC, sino que van a registros,
encargandose la UC de que ello ocurra habilitando en cada caso las caminos correspondientes.

---~----11 d-:~1u'"'"'a'i'=~'-A~u..,,_Ls;~e:~:~~0~e0c~~~r~~~~ s~:; t!~t~~;~;~~o~:~c:a~e~~ :~~:~~r:~:!o:~t~; r;~:;r~s s!s~~i~~~~t:~~


......

UAL Lo mismo pasa con la materia prima en la figura 1.3


Asimismo. cuando un c6digo de instrucci6n llega al registro RI, la UC determina que ordena ella, Rara poner
en marcha los movimientos preparados para ejecutarla. Solo si el c6digo no corresponde a· ninguna
instrucci6n, se interrumpe la ejecuci6n del programa en curso y se pasa a ejecutar una subrutina preparada
para tal eventualidad. Del mismo modo, en el modelo "ferroviario", la oficina de control de vias no tiene por
objetivo controlar cuantos vagones tiene cada tren que pasa, o la carga que lleva.

1,Que relaci6n existe entre los movimientos que ocurren durante la


,,;L;~~~!~':l~~~~,.};!!l~~!~~!~~~:!~~,,.~~.!!.,~!':x!~L'!m;%~!'2:!2'2.!e}E.2""~f!!l1~2~l!~~,~2!~,"2N.,,.@.,.
Anterionnente afirmamos que los movimientos que componen la ejecuci6n de cada instrucci6n se realizan en
sincronismo con impulsos electricos que se suceden regularmente, a raz6n de millones de ellos por segundo,
generados por un cristal piezo-electrico de cuarzo, denominado "clock" ("reloj") Profundizarenios mas este
tema, suponiendo que se generan 50 millones de impulsos por segundo.
1 ciclo = 1 pulse =20 nanoseg.

Figura 1.29
ormaci 1 segundo .. I
ue es ,. 50 millones de pulsos par segundo (50 MHz)
galponf
emejank~ Si dichos impulsos se visualizan con un instrumento apropiado, como un osciloscopio electr6nico, tienen una forma de
afos p1 i~ onda como indica la figura 1.29. Se trata de una sefial electrica que pasa cfclicamente por dos niveles denominados
"bajo" y "alto'', cada uno de una duraci6n fija. Esto implica que si midiesemos la sefial que sale de dieho cristal
oscilador, por ejemplo, durante diez nanosegundos (1/100 de millonesima de segundo) se tendria 0 volts (nivel
stro d;I bajo), yen los siguientes diez nanosegundos, 5 volts (nivel alto).
en if jil·
Por definici6n, un ciclo tiene lugar cada vez que se repite un mismo fen6meno. En la figura se ha indicado un
viene~ ciclo del reloj, considerado desde que comienza un nivel bajo, hasta que dicho nivel se inicia de nuevo. con
, d··r:J·
via e~ un nivel alto (pulso) en el ciclo. 0 sea que en un ciclo tiene lugar un pulso.
no. fl En el ejemplo, un ciclo o pulso se repite 50 millones de veces por segundo, por lo cual se tiene una frecuen-cia de
--'i repetici6n de 50 millones de Hertz= 50 Megahertz= 50 MHz, siendo 1 Hertz= 1 ciclo por segundo.
e llavelf;,'l
rrando~
;,iii
miento;
'~
origen~ Son comunes los microprocesadores con reloj de 100 :Nfuz a mas de 1 Ghz. El reloj esta incorporado al micro-
omo se~
2

·>i
procesador. En general, un procesador sera mas rapido si funciona a mas :MHz
iante~~
mo~I Como se plante6, estos pulsos marcan, sincronizan, las instantes en que comienzan las
lock"~i movimientas que tienen lugar durante la ejecuci6n de cada instrucci6n. Vale decir, que un
;i movimiento empieza al comienzo de un pulso y tiene tiempo de consumarse hasta que el inicio
unicad~I del pulso siguiente, cuando comienza otro movimiento.
r vez,J
a 1.28~ Con un reloj de 50 MHz de reloj, un movimiento debe concretarse durante un ciclo reloj, siendo que
de lll)j este dura 1150 millonesima de segundo, para el caso que ocurran 50 millones de ciclos por segundo.
En la fig 1.30 se han indicado los movimientos que empiezan en consonancia con cada pulso, para las instruc- ,._
·:lm
diant~i
ciones 11 e 12 antes ejea.itadas (ver figs 1.23 y 1.24), suponiendo que con cada pulso tenga lugar un paso de la
6neas~ ejecuci6n de una instrucci6n, y que se requiere 4 pulsos (pasos) para ejecutar cada una de dichas instrucciones.
~~

1
cial en'.i Al encender 'un computador la ejecuci6n de un programa de diagn6stico que esta en ROM lleva a cabo una serie de verificaciones en
ega al:, el hardware, en relaci6n con el correcto funcionamiento de la UAL ,y la memoria, entre otros,y la configuraci6n de! sistema entre otros.
7
~ • _La frecuencia de los pulsos reloj no sirve para compara la perfonnance de procesadores distintos.
1-46
t,De que forma la UC pasa de un movimiento a otro abriendo y cerran
--4clo?(a~m~inos? p
S<
En la figura 1.23 se tiene que para leer en memoria el c6digo de maquina de una instrucci6n a ejecutar, p
movimiento la. una copia del contenido de IP pasaba a RDI. Esto lo ordena la UC medianie una 0
control que sale de ell a (figura 1.31) que habilita -por estar en 1- el camino ("bus") que une IP con si
Los contenidos de memoria Hegan al registro RDA pasando por el bus de datos que comunica ambas.
Este movimiento de lectura es ordenado por la UC mediante su line a de control LIE (de Iectura/ .,...,,. . . .,..,._.,.,.
que va de la UC a memoria, para lo cual dicha linea de control debia estar en 1 (5 volts).
Una vez que dichos contenidos Ieidos llegaron al RDA, tendran como destino el registro RI, dado que
de un c6digo de instrucci6n. Para ello, la UC habilitara mediante otra linea de control de valor 1 el
que une RDA con Rl. Observese en el esquema propuesto, que las restantes lineas de control que salen
c
h
UC por estar en 0 (0 volts), no permiten la transferencia de datos entre otros registros de la UCP, por
comunicaei6n entre los caminos (buses) que los unen.
De manera analoga (figura 1.32), en la lectura del dato a operar, las lineas de control que estan en 1 nPr'l'"Y'li+.;.l:it l 06J
los movimientos 3a., 3b y 4, que aparecen en la figura 1.24. Estos movimientos son ordenados por las opere
de control que en la figura 1.32 estan en 1 ( que en la figura 1.31 estaban en 0), las cuales habilitan :.::.~~:S:"t::E'~~:.:;;-:;$;~~-:;:~;~.:::-::~

correspondientes caminos entre registros. E


Tambien salen Iineas de control de la UC hacia la UAL, para ordenar sumar, restar u otra operaci6n. c
Si el c6digo de una instrucci6n (como el de 14), ordena un movimiento de escritura en memoria, cuando tenga
mismo, un cable de control de la UC habilitani el camino que va de un registro acumulador hacia el registro RDA, s
cable LIE que va a memoria debera estar en 0 volts, para que se escriba la posici6n de memoria nrPV1~l'YlPn11°~1 c
direccionada, en correspondencia con los movimientos de la figura 1.26. d
a
Por lo tanto, de la UC sale un conjunto de "lineas de control" que van c
1. hacia la UAL c
2. hacia. los caminos entre registros de la UCP q
3. hacia la memoria (linea de lectura/escritura -LIE) y hacia Ios ports de las interfaces (:qguras 1.61y1 c
Segun el va1or (1 6 0) de estas lineas la UC ordena la operaci6n que hace la UAL, de que registro a cual q
se pasani la informaci6n, y si Ia memoria sera leida o o escrita. :E

UC
Rom d
xx x

I
I I
II RI
que esta
! I cual en
1

IP II
i I pas 6 a I
--'~ control d
Figu

RDA ILJ
...
ROI . . .
ROI
Figura 1.31
1-47
Ginzburg
· En la UCP dichos momentos son iniciados, sincronizados, per cada pulso reloj.
Puesto que -como se trat6- cada movimiento se lleva a cabo en un pulso reloj, cada uno de las lineas que
'"'';'~10=~~-_:._-s_a'l-en-:--::?=e"T.1a"ue-puede-cambiar de 0 a 1 6 viceversa err cada pulso reloj.
Por ejemplo, si durante un pulso reloj la lfnea que en el movimiento 1 b habilita la escritura de RI desde RDA
(figura 1.31 ), en el pulso siguiente debe inhabilitarla (cambiando de 1 a O), para que el dato no vaya a RI,
sino a AX, como aparece en la figura 1.32.

Por consiguiente, con cada pulso reloj avanza un movimiento o paso la ejecucion de una instruccion,
y cambia la combinaci6n de unos y ceros presente en las lfneas que salen de la UC, a fin de que
puedan llevarse a cabo dicho movimiento.

Cada vez que se repite un determinado movimiento -como el 1a 6 el 1b- se repite tambien en las salidas de
la UC la combinaci6n de unos y ceros que determina ( controla) dichos movimientos

i, D6nde reside la "inteligencia" de la UC, para "saber" los movimientos y


"~e;~~~!2!2~,~,.,;!l. !'!,J:!~l:,,~,.,.,~~~.!!=~~£,,,,,,,,,Y.m.~~2~,£,,,,!~:,~.!!!f.!~,.,£~,~~~~,!~~~~££!fl£,"~~~m~=•<=•===•=mrn
Esta preguD:ta equivale a plantear de d6nde sale cada combinaci6n de unos y ceros que aparecen con
cada pulso reloj en las lineas de salida de la UC.
Segun se describi6 (fig. 1.27) la ejecuci6n de cada instrucci6n se divide en pasos aun mas simples (4 en nuestro
caso, pero que son mas en instrucciones complejas). Las acciones que debe ordenar/controlar la UC en cada uno
de estos 4 pasos estan determinadas por 4 combinaciones binarias llamadas "microc6digos" (µcod) que van
apareciendo una tras otra con cada .pulso reloj (Clock:::;. Ck) en las lineas de control (LC). Estas salen de la UC
con destino a la UAL, los registros de la UCP, y laa memoria (fig. 1.31). Tambien van hacia los ports.
Con cada Ck el valor (1 6 0) de cada LC que sale de la UC determina los movlmientos (como ser de IP a RDI)
que deben tener lugar, y si interviene la UAL, que operaci6n debe hacer. El valor de cada LC puede cambiar con
cada Ck. Asi, para 500 Mhz (500 millones pulsos/seg) las LC cambian 500 millone~ de veces por segundo, o sea
que se generan en ellas 500 millones de µcod/seg.)
Este funcionamiento es comt'.in a todos los procesadores, sean CISC o RISC (sec.ci6n 1.14).

En un CISC las salidas de la UC, o sea las LC, son salidas de una ROM denominada ROM de
UC Control 1 (RC), que contiene escritas en su interior todas las combinaciones binarias que pueden
Rom de Control aparecer en las LC para determinar que debe hacer la UC en cada paso de la ejecuci6n de una
xxxxxxx
instrucci6n. Ello implica que en la RC reside la "inteligencia" de la UC, que obviamente fue
&"''"""l111t1~ifil:::f'fil1:m.mm·m I
originada por quienes crearon Ia UCP.
ll
\
0001011
___________
..._ xxxxxxx En general de la UC salen n LC (como ser n = 100), por lo que cada µcod sera den bits (un
bit por cada LC), y esta guardado (grabado) en una so la celda de n bits de la RC. 0 sea que en
~:1 ::o:~o :o.:1~:o~1,~as de la RC las celdas no son de 8 bits, sino den bits (figura 1.34).
/ control En la figura 1.3 1 s~ supone que durante un cierto Ck los valores de las 7 LC supuestas que
Microc6digo copia de! salen de la UC son 1000101, y en la fig. 1.32 se asume que con el Ck siguiente dichos valores
que esta en la ROM, ei son 0001011. Ambos valores en la figura 1.33 aparecen guardados en 2 celdas sucesivas de 7
cua/ en un cierto Ck bits de una RC. Como en cualquier ROM, cuando se accede a una celda una copia de su con-
pas6 a las lfneas de tenido (µcod) pasa a sus lineas de salida, que son las LC de la UC. Esto sucede con cada Ck.
control de la UC
Con xxxx se indican otros µcod en la RC, gue como todos los µcod constan de unos y ceros.
Figura 1.33 Cuando el µcod 10001 OI esta en las LC pennite realizar los movimientos de la figura 1.31
El esquema siguiente generaliza la fig. 1.33 e intenta acercarse conceptualmente a c6mo se localizan lo.r
µcod en una ROM de Control. Sobre la base de la fig 1.33, y suponiendo que cada una de las instrucciones de l~
la fig 1.15 se ejecute en 4 pasos indicados en la figura 1.30 en concordancia con 4 pulsos, hacen falta 4 µcod !<t
!---.;
(µcodl, µcod2, µcod3 y µcod4) que deberan aparecer en las LC con cada pulso, para indicarle a la UC que f\-
hacer en cada uno de los 4 pasos de una instrucci6n. Con Ckl, Ck2, Ck3, Ck4; designamos a cada uno de las 4 k"'T
I
pulsos necesarios para que avance un paso la ejecuci6n de cada instrucci6n, ya sea Ii, 6 12, 6 l3 6 l4 (fig. 1.15).
En las celdas de la RC de una UCP CISC se guardan los µcod para pedir y ejecutar cada instrucci6n de su repertorio.

Tambien llamada ROM de microc6digo o de microinstrucciones, inmodificable y forum parte de! chip de! procesador Esta ROM
no tiene nada que ver con la ROl\'l de mcmoria principal, que contiene los programas de arranque y el BIOS (Basic Input Output System)
en una PC, ni tampoco tiene que ver con el sistema operativo elegido para un computador. Esta concepci6n circuital se emple6 en
procesadores y microprocesadores CISC de distintos fabricantes, inclusive hasta el Pentium 1, prevaleciendo luego la concepci6n RISC.
_I_-4_8~-,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---1
Puesto que una RC es una memoria random -cuyas celdas guardan tantos bits como LC existan- cada celda de~ - -
RC se localiza por su direcci6n. Cada µcod proveera la direccion del siguiente, salvo la direccion del ter~
r
--------~-+µeurl.3-);-que se determina en fa decodificadon a pru""tir del cod-op de la instrucci6n que Ileg6 al RI. ·.·
Como se tratani, dado que en la RC existen miles de µcod para ejecutar todo el repertorio de instrucci
de una UCP, la localizaci6n de los sucesivos µcodigos para ejecutar la instrucci6n que lleg6 al RI y luego pedr
siguiente, se realiza siempre a partir de la localizaci6n def µcod3, merced al cod-op de dicha instrucci6n.

Supondremos que despues de los pulsos Ck 1 y Ck2, en las LC han apare -~.·
µcod 1 y luego µcod2, con lo cual llega a RI (fig. 1.34) la instrucci6n de coctl
codl cod1 obi rox instr)) .... Dir od2 2B06; y que en la decodificaci6n dicho cod-op 2B06 que esra en RI ~·
. ir µcod2 µcod2 (decodif instr en RO localizar la direcci6n del "µcod3 de 2B06" en la RC. 0 sea que cuando llegue cij}
Dir µcod3 instr XX µcod3 instr XX .. 1~fo µcod4 instr XX los Os y ls del µcod3 de 2B06 al aparecer sobre las LC abrinin y cerraran los c~'
Dir µcod4 instr XX µcod4 instr XX1 ~:\ .... .. Dir µcodl
que corresponda mediante las Haves que los gobiernan, para que se lleve a cabo el ~i
Dir µcod3 instr Al µcod3 de A1// .L .Dir µcod4 instr Al
Dir µcod3 instr Al µcod4 de/f1 ; .... i....... Dir µcodl
3 de 2B06: direccionar el data y llevarlo a RDA. ·[1
Dir µcod3 instr YY µcod3 !.rl'Str/Y ... ; .Dir µcod4 instr YY Asimismo, un subconjunto de bits del µcod3 de 2B06 no van a las LC sino que provJt
Dir µcod4 instr YY µcoM lnstf YY ... '. ...... Dir µcodl la direcci6n del µcod4, supuesto en la direcci6n que sigue a la del µcod3. ll
Dir µcod3 instr 0306 ~f0d3 Je 0306 ... ibir µcod4 in~tr 030
1
Cuando se genere el pulso Ck4, el µcod4 de 2B06 aparecera en las LC determinan~~
Dir µcod4 instr 0306 .41cod4ae 0306 ... '....... Dir µcodl que se lleve a cabo el paso 4: realiz.ar la resta ordenada por dicho cod-op 2B06. ·~
Dir od3 instr TT it µcodB instr TT ... ! . Dir µcotl4 instr TT A su vez, un conjunto de bits del µcod4 de 2806 no van a las LC, sino que prov~t
µc,/d4 instr TT ... ! ...... Dir µcodJ
Ia direcci6n (Dir µcod I) del µcod I para pedir de memoria la siguiente instrucci6n (~}
~Jcod3 de 2806 . Dir µcod4 de 200
cod-op supuesto A3). Si al pulso que sigue a Ck4 Io volvemos a Hamar Ckl, al ocllnin;
6 ... ;.... Dir od
este pulso el µcod 1 aparecera en las LC para que se lleve a cabo este paso 1 del pedi~1j;
µcod3 instr PP ... ; . Dir µco 4instr
µcod4 instr PP ... ; ...... Dir µcodl Del mismo modo, bits del µcod I que no van a las LC proveenin la direcci6n (Dir µc~1t
~ r µcod3 instr A3 µcod3 de A3 ..... ~ . Dir µcod4 instr A del µcod2 que para cualquier instrucci6n sigue al µcod 1, supuesto en la direcci6n qu~t
Dir µcod3 instr A3 µcod4 de A3 .... .!. ...... Dir µcodl sigue a la del µcod 1. El µcod2 pennitira que el cod-op A3 de la instrucci6n supu~~~
Dir µcod3 instr RR µcod3 instr RR ..'. ;.. Dir µcod4 instr RR ahora en RI sea decodificado, para localiz.ar el µcod3 de A3, coma sucedi6 antes con 2B~~
Dir µcod4 instr RR µcod4 instr BR ... ~ ...... Dir µcodl dado gue el ucod2 no indica la direcci6n del ucod3 de cada nueva instruccion a ejecutar!t1
Uneas de
control ----+- -.1-4-+-H~-M-+-r+:-- De esta forma, luego de ejecutar cada instrucci6n (con µcod3 y µcod4), se pide~!!
siguiente (con µcod I y µcod2), para seguir con los µcod3 y µcod4 que determinanlirn
·}~t

ejecuci6n de esta siguiente instrucci6n, y asi sucesivamente. En cada secuencia µcod3 =>µcod4 =>µcod 1 =>µcod!]
la direcci6n de cada µcod la provee el µcod anterior, siendo que la direcci6n de µcod3 la provee el cod-op de ~1}
instrucci6n que lleg6 a RI, coma lo sefialan las dos simbolizaciones del registro RI en grisado en la figura 1.34. l1f
Los dos primeros pasos (obtener instruccion en RI y decodificarla -fig 1.31) como se trat6, son comunes a tod~'i
las instrucciones, por lo que los µcod 1 y µcod2 sen.in compartidos por todas las instrucciones. Ti
Tanto µcod3 de XX como µcod4 de XX hacen referencia a µcod de otra instrucci6n que puede ejecutar la UCP. "~
Sistematizando: .--~~~~-~~~~~~~~~~~~~~~~~-~-~~~~~-~~.
µcod1 Cada sentencia (por ej. R = P + P - Q) de un programa de alto nivel se traduce en un\;t
µcod2

µcod1
µcod2
l
11 µcod 3 de A1
µcod4 de A1

12 µcod3 de 0306
secuencia de instrucciones (1 1, 12, 13, 14 en este caso), y cada instrucci6n se ejecuta medianfi~
una secuencia de µc6digos que en un CISC esran en una ROM de Control, y que aparecen e1J}
las lineas de control al ritmo de los pulsos reloj. Ellos determinan las acciones que de~;~
realizar Ia UC en cada paso de la ejecuci6n de una instrucci6n. .~f~

Cuando el c6digo de operaci6n de una instrucci6n llega al registro RI, el mismo permitt}
{
µcod4 de 03061 ubicar (en este ejemplo) la tercera de dichas combinaciones que debe aparecer en las lineaf!)
Sentencia de la UC para que comience la ejecuci6n de dicha instrucci6n r~

!
µcod 1
µcod2
(R=P+P-0) 13 µcod3 de 2806
µcod4 de 28061

l
µcod1
µcod2 . ::1i.,,gm,_ . . . ....... ;,
14
µcod3 de A3 Los procesadores que tienen dichas combinaciones almacenadas en una ROM de Control sei
1
µcod4 de A3 dice que son "maquinas microprogramadas". ~
Todo sucede como si la UC fuera coma un robot preprogramado, para que con cada~
orden distinta que se le imparta (instrucci6n) responda mediante una serie de acciones especfficas ( ordenadas''.
por las combinaciones que se generan en sus lineas de salida), programadas en su interior por sus creadores. ·
1-51

El coprocesador matematico ("copra") cs un microprocesador dedicado entre otras funciones a realizar


ra idamente operaciones con m1ir;.eros enterm: y fracciona..ios~ encar_gandose sus circuitos de controlar a
__,:...~---+l-=-c.:;.:,ad~a-ins_tan_t_e--=efruga:T(foode-debe 1r la cuma. Tambien realiza operacio~es trigonometricas y logaritrnicas. I
De esta forma nose pierde tiempo en lJ. ejecuci6n de instruccior~es adicionales, que lleven la cuenta
de Ia ubicaci6n de la c.oma, como se requiere si se usa la UAL.
Un prognma ::-on m~!chas instrucc~-::-nes qt".:: ordenen operaciones con el "copra", puede obtener
resultados hasta cien veces mas rapido que otro programa que realice los mismos calculos
simulando nilmeros con coma y usand:) la UAL. Esto se hada cuando un "copra" era costoso.
Los nillneros enteros y fraccio·aarios (racionales) y lo::; irrac~orules (pi, raiz de dos, etc.) constituyen
los nillneros Hreales". Para que el copr'::>cesador pued'1 ope·arlos . .--!.eben estar codificados en "punto
flotante" ("floating point" - FP), que en castellano seria coma flotante o desplazable". Por tal
0

motivo el "copro" tambien se denomina "Unidad de Punta Flotante" (FPU las siglas en ingles).
Esta convenci6n -similar a la notaci6n cient:ifica- implica que todos los mnneros que llegan al
"copra" deben representarse de una manera normalizada, que ejemplificaremos en decimal, siendo
que en realidad en el interior del computador se representa s6lo con nUm.eros binarios, sin comas.
Cuando en el visor de una cierta calculadora "cientifica" aparece 3.078 E 3 se conviene que es
3
3,078xl0 = 3078 6 sea que desplazamos la coma tres lugares hacia la derecha. De manera inversa,
partiendo del 3078, este numero queda representado con la notaci6n cientifica anterior compuesto
por dos numeros, de los cuales uno es el exppnente de diez.
2
Del mismo modo 243,78 = 2,4378x100 = 2,4378xl0 = 2.437 E 02 es, en decimal, una notaci6n
semejante a la de punto flotante en binario. Esta se ve en detalle en la Unidad 4 de esta obra.
Siempre sera factible, corriendo la coma, representar un ntimero ur..:Jrmalizado" de la forma anterior, con
un solo digito como pa,rte entcra, seguida de otra fo1ccionaria y otro nUm.ero independiente que indique
cuantos lugares se debe correr la coma pc:ra o1:Jtener el ntimero originario en lugar del "normalizado".
Existen instrucciones para cada tip0 de numcro a procesar, cuyos c6digos determinan, si la
operaci6n aritmetica se realizara en la UAL o en el "copro". Igualmente, dado un numero binario en
memoria, si el mismo se quiere imprimir en decimal, segun sea el tipo de datos que esta operando
el programa en ejecuci6n (Integers, Reales, etc.) sera interpretado dicho nUm.ero .
.. Del mismo modo que 260850 puede interpretarse como el nillnero 260.850 6 como la fecha 26/08/50
Por otra parte, por ejemplo el "copra" de un Pentium permite operar en doble precision extendida
con nilmeros de 80 bits, mientras que la UAL del mismo puede operar d~s numeros de 32 bits.
Esto permite realizar con un "copro" calculos que requieran una mayor precision (apreciar mayor
numero de digitos), que de realizarse en la UAL requeririan tiempos adicionales, puesto que
numeros que superen el tamaflo que la UAL maneja, deben operarse por partes segtin este tamaflo.
Con el mismo fin, almacena en su interior con muchas cifras, numeros como PI.
El 486DX y el Pentium I ya presentan el "copra" incorporado en su chip, (el de un Pentium es 5 veces
mas rapido que el del 486). En el 80286 y 80386 sus "copras" 80287y 80387 estaban en chips separados
Las siglas 80X87 se refieren a "copros" de Intel. Estos tienen estructwa distinta a los de otros fabricantes.
Poseen 8 registros de 80 bits que el programador .los ve como formando parte de una pila, con un registro
oficiando de cima. 0 sea que los 80X87 son rnaquin;:is para datos apilados (existen microprocesadores de
este ti.po). Las instrucciones para llevar datos de memoria al "copro" los van apilando de forma que el
ultimo en entrar quede,siempre en cl registro quc es la cima de la pila (designado ST), como en una
pila de platos, y sacan los resultados de la cima. Los 7 registros debajo de la cima se designan ST(i).
Los nUm.eros son mas largos en los registros de la pila (80 bits) que cuando estan en memoria (64 bits).
Realizan las cuaatro operaciones aritmeticas basicas, calculan raiz cuadrada, exponenciaciones, valor absoluto, ,
logaritmos, funciones trigonometricas y trascendentales en general (o sea aquellas que no son polin6micas).
Procesan datos como nu.meros en FP (reales) de 32, 64 y 80 bits, enteros de 16, 32 y 64 bits, y datos BCD de
18 dlgitos decimales. En los 8 registros citados solo puede haber datos traducidos a FP, existiendo
instrucciones indicadas para ello (coma ser cargar en la pila en FP un nUm.ero que en memoria es un entero).
Las instrucciones para el Pentium y para el "copra" pueden ser ejecutadas por ambos en forma
simultanea. Cada uno intercepta y ejecuta sus instrucciones. Si la instru~ci6n empieza con 11011
(ascii de ESC) la ejecuta el "copro". En la pila de registros citada estan los operandos y se guardan
1-53
h
:::?
~
.......

~LDAD_QE .LAS ~
2
.\
.;.

INSTRUCCIONES 5·
~
~
0
DE SALTO
1,Como operan las instrucciones de salto condicionado y por que son
esenciales ?

lidas,
jando'
en1:ern:t.er c6mo operan estas instrucciones, modificaremos
ligeramente la secuencia Ii. 12, 13, It que aparece codificado en la figura
ZONA 1.15, (en las figuras 1.36a1.40 se recuerda que ordenanlas mismas).
DE Luego de la instrucci6n 13 de resta plantearemos dos alternativas de
PROGRAM J • • ,, .• l ul d d f · d
eJecuc1on: s1 e res ta o e e ectuar P + P - Q es cero, debe guar arse
en la direcci6n 5010 H), como se hizo antes mediante It.
labras
De no valer cero, dicho resultado se asignara a la direcci6n 5012 H.
encia
lnstrucci6n Mediante una instrucci6n semejante a It, que designaremos Lis (por
de salto que se la ubica mediante una instrucei6n de salto)
La posibilidad de dos alternativas de ejecuci6n en funci6n de un
resultado anterior (el de la res ta en este caso) se realiza insertando
una instrucci6n de salto Is entre 13 e It.

Una instrucci6n de salto, permite decidir cual es la pr6xima instruc-


ci6n que se ejecutara luego de ella, entre dos instrucciones posibles: Ia
que le sigue a continuaci6n en memoria u otra cuya direcci6n en memo
ria ella indica. Este salto de una zona a otra de memoria tendra lugar o
no, segUn. el valor de uno o mas indicadores de un resultado anterior.

En lo que sigue, codificaremos las instrucciones que ejecutaremos


usando el Debug. Para poder concretar las dos altemativas planteadas,
primero ejecutaremos las instrucciones con los datos anteriores, para
obtener un resultado igual a cero, y luego las volveremos a ejecutar,
500 pero cambiando el valor de un dato, para que el resultado no sea cero.
S"-

Las instrucciones Ii. 12, e 13 seran las mismas queen la figura 1.15, por
lo cual conservaremos sus c6digos, escritos tambien a partir de la
direcci6n 0200H, de modo de efectuar primero P + P - Q
Estos c6digos vuelven a aparecer en la figura 1.35
Ahora vamos a codificar la instrucci6n Is de salto que ordena:
ZONA
DE "Si como resultado de la instrucci6n anterior (13) el indicador Z vale 1
DATOS (indicaci6n RZ de resultado cero en el Debug) la pr6xima instrucci6n a
ejecutar es la escrita a continuaci6n en memoria (14).
Si Z = O(NZ en el Debug) saltar a ejecutar la instrucci6n (Lis) que esta en
la direcci6n que resulta de sumar a la direcci6n de la instrucci6n escrita a
MEMORIA continuaci6n (lt) el valor indicado en esta instrucci6n". El c6digo de ope
PRINCIPAL raci6n que ordffia lo que esta escrito entre comillas es 75 en hexa, y el
DRAM c6digo de la instrucci6n es 75 XX H, donde XX es el valor a sumar citado
Esta informaci6n puede obtenerse usando el Debug, coma se vera.
Figura 1.35 Para el caso que se cumpla la condici6n de salto (Z=O), hemos elegido
IPS.
XX = 08, par lo que se pasara a ejecutar la instrucci6n Lis que esta 8
1-54

posiciones abajo de la direcci6n de la instrucci6n L, escrita abajo de Is. En las direcciones 020B
_ _ _ _ _ ___.0=2=0~C~se. hcu:t_es~ritoJos dos bytes de1 c6digo 7508 de ! 5 (i.ntercalada entre ! 3 e 14). ;·
r---
j
Sintetizando, el c6digo 7508 ordena: si Z=l ejecutar la instrucci6n que sigue par orden en memo/
si Z=O saltar a ejecutar la instrucci6n que estri 8 posiciones abajo de la que se ejecuta si Z=O.
Abaja de la instrucci6n de salto (direcci6n 020D en este caso) se debe escribir en memoria.
instrucci6n 14 (de c6digo A31050, como en 1.15) que se debe ejecutar luego de Is para el caso que.~1
se cumpla la condici6n; o sea si de la instrucci6n anterior 13 (de resta) result6 Z=l (ZR), por ser c
el resultado de la operaci6n que orden6 13 .
Recordemos que este c6digo ordena enviar a la direcci6n 5010 H una copia del nillnero que esta en AX.~
Ahora hay que escribir la instrucci6n 14s a ejecutar en la altemativa que se cumpla la condici6n d~
salto (Z=O o sea si apcrece NZ en el Debug). Debe escribirse 8 posiciones mas abajo de L qu'
comienza en 020D (dado que hemos elegido dicho valor 08). Si escribimos las 8 direcciones qu~I
siguen a __020D: se ~i:ne: 020E, 02~F~ 0210, ?211, 0212, 0213, 0214, 0215. 0 sea, en hexa 020D + 8. ~.·.•.1.•
0215 sera la dITecc10n donde escnbIT Ls (f1gura 1.35) 11
Esta instrucci6n ordena lo mismo que 14, pero asignando el resultado (que esta en AX) a la direcci6n 501zl
coma se plante6. Entonces SU c6digo de operaci6n tambien sera A3, y SU c6digo de instrucci6n sera A3125oyl

Habiendo codificado la secuencia de instrucciones a ejecutar, debemos escribirla en memori~i


usando el Debug, de la forma vista en la figura 1.16, a partir de la direcci6n 0200 H. Una ve~I
realizada la escritura, si verificamos la misma, debe obtenerse lo siguiente 'I
-E 200 .J
309D:0200
(Exarninar memoria)
Al. 00. 50. 03. 06. 00. 50. 2B.
I
309D:0208 06. 06. 50. 75 08 A3 10 50 ~

Tambien habra que escribir en la direcci6n 0215 el c6digo A3 12 50 (figura 1.35) sin importar
(indicado XX) que esta escrito entre 0210 y 0214, debiendose verificar que debe quedar:
-E215 ~ (Examinar memoria y escribir en ella)
309D:0215 A3. 12. 50. ~

Conforme a lo establecido, primero ejecutaremos estas instrucciones con los datos del ejempl
anterior P =1020 H y Q = 2040 H, que estan en las direcciones 5000 y 5006, respectivamente, d
modo que nose cumpla la condici6n de salto, o sea que se siga la secuencia 11, Ii, 13 , Is e 14 .
1
Entonces volvemos a escribir estos datos (pues los mismos antes escritos ya se borraron), debiendo quedar :
-E5000~ (Examinar memoria)
309D:5000 20. 10. 50. SD. 46. BO. 40. 20.~

Con estos datos y los c6digos de instrucci6n escritos en memoria ejecutaremos instrucci6n por
instrucci6n, siguiendo el mismo procedimiento llevado a cabo a traves de las figuras 1.t9 a 1.22,
que por tratarse de los mismos c6digos y datos elegidos antes coincidiran hasta la figura 1.15
-RIP -' (Examinar IP)
IP 0100
: 0200-'

-R -' (Examinar registros)


AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO Dl=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0200 NV UP EI PL NZ 2 NA PE NC
309D:0200 Al0050 MOY AX,[5000] DS:5000:::;1020

Tanto en esta verificaci6n como en la anterior de los c6digos de instrucci6n, s6lo interesan los valores indicados en negrita. i
2
El flag Z que usaremos en este caso vale NZ (Z=O), pero podfa haber sido en otro momento, o en otro computador: ZR (Z=l) I
1-55
..:;;-
....,.
-T .J (Orden de ejecuci6n de I1 que ordena asignar al registro AX el contenido de la direcci6n SOOOH)
-~----,..,,.4-.~=!fi./...,(}____BX=.ODQD
. _ _~X=QQ_Q_Q I?.!<=:OO_Q_O SP=FFEE BP=OOOO SI=OOOO DI=OOOO
~
2
DS=309D ES=309D SS=309D CS=309D IP~OZ03 NV UP EI PL NZ NA .PO NC
309D:0203 03060050 ADD AX, [5000] DS:5000=1020
&-
·,....:.
~

Figura 1.36 )

-T .J (Orden de ejecuci6n de 12 que ordena sumar al registro AX el contenido de la direcci6n 5000 H)


AX=2040 BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0207 NV UP EI PL NZ NA PO NC
309D:0207 2B060650 SUB AX, [5006] DS:5006=2040

Figura 1.37

Hasta aca existe coincidencia total con las indicaciones de las figuras 1.19y1.20, como debe ser.

-T .J (Orden de ejecuci6n de l3 que ordena res tar al registro AX el contenido de la direcci6n 5006 H)
AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO Dl=OOOO
DS=309D ES=309D SS=309D CS=309D IP=020B NV UP EI PL ZR NA PE NC
1
309D:020B 7508 JNZ 0215 1

Figura 1.38

El c6digo 7508 indica que la pr6xima instrucci6n a ejecutar es la de salto (ls), y que de la res ta efectuada
result6 que el indicador Z cambi6 de NZ (Z=O) a ZR (Z=l), de resultado cero (pues al ejecutar 13 se hizo
2040 - 2040 =0000), por lo cual podemos anticipar que luego de ejecutar 15 la siguiente sera Li

-T .J (Orden de ejecuci6n de Is que ordena saltar si Z=O)


AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO Dl=OOOO
DS=309D ES=309D SS=309D CS=309D IP=020D NV UP EI PL ZR NA PE NC
309D:020D A31050 MOY [5010], AX DS:5010=XXXX

Figura 1.39

Verificamos que de la ejecud6n de Is ha resultado que la pr6xima instrucci6n a ejecutar es la que sigue por
orden (direcd6n 020D) y tiene c6digo A31050, o sea que es Li. Vale decir que nose ha producido nn salto
hacia Lis de direcci6n 0205. Esto era previsible, por que al obtenerse Z=l (ZR) en la instrucci6n anterior, no se
cumple la condici6n de salto (que exige Z=O). Luego de ejecutar Is los indicadores no cambian.
Esto es general: luego de ejecutarse una instrucci6n de salto no cambian las indicadores de estado,
puesto que en ella no se realiza ninguna operaci6n aritmetica o 16gica.
Para terminar esta alternativa, ejecutaremos la instrucci6n Li, de c6digo A31050:

-T .J (Orden de ejecuci6n de 14 , que ordena escribir en la direcci6n 5010H una copia del contenido de AX)
AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO Dl=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0210 NV UP EI PL ZR .NA PE NC

309D:0210 (no interesa lo que continua escrito en este rengl6n)

Figura 1.40

Como ya hemos ejecutado la altemativa 11, 12, 13, Is, e Li no segillmos ejecutando ninguna instrucci6n mas.

0 Si queremos verificar que en las direcciones 5010 y 5011 se escribi6 el resultado que esta en AX.
Hacemos:

JNZ en Assembler son las siglas del Jump NZ;o sea Saltar si result6 NZ al ejecutarse la instrucci6n anterior.
_1-56 -------1
-E 5010 -1 (Examinar memoria)
I
309D:5010 00. 00. -1
1,___--
-~
A:
D!
A continuaci6n, haremos que se ejecute la alternativa Ii, 12, 13 , Is, e Lis para lo cual cambiaremos el
valor de un dato, hacienda Q = 2000 H, de modo que P + P - Q sea distinto de cero, para que se 3C
cumpla la condici6n de salto.
Entonces, si escribimos en 5006 y 5007 el nuevo valor asignado a Q debe resultar en memoria:
-E 5000 ..J (Examinar memoria) v
309D:5000 20. 10. 50. SD. 46. BO. 00. 20. -1 I cc
I E~
Sc
En lo que sigue ejecutaremos los mismos c6digos de instrucci6n -antes escritos en memoria y quel D
permaneceran en ella mientras sigamos con el Debug o no los borremos- con los datos modifica-1 p,
dos. Nuevamente se dara una coincidencia de valores con pasos similares realizados. .1
I
-RIP-' (Asignar a IP la direcci6n de la pr6xima direcci6n a ejecutar)
IP 0100
: 0200-'
II A
D
3(
I
-R -' (Verificaci6n general para control) 'I
AX=OOOO
DS=309D
BX=OOOO
ES=309D
CX=OOOO
SS=309D
DX=OOOO
CS=309D
SP=FFEE BP=OOOO
IP=0200 NV UP EI PL
SI=OOOO Dl=OOOO
ZR1 NA PE NC
iI
309D:0200 AlOOSO MOV AX,[5000] DS:5000=1020 I p
·I·1
-T -' (Orden de ejecuci6n de 11)
AX=1020
DS=309D
BX=OOOO
ES=309D
CX=OOOO
SS=309D
DX=OOOO
CS=309D
SP=FFEE BP=OOOO SI=OOOO DI=OOOO :If'
,,
IP=0203 NV UP EI PL ZR NA PO NC
.·~
309D:0203 03060050 ADD AX, [5000] DS:5000=1020

-T -' (Orden de ejecuci6n de 12)


AX=2040
DS=309D
BX=OOOO
ES=309D
CX=OOOO
SS=309D
DX=OOOO
CS=309D
SP=FFEE BP=OOOO SI=OOOO DI=OOOO
IP=0207 NV UP EI PL NZ NA PO NC
I
;~
309D:0207 2B060650 SUB AX, [5006] DS:5006=2000
I11
~
Figura 1.41 t~
Hasta aca, como debe ser, hay coincidencia con las indicaciones de las figuras 1.36 y 1.37, salvo que.!1\'~
en 5006 hay 2000 'i
De la ejecuci6n de la instrucci6n de res ta resulta: ,~
i!:
-T -' (Orden de ejecuci6n de 13 ) ~.:-

AX=0040 BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO ~


DS=309D ES=309D SS=309D CS=309D IP=020B NV UP EI PL NZ NA PE NC lH
~~

309D:020B 7508 JNZ 0215 I


Figura 1.42
ii
~-

El c6digo 7508 indica que la pr6xima instrucci6n a ejecutar es la de salto (Is), y que de la resta ~
efectuada result6 la indicaci6n NZ (Z=O) de resultado no cero, por lo cual es previsible que luego I
de ejecutar Is la siguiente sera Lis f

Este valor ZR (Z=l) del indicador Z, podfa haber sido en otra oportunidad o en otra PC, el valor NZ (Z=O).
1-57

-T ..J (Orden de ejecuci6n de la instrucci6n de salto ls)


--&-----A-=~u~u4u-··· -- -.ax=OOOO CX=OOOO DX=OOCO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0215 NV UP EI PL NZ NA PE NC

309D:0215 A31250 MOY [5012], AX DS:5012 = XXXX

Figura 1.43
Verificamos luego de ejecutar Is, que la pr6xima instrucci6n a ejecutar es la que esta en 0215 y tiene
c6digo A31250, o sea que es 145 • Vale decir, que se ha producido un salto hacia Its de direcci6n 0215.
Esto era pronosticable, por que al ser Z=O (NZ) en la instrucci6n anterior, se cumple la condici6n de
salto. Lo anterior equivale a verificar que el valor de P + P = 2040 es distinto al valor de Q = 2000.
De ser iguales aparecerfa ZR, como fue antes
Para terminar esta altemativa, ejecutaremos la instrucci6n 14s, de c6digo A31250:

-T ..J (Orden de ejecuci6n de I4s)


AX=0040 BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=0218 NV UP EI PL NZ NA PE NC

309D:0218 (no interesa lo que continua escrito en este rengl6n, pues no se utilizara)

Figura 1.44
000
NC
Dado que hemos ejecutado la altemativa 11, 12 , 13 , Is, e l4s, no ejecutamos ninguna instrucci6n mas.

Para verificar que en las direcciones 5012 y 5013 se escribi6 el resultado (0040) que esta en AX,. hacemos:

-E 5012 ..J (Examinar memoria)


00
309D:5012 40. 00 . .J (recordar que los nlimeros se escriben con los bytes traspuestos).
NC

Las instrucciones de salto para llamar subrutinas operan en esencia


NC como Is de la figura 1.35, siendo que ordenan saltar a una instrucci6n
que es la primera de una subrutina que esta en otra zona de
Secuencia memoria.
de calculo La ejecuci6n de la subrutina termina con otra instrucci6n de salto,
a repetir
N veces que ordena retomar a la instrucci6n que en memoria sigue a Is.
1
Tambien Is puede ordenar saltar hacia atras (figura 1.45) para
permitir, por ejemplo, repetir N veces una secuencia de instrucciones
de calculo, y luego pasar automaticamente a otra de impresi6n.
El valor N se escribe primero en memoria, y se le resta uno cada
l vez que se ejecuta la secu~ncia de calculo, mediante la instrucci6n
00 Secuencia I& de modo que ella se habra repetido N veces cuando sea N=O.
C I de A la instrucci6n que ordena restar uno (IR), le sigue una :instrucci6n
rreWn de salto Is (ubicada entre las dos secuencias). Esta en esencia
determ:ina luego que se le resta uno a N, si el resultado es cero o no.
Mientras no sea cero (Z=O), Is ordena saltar a la direcci6n 2500
donde esta 11, para que se vuelva a ejecutar la secuencia de calculo.
esta Cuando la resta resulte cero, nose cumple la condici6n e Is ordena
ego seguir con la secuencia de impresi6n de resultados, cuya primera
Figura 1.45 instrucci6n (1400) esta escrita debajo de la instrucci6n de salto Is.

En esta se ha supuesto, por simplicidad, que las instrucciones ocupan un byte


1-58

-
SENALES, PERIFERICOS, BUSES
Y PORTS EN EL CAMINO QUE
REALIZAN LOS DATOS
Hasta el presente habiamos mencionado br1.~veiGente la funci6n de k·~: perifericos en la secci6n 1.3 (fi
1.6 y 1.n y nos habiamos ocupado de la pord6i:: ~entral -vcle decir, . ~e] nlicroprocesador y de la mem
principal- sin irnportamos c6mo datos e instrucciones llegan a mernoria, ni corno de esta salen al exterior.
Ahora en un primer acercamiento trataremos esta cuesti6n, siendo que en la Unidad 2 de esta 0
referida a perifericos y E/S se la considera mas en detalle.

t Como viajan los bits de un lugar a otro en un computador ?


Durante un proceso de datos, los bits de los numeros binarios que representan ya sea da
instrucciones, direcciones o resultados, pueden existir dentro de un computador de dos formas:
• almacenados (en registros o posiciones de mernoria durante un tiempo que depende de.
pr6xima utilizaci6n), o
• transmitiendose por lineas conductoras a velocidades electr6nicas (cercanas a la de la luz) de
lugar de almacenamiento (origen) a otro (destino), siendo que viaja hacia el lugar de
una copia de los bits del lugar de origen.
Al tratar la memoria se plante6 una analogia con llaves (figura 1.9), en la cual cada bit se guarda
uno o cero, segun uno de dos estados posibles "si-no" de cada llave, en la memoria o en registros.
En un computador esos dos cstados son generados por media circuitos e1ectr6nicos, por lo cual
escritura se puede pasar muy rapidamente de un estado al otro para cambiar el valor del bit airnac:en.ad~~.
Con el fin de aproximarnos mas al funcionarniento electrico de ·~stos circuitos supondremos
1.46) que a cada Have de cualquier celda de memoria o registro donde se guardan bits, por un
esta conectada a 5 volts, proporcionados por una pila que simula la fuente de alimentaci6n
equipo, y por otro lado esta conectada a un "cable de salida".

5 volts / ___O_vo_lts_ 5 volts 5 volts


No (0) Si (1)
(0) (1)
5
0 volts . _____,. ___.__ __.._---='---""''

Figura 1.46 Figura 1.47

Cuando la llave esta en "no" (0 almacenado), por estar abierta no permite que los 5 volts de
-que le llegan por el cable que la une con la pila- pasen al "cable de salida, por lo queen este
existira voltaje (0 volts). Podemos decir, que cuando en el "cable de salida" hay 0 vo.zts frnplica
11
la llave esta en no", o sea que existe alnzacenado un bit de valor cero.
Por el contrario, con la llave en "si" (1 .ilmacenado), por estar e~.la cerrada, unira el cable que
de la pila con el "cable de salida". Ent\.mces, los S volts de la pila se manifestaran tambieff
ucable de salida", lo cual indica quc la Have esta en "si" (existe almacenado un bit que vale 1).
Si la llave durante un tiempo esta en "no", durante otro esta en "si", y luego otra vez esta en
graficando a lo largo del tiempo el valor de la tension electrica que se mediria (en volts) en el
del cable que sale de ella; resulta la figura 1.47. Este tipo de sen.ales electricas, restringidas a tomar
dos valores o niveles (alto o bajo), se denominan sefiales digitales binarias o simplemente binarias.
1-59

Resu,Ita '15~ CJ:ll~ ~1 vaj{)r (Ovolts B.' ~ volts} que aparece en el cable de salida", es una seftal. electrica,
Ii

-fidl:~---indi~dqrq~.eUugar~,de.destino (en~dexrremo.del cable), de la existencia de un cero o un uno a@~<;:~§.(}.·


Puede decirse que el bit de valor 0 6 1 que sucesivamente 1nemoriz6 la llave, se transmiti6 a traves
del cable que sale de la llave hasta el lugar de destino, donde su valor (0 6 1) es detectado merced al
valor de la sefial electrica binaria sensada en el destino.
Esta sefial electrica es pues uportadora" y transportadora de informaci6n binaria.

0 0
1 i 1 1

I
I
1 1 0
I
0 I 0 1
I
i
0 I 0 1
II
0 0 1

a da 0 1 1
I
mas:
1 0 1
de de
Primer Lectura Segunda Lectura Tercer Lectura
1

Figura 1A8 Figura 1.49

Si consideramos 8 Haves como las que imaginamos para una posici6n de memoria (figura 1.9),
suponiendo que de cada una de eHas llega un cable hasta un microprocesador (figura 1.48), este
podra sensar si cada Have guarda un 0 6 1 de la forma vista. Basta una sola pila conectada a todas
las Haves, para detectar si cada una transmite o no -segun este cerrada o abierta- los 5 volts de la
pila. Asimismo, debera Hegar al microprocesador el cable conectado al negativo comun ("masa" o
"tierra") respecto del cual se mide la tension electrica del cable de salida de cada Have.
Asi operan los conductores del bus que comunican la memoria con el microprocesador.
En la figura 1.49 se supone que en una primer operaci6n de lectura se ley6 la combinaci6n 01100001,
en llila segunda la 11100010, y despues la 01011111. En correspondencia las lineas del bus a lo largo
de ese tiempo tendran los valores dibujados, resultando en cada linea una sefial digital binaria.
Para un bus de 32 lmeas de datos puede imaginarse un mecanismo similar de transmisi6n hacia la
UCP, desde 32 llaves, cuando se leen 4 posiciones consecutivas de memoria.
Lo descripto para un movimiento de datos desde memoria al microprocesador vale tambien para otro en
sentido inverso, por ejemplo, cuando en una escritura de memoria, una copia del registro de datos
(RDA) debe ir hacia memoria (figura 1.26). Hay que imaginar llaves que en RDA guardan una
combinaci6n de bits, con cables que salen de ellas hacia la memoria. El esquema seria el mismo que la figura
1.48, cambiando s6lo los nombres del origen y destino. Estos cables del bus de datos, son los mismos que los
anteriores, pero cambia el sentido de transmisi6n cuando se usan para enviar bits de la UCP a memoria.
Tambien opera conforme al esquema de la figura 1.48 el bus de direcciones, que como se trat6, tiene un
solo sentido de envfo: del microprocesador a memoria. En la secci6n 1.4 se plante6 que -como en un
control remoto de TV- en el registro de direcciones RDI se formaba (suponiendo con llaves "si-no") el
nillnero binario que era la direcci6n que se enviaba a memoria para acceder directamente a la posici6n a
leer o escribir. Los cables que salen de estas llaves van hacia memoria, constituyendo el bus de direcciones.

as.
••
1-61 h·
.~

Portal motivo, en el interior de un computador


s6~o se transmiten bits en paralelo, a fin de
Figura 1.51 poder envzar mas -millones deFiites par segtmdo
(me;?abytes/sef?)
o- Ya al tratar el bus que une el microprocesador con
)
1- la memoria (figura 1.8), se indic6 que todos los
1- bits de datos se enviaban simultaneamente, por
o- lfneas en paralelo.
o- Transrnisi6n de bits en serie tienen lugar, por ejemplo,
o- a traves de uno1 de los conductores del cable de
o- conexionado del teclado o del mouse al computador.
1- El uso de un solo cable para transmitir datos es
s. ·~ econ6mico para enviarlos a distancia.
ble. Figura 1.52 La transmisi6n paralelo s6lo puede darse entre
lugares pr6ximos, como los existentes dentro del
gabinete de un computador, dado que la interferencia electromagnetica, existente a altas frecuen-
cias entre cables que estan pr6ximos en un recorrido comun, aumenta con la distancia comiin
recorrida. Es por ello que una impresora se conecta en paralelo siesta pr6xima al computador, yen
serie en caso de estar a varios metros del mismo.

Cuando contamos con los dedos (u digitos") establecemos una correspondencia entre dos conjuntos
de elementos individualizables, discretos (separados): el que se quiere contar y el de los dedos.
Estos levantados forman una figura que representa un cierto numero de tales elementos.

Esta correspondencia es la que tambien se establece mediante el


abaco (figura 1.53), pero de modo mas complejo. En este, una
pieza individual ("cuenta") -deslizable en un alambre o varilla
fina de madera- tiene por ejemplo valor den en la varilla de las
centenas, indicando que se han contado cien elementos mediante
las dos Varillas que estan a SU derecha. Asi un abaco puede
representar un conjunto muy grande de elementos mediante
otro conjunto de elementos mucho men.or, constituido por las
0 0 2 1 0 5 piezas que estan en sus alambres. En cada varilla las cuentas
pueden estar en uno de diez estados distintos, segiin la cantidad
Figura 1.53 de ellas que esten arriba y abajo en la misma.

Asimismo, segiin la posici6n que tenga una varilla, cada cuenta de la misma vale uno, diez, cien, etc.
De la combinaci6n de los estados individuales de cada varilla resulta un estado del abaco que
representa el niimero de elementos contados.
El Sistema numerico arabigo, posterior al abaco, asign6 un simbolo del 0 al 9 para representar cada
una de los diez estados posibles de las cuentas de cada varilla.
En esencia, las piezas del abaco (que simbolizan objetos contados) se reemplazafon por otros
sfrnbolos abstractos que cumplen la rnisma funci6n, mas faciles de transportar y manipular en el
papel, los cuales constituyen numeros.
Si una varilla tiene cinco cuentas en su parte inferior, y luego se apila otra sabre ellas, se pasa de un
estado de las cuentas a otro distinto, sin posibilidad de estados intermedios con significado.
Del mismo modo, del niimero 2025 se u salta" al 2026, sin que exista un digito entre el 5 y el 6.

Dicho cable esta acompafiado por otros, para enviar sefiales de sincronismo, control y alimentaci6n. Una vaina de plastico recubre
el conjunto.
1-62

numeros son representaciones simb6licas de

Los relojes digitales indican cuantitativamente la hora mediante rnimeros, provenientes de la a


de contar electricamente la cantidad de pulsos (conjunto a contar) generados a intervalos regu.
por un oscilador de cuarzo.
La informaci6n recien descripta es del tipo digital decimal. En relaci6n con la senal electrica d~
figura 1.46, restringida a tomar s6lo dos valores, estados o niveles (alto o bajo) que habfamos de·.~
como digital binaria, podemos corroborar que tal denominaci6n se ajusta al concepto establecido
informacion digital. Los 8 cables de la figura 1.48 son, como las varillas del abaco, piezas separadas'
informacion, con la diferencia que en un instante dado cada uno puede estar en un nivel alto o bajo,;

Es factible construir un abaco binario equivalente (figura 1.54) Asignand~


simbolo binario 0 al nivel bajo y 1 al alto, los niveles en que se encuentranJ
cables constituyen la combinacion de simbolos binarios 01100001 que pu
hacerse corresponder con un nillnero del sistema binario de representaci6n.•
0 0 0
Lo mismo en una posicion de memoria, el estado "si-no" de las 8 llaves.
que simulamos circuitos electr6nicos con dos estados electricos .
Figura 1.54 asimilables a un mimero binario.

Cuando en un cable la tension electrica cambia de un nivel al otro va pasando fisicamente por una serie
valores intermedios, que no son detectados por los circuitos, disefl.ados para reconocer solo dos niveles.
0 sea que cualquier valor intermedio de tension electrica no tiene significado para el sistema. Del mis
modo, en un abaco no tiene significado una cuenta que se desliza de un extremo al otro de una varilla.
Los conductores del interior de las computadoras presentan uno de dos niveles o estados electricos posib
Grupos de 8, 16, 32, 64 cables -segtin sea- en un instante dado representan un numero binario que c ·
un dato, instruccion, o resultado, mientras que otros representan nillneros que sirven como direcci6n.
Al mismo tiempo, cables individuales que estan en 1 6 0 son usados para controlar (dar ordenes
los circuitos del computador acerca de las operaciones a realizar.
En el interior de un computador en esencia se guardan y se transmiten numeros binarios.

Computador digital es sin6nimo de computador, desde los primeros prototipos de la decada del .
hasta los actuales. En laboratorios de fisica o matematica pueden existir "computador
anal6gicos". En estos la tension electrica no es ta restringida _a dos valores como en los digitales.
Los niveles alto /bajo, asi como los simbolos 1 y 0 , pueden adjudicarse a los valores "verdadero1
falso" de la logica clasica, como lo hizo George Boole hacia 1850. Es por ello que tambien se Ham
sen.ales l6gicas las sen.ales digitales binarias tratadas, yen correspondencia circuitos 16gicos o binario~~
los encargados de generarlas y sensarlas. I,.
~
1-63

·Que es informaci6n anal6gica?


~--·-· - -....._ _
__ , ""'·'"--:-:-,·,-.~~~~~""&\'.:.%1~1*'-'--~~~~~*t.%~~~~:;,_~~;s~~~~,~~~Y~'t'}~~:~\~~~Jt~~~~~:~~~l~~~:Z:\t.;/::.·t?'§?~\>~~,,:-~t~"'.:':~<:~}~- ~:-:>:_~:~'<';:Ft,~~,::.~~'<::;.~t:::.:-..:z,. ':';~:::\·,~-':-:::)~::,. ~~:::~:.t~~T..;,_{';~~~: _:;,:,.;::. >~-''':o::~--· ,
..
,_, , ·,"~-<-,,:·-~::~-,--,~-;:". •· ,. .,.~-,':-:.'-'i-':':'-~/}~~~::"'~''~>;;;'~~t'.(,;~~T t:\~\~"i·:~~-:~~-2:~~~>t<.%f:.:.:::i:t:c~$

Los relojes digitales y anal6gicos son exponentes de dos formas diferentes de obtener llformac:i6n.
Un reloj solar es un dispositivo anal6gico, muy ilustrativo de las caracteristicas de la informaci6n
llamada "anal6gica". Se basa en el movimiento de la sombra de un objeto iluminado por el sol, que
sirve como simil o analogia del transcurso continuo del tiempo. Algunas marcas circunstanciales en
el reccrrido o tamaiio de la sombra, sirven para indicar determinados instantes de interes horario.
En su recorrido, la_ sombra pasa te6ricamente por infinitos puntos, sin soluci6n de continuidad.
Cada uno de los puntos significa informaci6n, y entre dos posiciones, siempre sera posible encontrar
otras intermedias. En esencia se ha convertido el movimiento del sol en una indicaci6n en un cuadrante.
Las manecillas de un reloj anal6gico, que se mueven en forma continua, pasan tambien por infinitas posi-
ciones para estimaci6n horaria. La existencia de nD.meros en tales relojes puede no ser necesaria. Solo bastan
unas pocas marcas de referenda en el cuadrante, como presentan muchos modelos, para estimar la hora.
Existe nn sinnD.mero de dispositivos mecarucos ideados para estimar o medir magnitudes ffsicas, los cuales
presentan variaciones andlogas a estas. La temperatura se mide por su efecto dilatador en una linea de mer-
curio de un tenn6metro. La altura del aceite en el motor de un auto se representa por la pelicula oscura
que deja en la varilla que esta sumergida en el carter. La velocidad de un vehlculo se representa por la
posici6n de la aguja en un cuadrante en funci6n del nllinero de vueltas por segundo que da una rueda.
El peso de un objeto, se representa en una balanza a resorte, por el estiramiento que sufre este a
causa de dicho peso. La longitud de una pieza de genero puede medirse en relaci6n con el numero
de vueltas que debe dar un cilindro donde se enrolla.

das
ajo,

mdo
an

Esto en algunos casos se hace por razones practico-constructivas, como el caso de la 6bservaci6n directa
del nivel de aceitef o de combustible en un vehlculo. En el caso de un cuerpo s61ido a pesar, no es factible
fraccionarlo en porciones de lKg 6 submUltiplos, so pena de destruirlo. Igualmente una tela no se puede
cortar en trozos de un metro para medirla. Asimismo, resulta mas sencillo evaluar variaciones de
temperatura por sus efectos dilatadores, queen forma absoluta por el grado de agitaci6n molecular.
Nos interesan en particular las seftales electricas que se hacen variar en forma analoga (sen.ales
anal6gicas) a la variaciones que presentan ciertas magnitudes, como las tonalidades de gris o color
de una imagen cuando es barrida por un escaner, o la presi6n del aire que actua sobre el micr6fono
de un telefono cuando hablamos por el.
En un escaner (ver unidad 2) mediante una fila de fotodiodos -uno al lado de otro- muy sensibles a las
variaciones luminosas, se barre una imagen que se quiere almacenar en memoria. Una luz ilumina la zona
que se esta barriendo, y los fotodiodos sensan la luz reflejada por la pequefia superficie que esta debajo de
cada uno. Considerando un fotodiodo cualquiera, durante su recorrido sobre la imagen barrera una tira
vertical angosta de la misma (figura 1.55), y detectara las distintas tonalidades que encuentre a su paso.
Cuando pasa por zonas de color negro por el diodo practicamente no circulara corriente electrica, y por
zonas blancas dara lugar a una intensidad de corriente maxima. Entre estos extremos, las distintas tonalida-
des de gris reflejaran valores intennedios de luz, y en correspondencia por el diodo circulara una corriente
proporcional al tono de gris sensado. Te6ricamente existen infinitos tonos de grises, por lo cual la corriente
que regula cada fotodiodo puede tomar infinitos valores entre los dos extremos para el negro y el blanco
Suponiendo un escaner de mano que se mueva a velocidad constante, si en un segundo recorre X
io. cm, el diodo considerado al barrer la tira, indicada en grisado, dara lugar a una circulaci6n de
corriente, que en el transcurso del tiempo sufrira las variaciones de intensidad indicadas.
1-64

---

/C/ . . ·
Variaci6n de la corriente
en un fotodiodo cuando
barre la tira indicada.

1,Qui
tiene
~"*"'"<""
Movimiento
del escaner

Figura 1.55

-Segtin se vio, en las seflales digitales binarias s6lo tienen significado (0 y 1) dos valores (0 y 5 volts);
saltan abruptamente de un valor a otro. A diferencia, en las seflales anal6gicas cualquier valor de t ·
si6n representa informaci6n acerca de los tonos de gris del area barrida por el diodo en ese segund

A fin de explicar el principio de generaci6n de las seflales electricas anal6gicas que se transmit
por las lineas telef6nicas como replica de las seflales que emiten nuestras cuerdas vocales,
describira una experiencia facil de realizar o imaginar, que permite ademas tener una prime
aproximaci6n al concepto de modulaci6n. ·
Sea una habitaci6n cuya lampara electrica en lugar de estar simplemente gobemada por una Ila
0
si-no", lo esta mediante un potenci6metro regulador de intensidad luminosa. Si giramos este ha
un lado y otro a un cierto ritmo, la intensidad luminosa fluctuara de igual forma. Esto sucede p.
que la corriente electrica que pasa por la lampara esta variando de intensidad de manera analoga :~
las variaciones a que sometemos el regulador. ii
Cuando hablamos, las vibraciones de nuestras cuerdas vocales impulsan el aire que las rode.I
produciendo variaciones de presi6n se~ejantes (como lo hace en mucho mayor grado el cono de~
parlante al vibrar). Si dichas variaciones de presi6n del aire acruan sobre el micr6fono de Ull
telefono, producen vibraciones antilogas a las generadas por las cuerdas vocales sobre una piezf
m6vil del micr6fono. Por formar parte el. micr6fono del circuito electrico telef6nico, acma d~
manera parecida al regulador luinµi.oso citado: hace varfar la corriente electrica que circula dei
modo analogo a las vibraciones de las cuerdas vocales. I
I
iI
Te6ricamente, puesto que entre dos valores pr6ximos es factible encontrar otro intermedio. una sefial anal6gica podria teno!
infinitos valores en su rango i
I
1-65 t-i·
3::$ l

Esta corriente llega por un cable hasta el receptor del otro aparato telef6nico que esta en ~
_.....
comunicaci6n, merced a la conexi6n establecida en la central tele£6nica.
De esta fonna, una -se-nai
electrica anal6giCa sirve para transmitir var!adones d.e
presion (himbien 22
d
anal6gicas) de un extremo a otro de una linea telef6nica. Si estas sen.ales llegan a un parlante o
auricular, haran que este vibre al compas de sus variaciones, las cuales se convertiran en audibles,
s-
-:s
por lo que se llaman sefiales de audio. Otras sen.ales anal6gicas como las de radiofrecuencia y TV ~

,)
no pueden ser escuchadas de esta forma, por ser de rapida variaci6n
La comunicaci6n entre dos computadores por via telef6nica sup one la existencia en cad a extremo
de un dispositivo periferico modulador I demodulador (modem). Cuando un computador transmite
datos a otro, el modem del primero actU.a como modulador. Esto es, el modem hace variar la
corriente electrica que envfa al otro extrema, como ocurre cuando se esta hablando por telefono;
pero se transmiten tonos de audio simples (como los que se escuchan al discar), cuyas variaciones
representan unos y ceros (proceso de conversion digital a analogico denominado modulaci6n).
En un parlante ubicado en la plaqueta del modem del computador que esta recibiendo se pueden
escuchar dichos tonos de audio enviados en esta "conversaci6n" entre computadores.

1,Que implies una conversion ana/6gica-digital (AID) yen que peritericos


tiene Jugar ?
Como se trat6, a los efectos de contar unidades o entes separables, individualizables, usabamos los
nUm.eros naturales 1, 2, 3, ... 85, ... 205, ... que simb6licamente reemplazaron al abaco para representar lo.s
objetos contados. La acci6n de medir magnitudes que varian dentro de un rango continuo de valores es
diferente a la acci6n de contar. Una medici6n en general se realiza cuantificando mediante numeros la sali-
da de un sistema anal6gico, o sea la sefial analogica que varia de manera similar a la magnitud ffsica a medir
Una forma de cuantificar es usar una escala graduada (que es recta en un termometro, y circular en un
reloj), dividida en unidades adecuadas, la cual presenta numeros eh ciertos puntos calibrados. Divisiones
menores entre los mismos permite apreciar temperaturas como 38,4 °C. En esencia esta representando la
propiedad de dilataci6n de la materia mediante nUm.eros fraccionarios, resultando una medida aproxilnada
En general, cuando nos valemos de numeros para medir cuantitativamente una magnitud
analogica, estamos efectuando una conversion ana16gico-digital (AID).

Esta conversion no siempre es necesaria. Asi, cuando se aprecia el nivel de combustible o de aceite
de un auto, no hace falta que la escala presente nlimeros indicadores~

En relacion con la digitalizaci6n de estas ultimas -semejante a la que se hace antes de grabar
musica en un CD de audio- trataremos una forma de conversion A/D empleada para este tipo de
sen.ales electricas de variacion relativamente lenta. La figura 1.56 ilustra los conceptos centrales rela
cionados con esta forma de conversion A/D. En ella se supone que en los instantes ti. tz, t3 ... se toma una
muestra o sea se mide el valor de una sen.al electrica anal6o-ica
I tr
hipotetica

que varia entre 0 y 15 volts. l
La medicion realizada en t 1 es de 0101 =5 volts, valor entero apro:xrrnado al valor real que es 5,4 volts .
Del mismo modo, en t2, t3 .•. se han determinado los valores enteros 1001 (9 en vez de 8,8), 1100 (12 en vez
de 11,6) .... etc. Si todos estos numeros binarios se guardan ordenados en memoria, la curva continua
(variable analogica) de la figura 1.56 quedara memorizada dentro del computador como el conjunto de
puntos separados de la figura 1.57. Si se unen estos, resulta una figura de forma parecida a la original.
Se comprende, que si en lugar de tomar 16 niveles de valor 0000 a 1111, se detemtinan 32 (de 00000 a
11111), existira un menor error de cuantificacion. En general, cuantos mas bits se utilicen para represen-
tar cada medici6n, y cuanto menos separados esten los instantes ti. tz, t3 ... -o sea cuantas mas muestras

Se denomina "error de cuant~ficaci6n" a la diferencia 5,4 - 5 = 0,4


1-66
5
4
,/1\
r
i l~I- ---.-·-.----------:==l ?
-
'/ \
~~~~~~~~~~~~

12
11
11,~
I I ~
\ I I
\
1100
1011
1~ -
-i m
p
10 I
I ~

7
1010 - .... I
9
SJ
I
1\ if".---,. j
1001
9
-
-
I
8
I I\ I V!
I
1
I ! i
1000
0111
: -
- -- [
I
7 I I

-t
I \
6
5
4 5,' I
I
I
! 0110
0101 5
- -~
I
I I
~
4
3
I
I
!
I
I
I I
I
TI
0100
0011
- - -1
'~
2
I I
0010 :
-w
\ ;T 0001
YI 0000 I I I I I I I I I I I I I I I I I

-
I

t1 ~ h~
Figura 1.56 Figura 1.57

se tomen de la sefi.al- mayor sera la correspondencia entre la sefi.al analogica y los nillneros que represen- ~
tan puntos cuantificados de ella en memoria, requiriendose mayor espacio en esta para guardarlos. ,,
La conversion A/D que tiene lugar en un modem se llama "demodulaci6n" no siendo un proceso 1;.
de cuantificacion como el recien ejemplificado. Consiste en detectar en la senal electrica anal6gica p·
-que llega al modem receptor por Hnea telefonica- los unos y ceros que fueron codificados por el J?
modem transmisor (citado en la pregunta anterior), y generar en correspondencia los dos niveles t:
de tension de la senal binaria digital que puede manipular el computador. Por ejemplo, si dos IJ
modems intercomunicados intercambian informaci6n por modulaci6n de frecuencia, al modem que l}'
esta recibiendo llegara una senal anal6gica que presenta dos frecuencias distintas (figura 1.70), y t,
detectara una frecuencia como portando, representando, ceros, y la otra frecuencia, unos. ~
f''.·

En un mouse comUn. la conversion A/D es en parte mecamca: el movimiento de la bolita se convierte y It


descompone en movimientos analogos en dos direcciones perpendiculares que comunica a dos rueditas ~;
dentadas o ranuradas que pueden girar. (figura 1.60). Los dientes de cada ruedita al girar van dejando j'.
pasar o cortando un haz de luz que incide sobre ellos, generada por un dispositivo fotoemisor. En el giro ~r
de cada rueda dentada, cada paso-corte-paso del haz es sensado por un fotodetector, que asi genera un t;
pulso electrico con cada diente de la rueda1• De esta forma, el movimiento continuado de la bolita ~;
transmitido a las dos rueditas se convierte en dos series de seftales digitales, que permiten determinar la d
direccion y velocidad de ese movimiento. Se ha realizado asi una conversion A/D. ~

Mientras que una conversion AID esta relacionada con la entrada de datos desde el exterior hacia un com- f~
putador, una conversion DI A se requiere para ciertos tipos de salida desde este hacia el mundo exterior. '
Merced a ella, una senal electrica digital que representa unos y ceros, se transforma en una sen.al ~
analogica. Se trata de procesos inver$os a los esquematizados en las figuras 1.60, 1.64y1.70. f:
Asi, una conversion D/ A se realiza en una plaqueta de video (figura 1.67), para que el monitor ti
-hoy dia analogico- pueda brindar una amplia graduaci6n de colores, a fin de obtener una imagen I!
mas real. ,,
En un modem, la acci6n de convertir lo? unos y ceros provenientes del computador en variaciones
de una sen.al electrica analogica que se envfa por linea telefonica,.se denomina "modulaci6n". f~
Tambien se requiere conversion DI A para la informacion que recibe un periferico graficador ("plotter").

En la figura 1.60 la luz emitida por un fotoemisor pasa entre dos dientes de una rueda, la cual activa al fotodetector correspondiente;
mientras que la luz que emite el otro es interceptada por un diente, por lo que el fotodetector ligado al mismo no recibira luz.
1-67

. Que hardware encontramos para la entradalsalida de datosf desde los ~


""""
" ifericos hasta f!!_p_q!_pj§_!J central de un computador ? c!
~
Segtin dijimos, la designaci6n "perifericos" proviene de la ubicaci6n de estos dispositivos en la [; -
periferia de un computador, en relaci6n a la porci6n central constituida por la UCP y la memoria ;,J
~
~
principal. Tambien se denominan unidades de entrada o salida segU.n sea su funci6n.
)
·~t'eriBhiiffit~tl1a1Jiah1: .. ···.~~~t~~R'.~¥~:~~-·~~~~.J:?fi!n~a.·.de .los. perlf~ricos . es·.fo1t~f#f~.·.·~~~.~····qg~•·•#~
... ~;~ . ~~~~~~~'.. )IDt~P$~:+~ f?Refqciggep d(! cptrada, o a Ia inversa en operacio.l).esd~sa.Jifla~; ·
Esto es, 1..m periferico oficia de 'frontera" entre el exterior y el interior de un computador para la
conversion de senales. Del mismo modo, nuestros ojos, oidos, piel, etc., sensan sefiales extemas y las
transforman en senales electricas que van hacia nuestro cerebro o medula; y por ejemplo, nuestras cuer-
das vocales y las cavidades asociadas realizan un proceso opuesto para comunicarnos con el exterior.
En una PC existen perifericos que estan fuera del gabinete del computador (teclado, impresora, mouse, etc.)
y otros que estan dentro del mismo (unidades de disco - flexibles, rigidos, CD ROM- o un m6dem intemo)
Siempre indisolublemente ligado al periferico existe un media que representa el mundo exterior: el papel
en la impresora, las teclas en el teclado, la pantalla en el monitor, la superficie donde se desplaza la bolita
del mouse, la imagen que recorre el escaner, el disco fijo o inserto en la unidad correspondiente, etc.

En una operaci6n de entrada los datos que Hegan del exterior a un periferico tienen como destino
la memoria principal, mientras que en una operaci6n de salida el movimiento es el contrario.
Si se observa en una PC el encadenamiento de subsistemas conectados desde un periferico hasta la
"motherboard", que contiene la porci6n central, en general podemos distinguir las siguientes
etapas de hardware (figuras 1.60 a 1.65), cuyas funciones luego se detallan:
1. En el periferico encontramos circuitos electr6nicos que constituyen lo que denominaremos
1
"electr6nica del periferico".
2. Un cable conteniendo varios conductores une electricamente el periferico en cuesti6n con un
2 3
conector correspondiente a una plaqueta interfaz , insertable en la "motherboard" • Para tal fin,
dicho cable en sus extremos presenta conectores apropiados.
3. La plaqueta interfaz4 porta un nivel intermedio de electr6nica -entre la electr6nica de uri periferico
citada y la porci6n central- que llamaremos electr6nica intermediaria" (que para el teclado esta en la
H

"motherboard"). Circuitos con memoria de esta constituyen registros denominados ports ("puertos").
4. A un bus de E/S de la plaqueta principal ("motherboard") estan conectados varios z6calos
donde se insertan plaquetas interfaces, a raz6n de una por z6calo. De este modo un bus oficia
de "camino" comun, para permitir que varios dispositivos se puedan conectar a circuitos de la
parte central. Como se vera, en la motherboard" de una PC puede haber distintos tipos de
0

5
buses de E/S que cumplen esta funci6n, pero con distinta velocidad de transferencia de datos.

Elegimos esta denominaci6n generica, para evitar nombres como "controlador/a de periferico, dado que tambien se designa con
este ultimo nombre a plaquetas que se insertan en la plaqueta principal, a las cuales se conecta el cable del periferico correspondiente.
Asf, en una PC se habla de "controladora IDE o SCSI (se pronuncia "scasi") para denominar los circuitos que estan junto a la caja que
contiene el disco rfgido o a la del CD. Pero tambien por ejemplo se llama "controladora", a la plaqueta (o tarjeta, como se diga) de
vfdeo a la que se conecta el monitor, ya los circuitos integrados de la "motherboard" que constituyen la denominada "controladora" de!
teclado, siendo hoy comun encontrar tambien en la "motherboard" controladoras de disco Y disquetes. Vale decir, que la palabra
controlador/a designa la electr6nica que gobiema las acciones de un periferico como el disco rfgido, asi como la que sirve como
intermediaria para el pasaje de datos entre el periferico y la parte central".
2 Interfaz es una palabra que en computaci6n designa en general un hardware intermediario, ubicado entre dos subsistemas
independientes, que sirve para comunicarlos y adaptarlos electricamente. Asf, puede decirse que un periferico es una interfaz entre el
exterior y el interior de un computador, o que un bus o un cable es una interfaz entre los dispositivos que conecta, etc. En las PC
cu.ando se habla de interfaz ( "inteiface" en ingles), se asume que se trata de una plaqueta adaptadora, insertable en la plaqueta
principal, cuyos circuitos por un lado estan conectados a la electr6nica de un periferico (a traves de un cable) y por otro a la porci6n
central (a traves de un bus). Dichos circuitos contienen registros de almacenamiento transitorio (ports), donde programas dejan 6rdenes para
el periferico, y para retener datos en transito entre este ultimo y Ia porci6n central. Otros circuitos sirven para generar sefiales de interrupci6n.
3 El teclado se conecta directamente a Ia "motherboard", siendo que los circuitos de su interfaz ("controladora") estan en dicha plaqueta.
4 Esta plaqueta tambien se llama controladora, o plaqueta controladora, por lo que vale Io dicho en el pie de pagina anterior.
El primero en aparecer fue el bus ISA (Industry Standard Architecture) desarrollado por IBM para las XT, tambien llamado bus
de! sistema o bus de expansi<5n. Este bus hoy existe -por razones de compatibilidad con plaquetas y perifericos conientes- en las
s cuatro etapas de hardware citadas
operac1ones de es;--desae 0 hacia distifltos perifeticos ?
e,;r L

Ejemplificaremos para perifericos corrientes 1; la funci6n que desempefian los cuatro subsistemas descriptos
en una operaci6n de entrada, desde que un periferico en cuesti6n detecta datos, hasta que llegan a memoria
9
principal; y en una operaci6n de salida, en el movimiento inverso de datos. 2 Oatosdel
adestino:
Si bien en el presente casi todos los perifericos tienen el circuito de su interfaz y ports integrado en el chip 0
dpal a fnl
chips que constituyen el chipset que acompafia al procesador en la motherboa1d (figura 1.5), se ha preferido J la une co
mantener el esquema anterior con la interfaz visible en la tarjeta enchufable en el bus correspondiente, a los I ..
efectos de que se vea mas claramente el camino que sigue la informaci6n. Esto es, independientemente de que I
una interfaz este en una tarjeta o en el chipset de la mother, lo gue interesa es su funci6n, que sera siempre la I
misma, sin gue interese d6nde se encuentra fisicamente. Vale decir, que ningun periferico puede conectarse ~
directamente a un bus (sea ISA, PCI, etc.), sino que por intem1edio de una interfaz, la cual tambien presenta i
registros ports para que en uno de ellos el periferico reciba 6rdenes, y que por otro envie o reciba datos. I
Memoria pri
Empezando ·con el mouse (figura 1.60), en el mismo tiene lugar la conversion AID antes descripta, como comienzo
de cada operacion de entrada. Los pulsos generados -que representan las componentes del movimiento de la bolita
segiln dos ejes perpendiculares- son enviados en serie por la electr6nica de! mouse, a traves de un conductor
II DRAM.........._

contenido en el cable de salida. Este cable se conecta a la plaqueta "multifuncion"3 donde esra la interfaz "port
serie"4 , elegida para el mouse (electronica intermediaria).
i
Un circuito de esta es un registro port de datos, siendo como todo registro, hardware dedicado al
almacenamiento temporario de los datos que Hegan desde la electr6nica del mouse.
Ii
Del port, dichos datos salen en paralelo, byte por byte, a traves de las lineas de datos de un bus de EIS, y asi
llegan al registro AX de la UCP (microprocesador). Por ultimo, del registro AX pasan a memoria, donde un
Ir
programa hace que el cursor del mouse aparezca en pantalla.
i
En el caso de la impresora (figura 1.61) la operaci6n de salida tiene lugar cuando pasan de memoria principal al
registro AX datos a imprimir, a raz6n de un byte por vez. Estos bits de datos desde AX, ya traves del bus ISA,
Hegan simultanean;iente a un registro port de datos5 de la interfaz, que Ios guarda temporariamente. Este port

fornia parte de la circuiteria de la interfaz "port paralelo" tambien ubicada en la plaqueta "multifuncion" (nivel I
electr6nico intermediario). De este port, cada byte a imprimir pasa en paralelo -a traves del conector y cable que
lo vinculan con la impresora- a la memoria de almacenamiento t·:mporario de este periferico, que forma parte de
II Plaqueta i
~

su electronica6. Esta tambien se encarga de convertir la informacion binaria a imprimir, contenida en su memoria, ~ elecrtr6n~
en sefiales graticas en tinta negra o color sobre un soporte de papel, que oficia de mundo exterior. ("port seri4
conecta ~
La electr6nica del periferico teclado esta contenida en una pastilla con un microprocesador dedicado (figura 1.62).
El mismo, entre otras funciones, detecta que tecla se puls6 o libero. Luego envia en serie, hacia el registro port del
teclado, el c6digo binario de dicha tecla por una linea, la cual forma parte del cable que se enchufa a un conector de la
"motherboard". Por ser un periferico muy esrandar, el teclado no se conecta a una plaqueta insertable en la
"motherboard". La electronica intermediaria (interfaz con port) del teclado, conocida como controladora de teclado,
esra en la plaqueta principal. Del port citado, los 8 bits del c6digo de la tecla siguen en paralelo por el bus ISA, I
hasta el registro AX, de donde van a memoria principal. I
l
t
iI 4.
Sen~
a pore
I
~.
dent
porlJ
l[ cone
I
~
dela
Cuyo funcionamiento se describe en la Unidad 2
Datos se·emplea aca en un sentido general, que puede incluir instrucciones y resultados, segun el caso.
"iit
Esta plaqueta contiene varias interfaces: para disco rigido, CD ROM, disquete, port paralelo (para impresora), y una interfaz port serie ~
Designado CO Ml a6 COM 42 en una PC. Registro "port" es sin6nimo de "port". ~
No debe confundirse un port, que es un circuito con memoria que oficia de registro, con el conector de la parte trasera de un
i
~
gabinete, que simplemente sirve para conectar un cable por el cual pueden llegar o salir datos desde o hacia dicho port.
6
Esta electr6nica hoy dia es tan compleja que incluye un microprocesador dedicado a la impresora, con un programa en ROM que IJ
maneja el funcionamiento de la misma. En las impresoras laser dicho microprocesador puede ser uno veloz de tipo RISC. ~

vt~
1-69

9
oatos del mouse llegando
a destino: la memoria prin-
cipal a traves del bus que
la une con el procesador

1.
Movimlento analOgico
de la bolita, que se
descompone en los
~movimientos de las
ruedas das

Plaqueta interfaz con la


elecrtr6nica intermedia
("port serie") a la que se
conecta el mouse

4. I
Sefiales digitales generadas
IC.,
por el movimiento de las ruedas
dentadas se transmiten en serie
porunconductordeuncablede
s
conexionado y entran a un chip 2. Conversi6n AID ~
de la interfaz "port serie" electromecanica
Chip que fonna parte Dispositlvo sensor
de la electr6nica del de luz, que genera la
periferico mouse setlal dibujada
3. Setlal electrica digital re-
sultants de la conversi6n
Figura 1.60
1.71

Merced a la ejecuci6n de ?tra


instrucci6n de la subrutma
Hamada par la interrupci6n,
el c6digo de la tecla pulsada
del registro AX llega a
memoria principal a traves
del bus que une esta con
el procesador. ~,/'

4.
Merced a la ejecuci6n de una
instrucci6n de la subrutina
llamada por la interrupci6n,
el c6digo de la tecla pulsada
se dinge al registro AX, primero
a traves de las lineas de datos
'del bus ISA

3.
La controladora activa la linea IRQ
solicitando se interrumpa el programa
en ejecuci6n, para que se ejecute una
subrutina que lleve el c6digo de tecla
al registro AX, y de este a memoria

Controladora del teclado


(lnterfaz con electr6nica
intermedia) conteniendo
el port de datos Electr6nica del teclado

Figura 1.62
I
1-72

=
Ii

un periferico incluido en el gabinete de una PC, como la uni dad de disco (duro, flexible, Cb Ii - -1.-
_________R_O_M_)_,~presenta_1:1!1a -~~.~tr6nica , queen una operaci6n de entrada (hacia memoria) sensa los bits
1
I
grabados en serie en un sector de una pista de un disco, uno a uno, mediante el cabezal (figura ( ~
1.63). Luego de memorizar transitoriamente en un registro estos bits del sector leido, la electr6nica I'· '
del periferico los envfa en paralelo, por tandas, a traves de un cable plano. Este cable se conecta
mediante un conector con "agujas" a la plaqueta multifunci6n, donde existen interfaces para varios ·
perifericos. De esta, los datos leidos siguen camino -por las lmeas de datos del bus al cual ella esta I
conectada- hacia la porci6n central con destino a la memoria principal.
2
i
Una operaci6n de entrada implica un movimiento de datos inverso al descripto. . I
En la plaqueta multifunci6n estan los ports que Jarman parte de la interfaz de la disquetera, mien- . 1·
tras que en un disco rigido o en un CD tipo IDE, dichos ports estan en la electr6nica del periferico. .
Actualmente (figura 1.5) estan en la "mother" de una PC, la electr6nica y conectores que antes estaban en I
la plaqueta dibujada en la figura 1.63, con interfaces para unidades de disco (duro y CD), disqueteras (3~
~ y 5 ~ ), y las interfaces "port serie" y "port paralelo", tipicamente usadas para el mousey la impresora.• B
. ' i
3
El periferico modem intemo junto con su interfaz "port serie" estan en una plaqueta insertable.1
(figura 1.64), a la cual se conecta una lmea telef6nica. J
En una operaci6n de entrada, la seflal anal6gica modulada llega por dicha llnea al circuito demodulador •I
-que forma parte de la electr6nica del periferico modem- que la convierte en una serie de pulsos (conver. (
4
si6n A/D). Estos entran a la electr6nica intermediaria, o sea a la interfaz del m6dem , en donde son I
.• ·
1
convertidos en 8 bits en paralelo (conversion serie a paralelo) y pasados a un port de datos. Desde este .• ~1
se transferiran a traves de un bus al registro AX de la UCP, y luego por otro bus llegaran a memoria. .·• ;
De manera inversa, en una operaci6n de salida (figura 1.70), otro port de la interfaz recibe desde AX por el ~'.
bus, un byte en paralelo, para que sea convertido en bits en serie, los cuales son modulados y transmitidos i
por la linea telef6nica. De este modo, a traves de ports de su interfaz, el m6dem puede enviar o recibir datos I
-hacia o desde memoria- usandose el registro AX como escala intermedia en la transfer~cia de datos entre ~
ports y memoria principal En la figura 1.70 se trata con mayor detalle el m6dem y su interfaz "port serie". ~

Por las particularidades que se veran en relaci6n con aspectos comunes de los perifericos tratados, J 3.
dejamos en ultimo termino el periferico monitor (figura 1.65). Por empezar, la denominada "plaque ~ Losdat
ta d~ 5
video" -que se ench1:1!a ad Ia "mother?oar~"-:
ad emd as de. podrtarV1RaAeMlect(rV6;1dica
conhene una pequefl.a porc10n e 1a memona prmc1pa1, enomma a 1 eo
..•.·
iv1 , on e ;
RAint:r~)eddiardia,i paralek
perif8ric.
se almacena la informaci6n a visualizar. Esta llega a la VRAM merced a la ejecuci6n de un I (lnterfa
:programd~ ppor etl micropdroctesadodr, y ebsl convertida en sefl.atlesdana!d6gicas por la e.ltectr6rut·ca
mterme ia. or res con uc ores e1 ca e que une 1a p 1aque a e v1 eo con e1 mon1 or, es as ~,
i (2byt~

-sefiales 7 (y las de sincronismo) Hegan a la electr6nica del monitor, que se encarga de convertirlas en i
una imagen visible en pantalla (soporte que conforma el mundo exterior, detallado en la Unidad 2). ~.·.
Observese que de la VRAM, y luego de una conversion DI A, la informaci6n a visualizar llega I
directamente a la electr6nica del monitor, sin que medie entre esta y memoria principal, ninglin i.
Memor
registro port intermediario para datos, como sucedfa en relaci6n con los perifericos antes citados. I DRAM

I~

En un disco duro o un CD, esta electr6nica, que forma parte de la unidad de disco se conoce como "controladora" inteligente,
I
que hace que un sistema operativo pueda "ver" un disco conforme al sistema de archivos que maneja. Hoy dfa las mas usadas se I
conocen con las siglas IDE y SCSI Comprende un microprocesador dedicado, registros, y una memoria buffer para almacenar
temporariamente informacion en tninsito de~;de o h~cia el disco. Tambien puede contener una memoria "cache" de disco.
2
II
En el caso de datos provenientes de! disquete, ellos no pasan por el registro AX (como en el caso del teclado), sino que un subsistema
a
electr6nico se encarga de Ilevarlos directamente la memoria, sin intervenci6n de la UCP, acci6n conocida como acceso directo a memoria -
I

I
ADM. Actualmente, en una PC resulta mas veloz que la interfaz de un disco rfgido envfe los datos al registro AX, y de este van a
7. /
memoria, dado que los buses utilizados para hacer ADM no son suficienternente rapidos en ,·daci6n con Ia velocidad del procesador. Losbyt
3
Existen moderns externos, que se conectan a una plaqueta con interfaz "port serie". dlsquet
4 ~ porel t
Esta interfaz es del tipo "port serie". La plaqueta de un modem en el presente contiene un microprocesador dedicado. I
Conocida tambien corno "controladora de vfdeo". habienc
Esta RAM, a la par que es escrita por el microprocesador (UCP) puede ser lefda por la electronica intennediaria.
Que gobiernan los tres cafiones electronicos que forman cada punto de color al barrer la pantalla, merced a la mezcla de tres
i
;;
~
lfneas<
colores: rojo, azul y verde, siendo que cada cafi6n al impactar genera uno de estos colores. A diferencia de otros cables que conectan un I
periferico con su electr6nica intennediaria, por este cable se transrniten sefiales anal6gicas. I
~
1-73
Disquete girando dentro Abertura del "sobre"que permite
-de! "sabre" qi_ae lo protege a! cabsza! aec3d3r a las pistas

Cabeza! de lectura- escritura


de la cara superior del disquete

2.
l Los bytes lerdos pasan en serie a
la electr6nica del periferico

3.
Los datos son transmitidos en
paralelo por la electr6nica del !
perlMrioo hada la oonlrOladora /4.
(lnterfaz) de la disquetera / Bytes de datos
. llegan al reglslro
(2 bytes por vez)
port de datos

Chip de la eledrOnlca
intermedla oon el port
de datos de la disque
f
tera
{
/ Amedida que los bytes Hegan
al port son enviados a memorla
principal y escritos en 6sta por
circuilos dedcados a tal fin (el
~ Directo a Memorla sin
pasar por el procesador)
6.
Bytes son transmltldos por 1as
7. lfneas de datos del bus ISA
Los bytes lefdos en el
dlsquete Ilagan a memoria
por el bus que llega a 6sta, Plaqueta interfaz multiple
habiendo pasado antes por {para la controladora de disquetera
Figura.1.63
lfneas de datos del bs ISA disco rfgido, CD, mouse, impresora
1-75

.)

4.
Senates anal6gicas resultantes de la oonversiOn. Segun su
intensidad detenninan el oolor de cada punto de la pantalla
(pixel) por la mezda de 3 oolores .Blas gobieman 3 caflones
del tubo de rayos cat6dicos quebombardean oon electrones
cada pixel para fonnar el oolor del mismo.

I
I
I
J 1.
Datos a visualzar salen desde
reglstros del procesador hacia
la VRAM (porci6n de memoria
principal ubicada en plaqueta)
a traves del bus local VESA

Figura 1.65
I-76

------
0
eTI
ta:
Endescrif,~::ti~llliil~';~~~~g~';,Y,:f,~~;;ti~;38comosill1 Er
Ta
ffij
op;;;
Por su posici6n intermedia en relaci6n con un bus de E/S y la electr6nica de un periferico, un port solo Cc
con informaci6n digital, ya sea cuando recibe (en una escritura delmismo) o transmite (cuando es leido). · en
Observese que la palabra "registro" es bastante generica. Hace menci6n a un circuito capaz de
guardar, memorizar, un nillnero reducido de bits (8, 16 6 32) durante un lapso de tiempo requerido.
Existen registros en la UCP, en la electr6nica intermediaria, en perifericos; y tambien a las posicio..
nes de memoria se las puede llamar registros. Da
0 sea puede decirse que una memoria consta de registros. Por ejemplo, es correcto afinnar que los registros . un
de la UCP conforman una pequefia memoria RAM, o que una memoria de un megabyte son 1.048.576 de ace
registros de un byte. Si bien un registro posee memoria, esta Ultima palabra se usa para denotar un lugar de · en1
ahnacenamiento de muchos bytes, compuesto en correspondencia por muchos registros. Po.
Para evitar aclarar "registro de la UCP", "registro port", "registro de mernoria", etc, es costurnbre que: ha<
mi1
• "registro" a secas se refiera a un registro de la UCP; p01
• "port" designa un registro que esta en la electr6nica intermedia (interfaz) imJ
• no se denornine registro a una posici6n de memoria piu
Oh
vez~
1,Por que operan como ••buffersn ciertas zonas de memoria7 Jos ports de Su1
una interfa~ la memoria cache y otras memorias ? rea
Os
Una traducci6n de la palabra "buffer" es amortiguador,. dispositivo. capaz de absorber rapidamente energfo esc1
proveniente de un brusco desnivel recorrido por la rueda,. para luego expulsarla lentamente, de mod.o de no · 20 I
prod.ucir saltos bruscos en el chasis. Lo anterior supone una retenci6n temporaria de la energia absorbida. tirSE
Cm
Como se ejemplificara, en general, un buffer adapta dos velocidades distintas, permitiendo ' la e~
independencia entre un transmisor y un receptor, con el fin de que ambos puedan estar ejen
simultaneamente ocupados, sin que el mas rapido pierda tiempo esperando al otro. .· tran
Estc
Un lavarropas automatico cuando se desagota, envia rapidamente agua hacia una pileta (buffer),. que escr
retiene ternporariamente toda el agua enviada,. de modo que la rejilla pueda tomarla a un ritmo apropia- · lleg
do para no desbordar. Esto permite que mientras el agua pasa a la rejilla, el lavarropas realice otra opera· mer
ci6n, sin que tenga que enviar el agua lentamente, para adecuarse a la velocidad con que toma la rejilla. Estc
0 sea que se independiza una velocidad de otra. debt
En el ejemplo anterior el transmisor es rapido y el receptor lento. Una situaci6n opuesta ocurre cuando una
canilla envfa poca agua por segundo, y colocamos un balde para que se vaya llenando. Mientras esto tiene En
lugar podemos realizar otra tarea, conforme a nuestro ritmo de trabajo, sin estar inactivos esperando. tran.
Una vez que el balde se llen6 podemos usar el agua contenida, arrojando de una sola vez 10 6 20 Esto
litros en un segundo. El balde es un buffer entre la canilla y la persona. seal
Iguahnente un buz6n acomod.a, independiza, el ritmo de envfo de cartas de las personas, con la velocidad
Asi,
del servicio del vehiculo recolector, que recoge de. una sola vez la bolsa con cartas a una determinada hora.
mot<
En computaci6n,. se empez6 a usar la denominaci6n memoria buffer para zonas de la memoria
principal donde se guardan datos en trtinsito, desde o hacia perifericos. Por ejemplo, permanecen
en una de estas zonas datos que van llegando a una cierta velocidad provenientes de un disco,. para
ser procesados luego, a gran velocidad, mediante la ejecuci6n de algiln program.a por la UCP. de veli
2
Mientras los datos van arribando a memoria, la UCP puede dedicarse a ejecutar otro programa.
en lug.
4

convie
En algunas publicaciones se llama port al conector al cual se enchufa el periferico.
arrojar
El port del teclado esta en la controladora del mismo, situada en la motherboard.
1-77

Otra zona de la memoria esta destinada a datos a imprimir, que un programa deja rapidamente en
-----U -=a-r-=> ""'"<:> co-;in .orn:ri"'tin<;: "' 11n"' 1YY\rYracrY•""' .., ,,~- ___ 1 ~~d d ~-- --··-·-··-···· 1· . . . - -·· ··-·- .,..,, •. ,
vc:1 0 c1 a
1
c::il-a, E ... " --'i.A.._.--., . . . ~ ....... ~·· ~ ..... ~~~ ~ .......... ~ ~~·.t"_._ ........ ~ .............
LU.La en promea10 menor. r.1 rec1aao
tambien tiene reservada en memoria una zona buffer para los c6digos de teclas pulsadas.
En general; cada periferico puede tener en memoria principal su zona buffer.
Tambien puede designarse buffer a un registro o registros que almacenen temporariamente infor-
maci6n en transito, con el fin de adaptar, independizar, velocidades.
Con este sentido, son buffers los registros que forman parte de cada electr6nica intermedia, ubicada
entre su periferico y la porci6n central, como se estableci6. 0 sea que las ports son buffers.

, , ,_ ...,. ,_ _,,_ . ,. ,,Q,l'.'.~~J'.!}£.,,. . ·. . ,,,,,,h.,;,,,,_,,~_,_ ,,;,.,,,,_,,_,,;,.,,_,,,_,,c''


Dada la gran diferencia de velocidades de operaci6n y transmisi6n de datos, entre la parte central de
un computador (totalmente electr6nico) y sus perifericos (con partes con movimientos mecanicos o
accionados por personas, como el teclado ), se impone necesariamente la existencia de buffers (ports)
entre ambos, para poder almacenar la informaci6n en curso, durante el tiempo necesario.
2
Por ejemplo, en una PC se usa el bus comun ISA para entrar datos desde el teclado, o enviarlos
hacia una impresora. Por ese bus es factible transmitir como maximo 1 MByte(seg. = 1 byte/
microsegundo, o sea tambien una letra cada microsegundo. Si se piensa los pocos caracteres (bytes)
par segundo que se pueden tipear desde un teclado, o que una impresora con cabezal m6vil puede
imprimir 200 a 300 caracteres par segundo, se comprende la diferencia abismal de velocidades que
puede llegar a existir entre el mundo interior electr6nico de un computador y el mundo exterior.
Otra situaci6n se da en el caso de perifericos que en muy breves lapsos pueden transmitir datos a
velocidades cercanas a las que tienen lugar en la porci6n central.
Suponiendo una memoria principal DRAM con 70 nanoseg. de tiempo de acceso, seria factible
realizar lecturas o escrituras sucesivas, a raz6n de una cada 100 nanoseg = 0,0000001 seg. 3
O sea que en dicha DRAM te6ricamente seria posible realizar un maximo de 10 millones de lecturas o
escritura por segundo. Si en cada una se leen o escriben 2 bytes, en un segundo se podrian leer o escribir
20 millones de bytes desde o hacia memoria principal. Esto es, desde o hacia esa DRAM podrian transmi
4 5
fuse hasta cerca de 20 MBytes/seg = 20 Bytes/microseg. en un sentido u otro, seglin se lea o escriba.
Cuando en una lectura de un disco rigido la cabeza pasa sobre un sector de una pista, puede enviar hacia
la electr6nica de ese periferico una copia de los bits almacenados a una velocidad de transferencia de por
ejemplo 5 Bytes I microseg. Si se usa bus local para enviarlos hacia la porci6n centrat la velocidad de
transferencia por dicho bus puede ser hoy de por lo menos 3,5 MBytes I seg =3,5 Bytes/ microseg.
Estas velocidades se acercan a los 20 Bytes/microseg. recien calculados, con que se pueden leer o
escribir datos en forma continua en memoria. Por razones de disponibilidad de esta, los datos que
Hegan desde la electr6nica del disco deben aguardar unos breves instantes antes de pasarlos a
memoria. Entonces, temporariamente hay que retener datos, hasta que la memoria pueda recibirlos.
Esto podrfa asemejarse a la situaci6n en que un jugador de futbol recibe la pelota que otro le pasa, y
debe retenerla un instante, hasta que un tercero pueda recibirla.
En una plaqueta interfaz, ademas del port para datos en transito, existen otros registros para retener
transitoriamente las 6rdenes (comandos) que provienen de la ejecuci6n de programas (de la ROM BIOS).
Estos programas ordenan las operaciones que debe realizar el periferico conectado a dicha plaqueta, o
sea relacionadas con el control del mismo. Por htl motivo se conoc;:en como "ports de control"
Asi, a la interfaz (controladora) de una unidad de disquetes debe indicarsele, como ser: que active el
motor, el cilindro, pista y sector a acceder, y si debe leer o escribir. Los c6digos de estos comandos

1
El monitor, por ser un dispositivo totalrnente electr6nico, es el unico periferico que no tiene port de datos como buffer adaptador
de velocidades. Los datos a visualizar de la zona de memoria principal reservada para video se convierten en sefiales para el monitor.
2
Industrial Standard Architecture, o bus del sistema.
En una mernoria DRAM se debe esperar entre una lectura o escritura y Ia siguiente, por lo cual se ha estimado una cada l 00 nseg
en Iugar de una cada 70 nseg.
4
Recordar que se define I MB corno 1024xl024 bytes y no 1.000.000 de bytes.
Puesto que un segundo es un tiempo rnuy largo en un computador, y que Ia memoria tiene unos pocos megabytes de capacidad,
conviene pensar la velocidad anterior en su equivalente 20 Bytes/microsegundo. Del mismo modo, no da mucha idea decir que podemos
arrojar 600 litros de agua en un minuto, en vez de su equivalente real de I 0 Iitros por segundo, suponiendo baldes Ilenos de esta capacidad.
Otra funci6n esencial de una plaqueta interfaz, es generar por una linea la sen.al que se envia a la UCP para
------~~~ciiark . interrupci6n del programa en curso de eiecuci6n (IRO -interrupt reauest- en las PC). Por
ejemplo, cuando ~el periferlcollgado a una de estas plaquetas 'se ~ncret6 algo: en ~l teclado se apret6 una
cf~ tecla, una impresora esta lista para recibir mas datos, una unidad de disquetes termin6 de leer o escribir, etc.
~'
et }
En las figuras 1.62 y 1.63 se muestra la linea IRQ saliendo de la electr6nica de una interfaz, para luego
continuarse primero en la correspondiente linea de control del mismo nombre del bus ISA, y luego en la
arl Jinea que llega hasta un chip, al cual llegan todas las lineas IRQ de las distintas interfaces. Este chip oficia de
p~
p:
"tirbitro de interrupciones", para el caso que ocurran dos o mas simultaneamente, y su linea de salida va a la
entrada INT del microprocesador, a fin de solicitar interrupci6n transitoria del programa en ejecuci6n.
e~
Hi
"'
nfe'
1, Como se escribe o lee desde un microprocesador 80x86 un registro
t~' port mediante las instrucciones IN y OUT?
t,
SegU:n se vio (figura 1.15), el c6digo de maquina Al0050 de la instrucci6n 11 antes usada, comprende el
c6digo de operaci6n Al, siendo que 0050 permite determinar la direcci6n de memoria (5000) donde
esta el dato que debe ir al registro AX de la UCP. 0 sea, que para una direcci6n XXXX cualquiera, el
se c6digo de maquina generico sera AlXXXX, siendo Al el c6digo que ordena la operaci6n a realizar.
·'
k~ Para evitar tratar con c6digos numericos, esta orqen Al, de mover un dato de memoria hacia AX se abrevia
MOV en lenguaje assembler, que codifica abreviadamente la operaci6n que ordena ese tipo de instrucci6n.
Del mismo modo, en forma general, el c6digo de operaci6n de sumar (adicionar) es ADD, restar es
SUB (sustraer), saltar es JUMP, etc.
En las operaciones de entrada de las figuras 1.60, 1.62 y 1.64, datos son enviados por la electr6nica
a
de un periferico hacia el port de datos de la interfaz, a la cual el mismo esta conectado. Luego el
a
data pasa del port al registro AX, a traves del bus ISA, y del bus del procesador. Este movimiento se
e
realiza cuando la UCP ejecuta lo asi ordenado par el c6digo de una instrucci6n abreviada IN (de
"input") en assembler, que forma parte de una subrutina, por ejemplo una de la ROM BIOS .
~
Una vez que un dato lleg6 al registro AX, la operaci6n de entrada se completa mediante la ejecuci6n de otra
s. instrucci6n de movimiento, como Ii analizada, que ordena escribir en memoria dicho dato que esta en AX.
De esta forma se completa la operaci6n de entrada, que comenz6 cuando el periferico envi6 el dato al port.
Las operaciones de salida de las figuras 1.61 y 1.65 empiezan con un movimiento desde memoria
hacia AX, que se realiza merced a la ejecuci6n de una instrucci6n de movimiento, como 11 tratada.
Luego el data va desde AX hacia el port de datos de la interfaz a la que se conecta el periferico. Para que
/1
este mavimiento tenga lugar, debe ejecutarse el c6digo de una instrucci6n de abreviatura OUT (de output")
Luego que el dato lleg6 al registro port, la electr6nica del periferico lo tomara (leera) del mismo.

Antes que tenga lugar una operaci6n de entrada a salida, se le deben enviar comandas a la electr6nica
, · 1
del periferico involucrado, a fin de indicarle que debe hacer • Para ello estos comandos deben
llegar hasta las registros ports (para comandos) de la interfaz a la cual el periffrico se conecta.
Esto se logra, como en una operaci6n de salida, pasando primero el comando desde memoria al
registro AX -ejecutando una instrucci6n tipo 11- seguida de una instrucci6n tipo OUT, para que el
comando pase de AX a un port de comandos. Esto se ejemplifica en la figura 1.67)
Para ejecutar una instrucci6n IN (lectura de un port de direcci6n XXXX indicada en la instrucci6n, y
envio del contenido del port al registro AX), la UC ordena las siguientes acciones basicas (figura 1.68):
Llevar al valor 1 el cable L/E de la UC que llega a todas las interfaces.
Enviar por las lineas de datos la direcci6n XXXX (0279 Hen la figura 1.68). ,
Destinar al registro AX el dato contenido en el registro port, enviado por las lineas de datos del bus.

Asf, para las unidades de discos o disquetes se debe indicar el n6.mero de cilindro, pista y sector: y si se lee o escribe el sector_
1-80
.
Se trata, pues, de una operaci6n muy semejante a la de lectura de una posici6n de memor~a (figura l.11).
r t
- - - - - - - - - r L a ejecud6ncle-ooa~msrru.cci6n OUT (escrihira de ili1. registto port de direcci6n XXXX indicada en la ins.
trucci6n, con una copia del contenido del registro AX), supone las siguientes acciones ordenadas por la DC:
Por las lineas de direcciones del bus enviar la direcci6n XXXX. (0278 Hen la figura 1.66).
Enviar al port, por las lineas de datos, una copia del contenido del registro AX.
Poner en 0 el cable de control L/E que llega a la interfaz donde esta el port, para ordenar escritura.
Esta instrucci6n ordena un movimiento desde AX al port, o sea opuesto al ordenado por IN.

1b
Movimientos que
rdena la instrucci6n
OUT para e5cribir
un port

''port paralelo"

IRQ
direccion direccion

Figura 1.66

Observese que la "jurisdicci6n" de la UC llega hasta las registros ports, siendo que hasta ellos llega la It
linea de cont.rol LIE que sale .d~ .la UC, pudien.dose asi,, leer el contenido de un port (o cambiarlo I
en una escntura). A los penfencos no llega mnguna linea de control de la UC. I
La UC no tiene comunicaci6n directa mediante linea alguna con ningun periferico. ·

A traves de las ports la UC se comunica con las perifericos para enviarles comandos y datos.

En una PC las instrucciones tipo OUT 6 IN en general forman parte de subrutinas escritas en la ROM BIOS.
II"
2
Del mismo modo que cada instrucci6n (software) que llega al registro de instrucci6n ordena que debe hacer Ia UCP, cada ~­
comando que llega a un port de control (generado mediante la ejecucion de software) ordena que debe hacer un periferico 1·
determinado :

I
1-81

Hasta los ports puede llegar directamente la UC en relaci6n con los perifencos. Cada port es seleccionado por la
--UE.-rr.ediante la dfrecci6n que lo identifica1 la cual es en·vw.da rrior las lfneas de direcciones del bus farado
u
al •vort.

'n~~:Jrllf~fll~~ffllfi!ilf/IJ£~2~r~~i5ii~~i~~fI~~~I~~ilifllllflt~~~
Igualmente a tal velocidad puede tomar datos de un port. A su vez, dada la funci6n buffer antes
a. descripta de un port de datos (o de comandos), la electr6nica del periferico lee un dato (o un
comando) a la velocidad con que opera el mismo, en general varios 6rdenes de magnitud menor,
por depender de sistemas mecanicos que gobiema (salvo el monitor que es totalmente electr6nico) 1 •

1,0ue se denomina //'port serien y //'port parale/oH?


Como se vera, una y otra denominaci6n en realidad se refieren a un tipo de interfaz, a la que pueden
conectarse distintos tipos de perifericos 2, constituida por varios registros ports direccionables.
La primer distinci6n basica, que hace a su denominaci6n, es que el "port serie" recibe (o transmite ), bit por
bit, por un solo cable los datos que transmite (o recibe) la electr6nica del periferico conectado al mismo 3•
En cambio en un "port paralelo", esta transmisi6n de datos entre ambos subsistemas tiene lugar a traves de 8
cables al mismo tiempo (figura 1.67), 0 sea puede realizarse mas rapido.
En lo referente a su comunicaci6n con el bus al cual se vincula - o sea donde se conecta la plaqueta que lo
contiene- tanto el "port serie" como el "paralelo'' se conectan en paralelo al mismo, tfpicamente a traves
de 8 lfneas de datos; segun el tipo de bus. Esto debe ser asf, pues en cualquier caso, la porci6n central envfa o
recibe rapidamente informaci6n (datos o comandos segun sea) hacia o desde un registro port.
Como se anticip6, los denominados "port serie" y "port paralelo" en realiddd son interfaces conformadas
por varios registros ports direccionables de la forma vista. En el "port serie" los datos se transmiten por un
cable, bit a bit, al registro port de datos, pero los comandos para el periferico correspondiente Hegan en
paralelo desde la porci6n central, segun se veni.
Por la relativa reducida velocidad de transmisi6n con que operan, el mouse y el modem son los perifericos
que tfpicamente se conectan a un "port serie" distinto cada uno. Perifericos mas rapidos como la impresora,
reciben datos de a 8 bits desde un "port paralelo". Tambien es comun conectar a este una unidad de cinta
magnetica para copias de resguardo, o puede conectarse una computadora tipo notebook para enviar
directamente archivos a otra, estando ambas pr6ximas.
Asimismo, dado que por razones de ruidos electromagneticos inducidos, cables en paralelo s61o pueden transportar
sefiales hasta unos 4 mts, si se quiere conectar directamente una impresora a un computador a mayor distancia (hasta
unos 20 mts), se debe usar un "port serie'', a costa de una menor velocidad de transmisi6n de datos hacia ella.
La interfaz "port serie" es mucho mas compleja que la "port paralelo" (puede contener hasta 10 registros port
direccionables), por tener que manejar el protocolo RS232C, como se vera al tratar esta interfaz.

En este sentido la denominacion "port", traducible como "puerto", permite realizar el siguiente paralelo conceptual. Un puerto de
un pais esta en la frontera entre la tierra y el mar, y se comunica con el resto del pafs a traves de carreteras (buses en un computador).
Por ellas las mercaderfas pueden transportarse hasta el puerto en vehfculos a decenas de km/h. Luego las mismas se almacenan
temporariamente en el puerto, y se transportan en embarcaciones viajando a velocidad mucho menor. Igualmente vale la analogfa para
el movimiento desde el mar hacia el territorio, con escala en el puerto
:: El "port" paralelo se conoce tamhien como interfaz "Centronics", marca de impresoras que lo populariz6; y al "port" serie puede
aparecer corno port RS232C, siglas de las norrnas que especificaron por primera vez una interfaz serie. Serfa correcto llamarlos interfaz
serie e interfaz paralelo, respecti vamente.
3 Asf se transmiten por ejemplo los 8 bits de un caracter codificado en ASCII, con bits adicionales de comienzo y final. Un "port serie"
es asincr6nico en el sentido que el primero de esos bits puede llegar en cualquier instante, dado que el mismo no necesita estar en
sincronismo con ninguna otra sefi.al que vaya por otro cable extra, como ocurre con cada bit que envfa en serie el teclado a su port. Para poder
identificarlos, tanto el primer bit como los diez o doce que se usan para transmitir un caracter deben ser de igual duraci6n en el tiempo.
1-82

1,Cual es la estructura interna de una interfaz ~port paralelo~~ y Que


protocoio cumpteuna impresora conectada a eiia ? •
~,~

Este tipo de interfaz (figura 1.66) consta de tres registros ports: para datos, "status" y control (por
1
ejemplo de respectivas direcciones 0278H, 0279H y 027AH en una PC)
Estos tres ports, por un lado, se pueden comunicar con el registro AX, a traves de solamente 8 lineas de
datos del bus, para ser leidos o escritos mediante la instrucci6n IN o OUT, respectivamente, seg6n sea.
Por otro lado (figura 1.66), estos ports estan conectados -conector por meclio- a conductores del cable que
une la electr6nica de la impresora con la plaqueta (tipicamente la "multifunci6n", donde existe una interfaz
"port paralelo". En el presente el conector y esta interfaz estan en la "motherboard"(figura 1.5).
En lo que sigue, se detalla el funcionamiento tipico de la interfaz "port paralelo": conectada a una impresa-
ra. Las instrucciones inclicadas, asi como el c6digo del comando enviado a la interfaz Jarman parte de una
subrutina de la ROM BIOS de memoria principal. En las figuras solo aparece el movimiento de datos.
1. Desde la zona buffer de impresi6n de memoria principal de la impresora llega al registro AX un byte
a irnprimir, merced a la ejecuci6n de una instrucci6n que ordena este movimiento (la), como la 11 antes
vista. La ejecuci6n de la instrucci6n siguiente -tipo OUT- ordena escribir clicho byte en el port de datos
de direcci6n 0278H (movimientos lb de la figura 1.66). Este port guarda temporariamente el byte a
2
imprimir. (Sigue en figura 1.67).

Un em
laimp1

. .
uneas del cable que une-J
la impresora y la interfaz
I
I i..----...-
'I

-~IRQ
Memoria Principal

Figura 1.67

En una PC puede existir hasta 4 de estas interfaces designadas con el nornbre 16gico LPTx, siglas de Line Printer.
Si se quiere entrar datos desde otro computador usando esta interfaz, se debe usar el port de status para entrar los datos.
1-83 h
~
~
2. A continuaci6n (como ser una millonesima de segundo despues), se ejecuta nuevamente una instrucci6n
'8..-------~aemovili:Uento ti.po I1, que ordena pasar al registro AX el byte de coirzarido 01111111 (2a). Este byte
:3
~
-merced a la ejecuc:i6n de otra OUT-viaja por las lineas de datos del bus, y se escribe (2b) en el port de tr
1
control de direcc:i6n 027A. El primer bit de este byte ligado a la linea STROBE llega (2c) con el valor 0 • &-
..:;
<::-:;.
3. Al detectar la electr6nica de la impresora que STROBE=O, toma del port de datos los 8 bits llegados )
en el paso 1. Estos viajan por los 8 conductores (3) del cable de conexionado, transmitiendose asi
(en otra millonesima de segundo) hacia un buffer, que forma parte de dicha electr6nica.
4. Inmediatamente (4a), la impresora envia a la plaqueta con la interfaz: un O por la linea ACK(nowledge),
reconociendo que recibi6 el byte enviado en el paso 1, y un 0 por la linea BUSY, para indicar que
11
esta ocupada. Estas dos lineas Hegan a los correspondientes bits del port de status", por lo que
2
ambos ceros quedan escritos en el mismo (4b), resultando la combinaci6n 00111111.

>

5
Movimientos que
ordena la instrucci6n
IN de lectura de port

Memoria Principal

Figura 1.68

Ademas de STROBE pueden enviarse al port de control otros bits de comando, como: un bit de AUTO FEED, que ordena
cambiar de rengl6n luego de recibir Ia orden CR (Carry return); el bit de SeLeCT IN que ordena poner fuera de lfnea ("off line") la
impresora; el bit de INIT ordena reinicializar la impresora (por ejemplo en modo texto).
2 Otros bits de estado de la impresora, que la electr6nica de est1 envfa al port de status son: PE (paper error) indica falta de papel;
ERROR indica que no se puede imprimir por otro problema distinto de PE; SeLeCT indica al procesador con 1 si la impresora esta en
lfnea (on-line) o no (off) segun el estado de la llave correspondiente ubicada en el gabinete de la impresora.
1-84

5. Por la rapidez con que el microprocesador ejecuta instrucciones, se debe controlar de no enviar otro byte
al pQI:.t_de_datos (mecliante el paso 1.) antes que la i!npresora haya tornado el anterior {paso3 finalizado).
--
A tal efecto, la subrutina del BIOS contiene instrucciones para leer repetidamente el port de "status", de
direccion 0279 (ejecutandose IN). Los 8 bits de este port (figura 1.68) llegaran por el bus de datos al
registro AX (5), para deter.rnfilar si carnbiaron del valor 00111111 (inclicador que llego el byte enviado en
el paso 1, pero que aU.n nose puede enviar otro) al valor 11111111. Esto Ultimo implica que la impresora
puso en 1 el bit BUSY del port de "status", por que puede guardar otro byte a imprimir en su buffer)
6. La determinacion anterior (situacion no dibujada) permite conocer cuando la impresora puso en 1 el
bit BUSY del port de "status" (que pasara a contener 11111111), lo cual implica que esta lista para guar
dar otro en su buffer, por lo que se le puede enviar un nuevo byte a imprimir, mediante al paso 1.
Esta secuencia preestablecida de seflales a enviar y recibir (handshaking/I) entre la subrutina y la
impresora, constituye el "protocolo" para impresion por el //port paralelo".

Puede estimarse en 10 microsegundos el tiempo que insume el protocolo, entre el envfo de un byte
a imprimir y el siguiente. Esto implica la posibilidad de enviar por un "port paralelo" unos 100.000
bytes/seg, cifra queen la practica es mucho menor cuando opera una impresora.

El "port paralelo" presenta -como toda interfaz- una linea de solicitud de interrupcion (IRQ), que fonna
parte de las lineas de control del bus. Ella se activa cuando se puede enviar otro byte al port de datos.
En una PC el envio de cada byte a imprimir no se hace por interrupcion, sino por "polling":
instrucciones de la subrutina del BIOS leen repetidamente el valor del bit BUSY, hasta detectar que -
cambio de valor. Entonces se envia otro byte al port

t,Cual es la estructura interna de una interfaz ~port serie~~ y c6mo esta


preparada para conectar un modem usando el protocolo RS232C ?
Por la interfaz serial denominada .11port serie" o de comunicaci6n (COM 1, 2, 3 o 4 en una PC)
pueden entfar bits en serie desde el exterior y transmitirse en paralelo (8 bits juntas) hacia la porci6n
central; o bien desde esta salir hacia ella 8 bits en paralelo y transmitirse hacia el exterior en serie.
Esta interfaz esta preparada para cumplir con las normas RS232C en lo referente a conectores,
senales eledricas, protocolos de transmisi6n y verificacion de errores. Por lo tanto, ella puede ser
interfaz de un modem, ode cualquier dispositivo que envie o reciba datos en serie conforme a dichas norma
Si bien el modem es el periferico que utiliza la mayoria de las lineas de seflal que indica el protocolo
RS232C, otros dispositivos pueden ser conectados a la interfaz "port serie". Asi, puede conectarse el
mouse (que solo envia datos en serie), o puede conectarse una impresora que esta en una habitaci6n
distante del computador. Tambien pueden conectarse dos computadoras a traves de esta interfaz.
En lo que sigue, supondremos conectado a la interfaz un modem. Si este es intemo, estara en una mis-
ma plaqueta junto con su interfaz (figura 1.64). En caso de un modem extemo, el mismo se puede co-
nectar a cualquier interfaz "port serie" disponible, a traves del conector correspondiente (figura 1.71):
El funcionamiento y control de la interfaz "port serie" se basa (figura 1.69, del mismo tipo que las
figuras 1.66 a 1.68) en un chip denominado "Universal Asynchronous Receiver-Transmiter" (UART).
Este chip presenta una Jin.ea de entrada de datos RD (para recibir en serie del modem), y otra linea salida
de datos TD (para transmitir en serie hacia el modem), y contiene hasta 10 registros port direccionables
Cuando a una interfaz "port serie" se conecta un periferico de entrada, como el mouse, solo se usa
la linea RD, dado que Unicamente se realizan operaciones de entrada.
La linea RD entra a un registro que convierte a paralelo el byte de datos que entraron en serie,, y los pasa
1
al port de datos recibidos (que puede comprender un buffer de 16 bytes -para conectar modems
rapidos-).

Denominado Receiver Bi~ffer Register


t-,·
- '' :--
1-85 :::3

Este port puede ser leido como cualquier port (segli.n se ilustra en la figura 1.68), de a un byte por
~
c~ :.
""").------v-e-z-,mediante Iaefeciici6n Cie Uria instrucci6n como IN, la cual ordena que uri.a copici del coritenido
J

~
del port pase al registro AX, a traves de las lineas de datos del bus.
En una operaci6n de salida, mediante la ejecuci6n de OUT, (como en la figura 1.66) un byte
s-
.:;_j
,...;;
~
contenido en AX pasa por las lineas de datos del bus al port de datos a transmitir 1 (que puede constar )
de un buffer de 16 bytes); y de este pasa en paralelo a otro registro (no dibujado). Este es el
encargado de convertir el byte de paralelo a serie, para que salgan, bit a bit, por la linea TD.
Debe tenerse presente, que conforme a las normas RS232C, ademas del grupo de bits de datos que
2
se transmiten en serie (tipicamente 7 u 8) deben existir bits adicionales de control, antes y despues
de los mismos como ilustra la figura 1.70, con la presencia o noun bit de paridad3 • Luego siguen
uno o dos bits de "stop" de valor 1, que indican fin del grupo.
La UART se encarga de agregar los bits citados en una transmisi6n, y de quitarlos antes que
lleguen a memoria, en una recepci6n (entrada). Asimismo, la UART transmite los bits a la
velocidad establecida por programa.
La linea TD 6 la RD permanecen en el nivel alto hasta que tenga lugar una transm.isi6n de datos. Esto se
detecta en una recepci6n, por queen correspondencia con el bit de comienzo (siempre de valor 0), la linea
pasa al nivel bajo durante un tiempo igual al de duraci6n de cada bit. Esta forma de conformar los datos,
pensada para poder distinguir un bit del siguiente (como se plante6 en la figura 1.50), vale tanto para los
datos recibidos, como para los transmitidos por una interfaz "port serie". 0 sea, que por ejemplo, cada byte
de datos que envfa el mouse a su port serie" debe cumplir con este protocolo, conocido como de comien
11 /1

zo-final". La UART verifica este protocolo de transm.isi6n y tambien el de detecci6n de errores por paridad.
Ademas de los dos ports para datos citados, la UART contiene 8 registros ports de un byte,
direccionables, para comandos, protocolo y "status", que tambien se pueden escribir o leer. Ellos son:
Cuatro registros ports direccionables para comandos que se escriben (ejecutando la instrucci6n OUT)
antes de que se transmitan datos entre dos modems intercomunicados.
Dentro de estos cuatro, existen dos ports designados de '1muds rates", para fijar (indirectamente, mediante
un nillnero de 2 bytes, Hi y Low) la velocidad (en bauds) con que se recibiran y transmitiran los bits.
El registro port para control de linea permite fijar por programa (figura 1.70):
La cantidad de bits en serie (5, 6, 7 u 8) que se recibiran o transmitiran por vez.
Si al final de los bits en serie recibidos o transmitidos. habra 1, 1 1h o 2 bits de final t' stop")
Si se detectara o no si hubo un bit errado en la transmisi6n, usando un bit extra de paridad.
Si cada grupo de bits transmitidos o recibidos con paridad tendra un nlimero par o impar de unos.
El port de habilitar interrupciones permite activar la linea de solicitud de interrupci6n (IRQ) en funci6n:
• del estado (lleno o vado) de los ports de datos
• del cambio de valor de cualquier bit de los ports para protocolo y "status"

Dos registros ports direccionables de la UART se usan para llevar a cabo el protocolo RS232C:
• El registro de control del modem (escrito mediante OUT) genera hacia este las sefiales RTS y DTR
• Un registro de estado del modem (leido mediante IN) guarda el valor de las lineas DSR, CTS,
RI y RLSD que provienen del mismo.
Estas seii.ales se relacionan con el protocolo que debe suceder antes de que el computador envie datos al m6-
clem.-Antes de enviar un byte al m6dem, debe darse la siguiente secuencia de sefiales (figuras 1.69 y 1.70):
1. Merced a la ejecuci6n de OUT, se direcciona (03FC) el port de control de modem, para escribir
00000010. El "uno" de 00000010 activa la linea DTR, que avisa al modem que se le enviara un byte.

Designado Transmitter Holding Register


2
Por ejemplo, los bits de un caracter codificado en ASCII (c6digo tratado en el Apendice A.l)
Como en la memoria (secci6n 1.4 -donde a diferencia se transmiten bytes en paralelo- la paridad sirve para detectar si un bit esta
errado. Por ejemplo, si se envian 7 bits de datos en serie, el valor del bit de paridad (el octavo) se halla contando el numero de unos que
hay en los 7 bits de datos. Si este numero es impar, el octavo bit vale 1; y si es par, vale 0 (suponiendo que la paridad total de unos deba
ser siempre par). Cuando esos 8 bits se reciben, debe cumplirse que tengan una paridad par de unos. Caso contrario se asume que algtin
bit esta errado, pudiendose solicitar retransmisi6n de esos 8 bits
~I-86 _ _ _ _ _ _ _
1
2. El m6d.em responde que esta conectado, activando la Iinea DSR con lo cual se escribe un "uno" en el
,
r I --
port de estado del modem, fonnandose la cornbinad6n 00100000. Merced a la ejecud6n de IN SE (
-~------r'h'-r-eccion~r(03FE) y lee este port, y una copia de esta combinadon llegara al registro AX (no dibujado).
3. Cuando 00100000 llega a AX, el programa detecta que el modern esta activo, y ahora se escribe
I
00000011 al port de control del modem, mediante la ejecuci6n de OUT. El Ultimo "uno" de 00000011 J
activara Ia linea RTS que llega al modem, para preguntarle siesta listo ('"ready") para recibir. I
4. Si el modem esta listo, activa la linea CTS, con lo cual se escribe otro "uno" en el port de estado de[ i
modem, fonnandose la combinacion 00110000 pues DSR debe seguir activada. Merced a la ejecu. I
don de IN se direcciona (03FC) y lee este port, y una copia de esta cornbinacion llegara al registro AX I
5. Luego que AX recibi6 00110000, el programa detecta que se puede enviar un byte, pasandose a i
ejecutar una instrucci6n OUT, que direcciona (03F8 ), y escribe (Sa) el registro de transmisi6n de i 1
2
L<
datos con el valor supuesto 11100110. Entonces la UART c11lcula que el valor del noveno bit (de i sa
paridad) que se le debe agregar es 1, si se ha establecido por programa que las cornbinaciones a I
enviar deben tener un numero par de unos; y la UART tarnbien inserta los bits de comienzo y i
final, conforme a la figura 1.70. Despues de agregar estos bits, la UART realiza una conversion f
3
de paralelo a serie, y transmite uno a uno los bits hacia el rn6dem , por la salida TD (Sb). I ~

Nfientras CTS siga activa pueden enviarse mas bytes, que pasan rapido al buffer del rn6dem (no dibujado). l
Cuando este se llena, el rn6dern desactiva CTS. Para volver a enviar otro byte hay que repetir los pasos 4 y 5 1:
De este rnodo, se adapta la rapida velocidad de envio del cornputador a la de operaci6n del modem.
Los pases 1 a 5 se refieren al protocolo RS232C entre el modern y el procesador. Una vez que un byte telefC
entr6 al modern Se guarda en un buffer de este, para que SUS circuitos de rnodulaci6n realicen (6) una con-
version de sefiales digitales a anal6gicas. Por sirnplicidad se ha supuesto que se modula en frecuencia. 6
Proce
A rnedida que se obtiene cada valor de la sefial modulada, el misrno se envia por la linea telef6nica (7) rrodu
Para entrar datos desde el modem u otro periferico no se requiere este protocolo: mientras DTR este
activa se le puede enviar datos a la interfaz uport serie", pues cada byte que entra puede ser
tornado rapidarnente (rnediante IN) del port de dates recibidos.
Nve
cero
-4-----PERIFERICO -----.------INTERFAZ PORT SERIE" 11
ro s

2 El m6dem responde que esta conectado


a la interfaz, activando la lfnea DSR,
escribiendose un bit en el port de estado.
Su contenido es leido y llega al registro AX
de la :UCP, merced a la ejecuci6n de IN
.·· ~2
~~~~~--~~~~......,..,._

1(DSR activada);.

1(DTR activada)~.'
1 : ""-
; Protocolo 03F9 Habilita interrupci6n
RI 1 RS232C
Linea CD ; 03F9 Baud rate (byte Hi)
telef6nica 03F8 Baud rate (byte Low)
03F8 Datos a transmitir
Datos recibidos

1.
Mediante la ejecuci6n de OUT, desde AX llega al
port direccionado un byte con un comando. Un
bit de este activa la linea DTR que va al m6dem,
para avisarle que se va a transmitir un byte direcciones
Figura 1.69

DTR y DSR deben permanecer activas durante toda la comunicaci6n.


2
Aunque hay ports de igual direcci6n, mediante el estado de otro bit, el hardware determina cmil es el port direccionado.
3
De los bits de datos primero sale el menos significativo (LSB -Less Significant Bit), que en un numero es el dfgito extremo
derecho, Yen ultimo lugar sale el mas significativo (MSB - Most Significant Bit), o sea el dfgito extremo izquierdo
--
1 el - - - - PERIFERICO -------?'-<;'------
3 Movimiento similar al 1
JNTERFAZ "PORT SERIE"

5 Mwimiento simiar al 3,
be que a.ctiVcl a lfnea CTS
11 pira informar al sistema
que el mCdem esta listo
pira recibir

a
de
e
a
y
n

Bus de
direcci6n

Norma.Sa cumplir en la transmisi6nseriesegun el protfXolo RS232C

Figura 1.70

Mediante la linea RI(ng) el modem avisa que el telefono suena, para que desde el computador se
maneje el protocolo que hace que el modem atienda el llamado.
Si, se activa la linea RLSD o CD (detectora de portadora), significa que el modem detecto la onda
portadora de sefial de otro modem que se quiere comunicar, el cual puede ser atendido o no.
El port de #status" de la UART permite conocer, al ser le:fdos los valores de sus bits individuales, si:
- en el registro port de datos recibidos hay un byte para entrar
- un nuevo byte entro al port de datos recibidos antes que el anterior fuera entrado
- el byte que entr6 al port de datos recibidos tiene un bit errado (error de paridad)
- hubo error en la forma en que llegaron desde el exterior los bits en serie
- en el port de datos a transmitir el byte at1n no fue transferido
- el registro de desplazamiento que pasa de paralelo a serie contiene datos a transferir
- una linea para protocolo que llega desde el periferico (modem) esta siempre fija en un valor
Por Ultimo, luego que la plaqueta interfaz serie solicita interrupci6n (mediante su linea IRQ), otro
registro port identificador de interrupciones -al ser le:fdo por la subrutina que atiende estas interrup
ciones- permite determinar la causa de la misma, pues como se vio, puede haber varias posibles.
Hasta aca se ha supuesto una interfaz port serie" ubicada en una plaqueta -que contiene s6lo a
11

ella o varias interfaces (plaqueta multifuncion)- con un conector (figura 1.60) para el conexionado
de un mouse (como aparece en dicha figura), un modem extemo, o cualquier dispositivo que
cumpla con las normas RS232C.
Este conector no existe en el caso de una plaqueta que contenga esta interfaz junto con un modem
intemo, en cuyo caso debe existir un conector para el conexionado de la linea telefonica (figura 1.64).
1-89

ves del bus que une memoria con el procesador- mediante una instrucci6n de movimiento, como It vista
______
E_st_a_fonna)a llamaremos E/S con Acceso lndirecto a Memoria (AIM), indicada en figuras 1.60, 1.62, y 1.64
Cuando en una operaci6n de entrada se leen los 512 bytes de un sector de un disquete2 (figura
1.63), la fase de transferencia se realiza por Acceso Directo a Memoria (ADM 6 OMA en ingles):

IPort de datos => memoria principal I


una.jri~erfa~, .~ue •. pt1e4~1~~f:-~::~~~pv
no.:1U>?#tl:l~~1ii. que estenq,intervi.en.~ifo'.~l.~QM~
puesto que para a cabo el mismo no se ejecutan instrucciones, como ocurre en el Ailv1 citado.
En una PC esta electr6nica se denomina "Controlador de ADM" (figura 1.72).
Basicamente, la lectura de un sector de un disquete, en general supone las siguientes acciones principales,
ordenadas por instrucciones de subrutinas que estan en la ROM BIOS. En la figura 1.72 aparece el movi-
miento par ADM de un dato desde el port de datos hacia memoria. La escritura de comandos o direc-
ciones en ports de la interfaz de disquete o del Controlador de ADM, es similar a las figuras 1.67 a 1.70
1. Mediante la ejecuci6n de una instrucci6n tipo OUT, se ordena, mediante un comando a un port
de control (comandos) de la interfaz de la disquetera, que su motor se ponga en marcha.
Luego la subrutina espera un tiempo fijo, hasta que el motor alcance su velocidad de giro estipulada.
2. A continuaci6n, dicha subrutina direcciona y escribe, tambien mediante instrucciones OUT,
registros de control de la interfaz, indicando numero de unidad de disquete seleccionada (A 6
B), y numero de pista al que se quiere acceder.
3. Mientras el cabezal de lectura/ escritura se posiciona sobre la pista indicada, una subrutina del BIOS
direcciona y escribe -con instrucciones OUT- los registros port del Controlador de ADM. En el registro
de "cuenta" se indica la cantidad de bytes a escribir en memoria (FFH = 2550); y en el registro de
direcci6n, la direcci6n (supuesta 4033H) de la zona de memoria a partir de la cual se deben escribir
sucesivamente los 256 bytes. Estos datos llegan por las lineas de datos del bus conectado al Controlador.
4. Ports de control de la interfaz de la disquetera (se muestra uno solo) son direccionados, y se escriben
en ellos comandos -mediartte instrucciones OUT-que indican entre otros: la cara, nlimero de sector.
5. Cuando la cabeza esta sobre el sector a leer, se activa la linea de requerimiento de OMA (DREQ) que
va de la interfaz al Controlador de ADM, para que este comience la Jase de transferencia, a la par que los
bits del sector leidos en serie por la cabeza lectora pasan a un buffer en la electr6nica de la disquetera.
6. El Controlador de ADM toma el control de bus (ISA en una PC), ordena escritura por la linea de
L/E que llega a memoria, y su registro de direcci6n.envfa por las lineas de direcci6n (igual que la
UCP) su contenido (4033), que es la direcci6n donde el primer byte sera escrito en memoria.
Activando la linea DACK que llega a la interfaz, le dice a esta que coloque en las lineas de datos
del bus el byte (o dos bytes) que lleg6 en paralelo a su port de datos (a traves del cable plano
-figura 1.63- que une el buffer de la electr6nica de la disquetera con la plaqueta interfaz). De
esta forma, dicho byte (26), es escrito en memoria en la primer direcci6n (4033) citada.
7. Luego la circuiterfa incrementa tmo el registro de direcci6n y resta uno al registro de cuenta.
8. Mientras el registro de cuenta no llegue a cero (indicaci6n que se escribieron 256 bytes) se vuelve al
paso 6., y hasta que no se escribi6 el bloque de 256 bytes, la UCP no puede leer o escribir la memoria.
9. Cuando el registro de cuenta llega a cero, el Controlador activa la linea End of process (EOF) que llega a
la interfaz, para que esta a SU vez active SU linea IRQ de solicitud de interrupci6n, para que la UCP
ejecute una subrutina que verifique que la transferencia ordenada por ADM £ue hecha correctamente.
10 Se ordena en un port de control de la interfaz, que se detenga el motor (si nose debe acceder a otro sector).

En realidad, pasa al lugar de destino una copia de la informaci6n binaria contenida en el lugar de origen. Tfpicamente de a uno o
dos bytes por vez, pudiendo ser de 4 u 8 bytes usando el bus local, como en el caso del disco rfgido.
2 El ADM en general se utiliza en relaci6n con perifericos que deben transferir velozmente bloques de muchos bytes de datos, de
modo de poder pasarlos como una "rafaga" ("burst") continua hacia o desde memoria en breve tiempo. Si en una entrada se deben
transferir 512 bytes. y si se escriben dos bytes en cada acceso, se requiere realizar 256 escrituras sucesivas en posiciones consecutivas
de memoria (y 256 lecturas en una operaci6n de salida). En las grandes computadoras por la cantidad de terminales conectadas, en general
resulta un caudal muy grande de datos, por lo que el ADM es el metodo de transferencia usado para todos Ios perifericos. En los modelos tipo
IBM/370 yen grandes computadores, todas las interfaces pueden h~cer ADM, constituyendo dispositivo;; denominados "canales".
I
t
LAS INTERRUPCIONES PC
HARDWARE: "TIMBRES"
PARA LLAMAR A SUBRUTINJ
·Que son las interrupciones ?
~""._~1fJ§iii!Pi§K"'\W'>"'&W'"-~~"%-®<\'fiirM@ii>10.<,<;.W&"-"2' -"'"'·*"''-'"'-"""'*-w,,"''*~"""'1''""x'"""'''"''"'';"""'-'H'\*\'l.'i;\<'<%\\'!<•i'<*iS;,W:tl'fi'f!&t.\\Z,%'&'!$\'\lW&~"-'"*~%-'-11,"®"§'""~®i::U.&'j,'®l>f*$c'&\1';,•wm'"'""n,.~m®[email protected]''>>,.>'.\>azt\$&'®='01"&'*\'il>Wiih~"~"-"1'''"'"•'!.;:::••-,.,;c,;:·:•.--:,
Una interruB ion supone la suspension temporaria de la ejecuci6n de un programa, para pasar a
ejecutar un subrutina de servicio de interrupci6n, la cual en general no forma parte del programa
a (por perte cer tipicarnente al sisterna operativo, o al BIOS -Basic Input Output System-)1.
Luego de jecutarse dicha subrutina, debe reanudarse la ejecuci6n de dicho programa.
Asi, en la igura 1.73, luego que se termina de ejecutar la instruccion 12 de un programa antes visto, se
suspende transitoriamente la ejecucion de 13, y de las instrucciones siguientes de dicho programa (1).
Se supone que ello es debido a que una interfaz, por ejernplo la del teclado (figura 1.62), activ6 su
linea de solicitud de interrupci6n IRQ (2), para que se pase a ejecutar la subrutina de la ROM BIOS
que atiende al teclado (3).
Luego que se termina de ejecutar esta subrutina (4), se vuelve a la secuencia interrurnpida (5), por
lo cual se ejecutara la instrucci6n 13 que habia quedado en suspenso, y las siguientes (6)
Por lo tanto, las interrupciones son la forma en que se llama, para su ejecucion, a subrutinas de un
sistema operativo y de la ROM BIOS.
0
Se debe tener bien en claro que un sisterna operativo no se ejecuta por que el quiere", ni en
simultaneidad con el prograrna en ejecuci6n, sino que la UCP pasa a ejecutar una subrutina o
modulo de un sisterna operativo s6lo cuando una interrupcion asi lo deterrnina.

Las interrupciones por hardware extemas (a la UCP) son las del tipo descripto hasta ahora: tienen
lugar cuando una interfaz activa su sen.al de solicitud de interrupcion (denorninada IRQ -Interrupt
Request- en las PC), que por una linea de control del bus llega a un chip
Cada linea IRQ que sale de una interfaz tiene un subindice n (del 0 al 15 en una PC) que la
ma- identifica. Todas las IRQ entran a un chip "arbitro de interrupciones", que decide cual interfaz
rt: . interrurnpira prirnero, para el caso que se activen varias IRQ sirnultanearnente. Este chip activa una
linea que llega al procesador (designada INTR en los 80x86, corno rnuestran las figuras 1.62y1.63).
Las interrupciones por hardware intemas (designadas a veces "excepciones") ocurren en el
interior de la UCP, si hay algt1n problema mientras se ejecuta una instrucci6n.
Observese que tal corno se la ha definido, la palabra "interrupci6n" designa la suspension momen-
tanea de un prograrna o subprograma, realizada por media de una instrucci6n de rnaquina
especifica (software) o por hardware (originada en el interior de la UCP o rnediante la linea IRQ
citada),debiendose luego retomar la ejecuci6n del ro rama. Todo ello sin intervenci6n hum.ma.
\~=:/~;:n;::.~~,·~t~~{

las
Tambien es factible que programas como procesadores de texto. hojas de calculo y otros tengan sus propias subrutinas para
interrupci6n, siendo ademas que un usuario'puede crear sus propias rutinas de servicio de intem1pci6n.
1-92

1, Como opera una interrupci6n por hardware externa ?


Anteriormente se plante6, que otra £unci6n muy importanted
( 0200 una plaqueta interfaz es generar la senal IRQ que se envfa pe
I
I un cable hacia un subsistema ligado a la UCP, para solicitarleOr
I esta la interrupci6n del programa en curso de ejecuci6n.. ·a
I 0203 Se trata claramente de una interrupci6n que tiene su origen end
I hardware: la activaci6n de un cable de control del bus.
Programa ):
en ejecuci6n Esta activaci6n tiene lugar en principio cuando en el periferico
I
que es /' 2 conectado a una plaqueta interfaz se concret6 algo: en el teclado
interrum pido se apret6 una tecla, una impresora esta lista para recibir mas
dat6s, una unidad de disquetes termin6 de leer o escribir, etc.
La activaci6n de dicha seflal IRQ por una interfaz (que equipa.
raremos a un toque de timbre), causara que en algiln rnomento
posterior se in.terrumpa momentan.eamente la ejecuci6n de un pro-
grama, y que la UC pase a ejecutar la subrutina de la ROM BIOs
3 5 o del sistema operativo 1, preparada para atender a dicha in.terfaz2. ·.
Al finalizar la ejecuci6n de esta subrutina, podra seguir la ejecuci6n
del programa interrumpido. A continuaci6n se daran dos ejemplos.
0 ·Com
!:.w..~%1!!J!~"&fil."$/i,.%J
MEMORIA PRINCIPAL Cada vez que en una PC se pulsa o libera una tecla, el c6digo
RAM de esta llega al port de datos de la interfaz del teclado/ lo cual
hace activar su seflal IRQ (figura 1.62). Esta IRQ sirve de Program
indicaci6n de que en una operaci6n de entrada puede realizarse Ia en ejecuci(
que se au
Jase de transferencia par acceso indirecto a memoria (ATh1) para 1
interrum p
EOO que dicho c6digo llegue a la zona buffer de memoria reservada per INT 2
Subrutina de 7 para los c6digos de teclas. para llam
la ROM BIOS
Hamada par lal
r 8 A fin de realizar el acceso indirecto a memoria luego de la activaci6n
1 al sistem
del IRQ la UC interrumpe el programa en curso de ejecuci6n, y pasa opera tiv
interrupci6n I a ejecutar una subrutina del BIOS. En esta existira una instrucci6n IN
I
I

l (que pasa un byte del port al registro AX), seguida de otra del tipo ~
(que pasa dicho byte de AX a memoria principal), como ya se trat6
Luego se reanuda la ejecuci6n del programa.
MEMORIA PRINCIPAL
ROM Cuando finaliza un acceso directo a memoria (ADM) -como el
que ocurre en la fase de transferencia de las operaciones de
Figura 1.7 3 entrada y salida de un disquete, entre su interfaz y memori~ 3
(figuras 1.63 y 1.72)- la interfaz involucrada activa su IRQ, para ·
que se interrumpa el programa en ejecuci6n/ y se pase a
ejecutar la subrutina que verifica que el ADM fue bien hecho.
Caso contrario se ordenara intentarlo varias veces. Si el problema subsiste, dicha subrutina hara
aparecer un cartel en pantalla indicando dicho error de hardware. ·
Para la impresora, en una PC suele usarse la senal IRQ de su interfaz para indicar falta de papel, lo
cual origina que la subrutina que atiende este evento indique el mismo con un aviso en pantalla.
Otra fuente de interrupci6n extema proviene de la interfaz con los contadores usados para generar las horas Subrutin
y minutos que aparece en pantalla. A tal fin, cada segundo dicha plaqueta genera 18 interrupciones, siendo del Sistem
Operativ
que con cada una de estas, la subrutina que sirve a esta interrupci6n actualiza la hora indicada cada minute.
Hamada p(
la instruccic
Observese que estos eventos (tecla pulsada, fin de ADM, reloj, etc.), por un lado, no pueden ser
INT 21
previstos en un programa cuando sucederan; y por otro, cuando en memoria hay varios prograroas
que alternan su ejecuci6n ("multitasking") tambien puede ocurrir una interrupci6n en un programa
a causa de un eriferico ue en ese mo mento es ta traba ·ando ara otro ro rama.
1
I Por sus funciones puede considerarse a la ROM BIOS como parte de un sistema operativo_:-eon flexibilidad para manejar una garna
~plia de perifericos, provenientes de distintos fabricantes.
- La direccion donde empieza esta subrutina se halla en una zona de memoria principal, que en las PC se llama de "vectofeS
interrupci6n .,
..........
1-93 ~
''
~
De lo anterior tambien resulta -como se anticip6- que hay rm conjunto de lineas de solicitud de -,:_
~~---~21-1t-,_e-r-ri£pct611:- -p;_s1,-por lo :tnenos de cada iI1terfaz sale una iirtea designada IRQn siendo- n distiEta
~~, para cada una. Hay IRQ compartidas, como la de la interfaz para disquetes y discos.

le { )?B~~I~~G~8:t~~~§'r~::~~i&erL~,~-~~f).';~~ki!tq.de ·_solicitudes de .. interrupci6r1'', .•<i~~-"~-·-_·c~~c)i •. ~~­


'1:~!~~~~~~;;·~f:~~~-~-~~~i:-z.1:~~t~~~~~8fite· _;;~;~ f.ufR~> s~l? •. a _.·Ia_ que tiene _subinqife --~'..N:1~1;~~~":<&~s
~Y~te~te,~;~~- -- ;.R~f*J:~;:P:~e'.t~RP.lt~;B'.b··"·' ,g~~SNP actiya la linea de control INTR q11g~zj.g~ ~)<l UC;
.p~~-~t.m#i9~ 11¢}~¥1-~Y P!1~~'.§8~idft:iq_rti~zll1terrU'.J?cion a.c:tiva. - ,.-._ ·
ic0
ct0 Cada vez que termina de ejecutar una instrucci6n, la UC sensa si la linea de control INTR esta
1as activ-:i (indicadora de solicitud de interrupci6n). Si el programa en ejecuci6n lo permite 1, el mismo
es interrumpido. De no ser asi, dicha solicitud espera hasta ser atendida.

pa. En las dos primeras generaciones de computadoras este mecanismo de interrupciones que indica un even-
nto to extemo que debe ser atendido no estaba incorporado. Un metodo que se usaba consistia en ejecutar
ro. peri6dicamente subrutinas que interrogaban ("polling") a los perifericos, para determinar si tenian datos
O$ a enviar. Ello implicaba tiempo de la UCP gastado en su ejecuci6n, aunque no hubiera nada para enviar.

on
8.-
go
u~
de Program a (
/a en ejecuci6n
que se auto
fa. Este tipo de instrucci6n en el lenguaje assembler de una PC se
interrumpe
da por INT 21
2
simboliza INT xx ), donde el mimero xx, identifica la subrutina
para Hamar Hamada y tambien permite localizarla en memoria principal).
n al sis tern a A diferencia de las interrupciones por hardware, una interrupci6n
1

~ op era tivo por software queda establecido en que momento de la ejecuci6n de


N un programa sucedera, pues se trata_ de una instrucci6n que estd en
~ determinado lugar de un programa, que llama a dichas subrutinas.
Por ejemplo, cuando un programa necesita hacer una operaci6n
corriente relacionada con los recursos que maneja el sistema
operativo: tipicamente abrir I cerrar un archivo, acceder a un disco,
el
e- imprimir, visualizar informaci6n en pantalla, etc.
a 3 5 En todos los casos se trata, pues, de un llamado a subrutinas que los
a programas de usuario requieren en su auxilio, cuando se necesita
a· realizar operaciones tipicas, como las citadas.

MEMORIA PRINCIPAL .La figura 1.74 -en esencia similar a la 1.73- da cuenta del
a RAM mecanismo de una interrupci6n por software, que podemos
esquematizar en los siguientes pasos:
o
1. Un programa que se venia ejecutando, luego de su instrucci6n Is
necesita Hamar a una subrutina del sistema operativo (SO), por
s Subrutina ejemplo para leer un archivo en disco.
del Sistema
2. A tal efecto, luego de ls existe en el programa la instrucci6n de
; Operative
c6digo de maquina CD21, simbolizada INT 21 en assembler, que
llamada par
la instrucci6n realiza el requerimiento del paso 1. Puesto que no puede seguir la
INT 21 ejecuci6n de las instrucciones 16 y siguientes del programa hasta que
no se haya leido el disco y este en memoria principal dicho archivo,
virtualmente el programa se ha autointerrumpido, siendo ademas
MEMORIA PRINCIPAL que luego de INT 21, las instrucciones que se ejecutaran no sercin del
RAM
programa, sino del sistema operativo.
Figura 1.74

Mediante una instrucci6n especial se puede hacer esperar ("ennuiscarar") solicitudes de interrupci6n.
2
En otras computadoras como las PDP y la IBM/370 esta instrucci6n se llama TRAP y SVC nn (Supervisor Call\ respectivamente.
1-94

3.
4.
5.
La ejecuci6n de INT 21 permite hallar la subrutina del SO
Se ejecuta la su~rutina del SO que prepara la lectura del disco.
·-IV.ego de ejecutarse la subrutina del SO, y una vez que se ha ya leido el disco y verificado que ~
--
lectura es correcta, el SO ordenara reanudar la ejecuci6n del programa autointerrumpido en esperq_
6. La ejecuci6n del programa se reanuda

Es importante tener siempre presente que tanto las interrupciones por hardware o software sou
mecanismos para Hamar a subrutina del SO o de la ROM BIOS.
Esto es, los programas del sistema operativo nose ponen en ejecuci6n por si mismos, sino que son llamad~
por las interrupciones, que son los .utimbres" que llaman al sistema operativo. De ahi su importancia.

t, Como se retorna al programa interrumpido ?


En cualquier caso que exista una interrupci6n, antes de que se pase a ejecutar la subrutina del sistema
operativo o del BIOS que da servicio a dicha interrupci6n, la UC guarda automaticamente en memofia ,
la direcci6n de retorno, donde esta la instrucci6n a partir de la cual continua el programa interrumpido
De esta forma, luego que se ejecut6 dicha subrutina, se podra retornar a ejecutar el programa.

t, Que es la zona de memoria principal denominada HpilaH ?


La direcci6n de retorno mencionada en la respuesta anterior se guarda en una zona elegida de
memoria principal denominada "pila" ("stack"). Esta se utiliza para retornar al programa que
llam6 a una subrutina o que fue interrumpido, una vez que se ejecut6 la subrutina llamada, en
cualquier llamado a subrutina (del sistema operativo, del BIOS o de una subrutina propia del programa),
sea por interrupciones o por instrucciones de llamado a subrutina.

La pila es necesaria, por que es comtin que la subrutina llamada por una interrupci6n a su vez sea intemtm-
pida para llamar a otra subrutina, y esta segunda tambien puede sufrir interrupciones, y a:si sucesivamente

Para entender esto utilizaremos un libro de cocina. Suponiendo que se elabora un~
receta de su pagina 14, que en el rengl6n 8 remite a la elaboraci6n de la pagina 4, y
que en el rengl6n 9 de esta a su vez se requiere hacer otro sub-procedimiento indicado
en la pagina 54. Se podria cuidar el orden de elaboraci6n como sigue.
Una vez que se lleg6 al rengl6n 8 de la pagina 14 se anotarfa en un papel estos nurneros,
el cual se insertarfa en un pincha-papeles. Luego se elaborarfa el procedi-rniento de la
pagina 4 hasta llegar al rengl6n 9 en el cual se interrurnpe. Estos nurneros se anotan en
otro papel que se apila en el pincha-papeles sobre el papel anterior, y se pasa a realizar el
subprocedirniento de la pagina 54. Terrninado el rnisrno, para retornar a terminar el
anterior, se leen en el papel que esta mas arriba del pincha-papeles los nurneros 4 y 9,
que perrniten reanudar la receta de esa pagina. Realizada esta, se leen en la hoja apilada
debajo de la anterior en el pincha-papeles, los nurneros 14 y 8, que perrniten encontrar la
receta principal, para terrninar la receta ..
Observese que el Ultimo de los procedimientos interrumpidos es el primero en
Figura 1.75 completarse luego, siendo que la pila de papeles del pincha-papeles permite cuidar el
orden necesario. Se trata de una pila "ultimo en eri.trar, primero en salirn ('last-in-
first-out,, - LIFO)
~-·--.EMORIA CACHE Y
JERARQUfA DE MEMORIAS
EN UN COMPUTADOR
Que es una memoria cache ?
Este tipo de memorias, junta con el pipeline y el advenimiento de las arquitecturas RISC
constituyen una de las mejoras sucesivas al modelo de Von Neumann (secci6n 1.14).
El bajo costo y crecimiento vertiginoso en la velocidad de los procesadores en relaci6n con los :Mhz
de sus pulsos reloj, no ha sido acompanado hist6ricamente en igual medida por las memorias a las
que ellos acceden. Asf en el periodo en que los Mhz de las UCP pasaron de 10 a 50, las DRAMs
solo mejoraron de 100 a 70 nseg Se necesita que las memorias a las que las UCP acceden sean
baratas, de gran capacidad de almacenamiento, y que puedan suministrar instrucciones y datos tan
prontamente como las UCP pueda procesarlos (en el tiempo de un ciclo reloj de la UCP). Tambien
deben permitir gran "ancho de banda" (bytes transmitidos por segundo).
Las memorias "cache" ubicadas entre la UCP y la memoria principal (fig. 1.77.a), de pequefla capacidad
en relaci6n con esta, pero varias veces mas rapidas, son una soluci6n de compromiso entre costo y
velocidad. Contienen las instrucciones y datos de memoria a los que la UCP accedi6 Ultimamente,
siendo tambien a los que mas probablemente accedera pr6ximamente, como se discute a continuaci6n
"Cache" significa oculta, escondida, en el sentido que la UCP envia una direcci6n poi' el bus de
direcciones desconociendo la existencia del cache, que es un hardware tambien oculto al programador.
En general en los distintos niveles de los procesos de datos se trata que el acceso a la informaci6n
requerida sea rapido y econ6mico. Para tal fin en los procesos de datos se tiene en cuenta el principio
de localidad o proximidad, el cual estipula que si ya se consult6 informaci6n, es muy probable:
1. que la misma pronto sea consultada otra vez (localidad o proximidad temporal).
2. que pronto se consulte informaci6n cercana, vecina a ella (localidad o proximidad espacial). F

Por ejemplo, la apertura de archivos de un computador ha sido concebida de acuerdo con este principio.
Asi, cuando en el Word abrimos un archivo, y luego lo cerramos, si enseguida o en otra
oportunidad quereffiOS abrir Ufl archivo el nombre del ultimo archivo cerrado sera el primero en
I

aparecer en una lista ordenada de los mas recientes archivos consultados. De este modo se estima
que es muy factible que volvamos a consultarlos (proximidad temporal). Por otro lado, si abrimos
un archivo de una carpeta, y luego pedimos abrir otro, el Word automaticamente mostrara dicha
carpeta (proximidad espacial), pues en la mayoria de los casos el archivo buscado es uno de la
carpeta en uso. (proximidad espacial). En ambos casos se evita que el usuario abra carpetas
innecesariamente, pudiendo asi acceder mas rapidamente a la informaci6n que necesita.
Vale decir, que del conjunto de todos los archivos almacenados en el disco rigido no se accede a toaos
ellos con igual probabilidad, sino que generalmente se consulta un subconjunto que pertenecen a una
misma carpeta o a unas pocas en relaci6n con todo el disco; y ademas se accede a ellos repetidamente
Tambien en el caso .de la memoria principal, en cualquier lapso breve de tiempo los accesos
sucesivos a ella ocurren en un espacio limitado de direcciones consecutivas (proximidad espacial),
yes corriente acceder repetidamente a esas direcciones (proximidad temporal).
Los programas constan de secuencias de instrucciones que estan en direcciones consecutivas de
memoria, siendo frecuente que secuencias se vuelvan a ejecutar n veces, dando lugar a los "ciclos".
Lo primero implica que es muy probable que las direcciones de dos instrucciones que se ejecutall
una tras otra sean muy cercanas.
A su vez, los datos que estas instrucciones procesan, si constituyen elementos ordenados de un
vector o de una matriz, o los cercanos a la cima de una pila, se encuentran vecinos en una zona
acotada de memoria, y los programas ordenan operar una y otra vez sabre estos datos.
,
-- UC
1-97

Por lo tanto, la ejecuci6n de un program.a se va realizando


en secuencias de instnJ.cciones relativamente cortas, que
~
--::-::
v
mayormente se ejecutan muchas veces, siendo que tambien -~
los datos que cada secuencia procesa estan en~direcciones SL
~
pr6ximas, los cuales asirnismo en general son accedidas
repetidamente. En este caso tambien resulta para un ~
conjunto de instrucciones y datos a procesar almacenados ("'~
en memoria, que sus elementos no son accedidos con igual Q
probabilidad; sino que durante cada lapso del proceso de
~ datos que realiza la UCP solo se accede con mayor
rsc probabilidad a dos subconjuntos: uno de instrucciones y
otro de datos (que ellas operan), localizados en dos zonas
reducidas de memoria principal (cuyos espacios de
1hz
las····· direcciones varian a medida que se ejecuta el programa). En
MS especial se accede a bloques de datos de gran longitud en el
ean procesamiento de textos, planillas y multimedia.
tan Los contenidos de estas dos zonas limitadas de memoria
>ien DRAM que almacenan instrucciones y datos que la UCP
necesita acceder par estar procesandolos o para procesarlos
pr6ximamente, se copian en una memoria SRAM pequefi.a
(como ser 512 KB 6 1 MB frente a 128 MB de la DRAM) pero
de acceso mucho mas rapido para la UCP que la DRAM: el
"cache" o "antememoria". De este modo la UCP leera del
cache instrucciones y datos ma.s d.pidamente que de
Bus de memoria, sin necesidad de acceder a ella.
Direcciones Desde otra perspectiva, un cache pennite simular una
memoria principal DRAM de gran capacidad, pero con un
tiempo de acceso semejante al de la SRAM de la cache. Este
tiempo no debe superar el lapso T que media entre un pulso
reloj y el siguiente, a fin de que la UCP no se quede
Figura l .77 .a MEMORIA PRINCIPAL "esperando" inactiva mas de un pulso reloj. Cada pulso extra
o. de espera ("wait state") en cada lectura o escritura, implica una perdida de performance de la UCP. Esto se
tra manifiesta en un mayor tiempo en la ejecuci6n de los program.as.
en· Asi, mientras los procesadores como el 80286 no superaban los 10 Mhz, o sea periodo T = 100 nseg,
ma ·(secci6n 1.7), dado que el tiempo de acceso de una DRAM entonces era de unos 90 nseg, en general
os no superaba dicho tiempo T. Pero ya en el 80386 de 33 Mhz, o sea T = 30 nseg, el acceso a la DRAM
ha apenas baj6 a 70 nseg, superando el tiempo T (sin contar el tiempo que suma el controlador de
la memoria), por lo que se us6 un cache extemo (Level 2 = L2) para minimizar los "wait states". Con el
as 80486 rondando los 100 Mhz (T = 10 nseg) el acceso a un cache L2 superaba dicho T, debiendose
incorporar un cache dentro del 486 (Level 1 = Ll), usando tambien un L2 para acceder mas rapido a
os este en lugar de la memoria, si la informaci6n a acceder no estaba en Ll. Estos dos niveles de cache se
na usan hoy dia para un mejor rendimiento, pudiendo existir mas niveles.
e Un cache guarda en las celdas que constituyen sus "Hneas" un subconjunto de bloques de la
os memoria. Cada lfnea almacena un bloque de bytes consecutivos de la memoria (por ejemplo 16 6 32.
l), El cache requiere un subsistema circuital complejo denominado '"controlador de cache" que
cumple varias funciones, siendo las mas importantes:
de a. Intercepta la direcci6n que envia la UCP por el bus de direcciones a fin de determinar si el
". contenido correspondiente a ella esta (acierto = "hit") o no (fallo = "miss"). En el primer caso
an permitira que la UCP acceda al cache, y en el segundo a la memoria con la consiguiente perdida
de tiempo. Para tal detetminaci6n cuenta con una rapida memoria auxiliar: la "tag memory".
n b. En los caches con correspondencia asociativa, decide cual bloque sera reemplazado por otro
a proveniente de memoria cuando ocurre un fallo.
c. Implementa la forma en que los resultados obtenidos por la UCP se guardaran en memoria.
1-99

uctura del cac~e determin~ los numeros de bits de k y p, siendo que los de t son
~~fl-!,~;;i.U-~==--~---.'t--·-1-C' ,.-:J.,... ~-.-l- ....J-~-·- -· ~
- , ae v_,_ ... ...:; ·--·---c:: Lau.a. u..u .•
1:::1..:c1on ae - - ...
memona: - - - • . - -- - .. --
t = n - (k + p). -
,.eres·. tan del numero 11 ,,
, d d cache posee una tag memory": una SRA.M que contiene un tag por cada linea del
'tr_-.-ola or e . ara todas las direcciones de los 2P bytes que ella guarda (fig. 1.77.b) pues
' e es· el m1smo p ,.it· b.t d l - ,
f qu 'lo difieren en sus u~ ~os P 1 s e a derecha (p =1 en la fig. 1.77.b).
, . xnas 50 d . f llo se transfiere un bloque de bytes consecutivos de memoria hacia una linea
, ,luego etrolador
'do un a escri·b e en su. "tag memory " el tag de las direcciones de esos bytes.
1
;.ch~~eU~; ordena leer el contern~o de una dire~ci6n de memoria, ella sera interceptada por el
,go _ , .d ente cornparara el tag de la misma con el tag de la "tag memory" vinculado al
'-.•.-)ador, que rapi a:ndie:nte a esa direcci6n. Si el circuito comparador indica igualdad de tags / es
de linea corresp d ch ,. .
e.ro sea ue en la Jinea e 1.ca e correspond1ente a ese tag esta el byte que la UCP direccion6, y
$1·~rto, clich;byte sera proporcionado por el cache casi al mismo tiempo de la indicaci6n de acierto.
0

,tantoasi resulta un fallo_, por lo '1_:Ue el controlador permitira leer en la memoria el contenido de
0 ~r . , (fi 77) el cual llegara a la UCP (en la que ocurriran "wait states") y el Inismo tambien
direcc10n g. 1· / . '
c, linea del cache citada -que ~tes no 1o contenia- Junto con el byte de la direcci6n adyacente,
1
-~-~laa : dose asi el anterior conterndo de esa linea. Asimismo, en la "tag memory" se cambia el tag
::c:i~ ~;:. por el tag del nuevo bloqu~. . ,.
os de concretar esta des~n~cwn en el cache 'basico" de la fig. 1.77.b, para lo cual
,~a.redmmos que sucediero:n las s 1 gu1entes asignaciones, siendo que al hacer cada asignaci6n se
on re
''bi6 el tag de cada linea -e:ntre parentes1s- en a tag memory del controlador.
J • 1

Y,> linea 00: contenidos 11011101 Y 00010101 de las direcciones 011000 y 011001 (011)
- Iinea 01: contenidos 01010001 Y 10010111 de las direcciones 011010 y 011011 (011)
linea 10: contenidos 11111100 Y 01111101 de las direcciones 111100y111101 (111)
linea 11: contenidos 11010101Y00110111 de las direcciones 001110 y 001111 (001)
_ngamos ahora que la, 1!CP quiera leer la memoria, para lo ~ual por el ~us de direcciones env~a la
tci6n 011010, que sera mterceptada PC:r el ~,.°ntrolador. As1 se deternuna que se trata de la linea
, se compara su tag (011) con el d~ la drrecc10n. Como ambos son iguales resulta un acierto, por lo
'elcache proporcionara el cont~rndo 01~10001 correspondiente a la posici6n 0 de esa linea, siendo
tiltimo bit de la direcci6n. A tal ~m a la salida del cache existe un multiplexor que mediante el valor de
Ultimo bit permite seleccionar si por sus salidas aparecera el byte de las posiciones (campos) O6 1.
' direcci6n hubiese sido 101010, al comparar para la linea 01 su tag existente (011) con el 101 de esa
1
d6n, resultaria un fallo. Entonces se accedera a memoria para obtener . los contenidos de las
"' '·•

~'~\::dones 101010y101011, los cual~s reemplazaran a los anteriores 01010001 y 10010111. Luego el nuevo
!eilldo de la posici6n Ode dicha linea pasara a la UCP. En la "tag memory" se reemplazara 011por101.
,
0
en el bloque traido de m.:moria tambien esta el byte de la direcci6n siguiente (101011) a la
dtada, muy probablemente d1ch~ byte sera pedido por la UCP en el pr6ximo acceso, por lo cual
,el mismo ocurrira un acierto. Ten1endo en cuenta queen la practica un bloque puede tener 16 6
;.bytes, al ser llevado al cache junta con el byte solicitado se guardaran bytes de las direcciones
~se.cutivas siguientes a la que ocasion6 el fallo. De este modo al llegar mas bytes que los
Mcitados, en forma automatica se trata de aprovechat la proximidad espacial, pues es dable esperar
·;~ los bytes que llegaron "de mas" anticipadamente en el bloque, sean los pr6ximos en ser
~edidos en el cache resultando una sucesi6n de aciertos.
-_r·• . I

)nterior tambien sirve para subrayar el hecho de que un cache recibe informaci6n desde memoria
'f:.1!2ente cuando ocurre un Jallo, o sea en el caso que el byte direccionado por la UCP no se encuentra
.,.:el. Ello implica por un lado, que la informaci6n fluye de memoria hacia el cache en forma
ontinua, pues la UCP accede continuamente al cache. Por lo tanto el trafico desde memoria hacia
}JCP se reduce notablemente, posibilitando a su vez que la memoria pueda ser accedida con menos
"ctos con la UCP por parted~ ~ispositivos de E/S que realizan ADM: acceso directo a memoria
_._ g.1.72). Por otra parte se verif1ca que la pr6xima informaci6n a la que seguramente la UCP
"~~.f~edera llega en forma autorndtica: como se accede a un bloque de direcciones consecutivas de
>!?'~oria, junto con los bytes que se direccionaron (que provocaron el fallo) vienen a la linea del cache
que se reemplaza los bytes de las direcciones siguientes que pr6ximamente seran accedido por la UCP.
1-100

Ademas de seguido, por lo general los controladores tambien piden el bloque con las direcciones
·----i--iguientes al bloque que conteriia Ia direcci6n del fallo, el cual ira a otra linea del cache. Asi en este
--
por lo menos existiran dos bloques (lineas) con direcciones consecutivas.

En la "tag memory" SRAM se determina si un contenido de ella (tag) estfl o no, para lo cual se
compara el tag de la direcci6n generada por la UCP con el tag de la linea del cache accedida,
utilizando un circuito comparador por linea.
Este funcionamiento es propio de las denominadas "mernorias asociativas", en las cuales se puede
asi determinar si un numero -en este caso el de un tag- se encuentra o no en ellas.
Para no perder tiernpo, a la par que se accede al tag de una linea mediante el campo de k bits de la
direcci6n (00, 01, 10 611 en el ejemplo), tambien se accede a una copia del bloque contenido en esa lfnea,
para que aparezca en las salidas del cache, haya acierto o fallo. Si hay acierto, parte del mismo 1
(seleccionado con los p bits de la direcci6n) ira a la UCP. En caso de fallo simplemente no pasa a la UCP.
Un cache con mas bytes por linea, respondera mejor cuando la UCP accede a una zona con buena
proximidad espacial, como ser una larga secuencia de instrucciones consecutivas. En cambio
cuando ocurre un fallo (< 10 % de los accesos) tendra que acceder a un mayor numero de bytes
sucesivos en memoria que un cache con menos bytes por linea.
En el controlador (fig. 1.77.b) ademas de los "tags" existe para cada linea un bit de validacion (V)
que sirve al controlador para saber silos contenidos de una linea son validos. Por ejemplo, cuando
se enciende el computador todas las lineas tendran su V=O, de modo que si la UCP genera una
direcci6n que por casualidad esta en el cache asi se indica que los contenidos de la linea
correspondiente son invalidos, puesto que son "basura" accidental. Luego, en los primeros
instantes de la ejecuci6n de un programa, las primeras direcciones de instrucciones y datos no
estaran en la "tag memory", ocurriendo un gran numero de fallos; pero con cada nuevo bloque que
es traido de memoria, el mismo contendra bytes de direcciones que siguen a la que la UCP quiere
acceder, con lo cual comenzara a funcionar la proximidad espacial y temporal. Asimismo, para
cada linea donde hubo reemplazo de bloque, el controlador pondra su V=l.
Los caches de correspondencia directa si bien presentan una circuiterfa sencilla, el hecho de que se
adjudique cada bloque de memoria siempre a la misma linea (por ej cada direcci6n xxx01x ira a la
linea 01) puede ocasionar a veces una disminuci6n en la tasa de aciertos. Tal serfa el caso en que se
ejecutan instrucciones que direccionan en forma repetitiva datos de dos bloques de memoria, los
cuales por sus direcciones deban ser adjudicados, casualmente, a una misma linea del cache. Por lo
tanto, en ese lapso constantemente el controlador deberfa ir cambiando el bloque que esta en esa
lmea, pasando al cache en forma altemada uno y otro de esos dos bloques de la memoria. Estas
situaciones se solucionan con compiladores mas inteligentes, que no generen este tipo de accesos.
Los problemas del tipo anterior no pueden ocurrir en los caches con correspondencia totalmente asocia-
tiva donde cualquier bloque puede ser adjudicado por el controlador a cualquier linea, lo cual permite apro-
vechar mejor el principio de proximidad en el acceso al cache, posibilitando una mayor tasa de aciertos.
En la fig 1.77.b, por ejemplo el bloque de direcciones 101010 y 101011 seria factible asignarlo a una cual-
quiera de las lineas del cache (suponiendo igualmente 8), segtin mejor convenga. y no solo a la linea 01.
El controlador de este cache cumplimenta un algoritmo que permite determinar a cual linea (por ej la
menos accedida ultimamente) se asignara el bloque de memoria que debe entrar en el cache, en reemplazo
de otro bloque. 0 sea que el nlimero de linea no se obtiene a partir de la direcci6n que produjo un fallo.
Para determinar si hay o no acierto se requiere comparar el tag de la direccion a la que la UCP
quiere acceder, con el tag de cada una de las lineas en la "tag memory". Puesto que se requiere
rapidez habra que hacer multiples comparaciones simultaneas, resultando compleja y limitada en
velocidad la circuiteria de comparacion. Ademas los comparadores deben tener muchas entradas,
dado que cada tag comprende bastantes bits, pues son los de cada direcci6n menos los p bits de la
derecha (para la fig. xxx, el tag seria de t=S bits, y p=l). Por ello solo esta correspondencia solo es
viable en caches relativamente pequefl.os, con pocas lineas.
A diferencia de esto, en el cache de correspondencia directa tratado, cada bloque a asignar iba una linea
predeterminada, fija, seglin su direcci6n. En el se reemplaza al bloque existente, sin considerar si este fue o
no recientemente accedido, o sea que no se explota a fondo la proximidad temporal de los contenidos.
1-100

Ademas de seguido, por lo general los controladores tambien piden el bloque con las direcciones
siguiente~~~ 1?l~que .quecontenia la direcci6n del fallo, el cual ira a otra lfr1ea del cache. Asf en este
por lo·menos existiran dos bloques (lineas) con direcciones consecutivas.

En la "tag memory" SRAM se determina si un contenido de ella (tag) esta o no, para lo cual Se
compara el tag de la direcci6n generada por la UCP con el tag de la linea del cache accedida
utilizando un circuito comparador por linea. '
Este funcionamiento es propio de las denominadas "memorias asociativas", en las cuales se puede
asi determinar si un numero -en este caso el de un tag- se encuentra o no en ellas.
Para no perder tiempo, a la par que se accede al tag de una linea mediante el campo de k bits de la
direcci6n (00, Ot 10 611 en el ejemplo), tambien se accede a una copia del bloque contenido en esa linea
para que aparezca en las salidas del cache, haya acierto o fallo. Si hay acierto, parte del mism~
(seleccionado con los p bits de la direcci6n) ira a la UCP. En caso de fallo simplemente no pasa a la UcP.
Un cache con mas bytes por linea, respondera mejor cuando la UCP accede a una zona con buena
proximidad espaciat como ser una larga secuencia de instrucciones consecutivas. En cambio
cuando ocurre un fallo (< 10 % de los accesos) tendra que acceder a un mayor numero de bytes
sucesivos en memoria que un cache con menos bytes por linea.
En el controlador (fig. 1.77.b) ademas de los "tags" existe para cada linea un bit de validaci6n (V)
que sirve al controlador para saber silos contenidos de una linea son validos. Por ejemplo, cuando
se enciende el computador todas las lineas tendran su V=O, de modo que si la UCP genera una
direcci6n que por casualidad esta en el cache asi se indica que los contenidos de la linea
correspondiente son invalidos, puesto que son "basura" accidental. Luego, en los primeros
instantes de la ejecuci6n de un programa, las primeras direcciones de instrucciones y datos no
estaran en la "tag memory", ocurriendo un gran numero de fallos; pero con cada nuevo bloque que
es traido de memoria, el mismo contendra bytes de direcciones que siguen a la que la UCP quiere
acceder, con lo cual comenzara a funcionar la proximidad espacial y temporal. Asimismo, para
cada linea donde hubo reemplazo de bloque, el controlador pondra su V=l.
Los caches de correspondencia directa si bien presentan una circuiterfa sencilla, el hecho de que se
adjudique cada bloque de memoria siempre a la misma linea (por ej cada direcci6n xxxOlx ira a la
linea 01) puede ocasionar a veces una disminuci6n en la tasa de aciertos. Tal serfa el caso en que se
ejecutan instrucciones que direccionan en forma repetitiva datos de dos bloques de memoria, los
cuales por sus direcciones deban ser adjudicados, casualmente, a una misma linea del cache. Por lo
tanto, en ese lapso constantemente el controlador deberfa ir cambiando el bloque que esta en esa
lmea, pasando al cache en forma altemada uno y otro de esos dos bloques de la memoria. Estas
situaciones se solucionan con compiladores mas inteligentes, que no generen este tipo de accesos.
Los problemas del tipo anterior no pueden ocurrir en los caches con correspondencia totalmente asocia-
tiva donde cualquier bloque puede ser adjudicado por el controlador a cualquier linea, lo cual permite apro-
vechar mejor el principio de proximidad en el acceso al cache, posibilitando una mayor tasa de aciertos.
En la fig 1.77.b, por ejemplo el bloque de direcciones 101010 y 101011 seria factible asignarlo a una cual-
quiera de las lineas del cache (suponiendo igualmente 8), segtin mejor convenga. y no solo a la linea 01.
El controlador de este cache cumplimenta un algoritmo que permite determinar a cuaI linea (por ej la
menos accedida ultimamente) se asignara el bloque de memoria que debe entrar en el cache, en reemplazo
de otro bloque. 0 sea que el ntimero de linea no se obtiene a partir de la direcci6n que produjo un fallo.
Para determinar si hay o no acierto se requiere comparar el tag de la direcci6n a la que la UCP
quiere acceder, con el tag de cada una de las lineas en la "tag memory". Puesto que se requiere
rapidez habra que hacer multiples comparaciones simultaneas, resultando compleja y limitada en
velocidad la circuiterfa de comparaci6n. Ademas los comparadores deben tener muchas entradas,
dado que cada tag comprende bastantes bits, pues son los de cada direcci6n menos los p bits de la
derecha (para la fig. xxx, el tag serfa de t=S bits, y p=l). Por ello solo esta correspondencia solo es
viable en caches relativamente pequeftos, con pocas lineas.
A diferencia de esto, en el cache de correspondencia directa tratado, cada bloque a asignar iba una linea
predeterminada, fija, segtin su direcci6n. En el se reemplaza al bloque existente, sin considerar si este fue o
no recientemente accedido, o sea que no se explota a fondo la proximidad temporal de los contenidos.
1
.-....
1-101 ....·~

l \.

La correspondencia asociativa par conjunto (de 2klineas) con c conjuntos o vias (que implican c altemativas de ~

asignaci6n), es una soluci6n de compromiso entre la correspondencia directa y la totalmente asociativa. ~


V1
~~~-----r-___,...,,,.,._...... -- .. 1""'~fi--1.'7"'7l-.. ei~·~~~-~ ....:i~ 1~~~~ ....:i~~....:i~ ~-~
~V.lJ.lV ell J.U .ti:,. J..J I .u 1...1 ~ ..l • d 1,. ' ,
ila Wl u.toq-ue esta uetenrillta 0 por JC bits COIT'lt.ii1e5 a roe.as
.LLU.lJ.lC:J..V UC: .LlllC:Gl UVJ..l\...l.C: 0
las direcciones de los bytes de ese bloque. Pero hay c lineas (vias) con igual nillnero de linea. El controlador ~
conforme a un algoritmo, adjudica el bloque a una de dichas c lineas: la menos accedida Ultimamente. ~
Reformaremos (fig. 1.77.c) el cache de 4 lineas de la fig.1.77.b de modo de tener para cada numero ~
de linea 2 lineas que guardan un bloque de 2 bytes cada una. Asi se forman c=2 conjuntos de lineas
designados via 0 y via 1. En cada via la posici6n de cada byte se identifica con Oy 1.
Todas las direcciones del tipo xxxx.Ox iran a la linea 0, y las del tipo xxxx1x a la linea 1, siendo que
el ultimo bit de la derecha indica si ira a la posici6n 0 6 1 de la linea. Ahora cada tag tendra 4 bits.
Vfa 0 Vfa 1 Vfa 0 Vfa 1
0 0
Uneao
UneaJ ···' Figura 1.77 .c
Controlador de cache Cache de 2 vias con 2 lineas de 2 bytes cada via
Asi, el bloque de direcciones 011000 y 011001 (tag 0110) ira siempre a la Hnea O, y el controlador
decidira si sera la Hnea 0 de la via 0 6 la linea 0 de la via 1. Para tal fin ademas del tag, cada linea de
cada vfa, junto con su bit de validez V, tiene un bit "LRU" (least reciently used, o sea usada menos
recientemente). Cada vez que una linea de una vfa es accedida, el controlador pone en 1 su bit
LRU, y 0 el bit LRU de igual numero de linea de la otra via.
En la fig. 1.77.c para un cache de igual tamafio que el de la fig. 1.77.b, aparecen reubicados los
mismos bloques de esta ultima como se indica, con un valor supuesto para el bit LRU de cada uno.
Supongamos que hubo un fallo al querer asignar el bloque de direcciones 010000 y 010001 (de
contenidos 10000101 y 11110000, no dibujados en la fig. 1.77.b): El mismo aebera ir al mimero de
lfnea 0, y se asignara a la via cuyo bit LRU vale 0, pues ello implica que el bloque que esta en dicha
via (0 en este caso) ha sido accedido antes que el bloque de la otra vfa, dado que este con LRU=l es
mas probable que sea accedido pr6ximamente. Asimismo se colocara el tag (0100) en lugar del tag
del bloque reemplazado. La nueva situaci6n del cache y del controlador aparece en la fig. 1.77.d
Si luego la UCP quiere acceder otra vez a la direcci6n 010000, el controlador comparara el tag 0100
con los dos tags de los dos bloques de numero de linea 0 para determinar en que via esta el bloque.
En cada acierto, un multiplexor -ubicado en las salidas del cache- seleccionara por su tag el bloque
accedido entre los dos posibles para un numero de linea, el cual aparecera en dichas salidas.

Via 0 Via 1 ViaO Via 1


mem LRU V 0 0
Unea Off ..
UneaJ. Figura 1. 77 .d
Ill " de cache
Controlador Cache de 2 vias con 2 lineas de 2 bytes cada via
Con este esquema se evita el conflicto antes citado en la correspondencia directa, cuando dos
bloques que iban a un mismo numero de Hnea eran accedidos en forma altemada. Ahora estarian
en igual numero de linea, pero cada bloque en una via distinta. La altemancia en el acceso solo
produciria el cambio de valor de los bits LRU de los dos bloques de igual numero de lfnea.
Si bien estos caches necesitan mas comparadores que los de correspondencia directa y en consecuen-
cia un mayor tiempo de acceso, son menos complejos y mas rapidos que los de correspondencia
totalmente asociativa, por lo que resultan una buena soluci6n de compromiso entre ambos.
Si se tiene 4 vfas, el controlador tiene 4 posibilidades para asignar un bloque a un rnimero de linea.
La estrategia de usar dos caches multinivel, uno muy pequeno dentro del procesador (level 1 - Ll)
y otro externo (L2), busca que Ll sea de acceso sea extra rapido, mientras que L2 se encargue de
manejar los fallos de Ll, de manera de minimizar los "wait states" de la UCP. Cuando el cache L2
accede a un bloque de memoria principal debido a un fallo, lo hace en modo "rafaga" ("burst"), esto
es el tiempo de acceso al primer byte del bloque (por ej. de 32 bytes) es mayor, pero los
subsiguiente bytes por estar en direcciones consecutivas se acceden varias veces mas rapido.
1-104

Si el bus es sincr6nico (como el ISA o el PCI) una de las lineas de control designada "clock" o ~
recibe pulsos regularmente espaciados en el tiempo, generados por un osc~ador, los cuales marcan
UCP los mstantes en que ~
; ...........
-~"i!'E'ii'~~~~~--
~i

._,~...,,.
:.:..,; ••l•W ·:_..;
- - ·
•• •• •;yi•lW
plinuedendactivar o desactivar
eas e contro1, o envial
direcciones o datos.
Memoria - - En un bus asincr6nic 0 a
partir de la activaci6n de una
linea por un "master" en lll\
instante no regido por lll\
clock, se sucede en respuesta
la activaci6n de otra linea por
el "slave", a la cual puede se-
guir la activaci6n de otra, etc.
Asi la activaci6n de una linea
depende de la activaci6n de
otra, pero no del clock: cada
nuevo evento solo es
respuesta al evento anterior
al mismo. Este bus (como el
Figura 1.79,c SCSI) es mas complejo de
implementar, pues los dispositivos deben ser auto-temporizados.
Una transacci6n en un bus presenta dos fases: envio de una direcci6n seguida del envfo de datos.
La velocidad de transmisi6n (Mbytes/ seg) o "ancho de banda" de un bus esta limitada por su longitud y ·
por el mimero de dispositivos conectados al mismo. Su causa es la inercia en la velocidad de cambio de
las seflales electricas digitales debido en esencia al tiempo de carga/ descarga de capacitores parasitos
distribuidos a lo largo de las lineas de un bus, cuyo efecto aumenta con cada dispositivo conectado. Por
tal motivo el bus local vinculado al procesador es de corta longitud frente a buses de E/S como el ISA,
el SCSI o el USB, que por ser mas lentos permiten longitudes ma yores y mas dispositivos conectados.
Jerarqufa de buses:
Muchos computadores se hicieron con un Unico bus, como ilustran las figs 1.79.c, 1.67 y 1.72 para ser
compartido por los dispositivos arriba indicados y los controladores de ADM. Pero a medida que crece el
nillnero de dispositivos conectados aumenta la puja de las mismos por usar el bus, produciendose
"cue~os de botella". Si bien puede mejorarse la velocidad de transferencia (coma ser con mas lineas para
datos, realizando transferencias de dates mediante grandes bloques de bytes sucesivos, arbitrajes rapidos
y utilizaci6n de buffers) para disminuir el tiempo de ocupaci6n por dispositivo, dicha velocidad se ve
limitada entre otras cosas por la capacidad parasita que agrega cada dispositivo. Ello no se condice con las
cada vez mayores exigencias de velocidad de dispositivos para graficos y video.
A los efectos de descongestionar el trafico que tiene lugar si se usa un solo bus, hoy dia los computadores
presentan una jerarqufa de buses de distinta velocidad y longitud, que por un lado rninimiza la competencia
por el acceso a memoria. Por otro permite conectar muchos perifericos reduciendo conflictos y tenerlos
fuera del gabinete. Asi (fig. 1.80), el bus que une el cache L2 (secci6n 1.12) con la UCP concentra todo el
trafico, que cuando el mismo no existia iba de memoria principal a la UCP por el bus que los une. Este
ahora queda mas despejado para transferir por ADM (secci6n 1.10) datos entre perifericos y memoria..
Asimismo, las interfaces de los perifericos no se conectan al bus del sistema PCI, sino a otros buses de FJS
como el ISA, USB o SCSI, de modo que al PCI solo estan conectados los adaptadores inteligentes o
puentes ISA/PCI, USB /PCI, SCSI/PCI que aislan al PCI de un numero grande de perifericos de velocidad
dispar, conectados a dichos buses. Esto permite conectarlos con buses de mayor longitud (ScSI, USB) fuera
del gabinete, sin ocupar el nillnero limitado conectores ("slots") existentes. Tambien clichos adaptadores
evitan conflictos en relaci6n con la configuraci6n de IRQ y ports de las interfaces (secci6n 1.11 y 1.10). I
Otros dispo
El nivel mas alto de la jerarquia esta constituido por el "local bus" que sale de la UCP, de muy alta
veloci4.ad y corta longitud, con muy pocos y veloces dispositivos conectados a el. Como estos operan con
velocidades altas y no muy dispares, es recomendable que el bus sea sincr6nico, por ejemplo para
transferir entre memoria y el cache L2 (que en un Pentium actual estan conectados por un bus interno
1-105

dedicado). Mediante un chip "puente" este bus se comunica con el bus PCI, al cual estan conectados los
buses de E/S citados, a los que se conectan los restantes componentes del computador (fig. 1.80).
-----_;;_El-I:m5~per \fig 1:80),-esta ubicado en w.-..a jerruqufa inte.t1.iledia entre los buses ultra rapidos que salen de la
UCP y los buses de E/S. Por el pasan datos desde o hacia la UCP, la memoria, y dispositivos perifericos.
Debe mencionarse que el denominado Port Acelerado para Graficos (AGP), que funciona a los :tvihz de
la UCP,. esta pensado como intermediario para las transferencias entre memoria y la tarjeta de video, de
a modo que se efecruen a maxima velocidad (528 Mbytes/ seg para 2X, y > lGbyte/ seg para 4X, siendo la
velocidad maxima del PCI cercana a los 100 Mbytes/ seg), a traves del chip que contiene al puente PCI.

Como tunciona el bus PC/ ?


El bus PCI (Peripheral Component Interconnect) creado por Intel, por su independencia del
procesador y subsistema de memoria usados, por su versatilidad de conexionado con otros buses
..
para perifericos existentes (ISA, SCSI, USB, etc), por sus 64 lmeas para datos, y por su caracteristica
"plug'n play" (PnP), se ha constituido en un estandard para los fabricantes de motherboards.
Buses como el VESA local bus para transferencias rapidas en aplicaciones graficas, por estar directamente
conectado al bus local de la UCP dependfa del mismo. En cambio el PCI es independiente, es estandard.
Es un bus sincr6nico de 66 (6 33) :tvlhz: su ilnea "reloj" durante los 15 nseg que dura cada uno de los 66 mi-
llones de pulsos (ciclos) que ocurren por segundo, permanece durante 7,5 nseg en 0 volts, yen los otros 7,5
nseg. en3,3 volts, marcando instantes en que se pueden enviar datos, direcciones, o comandos (fig. 1.80.b).
Si se trabaja con 64 ilneas de un PCI, se puede enviar juntas 8 bytes en cada ciclo, por lo que
te6ricamente se podria enviar 8 bytes 66 millones de veces por segundo, o sea 66x8 = 528 Mbytes/seg,
que no es suficiente para usar el PCI como un bus para leer o escribir datos en memoria.
En promedio un bus PCI opera a 100 Mbytes/seg., pues entre otras cosas parte de los c:iclos se usan
para preparar las transferencias, sin que haya transmisi6n efectiva de datos.
Para comparar, el bus ISA es de 8,33 Mhz y tiene 16 lmeas, lo que en teorfa da 8,33x2 = 16,66
Mbytes/seg.; y el EISA de 8,33 Mhz y 32 llneas alcanzarfa los 8,33x4 = 33,32 Mbytes/seg.
Dado que antes de transferir se requiere en cada lectura a traves del PCI ocupar 2 ciclos preparatorios, en
realidad debe estimarse una velocidad promedio de transferencia de datos bastante menor que la calculada,
la cmtl aumenta a 266 Mbytes/ seg cuando se transfieren en rafaga ("burst") muchos bytes consecutivos.
A diferencia de otros buses, en el PCI un "burst" no tiene longitud fija: continua hasta que uno de los 2
dispositivos intervinientes indique fin de transferencia, o si otro de alta prioridad debe usar el bus.
El bus PCI se comuni-
ca mediante el puente
PCI o controlador PO
Cache
L2 (fig. 1.80) con el bus
local que va a la UCP,
y con el bus de memo-
ria que va a esta.
En el chip que contie-
ne al puente PCI
tambien se encuentra
el arbitro del bus
PCI, y el controlador

ISlots
de memoria, que tran-
forma las 6rdenes ha-
cia la memoria DRAM
en una secuencia de
sen.ales para ella
MEMORIA (Secci6n 1.4).
Otros dispositivos USB Figura 1-.80

Dicho puente, conforme a su nombre, pennite la comunicaci6n entre dos de las tres buses citados par vez.
Ademas contiene buffers inteligentes, para el re-envio de datos que temporalmente guarda segiln
distintas necesidades. Asi permiten que la UCP y el puente trabajen en paralelo de manera que se
intercambien datos entre dos dispositivos del PCI mientras la UCP direcciona memoria. Tambien detecta
1-106
~
si se realizan sucesivas L/E que no sean en rafaga a posiciones consecutivas de memoria (por ej. a la Si es
memoria de video), en cuyo caso junta en un buffer los datos llegados al puente en forma aislada, y envi<
los reenvia en rafaga a ma~a velocidad de transferencia, compatible con las necesidades de la UCP. enteJ
-------·--=-e--n-ce..n.-derse el equipo, el puente PCI puede configurar automaticamente ports e IRQ correspon- Las]
dientes a distintos perifericos, para lo cual rastrea dispositivos conectados al bus PCI, y luego porl
asigna una Uni.ca direcci6n base para sus ports, y un determinado nivel n de IRQn para interrumpir. los 8
Al bus PCI (fig. 1.80) estan conectados el puente ISA (el cual tambien conecta al PCI la electr6nica 66 _.7,5 n§ J.5
IDE del rigido) y los adaptadores inteligentes para los buses USB, SCSI, otro PCI, asi como para
conexi6n a red. Pueden conectarse al PCI a traves de z6calos de expansion interfaces de perifericos, ~
Cicio 1
los cuales por su velocidad no pueden conectarse al ISA. Se trata, pues, de un bus intermediario
entre el bus local y otros buses. Tambien puede existir en la motherboard conectados al PCI adap-
tadores de video para manejar monitores. El bus PCI tambien puede dar apoyo en multipro-
Fram8l_
cesamiento, siendo que a un bus PCI puede conectarse otro PCI (PCI a PCI) mediante otro puente. EnAiD: ~
Delos dispositivos conectados al PCI incluidas las interfaces, s6lo 2 por vez pueden comunicarse a En CB/E:~~
traves del mismo: el iniciador o bus master (M) -al cual un arbitro le otorg6 el control del bus entre
lrdy
varios dispositivos que pujaron por dicho control para ser M- y el target (destinatario) o slave (S).
El arbitraje si bien se realiza sincronizado por el reloj del bus, no requiere la utilizaci6n de ciclos extras,
dado que tiene la ventaja de que se efecrua paralelamente al uso del bus por otro M. Para tal fin, ca- Dev Se!
da posible M (incluso la UCP) se comunica con el arbitro mediante dos Hneas dedicadas (fig 1.80.a).
Una seii.al de requerimiento
(REQ#) sale de cada posible
M hacia el arbitro, y otra de
Trdy
-
:

otorgamiento (GNT#) va en Al cc
sentido opuesto. sea e
Se busca beneficiar a las en el
transferencias largas (modo datrn
rafaga), aunque el arbitro Irdy,
puede obligar al M a ceder sero
Figura 1.80.a
el bus en el pr6ximo ciclo si para
existe prioridad. Dicho M puede ganar el bus para una nueva transferencia si no llegaron otros desa·
requerimientos al arbitro. tram
Puede establecerse que el primer M en solicitar es el primero en ganar el bus, o una cesi6n ciclica, o ElM
prioridad (por ej, el que opera en modo rafaga tenga prioridad sobre otro en modo simple). ladrn
Un bus PCI presenta 64 (6 32) Hneas AID (adressldata) que en un ciclo pueden usarse para Ene:
direccionar un dispositivo PCI, yen el siguiente(s) para transferir datos ahorrando espacio. que<
Las 6rdenes (tipo de transacci6n) se dan por c6digos de 4 bits en 4 Hneas designadas CIBE Las 1
(ComandolByte Enable). El c6digo del comando se envia por estas 4 lineas en el mismo ciclo en Si la
que una direcci6n se pone en las Hneas AID. En los ciclos en que por las Hneas AID se envian AID
datos, por las 4 Hneas citadas mediante otra combinaci6n binaria se indica cuales de los 8 bytes que puec
van por las 64 Hneas AID deben seleccionarse. para
Suponiendo que un M gana el control del bus, y que el mismo se efectiviza mas tarde en un ciclo 1 estas
(fig. 1.80.b), dicho M activa (hasta el inicio de la Ultima fase de la transacci6n) la linea Frame de
transacci6n en curso, y envia una direcci6n de inicio (de memoria o de un port) a traves de las Hneas 1,C6mo IL
AID, a la par que ordena una transacci6n mediante un c6digo en las 4 Hneas CIBE#. Dicha direcci6n ~~.::±<.:::::~~~:::«":::::*:~:;:::=~~:::;::;:;~~:=~s.:s:::::::;:~:.·m~~

llegara a todos los dispositivos del bus. El S que reconoce como una de sus direcciones esa direcci6n, El S<
la gtiardara junta con la orden. Ejemplos de las 16 transacciones que ordena un comando son: u otr
lecturalescritura de un port (EIS), · trata
lectura/escritura de la memoria, med:
sequencia IntA: envfo de la direcci6n del vector interrupci6n a la UCP (Unidad 3 de esta obra), chan
lecturalescritura de configuraci6n: cada dispositivo dispone de 256 bytes para configurarlo en la bus I
inicializaci6n del sistema (" espacio de configuraci6n") que otros dispositivos pueden leer acti- tram
vando la Hnea IDSEL Dicho espacio puede ser leido por un Sistema Operativo para determinar term
que dispositivos estan conectados, y as! brindar el servicio "plug 'n play" (conectar y operar). Este··
tar cc
1-106

si se realizan sucesivas L/E que no sean en rafaga a posiciones consecutivas de memoria (por ej. a
memoria de video), en cuyo caso junta en un buffer los datos llegados al puente en forma aislada, y J
los reenvia en rafaga a m~x~a velocidad de transferencia, compatible con las necesidades de h Uep ·
~T,.- - -
----~-------;Al encenderse- el
eqllipo, el puente PCI puede configurar automaticamente ports e IRQ correspon~
dientes a distintos perifericos, para lo cual rastrea dispositivos conectados al bus PCI, y luego
asigna una unica direcci6n base para SUS ports, y un determinado nivel n de IRQn para interrumpir.
Al bus PCI (fig. 1.80) estan conectados el puente ISA (el cual tambien conecta al PCI la electr6nica
66 .
IDE del rfgido) y los adaptadores inteligentes para los buses USB,, SCSI, otro PCI, asi como para
conexi6n a red. Pueden conectarse al PCI a traves de zocalos de expansion interfaces de perifericos ~
los cuales por su velocidad no pueden conectarse al ISA. Se trata, pues, de un bus intermediari~
entre el bus local y otros buses. Tambien puede existir en la motherboard conectados al PCI adap.
tadores de video para manejar monitores. El bus PCI tambien puede dar apoyo en multipro-
cesamiento, siendo que a un bus PCI puede conectarse otro PCI (PCI a PCI) mediante otro puente. En fl
De los dispositivos conectados al PCI incluidas las interfaces, solo 2 por vez pueden comunicarse a En C
traves del mismo: el iniciador o bus master (M) -al cual un arbitro le otorg6 el control del bus entre
varios dispositivos que pujaron por dicho control para ser M- y el target (destinatario) o slave (S). lrdy
El arbitraje si bien se realiza sincronizado por el reloj del bus, no requiere la utilizaci6n de ciclos extras,
dado que tiene la ventaja de que se efectUa paralelamente al uso del bus por otro M. Para tal fin, ca- Dev
da posible M (incluso la UCP) se comunica con el arbitro mediante dos lineas dedicadas (fig 1.80.a).
Una sefial de requerimiento Trdy
(REQ#) sale de cada posible
M hacia el arbitro, y otra de
otorgamiento (GNT#) va en
sentido opuesto.
Se busca beneficiar a las
transferencias largas (modo
rafaga), aunque el arbitro
puede obligar al M a ceder
Figura I .80.a
el bus en el pr6ximo ciclo si
existe prioridad. Dicho M puede ganar el bus para una nueva transferencia si no llegaron otros
requerimientos al arbitro.
Puede establecerse que el primer M en solicitar es el primero en ganar el bus, o una cesi6n ciclica, o
prioridad (por ej, el que opera en modo rafaga tenga prioridad sobre otro en modo simple).
Un bus PCI presenta 64 (6 32) lineas AID (adressldata) que en un ciclo pueden usarse para
direccionar un dispositivo PCI, yen el siguiente(s) para transferir datos ahorrando espacio.
Las 6rdenes (tipo de transacci6n) se dan por c6digos de 4 bits en 4 lineas designadas C/BE
(Comando/Byte Enable). El c6digo del comando se envia por estas 4 lineas en el mismo ciclo en
que una direcci6n se pone en las lineas AID. En los ciclos en que por las lineas AID se envfan
datos, por las 4 lineas citadas mediante otra combinaci6n binaria se indica cua.Ies de los 8 bytes que
van por las 64 lineas AID deben seleccionarse.
Suponiendo que un M gana el control del bus, y que el mismo se efectiviza mas tarde en un ciclo 1
(fig. 1.80.b), dicho M activa (hasta el inicio de la ultima fase de la transacci6n) la linea Frame de
transacci6n en curso, y envia una direcci6n de inicio (de memoria o de un port) a traves de las lineas · t,C6n
AID, a la par que ordena una transacci6n mediante un c6digo en las 4 lineas CIBE#. Dicha direcci6n ;·:·«::;:~::::::::::::~::~::~::;~::::*;:::;:;::::::?

llegara a todos los dispositivos del bus. El S que reconoce como una de sus direcciones esa direcci6n,
la guardara junto con la orden. Ejemplos de las 16 transacciones que ordena un comando son:
lecturalescritura de un port (EIS), ·
lectura/escritura de la memoria,
sec;uencia IntA: envio de la direcci6n del vector interrupci6n a la UCP (Unidad 3 de esta obra),
lectura/escritura de configuraci6n: cada dispositivo dispone de 256 bytes para configurarlo en la
inicializaci6n del sistema ("espacio de configuraci6n") que otros dispositivos pueden leer acfr
vando la linea IDSEL Dicho espacio puede ser leido por un Sistema Operativo para determinar
que dispositivos estan conectados, y asf brindar el servicio "plug 'n play" (conectar y operar).
1-108

El original SCSI-1 supone 8 lfneas para datos y velocidad de transmisi6n dentro del bus de hasta:
Mbytes/seg. En los 90 apareci6 la SCSI-2para16 6 32'lfneas, y con hasta 20 6 40 Mbytes/seg. J !

-------------------- N9r1Ilalmente el bus SCSI funciona en fol'llla


totalrnente asincr6nica, pudiendo hacerlo s·
q6nic_amente durante la fase de transferen:
d,e datos. Esto debe acordarse entre los d
Perifericos -externos al computador
dippositivos que se han comunicado. ~
preparados para SCSI c_011s~dera al adaptador SCSI a PCI coma Ur\a
unidad SCSI, por lo que quedan disponibies
solo 7 unidades para conectarse al bus scs1
Cada unidad tiene una direcci6n (ID) entre oy
7 configurable mediante jumpers.
Es factible conectar a un bus SCSI por ejempio 4
adaptadores SCSI, los cuales pueden conectarse
a 4 computadoras, que asi comparten dicho bus
1
y pueden intercambiar informaci6n entre sf. ·
Si bien lo comlin es que la informaci6n se trans;
fiera entre memoria principal y algU.n periferico
vinculado al bus SCSI (a traves del bus PCI ydel
adaptador SCSI), el bus SCSI permite intercambiar
Figura 1.81
informaci6n entre las unidades conectadas al mismo.
Asi pueden comunicarse un disco rigido con una unidad de cinta, sin pasar por la memoria
principal y sin la intervenci6n de la UCP ejecutando programas. ·
Cualquier unidad SCSI puede tomar el control del bus SCSI actuando como iniciador (M) y enviar
por el bus la direcci6n de la unidad "target" (S) con la que quiere comunicarse (para enviarle
comandos y transferir datos La lfnea de control BSY del bus indica si este esta ocupado, siendo que
solo se pueden enviar datos dos dispositivos por vez. Las direcciones, comandos y datos viajan por
las mismas 8 lineas en distintos momentos. ·
El bus SCSI permite por ejemplo que si el adaptador SCSI/PCI (M) le envia a la unidad SCSI.de
disco rigido (S) la orden de acceder a un sector para leerlo, mientras el cabezal se posiciona S libera
el bus, a fin de que mientras dura el tiempo de acceso al sector, el bus pueda ser usado por otras.
unidades. Cuando la unidad de disco puede transmitir la informaci6n pedida, pide seleccionar el ·
adaptador y se la envia. El bus SCSI presenta 9 lineas de control:
BSY (Busy): indica bus ocupado.
SEL (Select): usada por un M para seleccionar un destinatario S, o para que este seleccione al que fue
su M para reconectarse a el en una fase de reselecci6n (en cuyo caso ademas debe activarse la linea I/O) ·
I/0 (Input/Output): indica en que sentido se transfiere los datos.
CID (Control/Data): para indicar si por las 8 lineas de datos pasan c6digos de control (6rdenes1
status, o mensaje) o datos.
REQ-(Request): el S seleccionado solicita que se transfieran datos de S hacia Mo en sentido contrario..
ACK (Acknowledge): el M acepta que datos sean enviados de Sa Mo en sentido contrario.
MSG (Message): generado por un Spara indkar que la informaci6n que se transmite es un mensaje
ATN (Attention): cuando un M tiene un mensaje para su S.
RESET: resetea todos los dispositivos del bus, que pasa a la fase de bus libre.
La actividad del bus se da en una secuencia de hasta 8 fases, dado que al arbitraje puede seguir una fase
de selecci6n o reselecci6n. Luego se pueden repetir n veces las ultimas 4 fases agrupables en una:
1. Bus libre: cuando no hay ningtin dispositivo usando el bus. Se detecta si BSY y SEL no estan activas
2. Arbitraje descentralizado: si uno o mas de los 8 dispositivos quieren ganar el control del bus y ser M
activan BSY y colocan en las 8 lineas de datos su ID (cada una activada sola es un ID distinto). Cada un°
lee estas lineas para ver si hay un ID mas alto; de ser asi deja de activar BSY. El ganador activa SEL.
3. Selecci6n: el M selecciona su S ac;:tivando 2 de las lfneas de datos: la de su ID y la del ID de S.
El S debe activar BSY al detectar su ID (pasado un lapso el bus es libre), indicando que la
operaci6n puede hacerse.
,....._
'1
-...;;..
1-109 :\

Reselecci6n (opcional): permite que un S lento lib era el bus (ejemplo anterior del acceso a la ~
4. ~..
unidad de disco), y cuando terrilina la parte lenta de la operaci6n ordenada se vuelva a VJ
.'0
conectar con su iniciador M. - • ~
5. Ordenes: el M transmite al S por las lineas de datos una o varias 6rdenes encadenadas. s,t"'
~
Mediante REQ seguido de ACK se van transmitiendo byte a byte las 6rdenes a ejecutar.
r~
6. Transferencia: desde una unidad a otra segU.n sea, activandose REQ seguido de ACK con cada
byte transmitido por las lineas de datos. Las lineas S /D y BSY deben estar activas. (°'~
7. De estado: Para que el S solicite al M enviar informaci6n acerca del desarrollo de la transferencia. Q
8. Mensaje: Para que S solicite enviar a M uno o mas mensajes, como ser de desconexi6n o de
orden cumplida, con lo cual se vuelve a la fase de bus libre.

· Como funciona el Universal Serie Bus (USS) ?


~~&~<"''"'''''"*''"'.:l."-'<<:Bl•B;>.i'*'*''''''''''''''"';'"'"Tu"'.<<<'ii;&~-::~·"-s"m'''""''*fa'<':'~''''llll<"''"'°"'"''"'°"'~Bi:'*''-""'''~""'"';;~~;;;;;$3;;.;.§;:;i<f,<liB;fa,lli'''"'°"'l;;"';;.;:.';'"'''"'"°"''';;"'''""''''';:. .m,;;';m''''"'ll*'*'i@<;;,;;i,;;rn:&';,''''''"''*''"''li<'<fa'*''""'°*'""''"''\"''''\';~;~"'»-<<<«<<<'*"'"''''=*'""'%.<t:<""<"'*'"~'»fil;.,>.~'l':
El numero de z6calos en el bus ISA o PCI para insertar tarjetas interfaces de perifericos que se
quiere agregar es limitado. Si bien con la tecnologia PnP se evita configurar mediante microllaves o
puentes el valor de n de un IRQn, se requiere igualmente para tal fin abrir el gabinete.
Por otra parte, el ISA o el PCI por ser buses de transmisi6n paralelo necesitan protecci6n por las posi-
bles interferencias entre sus lineas, tienen grandes limitaciones en su longitud, ocupan mucho lugar en
la "mother" y requieren conectores grandes y relativamente costosos. Ello se justifica para el envio de
datos desde o hacia el procesador y la memoria, cuando son necesarias altas velocidades de transmisi6n
Pero en una PC para el envio de datos desde perifericos no muy rapidos o lentos hacia sus ports o en
sentido inverso, tecnicamente no se justifica el uso de dichos buses. El ISA ya obsoleto, subsiste en
raz6n del gran nlimero de usuarios que tienen perifericos y tarjetas adquiridos para ese bus.
En cambio, un bus serial usa solo 2 lineas para enviar datos, direcciones y control, y otras 2 con +5
y 0 volts para los perifericos. Asi resulta pequefto, econ6mico y apto para computadores pequeftos.
Asimismo, a medida que surgen nuevos dispositivos multimedia hacen falta mas ports por cada
uno de ellos, y hay que resolver conflictos resultantes de compartir lineas IRQ. Como se vera un
bus serie permite compartir mejor y disminuir el numero de puertos y lineas IRQ requeridas.
Para conectar perifericos de baja velocidad (teclado, mouse, scanner, joysticks, parlantes, camaras,
telefonos digitales, etc.) y de velocidad media (modems, unidades de CD, impresoras) en los aftos
90 las principales empresas de hardware y software acordaron crear un bus estandar denominado
USB (Universal Serial Bus) que los fabricantes de motherboards incluyeron desde entonces en
ellas, y que entre otras cosas permite:
Conectar dispositivos mientras el equipo esta funcionando, sin usar puenteadores (jumps) ni
microllaves para configurarlos, sin reconfigurar el sistema, y sin tener que abrir el gabinete.
Instalar hasta 127 dispositivos en un solo equipo, mediante cables de 4 conductores, con
conectores que evitan errores de conexionado.
Facilitar la conexi6n de dispositivos que operen en tiempo real (telefono, audio). .
A diferencia del SCSI, el USB no permite transferir directamente datos entre perifericos conectados a el.
Cuando se conecta un nuevo dispositivo al USB con el computador funcionando, el adaptador USB I
PCI (figs. 1.80 y 1.82.a) detecta el evento y se produce una interrupci6n que llama al sistema operativo.
La subrutina llamada lee en el dispositivo insertado sus caracteristicas, tipo de dispositivo y la veloci-
dad de transmisi6n que utiliza. Si es compatible con el bus USB le asigna una direcci6n entre 1 y 127,
y ordena escribir esta en los registros de configuraci6n del dispositivo. Los dispositivos sin configurar
tienen escrito por defecto direcci6n cero para poderlos direccionar la primera vez que se conectan.
Se distinguen dos tipos de software ejecutados por la UCP: el "Client Software" correspondiente a un
dispositivo, y el USB System Software, que es software de un sistema operativo que soporta al USB.
Para el USB existen dos clases de dispositivos: las funciones (perifericos), y los hubs (concentradores ).
El bus "'raiz" del USB inserto en la "mother" esta conectado en uno de sus extremes (figs. 1.80 y
1.82.a) al Controlador-Adaptador USB/PCI (CAUSB) inteligente, vinculado al bus PCI y que forma
parte de un chip de la "mother". Este adaptador, que tiene software asociado, permite regular
velocidades de transferencia hasta 1,5 Mbytes/ seg. para dispositivos lentos, hasta 12 Mbytes/ seg
para veloces, y hasta 60 Mbytes para mas veloces.
1-110

Este bus "rafz" en SU otro extremo tiene pm lo menos un conector USB para enchufar un
E/S,. ~ ~.c~~!~--d~ exp~si6n, o un hub USB, conforme a una topologia de conexionado tipc <irb~ l
irregular, con su rafz-tronco en la "mother". Usando hubs se conectan hasta 127 dispositivos. ~
clispositi~o r-
Un hub por un lado se conecta al bus "raiz" 6 a otro hub, y por otr0 lad
~1l~l-·1::,S.J11l\ll presenta varios conectores hembra, para concentrar el conexionado ~
cables USB que se dirigen hacia el como centro de una conexi6n "estrella•
•·.
~.~mB~~.@J.~····• (al igual que los rayos de una rueda que van hacia su soporte centraJ)
•·;~~~fili~~~§-••.···········
:~.§§1~•~1.;(e~ti§~I
siendo que en el otro extrema de cada uno de esos cables hay ~
dispositivo, u otro hub. Asi se logra ampliar el rnimero de diSpositiv~
USB que se pueden conectar al USB, los cuales funcionan paralelamente yen
Dispositivo forma independiente.
USB
El USB no tiene lineas para direcciones o control. Como en una red, por las
dos lineas de informaci6n se transmiten uno tras otro bits de control, de
direcciones y de dates, formando paquetes de bits. Se usan dos lfneas
para rechazar el ruido. Cada bit viaja codificado en NRZI (fig 1.82.b).
El CAUSB decide, auxiliado por el software, cual dispositivo puede
enviar o recibir datos a traves del conexionado. Para ello envia, cuando
el bus no es utilizado, un paquete de bits que llega a todos las
dispositivos, en form.a directa o a traves de hubs que lo re-envian, para
Figura 1.82.a que el dispositivo elegido detecte que debe enviar o recibir datos. O sea.
que el CAUSB inicia todas las transferencias, para lo cual accede ala
lista de transacciones preparadas por un software, y las traduce en paquetes que envia por el bus.
Los hubs complementan este proceso, dado que cada uno tiene incorporada inteligencia para:
Detectar, en sus conectores (ports) 1, la conexi6n/ desconexi6n de dispositivos y configurarlos.
Controlar transferencias de datos y 6rdenes vinculadas a los dispositivos conectados a el.
Proporcionar tension de alimentaci6n a dispositivos vinculados al mismo.
En el caso de un Hub USB 2.0, intercambiar informaci6n a alta velocidad con el adaptador
USB/PCI o con otro hub, segiln las normas USB 2.0 que permiten transferir a mayores velocidades
Se requiere que los dispositivos puedan disponer de un USB Peripheral Controller, y que los hubs
contengan un USB Hub Controller, que contienen las siguientes funciones circuitales:
Transceivers: para conf ormar la informaci6n binaria que viaja por el conexionado.
Serial Interface Engine (SIB) convierte en serie la informaci6n y transcodifica la informaci6n binaria
nativa del dispositivo en codificaci6n NRZI que viaja por el bus (y viceversa), a la par que se
encarga de concretar protocolos, detectar errores, y de secuenciar los paquetes de informaci6n.
Buffers tipo FIFO, para recibir y enviar datos, cuya transmisi6n puede ser masiva o is6crona.
Functiones de monitoreo del estado del controlador y los buffers.
Tanto en memoria principal como en los dispositivos se requieren buffers para transacciones pendientes.
Los movimientos de datos que ocurren a traves del USB (u otros buses) se originan en el software,
cuando desde un programa se necesita transferir datos de memoria a un dispositivo periferico o en
sentido contrario. Para tal fin se debe pasar a ejecutar un "Client software" (CSW) que "ve" a cada,.
dispositivo conectado al USB como una entidad 16gica identificable por un mimero, denominada ·
"funci6n". Los sistemas operativos contienen software para manejar el USB: el USB "Syste~j
Software" (SSW), para el cual una "funci6n" es un "USB logical device". El CSW se comunica con g
SSW -via su USB Driver interface (USBD)- para mover datos entre memoria y una "funci6n",
generando una solicitud denominada I/0 request packet (IRP). ·
Una vez que dicho movimiento se ha realizado, el CSW recibe una notificaci6n del software driver
asociado al CAUSB~ a fin de que puede acceder por ejemplo a los datos transferidos a memoria..
Este driver convierte cada IRP en transacciones que debe concretar el CAUSB mediante paquetes,y
lleva una lista de transacciones a realizar asi como de su estado de progreso (dada por el CAUSB).
En el USB cada transferencia de datos entre memoria principal y un dispositivo (pasando por cl
CAUSB) consta de una o mas transacciones. Cada transacci6n puede realizarse dentro del lapso de
una unidad de tiempo de 1 mseg denominada frame, mediante el envio de uno o varios paquetes.

; Aca el sentido que se da a "port" no es el de un registro (como en la interfaz de un periferico). sino el de un punto de conexionado.
1

1-111

--
-i
de
_____ ,_
Se dan 4 tipos de transferencias, solicitadas mediante el paquete "token''. (indicaci6n) correspondiente:
Isacro:-za: se trarsm.ite u..-n..a secuer.cia de paqu.eh::s de tama:fi.o fijo, a ID.terv-alos regula:res que
dependen de la aplicaci6n en tiempo real que se trate. Asi se garantiza velocidad de
d0 transferencia constante, como se requiere en telecomunicaciones (por ejemplo, para video,
de micr6fonos o telefonia digitalizados).
a~ Masiva (bulk): las transmisiones de los paquetes no son peri6dicas, pero se efecruan a altas velocida-
i}, des, a fin de enviar rapidamente importantes cantidades de datos (caso de impresoras, scanners y
lU\ transmisi6n de imagenes corrientes). Estas transferencias pueden realizarse entre dos isocronas.
os Interrupt data: dado que el USB no reconoce interrupciones, como la usada para manejar el evento
en de apretar I soltar una tecla del teclado, si se conecta este al USB se requiere que una subrutina
del sistema operativo cada 50 mseg pregunte si sucedi6 tal evento a firi. de que se transfiera el
as c6digo de la(s) tecla(s).
de De Control: tipicamente son transferencias entre el CAUSB y un dispositivo del bus, para leer
as en los registros de este informaci6n necesaria para su configuraci6n (setup).
Las caracteristicas de un dispositivo que interesa determinar y registrar en su configuraci6n
de automatica son: identificaci6n del fabricante, clase de dispositivo, y capacidad de manejo de potencia.
do Cuando se configura un dispositivo que se conecta al bus, el SSW debe determinar si es compatible
os con el USB, para lo cual examina el descriptor del dispositivo localizado en el mismo, a fin de
ra determinar por ejemplo si su velocidad de transferencia es compatible con el bus. Luego debe
ea verificar si el tiempo maximo para realizar una transacci6n no supera un milisegundo (frame).
la
El CSW se vincula con una funci6n (dispositivo) considerandola compuesta de una hasta 16
subentidades 16gicas, cada una denominada "endpoint", identificables con un numero de 4 bits en
los paquetes "token". Este numero se encuentra en el campo ENDP que sigue al de la direcci6n de 7
bits del dispositivo (ADDR). Ambos numeros (fig. l.xxx) son necesarios para identificar el
"endpoint", y se asignan en el momenta en que el dispositivo se conecta al USB.
Por ej. la unidad de disquete es de entrada/ salida, puede ser vista por el CSW como dos endpoints
or del USB con los cuales se comunica a traves de dos "pipes" (canal 16gico): uno para entrada y otro
para salida, dado que un endpoint solo puede enviar o bien recibir datos, o sea es unidireccional.
s Un endpoint presenta propiedades que definen el tipo de transferencia que puede hacer con el CSW,
como ser:
Frecuencia de acceso al bus y demoras maximas permitidas en el pasaje por el bus.
a Velocidad de transferencia requerida.
e Tamaflo maxima de paquete que el endpoint puede recibir o transmitir.
Tipo de transacci6n que realiza .
Manejo de errores requerido.
Cualquier paquete que se envfa (ver mas abajo) debe comenzar con un campo SYNC de 8 bits para sincro-
nismo seguido por-otro, el PID (Packet Identification) de 8 bits, 4 de los cuales codifican entre otros:
, SOF (Start Of Frame): comienzo de envio de paquetes.
n ACK (Acknowledge): acuse de datos recibidos sin errores por el CAUSB o un dlspositivo.
a NACK (Not Acknowledge): senal de un dispositivo al CAUSB que no pudo recibir o transmitir datos.
a IN: enviar datos desde el dispositivo.
n OUT: enviar datos hacia el dispositivo.
SETUP: configurar dispositivo.
DATAO: bloque de datos en orden par.
DATAl: bloque de datos en orden impar.
STALL: enviado por un dispositivo, indicando que no puede recibir o transmitir datos.
La mayoria de los paquetes termina en un campo CRC (Cyclic Redundance Code) que sirve para
y detectar errores en la transmisi6n de un paquete, en cuyo caso se retransmite el paquete.
Las transferencias isocronas no admiten retransmisiones por errores en los datos recibidos, dado que no
hay tiempo para que el receptor emita p(\quetes ACK o NACK por lo que debe decidir luego que hacer.
Existen paquetes de indicaci6n ("token"), paquetes de datos, y paquetes de dialogo ("handshaking").
El paquete SOF sirve para marcar tiempos. Es emitido cada mseg. por el CAUSB hacia todos los
dispositivos, incluyendo los hubs, como si fuera un reloj sincronizador. Luego del mismo pueden
1-112

enviarse otros paquetes, dentro del mseg. asi definido, entre un paquete SOF y el siguiente. Al PID
le sigue un campo de p bits para indicar numero de frame, al cual le sigu.e un CRC (5 bits).
--------,D""1----=·ch:l::-:-o-=n::-:::t1mcero interesa -en especial a dispositivos isocronos. Un SOF no exige paquete de respuesta·
solo marca tiempos. Su formato es: '
I SYNC (8) I SOF I
(8) Nro (11) CRC (5) I
Los paquetes "token" cuyo PID es IN, OUT o SETUP intervienen en una transferencia de Control
para enviar datos a un endpoint de un dispositivo recien conectado. El endpoint que recibe un paquete
SETUP, luego puede recibir datos y responder con un ACK si fueron correctos. Su formato es:
I SYNC (8) I PID I
(8) ADDR (7) I ENDP (4) I CRC (5)
Los paquetes de datos (siguen a paquetes "token") tienen DATA como PID, ya este campo le sigue otro
con los bytes transmitidos (de 0 a 1023), y luego otro para CRC de 16 bits. La transmision puede ser
isocrona, masiva o interrupt data. En cualquiera de estas una transferencia supone una o mas
transacciones DATA. Para las transferencias tipo Interrupt Data las normas USB no establecen
formatos especfficos, siendo 64 y 8 bytes la maxima cantidad de datos a transmitir por paquete en
full-speed, yen low speed, respectivamente. En el momenta de la configuracion del dispositivo el
SSW determina dicho maximo, el cual es mantenido.
ISYNC (8) IDATA (8) I (1 a 1023 bytes de datos) CRC J
Los paquetes de dialogo ACK y NACK se transmiten solo con el campo PID (ademas del SYNC):
I SYNC (8) I ACK (8) I I SYNC (8) I NACK (8) I
Segiln se describio antes, el USB tiene dos Iineas en lugar de una para enviar cada bit de
informacion. En cada instante se sensa la diferencia de tension entre esas dos lineas (tension
diferencial) a fin de compensar los ruidos electromagneticos que pudieran generarse. Cuando
ocurre un ruido este afecta por igual a las dos lineas, o sea que ambas durante cortos lapsos
pueden subir o bajar igual valor de tension en relacion a masa, pero estas variaciones no modifican
el valor de la diferencia neta de tension entre los dos conductores.
La informaci6n se envia en el codigo binario NRZI (Not Return Zero Inverted), que tiene la ventaja de
que el ritmo fijo con que se envian por el bus unos y ceros (frecuencia reloj, o "clock") esta inserto en la
informaci6n, por lo que el receptor no necesita una tercer linea para identificar cuando hay uno o cero.
Dates originales

-w W1l 0 0 0 0 0 0 1
i

0 0

2 3 4 ! 5
Datos en NAZI Oinsertado ("bit suffing")
Figura 1.82.b
En NRZI (fig. 1.82.b) los bits de la informaci6n binaria que se quiere codificar en NRZI se van
generando igualmente espaciados en el tiempo ("bit time"), siendo que una sucesion de ceros hace
que la sefial NRZI vaya cambiando con cada cero, mientras que una sucesion de unos hace que la
sefial NRZI no cambie. Un cero debe insertarse luego de cada 6 unos consecutivos ("bit suffing")
para forzar una transici6n de nivel. Este cero es reconocido y descartado por el receptor cuando
pasa de NRZI al c6digo binario originario.
USB 2.0
La descripci6n desarrollada corresponde a los buses USB que cumplen con las normas USB
revision 1.1. La norma 2.0, define USB con velocidades de transferencia de hasta 60 Mbytes/seg con
lo cual pueden conectarse dispositivos de video y de almacenamiento, entre otros. Se establecen 3
tipos de dispositivos:
Low Speed (LS): hasta 10.000 Bytes/ seg (teclado, mouse, joysticks, realidad virtual)
Full Speed (FS): de 50.000 Bytes/seg a 1 Mbyte/seg (audio, micr6fonos)
High Speed (HS) de 3 a 50 Mbytes/seg (video, almacenamiento)
1-113

D USB 2.0 permite aprovechar dispositivos y hubs USB anteriores, pero para funcionar en 2.0 se requiere
_.__ _ ___.!,un_CAUSB para 2.0 y hubs 2.0.1 amen de cables de conexionado para operar en HS.
Este genera un paq~ete SOF cada 125 µseg (un microframe = 1 µframe) que llega a los hubs, y estos
4

por cada 8 de estos generan un SOF cada mseg (125 µseg x 8 = 1 mseg) que llega a todos los
dispositivos FS o LS. Para estos todo sucede en esencia como si trabajaran con la norma 1.1, siendo
cada hub una interfaz entre el adaptador y los dispositivos. Un dispositivo HS conectado a un hub
USB 2.0 es como si estuviese conectado al CAUSB 2.0.
Cuando el CAUSB 2.0 en un µframe determinado quiere ordenar una transacci6n (fig. 1.82.c),
como ser que un dispositivo "X" low o full le envie (IN) datos al CAUSB 2.0; luego de enviarle este
al hub un paquete SOF, le enviara dos mas: uno denominado Start Split Transaction Token (SSPLIT),
indicado a continuaci6n, al cual seguira un IN "token" como el anteriormente definido en USB 1.1.
PID Direcc. SIC (1) Dire cc. Speed E en Start ET (2) CRC
de hub 2.0 0 Start hub 1.1 0 full complementa End (5)
Split (7) lCom (7) (si llow a Sen full Point
(8) plete existe) (1) speed (1) Tipe
El hub reenviara el "token" IN al dispositivo "X", el cual durante los frames siguientes (de 1 mseg)
enviara paquetes de datos al hub, que los guardara en su buffer, y le respondera con un paquete
ACK al dispositivo "X" ("X" es un dispositivo full o low speed, pero no high speed).
A todo esto, el CAUSB 2.0 luego de haber enviado los paquetes SOF, SSPLIT e IN en un µframe, en
el siguiente puede iniciar otra transacci6n con otro dispositivo "Y", enviando SOF, SSPLIT y otro
token, sin esperar a que el dispositivo "X" envie los datos solicitados en el µframe anterior. Del
mismo modo el CAUSB 2.0 puede iniciar otras transacciones en cada µframe. Luego de varios
µframes posteriores, el adaptador enviara al hub el Complete Split Transaction Token (CSPLIT) -token
Split como el de SSPLIT pero con S/C=l - seguido del mismo IN token enviado anteriormente,
para requerir que el hub le envie el resultado de la transacci6n completada con "X".
El hub por las dos lineas de alta velocidad que lo unen con el adaptador, enviara paquetes con los
datos enviados por "X", que estaban en su buffer.

Figura 1.82.c

.---------------..:ua1l•

DISPOSITIVO "X"
CAUSB 2.0 8
HUB 2.0

. . . 5.0"

. . . 5.1

llllBI s.n
r
-

Esta mejora sustancial en la cantidad de instrucciones que se procesan por segundo se basa en las lineas de
1-115

producci6nen serie_de _las fabricas de autos .. En ellas se divide el proceso de fabricaci6n en una serie de
subprocesos que se pueden realizar en forrna independiente. En una~ cadena de este ti.po, cuando se tennina
un subproceso de fabricaci6n de una unidad (como ser el de pintura), la misma es desplazada al lugar donde
se realiza siguiente subproceso de la cadena, a la par que otra unidad -tambien en proceso de fabricaci6n-
ocupa el lugar de la primera, para ser sometida al mismo subproceso realizado sobre la unidad anterior.
De esta forma se realizan simultcineamente todos las subprocesos independientes que requiere el
armado de un auto, pero aplicados a distintos autos en curso de fabricaci6n. Cuando se termina de
producir un autom6vil, los que fueron entrando a la cadena estaran parcialmente construidos.
Para plantear didacticamente la mejora habida apelaremos a un proceso conocido: el lavado de autos.
Un lavadero simple tiene una persona a cargo de todas las etapas del lavado. Entra un auto por
vez, y despues de un tiempo, en el cual se sucedieron dichas etapas, el auto sale limpio. Luego
entra el auto siguiente a lavar, y asi de seguido.
Esto es semejante al procesamiento de cada instrucci6n en el modelo original de Von Neumann
(figura 1.85 izquierda), siendo que la siguiente instrucci6n recien se puede comenzar a ejecutar
luego de transcurrido el mimero de pulsos que requiere la ejecuci6n de la anterior.
En un lavadero semiautomatico en el cual el proceso se hace en 4 etapas de 5 minutos (entrada y pago
del ticket ~ cepillado automatico ~ limpieza de ruedas e interior ~ limpieza de vidrios y secado finaI1)
se pueden ir procesando 4 autos simultaneamente. Cada auto tardaria 20 minutos en salir, pero puede
salir un auto terminado cada 5 minutos. Esto es, aumenta la cantidad de autos lavados por hora, lo cual
redunda en un menor precio de lavado, pero cada cliente de be esperar las 4 etapas (20 minutos).
Si al modelo de Von Neumann se le agrega "pipelining", la UCP mantiene su esquema basico, pero se le
debe agregar circuiteria adicional, del mismo modo que un lavadero automatico requiere mas personal,
maquinaria y espacio intemo para espera, en comparaci6n con un lavadero manual unipersonal.
Asi, se necesita un buffer para almacenar por orden de llegada los c6digos de varias instrucciones (como
ser 4 6 5) pedidas a la memoria (o al cache), y otros buffers intermedios entre etapas. Estos sirven para que
2
no se pierda el c6digo de una instrucci6n en curso de ejecuci6n, o datos y resultados relacionados con ella.
La figura 1.85 (derecha) ilustra c6mo un "pipe line" permite procesar simultaneamente diversas etapas
de distintas instrucciones, completandose en cada etapa una parte de la ejecuci6n de cada instrucci6n.
Se ha supuesto a los fines comparativos que el "pipe line" se realiza con las 4 etapas y tiempos
(dados por pulsos reloj, designados t1, t2 , • ..• )de la figura 1.84 6 1.30, y que todas las instrucciones
requieren para su ejecuci6n 4 pulsos ). Entonces la UC ordenara:
En t 1, la primera de estas instrucciones que corresponde ejecutar (11), pasa del buffer al registro RI.
En t2 el c6digo de 11 es decodificado, y al registro RI pasa a contener el c6digo de 12.
En t3 se trae3 el dato a operar para 11, se decodifica 12, ya RI llega desde el buffer el c6digo de l3.
En t4 termina de ejecutarse 11, se trae el dato a operar para Ii, ~e decodifica 13, y llega a RI el c6digo de ~
Asf de seguido se Bevan a cabo en paralelo los procesos indicados en diagonal en la figura citada, cada uno
independiente del otro. De esta forma, al cabo de 8 pulsos se habran terminado de ejecutar 4 instrucciones, o
sea, 4 veces masque con el·modelo sin "pipe line" que aparece a la izquierda de la misma figura.
4
En general, si se tiene un "pipe line" de n etapas, te6ricamente se puede procesar hasta n veces mas
instrucciones por segundo que sin "pipe line", suponiendo que todas las instrucciones requieran n etapas.
Esto implica tambien una situaci6n ideal, con todas las instrucciones de igual complejidad, ejecutandose
en 4 pulsos reloj. Asi, con cada pulso entra una instrucci6n al "pipe line", y se termina de ejecutar otra.
Resulta, que si bien nose reduce el tiempo de ejecuci6n de una instrucci6n (cada una requiere 4 pulsos reloj),
en cada pulso reloj se esta ejecutando una etapa de 4 instrucciones distintas, lo cual permite ejecutar varias
11
veces mas rapido (4 en este caso) las instrucciones de un programa queen un modelo sin pipe line".

Suponiendo que esta ultima etapa sea la que dura 5 minutos y otras mucho menos, ella determina el ritmo de lavado.
Del mismo modo, en el lavadero citado puede requerirse un lugar entre dos subprocesos, donde un autom6vil que sale de un sub::proceso
permanezca en el demorado, antes de pasar al siguiente, so pena ~e llevarse por d~lant~ e~ auto que aun esta e? este subproceso.
Desde la memoria cache, siesta en ella (sino habra que ped1rlo a la memona pnnc1pal) o desde un registro de la UCP.
4 Un "pipe line" sin circuitos para "predicci6n de saltos condicionados" puede cortarse, si por ejemplo 11 es una instrucci6n de salto
condicionado (figura 1.35), que obligue que la siguiente que corresponda ejecutar no sea lz; o si tiene lugar una interrupci6n por
hardware. O demorarse un pulso reloj por que el dato a operar no esui el cache y hay que pedirlo a memoria. Asimismo, la circuiterfa
extra para el "pipe line" hace que cada instrucci6n se ejecute con pulses de mayor duraci6n en relaci6n con un modelo sin "pipe line"
1-117

• La Unidad de cache de 8 KB guarda las instrucciones y datos que seguramente seran requeridos pr6xi-
mamente. Por una parte, a traves de un bus de 128 lineas, se pueden leer del cache 128/8=16 bytes que
--- pasart a un buffer de la Unidad de pre-carga de instrucdones. Corresponden en promedio a unas 5
instrucciones a ejecutar, que asi llegan juntas para entrar al "pipe line". Por otra, el cache puede ser leido
para que se envien 32 bits de datos a la UAL, o a un registro de la UCP 6 64 bits de datos a la Unidad de
Punto Flotante (FPU en ingles). En una escritura van hacia el cache 32 6 64 bits, respectivamente
• La Unidad de Pre-carga proporciona las direcciones de las pr6ximas instrucciones a ejecutar, y
guarda las mismas en orden en dos buffers de 16 bytes, para que luego cada una sea decodificada
• La Unidad de Decodificaci6n realiza dos decodificaciones de cada instrucci6n, segun se vera.
• La Unidad de Control (UC) mediante lineas que salen de ella (dibujadas en figuras 1.87 a 1.89), activa las
operaciones que con cada pulso reloj deben realizar los distintos bloques de la UCP (U. de pre-carga,
U. Decodificadora, UAL, UPF y UC), conforme lo establecen microc6digoa de la ROM de Control.
• La Unidad de segmentaci6n, paginaci6n y protecci6n de memoria, conocida como f/Unidad de
manejo de memoria" (MMU en ingles) se encarga de proporcionar las direcciones fisicas de
memoria que utiliza un programa Para tal fin esta unidad convierte la referenda a la direcci6n del
dato -que viene con la instrucci6n- en la correspondiente direcci6n fisica. Puesto que la memoria
de una PC se divide en segmentos, y estos -de ser necesario- pueden subdividirse en paginas
(por ejemplo si se usa el sistema operativo Unix). Esta unidad se encarga de ello, asi coma de la
protecci6n contra escrituras no permitidas en zonas reservadas de memoria. Conviene aclarar que
el nombre de esta unidad no tiene mucho que ver con la traducci6n castellana de "pipe line" como
"segmentaci6n", raz6n por la cual se prefir~6 usar dicha palabra inglesa. ___ ==~~~=

Figura 1.86
Todas estas unidades participan en el "'pipe line" de instrucciones, queen el 486 consta de 5 etapas,
que progresan con cada pulso reloj, al compas de sus millones de ciclos por segundo:
1. Pre-carga ("pre-fetch") consiste en la llegada de los c6digos de las pr6ximas instrucciones que entraran
al "pipe line" a dos buffers (de 16 bytes cada uno) de la Unidad de Pre-carga,, para formar una "cola".
-----=En::.:....:..la_fi""""-ggra _1-8_6 ..se ha supuesto que a u:no de cstos buffers han llegado desde el cache 5 instrucciones
(promedio de instrucciones que entran en los 16 bytes de este buffer) en forma simultanea. Los c6digos
de ellas son los rnismos que hemos usado en la figura 1.15paraIi,12, 13, 14, queen hexa son AlOOSo
30600500, B0600650, y A31050, respectivamente. La instrucci6n Is, aparece con un c6digo XXXX. Den~
haber estado estas instrucciones en el cache, primero se hubiera pedido 11 a la memoria principal1, y
llegaria una copia de su c6digo al buffer de pre-carga para que entre al "pipe line", y otra copia del mis
mo al cache. Inmediatamente llegaran luego al cache desde memoria, uno tras otro, los c6digos de 12,
2
13, 14 , que pasaran a la cola del buffer. De esta forma, solo se pierde tiempo en obtener del exterior a J1
2. Primera Decodificaci6n: a la Unidad de Decodificaci6n Hegan los primeros 3 bytes de cada
instrucci6n, para separar -entre todos los bytes que forman SU c6digo de maquina- SU c6digo
de operaci6n, del numero que hace referenda a la direcci6n del dato (Los c6digos de operaci6n
pueden tener de 1 a 3 bytes). Asi, en la figura 1.86, al primer decodificador llegan los bytes
AlOOSOH, queen este caso son todos los bytes de la instrucci6n 11, identificandose Al como el
c6digo de operaci6n, y 0050 como la referenda a la direcci6n del operando, numero que pasara
a la Unidad de segmentaci6n y paginaci6n, que formara la direcci6n del dato a operar, de modo
que pueda ser leido del cache (siesta en este).
3. Segunda Decodificaci6n: en la figura 1.87, el c6digo de operaci6n Al identificado en el paso
anterior es ahora decodificado. Esto permite determinar la secuencia de microc6digo contenida en la
ROM de Control. Merced a esta secuencia la UC generara las seftales de control, que enviara por las
linea&- tinsinuadas con flechas) que salen de ella, para que cada unidad que controla, ejecute una
parte de la instrucci6n con cada pulsos reloj (como en la figuras 1.31 y 1.32). Si la instrucci6n es
simple se ejecuta en un solo pulso. Al mismo tiempo que 11 pasa por esta etapa del "pipe line", tres
bytes (030600H) del c6digo de 12 (03060050H) entran a la etapa de primera codificaci6n, siendo que
0050 -direcci6n traspuesta del dato- pasara a la U. de segmentaci6n, para leer luego el dato del cache.
4. Ejecuci6n: en la figura 1.88 el dato que debe transferirse al registro AX -mmo ordena 11- hay que
leerlo en la direcci6n (5000H) que la U. de Segmentaci6n dej6 en el registro RDI, la cual pennite leer el
data a operar en el cache. Suponiendo que el dato esta en la U de cache, el mismo llegara al registro
RDA3 • Paralelamente con la acci6n recien descripta para 11, el c6digo 0306 de 12 pasa a la segunda
decodificaci6n, a la par que los bytes 2B0606 del c6digo 20060650 de 13 van a la primera decodificaci6n.
0
5. Almacenamiento de resultados: a esta etapa final del pipe line" llega 11, completandose su
ejecuci6n, para lo cual el dato (1020H) pasara al registro AX (paso incluido en la figura 1.88).
Al mismo tiempo se tiene que: 12 entra en la etapa de ejecuci6n, obteniendose del cache el dato
1020H, que pasa al RDA. Este data se suma en la UAL con el contenido (1020H) de AX (figura
1.88), conforme ordena el c6digo de dicha instrucci6n.
El c6digo 2B06 de la instrucci6n 13 entra a la segunda decodificaci6n, y los bytes A31050, o sea
todos los que conforman el c6digo A31050de14 son sometidos a la primer decodificaci6n.
0
En la figura 1.89 se ha incluido c6mo progresa el pipe line" con otro pulso reloj, a fin de terminar
de ejecutar 12, que pasa a la quinta etapa. En esta, el resultado de la UAL (2040H) debe guardarse
en AX, asf como los u flags" SZVC que ella tambien genera, resultantes de la operaci6n, en el regis-
tro de estado (no dibujado). Paralelamente, 13 , 4 e Is, pasan por las etapas 4, 3 y 2 del "pipe line".

Si como es corriente, existe un segundo nivel de cache exterior (por ejemplo de 256 KB), se buscarfa 11 primero en este cache
rapido, y de no encontrarse en el mismo, se obtendrfa 11 de memoria principal.
2
Cuando no hay un contenido en un cache, su controlador solicita a Ia memoria el mismo y los que estan en las direcciones siguientes
3
Por razones didacticas se ha buscado continuidad con el modelo de Von Neumann (figuras 1.23 a 1.26), aunque la ejecuci6n de 11
pueda realizarse en un paso menos en el 486. Esta simplificaci6n puede traer algunas inconsistencias en el paso 5.
1-119 ~
.,..;.:.
-----------------·---------- ------------- - - - - - - - - 1 '·,
·s..
!I
-...,
:-::c:
,_,.,
.:._;
-~
I
St-
<
~
("'~
Q

----------·---------------·--·--- ------ -----· - --- ___ _figuraJ_.~7__

he

s
1
Figura 1.88
1-121

Una instrucci6n para nillneros en punto flotante opera con datos de 64 bits, que ocupan los dos "pipe lines1'
---:'"'.""'"'f-----p-ar_a_n_:Uiiieros enteros {de 32 bits cada uno), por Io que ella no puede procesarse junto con otra instrucci6n1•
Estas instrucciones pasan por las cinco etapas correspondientes a instrucciones para enteros, y ademas
requieren 3 etapas de un °pipe line" exclusivo para punto flotante. Puede decirse que el Pentium presenta
un "pipe line" de 8 etapas1 siendo que las instrucciones para enteros se ejecutan enS etapas.
Las denominadas instrucciones "simples" para enteros, luego de haber pasado por la pre-carga, y las dos
decodificaciones (pasos 1, 2 y 3) se ejecutan en uno, dos o tres pulsos reloj, seglin sea su complejidad.
No requieren acceder a microc6digos de la ROM de Control: a partir de su c6digo de operaci6n, se generan
las sen.ales de control que ordenaran a los circuitos de la UCP intervinientes, que operaciones realizaran.
Este tipo de instrucciones para enteros son las que pueden procesarse de a dos (una en cada "pipe line").
Instrucciones como Ii, 12 e l3 (de la figura 1.86) que requieren una lectura del cache interno de datos
(si el dato no esta en el, hay que leer el cache externo, y si tampoco esta en este, leer la memoria
principal), pueden ejecutarse en dos pulsos, luego de la segunda decodificaci6n (paso 3); mientras
que 14, que necesita una escritura en el cache de datos, se lleva a cabo en tres pulsos.
Las instrucciones muy simples, por ejemplo con datos a operar en registros de la UCP, y el resultado de la o-
peraci6n asignado a otro registro de la UCP, se ejecutan en un solo pulso reloj, luego de la 2da decodificaci6n
,...-------· -···--- -·-·-- -

Figura 1.90

Si en la primer decodificaci6n se determina que el par de instrucciones id~tificada~ son -~imples, )


que la segunda en orden no depende del resultado de la primera, cada una s1gue su e1ecuc10n en uno
de los dos "pipe-lines", o sea que se procesan en paralelo. . , .
y si ademas ambas se ejecutan en igual cantidad de pulsos reloJ, entonces, al cabo del ultim~ de
ellos, las mismas se terminan de ejecutar simultaneamente. Es~a e.s. la forma en que el Pentium
puede ejecutar dos instrucciones en un pulso reloj, lo cu.al significa que los resultados de las
operaciones ordenadas se obtienen a un mismo tiempo.

Procesadores RISC como el Power PC, el Alpha, y el SuperSpark pueden procesar juntas una instrucci6n rar:a enteros con otra para
punto flotante, y ademas cambiar el orden de ejecuci6n que las instrucciones tienen segun el programa, lo cual el Pentmm no puede hacer.
1-122
T.!~'-~ ~~ 0;0.,.....,.--1;g,..."'
C.J'-'.L.LLY.L..1...L.L'-~
.,L;:..,Lv 1:>c
.a,.., l<>c:: hm1-r::>c:: 1 01 uJ 1..A..•./-,
~l..L~._, .L~o~-....,
Q') Y
J... • .,.,, ..... -. . . . -c:; ct:::in~c:
. . . . . . . . . . ...l:::.c
"'"'"'""' _ .._r_...., rit~r!~c:
___ . . ___ ._. .-iPl
---- "ninP linP" '---------
r-r- --- c:iPnc-io n11P
- i - - Pl
-- ....,
t-'aso2
corresponde a la primer decodificaci6n.
1 2 3 4 5 Se ha supuesto que en la etapa de pre-carga (paso 1) entraron al
buffer diez instrucciones, siendo que las cuatro prim.eras en orden
de ejecuci6n se ejecutan de a parb, por ser sencillas, y requerir dos
pulsos reloj luego de la segunda decodificaci6n para terminar de
ejecutarse. 1 Esto ultimo se supone que no ocurre con Is e 16, ni con~
e 17 , por lo que Is e 16 siguen de a una por el "pipe line"
De esta forma, en el quinto pulso se terminan de ejecutar juntas 11 e
-·····{El 12, y en el sexto 13 e Li.
Si Is e 16 son instrucciones de punto flotante, su ejecuci6n recien
--~ finalizara en el decimo y undecimo pulso, respectivamente, por
requerir 3 etapas mas, (6, 7 y 8 no indicadas en el dibujo)
Puesto que cada "pipe line" posee su unidad de segmentaci6n -para
generar la direcci6n de un dato- y su UAL, y que desde ambos
"pipe lines" se puede acceder simultaneamente al cache de datos al
unisono con el otro "pipe line", no existen conflictos de recurses que
demoren el procesamiento de dos instrucciones juntas. Asimismo,
dado que estas son "simples", no requieren acceder a la ROM de
microc6digo, la cual por ello no necesita duplicarse.
En caso de que una de las dos instrucciones que se procesan juntas
requiera menor cantidad de pulsos para su ejecuci6n, esta se detendra
uno o dos ciclos (seglin sea) para que los "pipe lines" sigan acoplados.
Cuando por no cumplirse los requisitos, dos instrucciones
Figura 1.91 decodificadas no pueden ser procesadas juntas, primero sigue en
uno de los "pipe lines" la que corresponde en orden seg-lln el
programa. Al pulso siguiente la otra instrucci6n se volvera a decodificar junto con la que le sigue.
Supondremos otra vez que se ejecutan las instrucciones 11 a 15 ya conocidas (figura
1.15) y que en un pulso reloj entran a la primera decodificaci6n -como en el 486-3
bytes de los c6digos de maquina de 11 e 12 Entonces se detectara que ~ depende del
resultado de 111 pues 12 ordena sumar un mnnero que esta en memoria al contenido
del registro AX, y el valor de este no puede conocerse hasta que no .se tennine de
ejecutar 11. Por lo tanto, al pulso siguiente s6lo entrara a la segunda decodificaci6n
en uno de los "pipe lines" la instrucci6n 11 ( como sugiere su c6digo de operaci6n
Al decodificandose en esa etapa, mientras que el c6digo de 12 no aparece en ell.a).
En este mismo pulso se decodificaran juntas 12 e 13, y por depender 13 de 121 al
pulso siguiente solo pasara a la segunda decodificaci6n 12; a la par que 11 entiara
2 3 4 5 en lafase de ejecuci6n2 • ·

Otra innovaci6n que ·ha incorporado el Pentium es la "predicci6n de bifurcaci6n.


Figura 1.92 Cuando se procesa una instrucci6n de salto (queen general son el 50% de las
instrucciones de un programa), si la condici6n del salto se cumple, las instrucciones que entraron despues de
ella al "pipe line" deben ser reemplazadas por la instrucci6n a la cual se ordena saltar, y las que le siguen.
Aunque estas se pueden preparar por las dudas en el cache (coll.).o lo hace el 486), si ocurre el reemplazo
citado se produce una demora de dos 0 mas ciclos. -
El BTB (Branch Target Buffer) del Pentium es otro cache de 1 KB, que guarda la direcci6n hada
donde saltar e'target"), que indica cada instrucci6n de salto que entrara al "pipe line" junto con dos
bits que indican con 00, 01, 10 6 11, cuatro situaciones posibles en las dos Ultimas ejecuciones de una
instrucci6n de bifurcaci6n, siendo que 1 significa bifurcaci6n realizada, y 0 no efectuada. BTB predice

Si bien el Pentium es compatible con el software (en codigo de maquina) desarrollado para los 80x86, Intel recomienda para aumentar
su performance un 30%, volver a traducir (con el compilador para Pentium) estos programas, a partir de sus versiones en Pascal, C. etc.
~ este modo estos programas, o los nuevos que se desarrollen, se acercaran mas al 6ptimo ideal indicado en la figura 1.91 para Ii, Ii, he L
- Debido a que solo se ha usado el registro AX. cada instrucci6n depende del resultado que debe generar la anterior. Si por ejemplo: Ii
ordenara llevar el numero a sumar al registro BX; 13 ordenara sumar AX con BX, L ordenara llevar el m1mero a restar al registro CX. se
podrian haber ejecutado juntas 11 e 12, lo misrno que 13 e L. Se comprende que aumentar el numero de instrucciones simples puede conducir 3
una ejecuci6n mas rapida de una secuencia, usando los dos "pipe lines". Un compilador "inteligente" para el Pentium realiza esta tarea.
1-124

Otro de los motivos de usar instrucciones complejas, fue que por ocupar menos espacio de mernona
r !
----
__gu~ varias simples que realizan la rnisma fu.:nci6n, podria lograrse ahorrar espacio, en una epoca en qu~
~------- la memoria era un recurso caro. Por otra parte, estudios en los 80 indicaron que los compiladores con
frecuencia no descubren las sentencias que pueden traducirse directamente en instrucciones complejas
y que la mayoria de las instrucciones traducidas son simples. '
Se consideran "simples" las instrucciones que una vez obtenidas por Ja UCP desde la memoria, no requieren
acceder otra vez a esta ya sea para obtener un dato o para escribir el resultado de Ia operaci6n. Esto ocurre
con las instrucciones en "modo registro" 1 en las que se ordena operar dos numeros que estan en dos registros
de la UCP, y el resultado asignarlo a uno de esos registros o a un tercero;· y con las instrucciones en "modo
inmediato" 2 que ordenan operar el dato (una constante) que forma parte de la instrucci6n, y que por lo tanto
llega con ella al registro RI de la UCP (fig. 1.23), cuando dicha instrucci6n fue obtenida. Tambien son
simples las instrucciones de salto ("modo relativo") 3 , ya que viene con ellas el numero que se debe sumar a la
direcci6n de la instrucci6n siguiente para obtener Ia direcci6n a la cual se debe saltar (Unidad 3 de esta obra).
Las instrucciones ti po Load (cargar un registro desde memoria) o Store (guardar en memoria el contenido de
un registro ), una vez obtenidas por la UCP desde la memoria requieren acceder una vez mas a esta para leerla
(Load) o para escribirla (Store). Por lo tan to hace falta un paso mas que en una simple para ejecutarlas.
La direcci6n de memoria a acceder puede formar parte de la instrucci6n (modo directo ), o estar en un registro
(modo indirecto por registro ), o se hall a sumando dos registros o un registro y una constante (otros modos) 4•
De lo anterior resulta que las instrucciones simples, las del tipo Load/Storey las comp1ejas necesitan distinta
cantidad de pulsos reloj para ser ejecutadas. Pensando en su ejecuci6n en un CISC con pipeline (como el
486), las instrucciones complejas, por necesitar muchos pasos, demoraran la ejecuci6n de las de pocos pasos.
Simplificando el problema y a los fines conceptuales, supondremos un lavadero de autos en serie con 4
etapas, pensado para coches en los que cada etapa dura 5'. Entonces cada 5' saldrfa un auto terminado, siendo
que cada uno esta en el proceso 20'. Si tambien entran autos que requieren un lavado de 25' debido a que
requieren mas eta as o mas t_iem o ara una de ellas, entonces no saldrfa un auto cada 5'.
En sfntesis, un CISC tiene limitaciones en su productividad (instr/seg) por requerir una decodificaci6n
compleja que insume tiempo, y por ser su pipeline inefieiente si entran en el instrucciones simples y complejas.
Asimismo, dado que en un CISC predomina la ejecuci6n de instrucciones simples, pero la Unidad de Control
y la ROM de Control tienen una cornplejidad acorde a todos los tipos de instrucciones que se deben ejecutar,
· resulta que el tiempo de ejecuci6n de las simples se ve perjudicado. Ademas dicha ROM que almacena las
ordenes para llevar a cabo los pasos de ejecuci6n de las instrucciones -indispensable solo para las complejas
por requerir mucho pasos- ocupa hasta el 50% del area de silicio de la UCP, impidiendo otras funciones.
En los crsc con escaso numero de registros de USO general (16 en el 486 y Pentium) puede suceder que los
programas tengan mas instrucciones que las necesarias -y por lo tanto tarden mas en ejecutarse- dado que los
registros no alcanzan. Entonces primero deben agregarse instrucciones para salvar contenidos de registros en
memoria a fin de usarlos en otro procedimiento, y luego otras instrucciones deben restaurar esos contenidos.

t,En que se diferencian los procesadores RISC de los CISC ?


Los procesadores RISC (Reduced Instruction Set Computer) -computador con repertorio de instrucciones
reducido- fueron desarrollados por D. Patterson y J. Hennessy en los 80, luego de analizar las limitaciones en
productividad que presentaban los CISC, a partir de estudios estadfsticos realizados con el software
Buscando optimizar la performance de los procesadores, se realizaron estadisticas de las instrucciones
de maquina mas usadas. Result6 que las instrucciones mas simples -que solo son ,el 20% del repertorio
de instrucciones de un procesador CISC- constituian el 80% de programas tipicos ejecutados.
Tambien se determin6 que en los programas predominaban las sentencias de asignaci6n, siguiendole en numero
los If, los call, y los loop. Las llamadas a procedimiento (call) son las que emplean mas tiempo de maquina, y
los ciclos repetitivos (loops) son los que consumen la mayor parte del tiempo de ejecuci6n de los programas.
Tarnbien en especial se constat6 que la mayorfa de las instrucciones que traducfa un compilador eran simples.
Se verific6 que el rendimiento de una arquitectura depende fundamentalmente de la existencia de compiladores
inteligentes, capaces de generar c6digo de maquina que optimicen asignaciones y loops, y con algoritmos
para generar secuencias que ayuden a la productividad del pipeline.

1
Que en el Assembler de Intel (Unidad 3 de esta obra) pueden ser par ejemplo: ADD AX, BX ; MOV ex, DX; AND ex, DX, etc.
2 Idem MOV ex, 2000; ADD BX, 4 eMP AX, 50
3
Idem JZ 32AO JL 0500 JMP 2800
4
Idem Modo directo: MOV AX, (2000] (Load); MOV [5000], ex (Store); Indirecto por Registro: MOV AX, [SI] , MOV [DI], ex
1-126

A continuaci6n se describiran aspectos centrales comunes del funcionamiento de la familia de procesadores ,t::
arquitec_t~~a ~~_de ~f!tel introducida en 1995, que co:mprende sucesivamente el Pentium Pro, ei Pentiuni "t! ti
---
Pentium III, el Xeon® y el Celeron® (este ultimo no tiene cache L2 integrado como los anteriores). '~l
El nucleo de estos Pentium, es una organizaci6n superescalar de concepci6n RISC con varias UE, para llevar. l
cabo operaciones simultaneas, capaz de ejecutar en forma transparente las instrucciones fuera del orden en q~
estan en el programa. Existen UE para enteros, punto flotante, MMX® y load/store, con el fin de lograr ~
instrucciones ejecutadas por segundo. Se supone que las UE para enteros permiten sumar dos registros y
1
resultado enviarlo a un tercero como en el esquema de Ia fig. A4.6). En dicho nucleo, se ejecutan instruccione
simples de igual longitud (como ser 118 bits) que designaremos "micro-operaciones tipo RISC" (µops-R). es
Ellas provienen de la traducci6n por hardware realizada dentro de un Pentium®, de programas para procesadore
80x86 y Pentium® de Intel® que identificaremos con las siglas 80x86. Cada nuevo modelo de Pentium debe POdes
ejecutar programas con instrucciones de todos los procesadores 80x86 anteriores. r
Esta traducci6n se realiza en paralelo con Ia ejecuci6n de µops-R que acaban de ser traducidas.

Desde el P6 en adelante ffsicamente ya no existen mas Ios registros AX, EAX::, BX, EBX, SI, ESI, etc. l
Al ser traducida cada instrucci6n 80x86 en µops-R, dichos registros luego son renombrados, en correspondenciai
con decenas de registros (R1, R2, ... Rn) existentes en el nucleo RISC citado. Vale decir que todos Ios 80x86 yI
Pentium de Intel tienen repertorio de instrucciones CISC, pero el nucleo de Ios Pentium actuales es RISC. I
La fig. 1.93 ilustra las 11 etapas del pipeline de la familia P6 a las que nos referiremos y su relaci6n con los caches
y unidades de predicci6n de saltos (UPS). Es un pipeline de 11 etapas contra 5 del Pentium I. UP1
Loque interesa es el numero de instrucciones que se ejecutan por segundo, sin que importe el hecho de que una
ejecuci6n requiera una sucesi6n de muchos pasos, siempre que .Sean muy breves.
SL
Pide 3:
Si cada paso se ejecuta rapidamente, el tiempo de cada ciclo del reloj puede acortarse, por lo que puede usarse bytes di
un reloj con mas Mhz, o sea con mas ciclos por segundo. Entonces si ademas en cada ciclo se terminan de instrucc
ejecutar una o mas instrucciones juntas, aumenta Ia cantidad de instrucciones que se ejecutan por segundo .. Fil
Suponiendo un lavadero de autos en serie con 4 etapas en el lavado, si cada una dura 5' saldra un auto listo
cada 5', siendo que cada auto tarda 20' en terminarse. Si a costa de tener mas maquinarias, espacio y personal,
el lavado se divide en 8 etapas de 4' cada una, cada auto se terminara en 32', pero saldra un auto cada 4'.
En Ia etapa de pedido, el IP le proporciona una direcci6n a la Unidad de Pedido (UP) en cada acceso de esta al cache
LI de instrucciones, para pedir a partir de ella dos lfneas del mismo (64 bytes) con instrucciones sucesivas pr6ximasa
ejecutar (en promedio 32) y analiza tiras de 16 bytes que guarda temporariamente en un buffer (UPI en la fig. 1.93).
Por tener cada una de estas tiras instrucciones de distinta longitud debe ser analizada en UP2, a fin de determinar
en que byte comienza el c6digo de operaci6n (cod-op) de cada instrucci6n. Cada tres cod-op sucesivos asf hallados
van en orden a una Unidad Decodificadora (UD) donde cada uno se traduce en una o varias µops-R. Todo sucede
como si en las salidas de la UD cada instrucci6n CJSC se ha dividido en una o varias pseudo instrucciones RISC.
El numero de µops-R por cada instrucci6n depende siesta es simple, ode acceso a memoria, o compleja.
La UD recibe en orden grupos de 3 instrucciones del programa en ejecuci6n, provenientes cache LI de instruc-
ciones, y las traduce en µops-R (3 por ciclo reloj) de 118 bits, acordes al orden de esas instrucciones.
Mientras se realizan los procesos de pedido y traducci6n, las Unidades de Ejecuci6n (UE) al mismo tiempo estan
ejecutando µops-R de instrucciones traducidas anteriormente.
Mas en detalle:
Para la traducci6n, la UD tiene 3 decodificadores que operan en paralelo para traducir 3 instrucciones (UDI): 2de
ellos para traducir cod-ops de instrucciones 80x86 simples (que son las que predominan en los programas) cuyos
cod-ops se traducen en una sola µop-R. El tercer decodificador maneja cod-ops que se traducen de 1 a 4 µops-R.
Sise tiene una instrucci6n compleja que se traduce en mas de 4 µops (son muy pocas) pasa a una ROM; y si hay
varias complejas, UP3 no deja que lleguen a los 2 decodificadores para simples. UP3 opera un buffer rotatorio que
enfrenta cada cod-op _con el decodificador apropiado ).
En la etapa UD2 los µops generados en UD 1 pasan en el orden correspondiente al programa a una cola de µops, Y
las µops de salto se presentan a la Unidad de Predicci6n Estatica de Saltos (UPES) a tratar.
Estas µops-R asf ordenadas van a una etapa de Renombramiento de Registros (RR) para eliminar falsas dependencias
entre instrucciones sucesivas debidas al escaso numero de registros que presentan al programador los procesadores
CISC de Intel, lo cual impide que se ejecuten juntas. Las dependencias verdaderas se mantienen, para ser resueltas
por la ejecuci6n fuera de orden. Se convierte una arquitectura 80x86 que solo presenta 16 registros para usar con
los programas (8 para enteros y natural es mas 8 para punto flotante ), en una arquitectura RISC con 40 registros.
Por ejemplo, si dos instrucciones 80x86 ordenan escribir un resultado en un mismo registro, no podrfan ser
ejecutadas juntas fuera de orden, a menos de que transitoriamente uno de los dos resultados se guarde en un
1-127

registro que sea "alias" del verdadero. Esta situaci6n es muy probable que ocurra, dado que en los 80x86 con 8
"@gist[9s par_?._ ~12t:_e_rQ_s2-s!Q_?. instruc~iones cercanas pueden ordenar guardar un resultado en un mismo registro.

Cache L2 adjunte al chip de lnstruccienes, dates y resultados

Cache L1 de Dates y Resultades


Cache L1 de lnstrucciones 80x86
...I
I
Cache Registro Saltos :
14- -
~esadores r-----flPl------------
1 1.2.!:.J'
(Predicci6n dinamica)
Predicci6n estatica
~be Poder

......
S caches : !-::.-=-=--=-=---~ --- --- -- ---------- _1

UP1 UP2 UP3 UD2 RR BR UPRE UE UR1 Ur2


que una _n_ __.n.._____.n~__. ..______.n...______,n.._______.n..________,n.______.n._______.n.______,11_
Pide 32 Localiza Envia cada Traduce Guarda Renombra µop-R quedan Planifica Y Realizan Se encargan que los
e usarse bytes de inicio de cod-op al instrucc µop-R registros hasta que sus detecta µop-R operaciones resultados de las
inan de instrucc. cod-ops decodificador a en de las operandos esten ejecutables en que ordenan µops-R sean acordes
o .. apropiado µop-R orden µop-R disponibles las UE las µops-R al programa originario
Figura 1.93
to listo
ersonal, Las µops-R que entraron a RR pasan ordenadas al Buffer para Suministro y Reordenamiento de µops-R (BSR), con-
'. forme al orden que tienen en el programa las instrucciones traducidas en la decodificaci6n de la cuales ellos provie-
nen, a fin de que la Unidad de Retiro (UR) pueda rastrear este orden luego de ejecuciones realizadas fuera de orden.
l cache El BSR es un buffer circular de trabajo que puede contener hasta 40 µops-R. Asimismo contiene los 40 registros
ximasa ffsicos para los datos y resultados de las µops-R antes citados. Junto con cada µop-R ademas se guarda:
.93). la direcci6n de memoria de la instrucci6n que origin6 su traducci6n.
rminar el "alias" con que fueron renombrados sus registros 80x86 en relaci6n con los 40 registros internos citados.
allados la indicaci6n ("status") de si la µop-R estd Lista para ejecutarse por estar disponibles Los datos que requiere su
sucede ejecuci6n, o si ya fue enviada para su ejecuci6n, o si ya fue ejecutada y esta lista para ser retirada.
RISC.
Si la UPRE (Unidad de Planificaci6n, Reserva y Envfo para ejecuci6n) lee en el BSR la indicaci6n de que una
ns true- µop-R esta lista para ser ejecutada, una copia de esta y de sus operandos es tomada del BSR y pasan a un Buffer
1
de Reserva de la UPRE (de hasta 20 µops-R), sin importar el orden en que estaba en el BSR. Siesta disponible
estan una UE que realiza la operaci6n ordenada por una de estas µops-R, ella es efectuada en dicha UE, y el resultado
pasa al registro que corresponda en el BSR, o a un registro transitorio, segun sea
En cierto modo es como si este Buffer contendrfa los Registros de Instrucci6n con las µops-R cuya operaci6n se
concreta en la UE que corresponda, siendo que ciertos bits de cada µop-R ordenan que deben hacer dicha UE.
: 2 de
En cada ciclo reloj solo puede operar una UE por µop-R
cuyos
ps-R. En la arquitectura P6 hay 5 posibles UE. Dos UE estan dedicadas a µops-R store, y otra UE para µops-R load.
si hay La cuarta UE contiene -segun se necesite- una UAL para enteros, circuiterfa (coprocesador) para µops-R de punto
o que flotante, y circuiterfa SIMD para procesamiento vectorial MMX, no ex.istente en el Pentium Pro (ver mas adelante).
Esta UE ademas tiene circuiterfa para limpiar el pipeline en el caso poco probable que falle la predicci6n de un salto,
ps; y pues habra µops-Ren varias etapas del mismo cuya ejecuci6n no debe proseguir. Cuando se ejecuta una µop-R de
salto si su resultado no coincide con el pronosticado (ver mas adelante) deben eliminarse todas las µops-R que siguen
a la de salto, incluidas las del buffer de reserva citado, y deben ejecutarse las µops-R que correspondan.
ncias
La quinta UE tambien como la anterior puede operar segun se sea: a enteros (con otra UAL), a nt1meros en punto
dores
eltas 1
En la ejecuci6n en orden, la decodificaci6n de instrucciones se realiza hasta que ocurre una dependencia o conflicto, reanudandose
con cuando este se soluciona. De este modo no pueden llegar instrucciones posteriores a las del conflicto, lo cual impide ejecutarlas
tros. anticipadamente si no presentan dependencias con las que estan en ejecuci6n .. En cambio si se ejecuta fuera de orden, y el hardware
ser permite un flujo continuado de uops-R hacia la UPRE que se almacenan para ser ejecutadas cuando convenga, se puede anticipar la
n un ejecuci6n de instrucciones sin dependencias; y mientras el buffer no se llene se le pueden seguir enviando instrucciones desde el
decodificador. De esta forma puede darse un flujo continuo en la decodificaci6n yen la extracci6n de uops-R desde la UPRE a las UE.
Asf se puede tener capacidad de anticipaci6n para decidir que uop-R pueden ejecutarse fuera de orden.
1-128

flotante ya operandos :tvllvfX. Asf es factible ejecutar hasta 5 µops-Rjuntas y 3 en promedio.

Por lo tanto, la UPRE _evalua cual µ?~-~es la mas conve~iente ~ara s~r ejecutada en el siguiente pu!sc dei reJo·
----~----paraJo cual se deterrr..::.na en cada c1c10 ias µops-R que t1enen d1spombles sus operandos, las dependencias ~.
pueden ser resueltas y el estado de ocupaci6n de las UE. En esencia se lleva a cabo un amilisis de flujo de dat!\Je
fin de lograr l~ ejec~ci6~ op~ma. Las µops-R ahora estan ordenada~ en funci6n de las dependencias de datos y n~
de su orden ongmano. S1 varias µops-R pueden ejecutarse, un algontmo FIFO determina cuales info a las DE c
00
prioridad de las µops-R de salto frente a las otras, dada su importancia en la prevenci6n de las ramificaciones. '
Si se t~rmina de ejecutar una µ~p-R, la UP~E ac~ualizara el BSR indicando tal evento, para que dicha µop-R.
sea retirada, y la UE correspond1ente queda d1spomble para otra µop-R
Aunque en una ejecuci6n fuera de orden las operaciones no se efectuan en el orden indicado en el programa, los
resultados de las mismas son almacenados temporariamente para ser luego asignados a memoria o a lo
registros indicados par las instrucciones del programa conforme al orden de estas. .s
Si la UPRE tiene tiempo disponible, el mecanismo anterior tambien hace posible la ejecucion especulativa de
decenas de instrucciones que estan mas adelante en el programa, las cuales muy probablemente van a necesitarse
En caso de que esta predicci6n falle, se anulan los resultados obtenidos. ·
La Unidad de Retiro (UR) se encarga de que las µops-R sean retiradas en el orden de las instrucciones de!
programa de las cuales provienen, teniendo en cuenta los saltos habidos, y que los resultados sean asignados acorde
con dicho orden. No asigna resultados de µops-R mal ejecutadas.
Envfa resultados temporarios que recibe de las UE al lugar apropiado cuando son definitivos: al registro "alias"
que corresponda o al cache de datos (Ll), y tambien puede ser a una UE que esta esperando ese resultado.
La UR posee registros para resultados temporarios de ejecuciones que aun no han terminado, esperando que
finalicen ejecuciones que empezaron anteriormente. Par otra parte el procesador efectua ejecuciones
conforme a la alternativa mas probable en un salto. Si la UR verifica que una µop-R ejecutada se origin6 en
una instrucci6n que no debi6 ser ejecutada, los resultados de tal ejecuci6n no son considerados.
Cuando todas las µops-Ren que se ha traducido una instrucci6n se ban marcado coma listas para ser retiradas, y se
han ejecutado la(s) µop(s)-R de la instrucci6n anterior, la UR determina que los resultados intermedios deben
retirarse, para asignarse coma definitivos en registros "alias" involucrados en la instrucci6n citada en primer lugar,
o en el cache de datos, y saca del BSR la µop-R que corresponde ser reemplazada por otra de la cola de µops-R.
Si bien las µop-R se ejecutan fuera de su orden original, son retiradas en el orden de las instrucciones de!
programa de las cuales provienen, a la par que no se asignan resultados de µops-R mal ejecutadas.
A continuaci6n, las µops-R ejecutadas (3 en un promedio, que coincide con las 3 citadas que generan los
decodificadores, y hasta 5 par ciclo reloj) son reemplazadas par otras provenientes de los decodificadores.
Si este Buffer se llena, los decodificadores transitoria!Ilente dejan de enviarle.

En definitiva, en promedio, desde la decodificaci6n, en cada etapa del pipeline entran y salen en paralelo 3 µops-R
(siendo que a ella entran 3 instrucciones a traducir), por lo queen cada pulso reloj se terminan de ejecutar 3 µops-
R, lo cual se acerca a 3 instrucciones por pulso (ciclo). Es coma si existieran 3 pipelines para 3 µops-R.
La ejecuci6n fuera de orden potencia el paralelismo interno, pues si una µop-R espera par un operando que tiene
que generar otra µop-R, o por un recurso circuital para ser ejecutada, otras µops-R que correspondan a instruc-
ciones posteriores en el programa pueden terminar de ejecutarse.

En la descripci6n anterior se supuso implfcitamente que el programa a ejecutar fue traducido por compilado-
res para modelos 80x86 CISC anteriores al Pentium I. Si un Pentium posterior ejecuta programas traducidos
especialmente para el mismo por un compilador inteligente, este buscara "ayudar" al hardware, para lo cual:
evitara la existencia de instrucciones complejas en la traducci6n
minimizara el numero de instrucciones que leen o escriben Ia memoria
las operaciones que ordenan las instrucciones seran entre registros
minimizara las dependencias
De esta fomia, si bien las instrucciones que resultan de la traducci6n usan los registros 80x86, y deben ser a su vez
traducidas a µops-R, se consigue una buena mejora en el rendimiento del procesador.

PredicciOn de saltos:
Cada vez que la UAL genera un resultado, tambien indica mediante el valor de unos indicadores (flags Z, S, Y
otros dados en Unidad 4) si el mismo fue zero (Z=l) o no (Z=O), si fue de signo positivo (S=O) o no (S=l), etc
Recordemos tambien (secci6n 1.9) que una instrucci6n de salto condicional (ISC) decide -en funci6n del valor
de un resultado anterior, por el que se pregunta mediante los flags- cual es la pr6xima instrucci6n que se
ejecutara luego de ella entre dos instrucciones posibles: la que le sigue a continuaci6n u otra cuya direcci6n ella
permite determinar. Por ejemplo saltar si Z=l (condicion) y caso contrario no saltar, o sea seguir normalmente
~
1 1-129
-- . 1 con la instrucci6n que sigue a continuaci6n, equivale a decir "saltar si el resultado anterior fue cero", y si es
1 distinto de cero (Z=O) no saltar. Para saber si un resultado R tiene un valor X. la instrucci6n anterior a la ISC
loJ~,·, ,__~---~debeordenar hacer R:. X, de mode que si R = X el resultado ser~ cero, y result£rra Z=l.
Ue Asimismo existen las instrucciones de salto incondicional (ISI) que "si 0 si" ordenan saltar ("go-to") a la
>sa , direcci6n de otra instrucci6n, sin la alternativa de las ISC de seguir ejecutando las instrucciones siguientes.
no
on En la descripci6n anterior no se consideraron las ISC que son el 20% del total de instrucciones de un
programa, ni las ISI que son el 10%. Cuando entre las instrucciones sucesivas pedidas por la UP llega una ISI,
-R las que le siguen nose ejecutaran. aunque fueron pedidas.
La situaci6n se complica mas si llega una ISC, pues de no existir una predicci6n de saltos, la UP conocerfa
os recien cuando la UE de saltos la ejecute, cual de las dos secuencias alternativas se ejecutara a continuaci6n.
os Si esta es la que esta en el pipe line no hay problema. Pero si la secuencia a ejecutar despues de la ISC es la otra,
habra que vaciar el pipeline ("flush") de 11 etapas para pasar a ejecutarla, lo cual hace perder entre 4 y 11 pulsos
de. Se requiere un algoritmo para determinar anticipadamente cual de esas dos secuencias es mas probable que se eje-
e. cute luego de la ISC. Asf nose frena el flujo de recolecci6n en la UP y el de salida de µops-R ejecutadas en las UE.
De esta manera se predice las alternativas de ejecuci6n en las ramificaciones multiples de los programas.
Para curnplimentar este algoritmo (que acierta en mas del 90% ), existe un Cache de Registro de Saltos (CRS o
BTB - Branch Target Buffer) con la historia de 256 ISC ejecutadas recientemente. Al CRS se entra con la
direcci6n que tiene en memoria la ISC sobre la cual se necesita conocer su historia (carnpo indicativo de 4 bits)
"
y acerca de la direcci6n hacia donde dicha ISC orden6 saltar la ultima vez que se ejecut6.
Durante la obtenci6n de las instrucciones la UP determina si alguna de las instrucciones es de salto. Entonces
e envfa su direcci6n de memoria al CRS.
s Si la ISC ya ha sido ejecutada antes (como una ISC que al final de un loop ordena saltar a la instrucci6n donde
n comienza el mismo para repetirlo ), dicha ISC figurara en el CRS con la indicaci6n de si entonces se efectu6 o
no el salto, y la direcci6n d6nde saltar. En caso afirmativo lo mas probable es que el salto se vuelva a hacer, por
lo que la direccion donde saltar -que se calcul6 con la informaci6n contenida en la ISC- sirve para que la UP
pida anticipadamente del cache Ll la secuencia de instrucciones existentes a partir de dicha direccion.
Si esta predicci6n "dinamica" (realizada sobre la marccha) falla, deben perderse de 4 a 11 ciclos para
actualizar el pipeline de 11 etapas a fin de ejecutar la secuencia que sigue a la ISC.
Predicci6n "estatica": si dicha ISC no esta en el CRS, se escribe su direcci6n en una entrada del CRS (lo
cual implicara reemplazar a otra entrada mas antigua), y se asume que si se ordena saltar hacia atras (caso
frecuente de los loops), lo mas probable es que el salto se producira.
Dual Independent Bus:
Los Pentium Pro y II presentan el "Dual Independent Bus": dos buses independientes que pueden trabajar en
paralelo. Uno va al cache L2 (incorporado al chip, y para operar al doble de velocidad que el de otros Pentium)
y otro, el bus del sistema conectado entre el Pentium y memoria, y vinculado al bus PCI, para realizar
transferencias entre memoria y perifericos. Este bus permite transacciones multiples simultaneas en lugar de una
por vez realizada en forma secuencial. As{ se logra hasta 3 veces mas ancho de banda que el bus simple.
Instrucciones MMX®:
El Pentium II difiere especialmente del Pentium Pro por presentar un conjunto de instrucciones MMX
(multimedia e!tensions) para operar con datos de 8, 16, 32 bits de longitud, ordenados en vectores o matrices,
como los de ciertas aplicaciones multimedia repetitivas. Asf en audio los datos digitalizados suelen ser de 16
bits. En vfdeo los puntos de la pantalla (pixels) que constituyen una imagen se componen combinan-do 3
colores (rojo, verde, azul), indicados por 8 bits, siendo cualquier imagen una matriz ordenada de puntos.
Las instrucciones MMX se ejecutan en un solo ciclo reloj (hasta dos por ciclo) y operan sobre elementos
constituidos por mimeros enteros de 8, 16, 6 32 bits, agrupables en formatos de 64 bits como sigue:
• Byte empaquetado: 8 grupos de 8 bits.
• Palabra empaquetada: 4 grupos de 16 bits (palabra para Intel)
• Doble palabra empaquetada: 2 grupos de 32 bits (doble palabra para Intel)
Mientras que las instrucciones corrientes operan un par de operandos por vez, una instrucci6n MMX puede realizar
una misma operaci6n aritmetica sobre multiples pares de dichos elementos al mismo tiempo. Asf se obtiene hasta
10 veces mas velocidad que con instrucciones corrientes, evitandose tambien el uso de coprocesadores para
multimedia. Esta forma de procesamiento se conoce como STh1D (Single Instruction Multiple Data, o sea una
instrucci6n para multiples datos) y tambien como "procesamiento vectorial".
Por ejemplo, si dos formatos de 8 grupos de 8 bits representan dos intensidades de puntos de dos imagenes, su
surna simultanea para formar una nueva imagen, se realiza en un solo ciclo reloj. Para estas aplicaciones.de color
r 1-130
. 1a ant~et1ca
ex1ste ., ": s1. ~n una suma de enteros e I resuItad o no entra en e I Jiormato, o sea ha\ j
. , . "de saturac10n
overflow ~Umdad 4 de esta obra), debera ser que el resultado sea el menor o mayor valor representable · j
r
En el Pentium II existen 57 ir strucciones MMX para sumar, restar, multiplicar, comparar, empaqu
+ .
desempaquetar, trans1enr, .
conve tir, y para hacer operac10nes
. 1og1cas.
_, . etar
·
El Pentium ill (500 Mhz) prese ita las extensiones "Streaming SIMD" con 70 nuevas instrucciones para ine·
tratamiento de imagenes, sonidc vfdeo 3D, reconocimiento de voz, acceso a Internet, y control del cache JOr

Como funcionan el Xeon y Pentium 4 con Hyper Threading ?


Los ultimas Xeon™, el Pentium® My el Pentium 4 son exponentes de la nueva micro-arquitectura NetBurst
TM de Intel® que posibilita el I ;amado procesamiento Hyper-Threading ("HT") y que presenta innovaciones
en relaci6n con la arquitectura P6 antes descripta que le sirve de base.
Los actuales sistemas operativos y otros programas de usuario dividen la carga de trabajo en procesos que
p~eden estar formados por uno o varios "threads" o "hilos", que son porciones de programa en c6digo que se I
eJecutan concurrentemente.
El "HT" permite que un unico procesador ffsico, que ocupa un chip, aparezca ante el sistema operativo 0
programas de usuario como dos procesadores 16gicos, capaces de ejecutar dos subprocesos en paralelo.
Conforme a ello se pueden programar procesos o subprocesos como si se dispusiera de 2 procesadores ffstcos.
Pensando en la microarquitectura, ello significa -como se vera- que instrucciones para ambos procerndores
16gicos pueden coexistir y ser ejecutadas simultaneamente sobre recursos de ejecuci6n compartidos.
En un procesador comun (monoprocesador) los "threads" se ejecutan alternativamente. Este Xeon y Pertium 4
posibilitan procesar 2 "threads" de instrucciones simultaneamente, con un rendimiento que segun Intel en un S3rvidor
puede superar hasta en un 25 % el de un procesador comun ( aunque men or que el de 2 procesadores ffsicos
separados), sin el costo que significa montar dos procesadores. La "motherboard" debe ser para Xeon o Pentium4.
Cada dfa nuestra sociedad basada en la dinamica que imponen los mercados demanda procesadores mas y mas
veloces, a costa de mayor gasto de potencia por disipaci6n de millones de transistores de cada chip.
Para la tecnologfa actual de fabricaci6n de chips, su disipaci6n de calor se ha convertido en uno de los lfmitespara el
desarrollo de chips mas potentes. En los ultimas afi.os el numero de transistores por chip y SU disipaci6n crecen
muchfsimo mas que las mejoras logradas en la performance de los procesadores.
La tecnologfa para 'HT' busca ser una soluci6n de compromiso entre estos factores antag6nicos, Para tal fins6lo se
duplica un pequefio numero de subsistemas menores, que implican el 5% del area de silicio. Los 2 proce:adores
16gicos comparten la mayorfa de los recursos: caches, buffers, unidades de ejecuci6n y la predicci6n de salta;.
Se describira el funcionamiento del Xeon con arquitectura NetBurst, muy similar al Pentium 4, con 42 millines de
transistores, y un pipe line de 20 etapas, cada una de menor duraci6n que las 11 de Pentium anteriores. Estcde por
sf posibilita duplicar los Mhz de funcionamiento, siendo que se debe operar a esta mayor velocidad paraque el
procesador tenga la performance en instrucciones/segundo para la que fue ideado.
Dado que cada "thread" se ejecuta en un procesador 16gico distinto, con muchos recursos ffsicos propos, en
lo que sigue hablar de "thread" sera sin6nimo de procesador 16gico requerido para ejecutarlo.
El esquema de la fig. 1.94 es un esquema reducido de las 20 etapas del pipeline real. En relaci6n con la arqttectura
P6 de los Pentium anteriores hay una diferencia esencial: en lugar del cache L 1 para instrucciones 80x:6, esta
arquitectura presenta un "Trace Cache Ll" (TC) de 8 vfas, para guardar "traces". Estas son secuencias ordendas de
µops-R provenientes de la traducci6n por parte de la Unidad de Pedido y Decodificaci6n (UPD) de instnxiones
80x86 no complejas, o sea las de uso mas frecuente, que son la mayorfa que los programas contienen.
Debe asumirse como en el cache de Ia fig. 1.77 .c que la lfnea y posici6n dentro de ella donde se encuenra cada
µop-R del "trace" (guardado en dicha lfnea) en el TC se localiza por su tag, o sea a partir de la direci6n de
rnemoria donde estaba la instrucci6n de la cual fue traducida, como se vio al tratar los caches.
El TC puede guardar 12K de µops-R de igual longitud, y dar salida a 3 µops-R por cada ciclo reloj,siendo
direccionado por la CRS (BTB en ingles). Esta fue definida en la arquitectura P6 en relaci6n con la prdicci6n
de saltos y ramificaciones multiples, importante de entender.
Es dable suponer que asf como los programas estan estructurados en secuencias de instrucciones consectivas, Y
que de una secuencia se pasa a otra (o se vuelve al comienzo de la misma) por medio de instrucciones e salto
condicional, que dan la direcci6n de la primer instrucci6n de dicha secuencia, lo mismo ocurre con lasrops-R
en que se traducen las instrucciones. 0 sea que se ejecuta una secuencia de µops-R almacenada en el 'C que
corresponde a una secuencia de instrucciones del programa, y para localizar en el TC la secuencia dewps-R
(correspondientes a otra secuencia de instrucciones) que se debe ejecutar a continuaci6n, el CRS -que prede dina-1
micamente cual sera ella- proporciona la direcci6n que permite dicha localizaci6n, como se indica en la fig .. 94. i
Para "HT" existe un mecanismo para identificar lfneas de los dos "threads".
~T
l
1-131
,_
'-
._;
~\
sea hay l Las µops-R generadas por instrucciones complejas son aportadas por fa ROM vinculada al TC (fig. 1.94), por ~
-....""'-(
_ ser las mismas infrecuentes de aparecer en un programa. ""-..
=qu_e_tar-,-------'Taiubien debe supor;.erse que cuandc se direccicna al TC para Iccalizar en una lfnea del mismo una pr6xima se- '-1
cuencia de 3 µops-Ra ejecutar, estas deben aparecer en las saliqa_~ del TC. Dichas µops-R (de igual longitud) iran
Illejor a la etapa de Renombramiento de Registros (RR) de donde pasan segun el orden originario a la "Cola de µops-R",
h'e. junta con la direcci6n de la instrucci6n que los origin6. Lo mismo ocurre con las µops-R generadas por la ROM.
Esta cola oficia de buffer intermediario entre los subsistemas que operan en orden y en desorden. Para "HT" este
buffer se coi:nparte mitad para cada "thread", pudiendose identificar en es ta cola las µops-R de cada "thread".
Si para 'HT" se debe acceder simultaneamente al TC para obtener lfneas con µops-R de ambos "threads",
''W-<w.~
durante un ciclo pedira una lfnea de uno de ellos, y en el siguiente una lfnea del otro. Mientras uno de ellos esta
tBurst detenido se podra acceder durante ciclos sucesivos al TC para obtener lfneas del otro. Por lo tanto el TC es un
ciones recurso compartido en 'HT", pudiendo un "thread" tener mas lfneas que el otro.
Tambien es compartida la ROM de µops-R. Cuando del cache L2 llega una instrucci6n compleja, el TC le
s que envfa a la ROM el m1mero que genera la UPD el cual es coma la direcci6n de la ROM donde esta la primera de
ue se una secuencia de µops-R, en que se traduce una instrucci6n compleja que lleg6 a la UPD. Para "HT" el
hardware permite identificar a que "thread" corresponde dicha secuencia.
ivo 0 Si al direcionar el TC hay un fa/lo ("miss") se debe acceder a la jerarqufa de memorias (en primer lugar al
cache L2) para obtener dos lfneas de instrucciones (64 bytes), las cuales seran traducidas por la UPD (de a
os. una por vez) y enviadas como µops-R a la UT y tambien a la "Cola de µops-R".
dores
Observese que en esta arquitectura solo se pierde tiempo en las traducciones cuando hay un fallo en el TC.
um4
vidor Antes de ir a la UPD los 64 bytes citados provenientes del cache L2, temporariamente se guardan en un Buffer L2
sicos (BL2) hasta que puedan ser decodificadas las instrucciones. Para "HT" existen dos BL2, uno para cada "thread".
. Tambien existen dos CRS y dos buffers para instrucciones de retorno (de subrutina, por ejemplo).
mas En definitiva el TC mayormente provee las µops-R que se van a ejecutar pr6ximamente, y cada vez que en el
TC hay un fallo, la UPD traducira en µops-R las instrucciones del BL2 (a raz6n de una por vez) que iran al TC
ra el y tambien a la Cola de µops-R, salvo que aparezca alguna instrucci6n compleja. Esto es como en una UCP con
cen cache: si hay un fallo, las instrucciones a ejecutar van al cache ya la UCP (en este caso d1cha cola).
Si en "HT" hace falta decodificar instrucciones de los dos "threads", se sacan alternadamente secuencias de cada BL2.
0 se
ores El proceso de ejecuci6n de µops-R se inicia con una asignaci6n ("allocation") en la etapa RR que renombra los
registros 80x86 indicados en las µops-R, que esran en la "Cola de µops-R" en otros registros "alias". Para tal fin
existen 128 registros para enteros y 128 para punto flotante, mas buffers para reordenamiento y para operaciones
sde
load/store., que para "HT" son particionados en mitades, una para cada "thread", siempre identificables por el
por
hardware del procesador, como en todos los casos.
e el
En "HT" en la "Cola de µops-R" hay µops-R de los dos "threads", y con cada pulso reloj se altema la asignaci6n de
recursos en la RR. Si un "thread" usa todos los recursos que tiene reservados, la asignaci6n sigue para el otro.
en
Junto con la asignaci6n se realiza el renombramiento de registros. Para ello existen dos "Tablas de Registros
Alias", que indican para cada nueva µop-R que se va a ejecutar de cada "thread" en que registros "alias" estaran
ura sus operandos (que pueden ser resultados de µops-R ejecutadas antes), yen que registro "alias" ira el resultado.
sta Las secuencias de µops-R con sus registros renombrados pasan a dos colas": una para los provenientes de
de instrucciones load/store (que deben acceder a memoria), y otra para las que se tradujeron de las instrucciones que no
es ordenan acceder a memoria. Estas dos colas tambien pueden ser particionadas con la mitad de entradas para cada
"thread". De estas colas salen µops-R hacia la UPRE, en forma altemada -una por "thread" con cada pulso reloj.
a
En la UPRE existen 5 "L6gicas Planificadoras" (LP) que determinan cuando µops-R se pueden ejecutar. Cada LP
e
tiene su propia cola de 8 a 12 µops-R que debe seleccionar para enviar a las UE. Las LP no distinguen entre las
µops-R de dos "threads". Las µops-R se seleccionan en funci6n de la dependencia de datos y disponibilidad de
o
UE. Para evitar problemas esta limitado el m1mero de entradas en uso que puede tener en cada cola un "thread".
n
Puesto que para cada µop-R se efectua en una UE la operaci6n que ordena con los datos apropiados y se deja el
resultado en el destino indicado por ella; y dado que dichos datos esran ffsicamente en registros que estan definidos
y
desde la etapa RR, al igual que el destino del resultado, y que para "HT" dichos recursos estan separados para cada
o
"thread", no hay problemas en encontrar los resultados que usaran las µops-R que se ejecutaran luego.
R
Asimismo las µops-R se pueden identificar, pues tienen asociado (incluso en la UT) un m1mero que es la
direcci6n en memoria de la instrucci6n originaria de la cual fueron traducidas.
Si bien en cada ciclo reloj las LP pueden hacer que las UE efecruen las operaciones de hasta 6 µops-R, coma el maxi-
ma de µops-R que genera la UT es 3, queda limitado a este numero la cantidad de µops-R ejecutables por ciclo.
1-132
i !

Cache L2 adjunto al chip del procesador, para lnstrucciones, datos y resultados

Cache de .... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - !

08---
4
I
Registro
de Saltos
I
I
I

I
----------------------------~
Figura 1.94

Existen 4 UE, siendo que las dos que contienen una UAL operan al doble de la frecuencia del procesador, 0 sea
que en medio ciclo completan la operaci6n, siendo por ello posibles hasta 6 operaciones por ciclo. Ellas son:
UEO dedicada a µops-R "store", y UEI para µops-R "load", a raz6n de una µop-R por ciclo.
UE2: en la primer mitad de un ciclo puede operar enteros en una UAL, o una instrucci6n de transferencia en
punto flotante; y en la segunda mitad de dicho ciclo puede operar otra vez enteros en la UAL de dicha UE.
UE3: en la primer mitad de un ciclo puede operar enteros en una UAL, u operar (en el coprocesador) todas las
operaciones aritmeticas en punto flotante, pero no las de transferencia, o cualquier operaci6n SIMD, o llevar a cabo
una µop-R de salto; yen Ia segunda mitad de un ciclo puede operar nuevamente enteros en la UAL de dicha UE.
Para µops-R load/store existe un Buffer Conversor compartido en "HT" por los dos "threads", que es una memoria
totalmente asociativa (definida al tratar caches), que convierte direcciones a direcciones ffsicas de memoria.
Despues de haberse realizado la operaci6n ordenada por cada µop-Ren la UE correspondiente, las µops-R
pasan a un buffer de reordenamiente, que hace de intermediario entre la UPRE y la UR. Este buffer se parte en
mitades si hay dos "threads".
La UR retira las µops-Ren orden en forma alternada para cada "thread".
Luego que las µops-R ejecutadas se retiran, Ios resultados pasan desde registros hacia el cache de datos LI.
Este es un cache asociativo de 4 vfas con lfneas de 64 bytes, que siempre escribe "write-through" en el cache
asociativo L2 de 8 vias con lfneas de 64 bytes, con 128 bytes por lfnea. Este Xeon tiene un cache similar L3.
Los caches L2 y L3 operan con direcciones ffsicas y el L 1 con virtuales, pero con tags ffsicos.

De la descripci6n anterior resulta, que dos "threads" que se estan ejecutando en paralelo comparten (en principio
por partes iguales) la mayorfa de los recursos ffsicos.de un unico procesador, ya sea por partici6n de los mismos o
11
por alternancia (en un ciclo reloj uno yen el siguiente el otro)'y nose trata simplemente que se ejecuta un "thread
y cuando este se detiene por algun motivo se pasa a ejecutar el otro.
rvt.Ginzburg

---~A-pendice I
,,.,,,.. --'It··
.., UC

SISTEMAS NUMERICOS
POSICIONALES
lQue es un sistema numerico posicional ?
La necesidad de representar conjuntos de objetos ha llevado a las distintas· culturas a adoptar diversas formas
de simbolizar SU valor numerico.
Una maneri primera de representar el numero de elementos que constituyen un cierto conjunto, es establecer
una correspondencia con un numero igual de simbolos.
Esto lo hacemos cuando contamos con los dedos, o si para representar, como ser, los dias de la semana,
dibujarnos igual numero de trazos: 1111111
Tal sistema de representaci6n seria "unario", pues se usa un solo tipo de simbolo. Su desventaja es que no
permite sirnbolizar c6moda y rapidamente conjuntos con muchos elementos. I
Cuando fue necesario designar la existencia de .muchos elementos, se trat6 siempre de utilizar la menor
cantidad de simbolos, para lo cual se establecieron operaciones implicitas entre los mismos.
I
Los rornanos utilizaron un sistema de signos de valor crecientes: I, V, X, L, C, D 1 M, etc.,
que se agrupaban de derecha a izquierda, sumandose o restandose entre sf, seglin siguieran o no el orden creciente:
CXVII = cien + diez + cinco + uno + uno
MCMV = . mil+ (mil- den)+ cinco
Esta codificaci6n requeria nuevos simbolos cuando se agotaban los de mayor valor, a la par que los calculos
por su complejidad convenia realizarlos con abacos.
Fueron los pueblos orientales y americanos (mayas) los que desarrollaron los sistemas posicionales, basados
en un conjunto limitado y constante de simbolos, entre los cuales se encontraba el "cero", para indicar la ausencia
de elementos. Miles de af\.os antes, el abaco, construido en la tierra o con madera fue el antecesor natural de estos
sistemas, siendo que la ausencia de objetos en una posici6n o varilla implicaba de hecho el cero.

En estos sistemas, cada sfmbolo, ademas del numero de elementos de un tipo que representa considerado aisladamente, tiene un
significado o peso.distinto, segun la posici6n que ocupa en el grupo de caracteres del que forma parte.

De esta manera es posibie representar sistematicamente cualquier numero, ernpleando en forrna combinada un
conjunto limitado de caracteres simb6licos.
Los caracteres se denominan "digitos", y constituyen piezas de informaci6n digital (secci6n 1.10)

Este sistema servira para comprender conceptualmente en que consiste y cual es la estructura de cualquier sisterna
nurnerico posicional.
135
,
_SISIJ;,A_AAS
'-'1'-'1'- ,.11 ''-'
-NLJMJ:;Qlrn'
-....'-'ITIL-1'-1'""""-'V
I

BINARIO Y HEXADECIMAL
iaue sfmbolos se emplean en otras bases numericas y c6mo se
representan numeros en el/as ?
A los fines de que resulte facil simbolizar numeros en otros sistemas numericos, los simbolos o y 1 existen en
todos los sistemas con igual significado que en el decimal.
Si otros sistemas usan algunos o todos los simbolos decimales restantes del 2 al 9, se ha acordado que su
significado es el rnismo que en decimal. Asi 7 representa siete unidades, ya sea en decimal, octal o hexadecimal.
El sistema hexadecimal tendra dieciseis simbolos distintos que constituyen la base.
Del 0 al 9 coinciden en significado con las correspondientes decimales; para los seis restantes se crearon los
simbolos de la A hasta la F, coma aparecen en la figura Al.1 en correspondencia con sus equivalentes
decimales y con los numeros de otros sistemas.

0 1 JO
0 1 2 3 4 5 6 7 JO
0 1 2 3 4 5 6 7 8 9 JO 11 12 13 14 15 16
0 ·1 2 3 4 5 6 7 8 9 A B c D E F JO

Figura Al.2

Sistema en base ocho u octal


En base ocho los ocho simbolos van del 0 al 7 (fig. Al .2), con los cuales se puede formar cualquier numero.
Con los mismos supuestos que planteamos para la pesada realizada en relaci6n con la fig. Al.1, pesaremos
(fig. Al.3) el mismo objeto cuyo peso en octal supondremos desconocido, siendo queen base diez pesa 109 grs.
Veamos cuales son las pesas en base ocho. Si en base diez cada pesa en relaci6n con la del tamafio anterior era
diez veces mas pesada, en octal lo sera ocho veces. Juntando ocho pesas de un valor se construye una pesa del
tamafio siguiente. Si para fines didacticos simbolizamos en base diez el peso de cada tipo de pesa octal, por fo
que se tendria la serie de valores: 1 gr; I gr x 8d = 8d grs; 8d grs x 8d = 64d grs; 64d grs x 8d = 512d grs., etc ...
El simbolo "d" indica que se trata de base diez. El simbolo para representar I es el mismo en ambas bases.
De cada uno de dichos tamanos existen un total de 7 pesas octales (en base diez eran 9), siendo 7 el simbolo
octal de mayor valor:
- 7 pesas de 1 gr.
- 7 pesas ocho veces mayores que la de 1 gr. (8d grs)
- 7 pesas dieciseis veces mayores que la de 1 gr. (16d gramos) y ocho veces mayor que el tama:fi.o anterior.
- 7 pesas se.senta y cuatro veces mayores que la de 1 gr. (64d grs) y ocho veces mayor que el tamafi.o anterior.
y asi de seguido, o sea que podemos tener mas subconjuntos de 7 pesas que sean multiplos de ocho (te6rica-
mente infinitos), seglin sea la magnitud del peso de los objetos que se quiere pesar.
Volveremos a pesar el objeto que en base diez pesaba I 09 grs.

~
Cuando se pesa un objeto en general se desconoce su peso, el
cual hay que determinar. Para ello se requiere ir probando
~ poniendo y sacando pesas (octal es en este caso), hasta que con las
~[~ pesas adecuadas la balanza alcance el equilibrio. La selecci6n de
1 5 5 las pesas adecuadas la simularemos haciendo calculos simples en
Figura A 1.3 base diez, co mo se hizo en relaci6n con la figura A 1.1.
Suponiendo (fig. Al.3) que se empieza adecuadamente a equilibrar la balanza con una pesa sesenta y cuatro veces
mayor que la de 1 gr en el platillo derecho. Pensando en base diez se habran equilibrado 64d grs, por lo que faltara
equilibrar 109 - 64 = 45d grs.
Si se coloca otra pesa del mismo tamafio que el anterior se tendria: 64d + 64d = 128d > I 09d, y el peso del platillo
derecho superaria al del izquierdo, por lo que no puede colocarse masque una pesa de dicho tamafio.
136

_________P_r--:oband~~9~~ c5:mpes~~- ocho vece? mayores que la de 1 gr, si se colocan en el platillo derecho 5 pesas de 8d (lo. · · 1
~t.Gin
M.Ginzb:r: /

cual suma 40d), de los 45d que faltaba balancear, ahora restaran balancear 45d - 40d = 5 grs., lo cual se rea!iz.a
colocando 5 pesas de 1 gr. ·
En definitiva, en el platillo derecho se habran colocado: 1 pesa sesenta y cuatro veces mas pesada que I gr,; S
pesas ocho veces mas pesadas que las de 1 gr y 5 pesas de 1 gr. Esto quedaria simbolizado en octal (6) coma 155.
100 10 l ]d 64 8 l ]d
Entonces 1 0 9d = 1 5 5 6 (sobre los simbolos en base diez y base ocho se indican sus pesos en decimal)
(La igualdad anterior tambien implica que si en un plato de la balanza colocamos las pesas en base diez correspon.
dientes al 109, yen el otro las pesas octales correspondientes al 155, obviamente se equilibraran)
El mismo objeto queen la fig. Al .1 fue fraccionado artificialmente en porciones indicadas como 109d; en Ia fio
Al .3 lo hemos fraccionado tambien en forma virtual en porciones para simbolizar su peso en octal. Si a los fines d1:>~
comparar Io efectuado en ambas casos expresamos el valor de las pesas octales en base diez, resulta que 1556
implica que se fraccion6 dicho objeto en una porci6n de 64 grs, en 5 porciones de 8 grs. y en 5 porciones de 1 gr.
Asimismo, si pensamos en el conjunto de personas que en base diez fue dividido conforme indican Ios
simbolos 109, dicha totalidad en base ocho fue dividida (pensando el tamafio de Jos grupos en base diez), en un
grupo de 64, 5 grupos de 8, y 5 grupos de una persona, siendo que pueden existir hasta 7 grupos de cada tipo.

Nuevamente se verifica que un sistema numerico es una forma de fraccionar una totalidad en porciones, cuyos
tamafios, a partir del valor uno, se van escalonando -a medida que se necesitan nuevos tamafios- de forma tal
que cada nuevo tamafio que se necesite es el anterior multiplicado por la cantidad de simbolos de la base. ···
bi C.
El numero maxima de porciones de cada tamafio lo determina el sfmbolo de mayor valor de Ia base en cuesti6n.· ~

i Como se simholizan los pesos en octal sin necesidad de estimarlos en base diez ?
Hasta aca nos hemos centrado en el objetivo de entender conceptualmente que es un sistema numerico
posicional, para Io cual por razones didacticas hemos valorado los pesos en base diez, mediante los cuales
simbolizamos el peso de un objeto o de un m'.i.mero de elementos usando los sfmbolos en base ocho. Si bien
se puso enfasis en que la balanza usaba pesas octales, y que el peso simbolizado 155 se podia lograr .;sin
conocer que es I 09d- equilibrando Ia balanza con pesas octal es, de hecho los calculos que hemos realizado
en base diez para llegar al 155 implican un pasaje de base diez a octal, metodo que seguiremos usando.
A fin de ratificar que cada sistema de numeraci6n no surge del sistema decimal, sino que es independiente, como
Io sugiere claramente Ia posibilidad de pesar usando pesas octales, expresaremos en octal el valor de las pesas o
pesos de este sistema. Simplemente (fig. Al .4.a) si ponemos en el plato izquierdo de Ia balanza una pesa ocho
veces mayor que 1 gr. (8 grs. en base diez) para equilibrarlo hace falta una sola pesa ocho veces mayor que 1 gr, y
ninguna (cero) pesa de 1 gr., o sea que esta pesa o peso en octal se simboliza 10 (lease uno-cero, y no "diez").
8 I
Conforme con esto, en la fig. Al.2 luego del simbolo mayor 7 sigue el 10 (1 00 = 8d), asi como en base diez
despues del 9 sigue el I 0. Esto es general: en cada base al simbolo mas alto en valor le sigue en valor el 10.
Del mismo modo (fig. Al.4.b), si en el plato izquierdo se coloca una pesa sesenta y cuatro veces mayor que 1 gr
se equilibra con una sola de ese tamafio y ninguna de Ios tamafios menores, por lo que en octal este peso se
simboliza 1000 (lease uno-cero-cero, y no "cien"). Igualmente una pesa 256 veces mayor que 1 gr se equilibra con
solo una de ese tamafio, y ninguna de Ios tamafios subsiguientes, por lo ·
que en octal este peso es 10006, etc.
Por lo tanto, en octal las pesas se simbolizan 1, 10, 100, 1000 . . . (estos
mismos sfmbolos representan los valores de las pesas que se usan en base
diez, aunque en octal representan I, 8, 64 y 512, respectivamente).
Figura A 1.4.a 0 0 sea 100% en octal: 10010 I ]0
1 5 5 0 = lxlOO + 5x10 + 5xl]0
Esta cuenta (que indica una pesa de 100, mas 5 de 10, mas una de 1)
realizada en octal darfa, obviamente, 1550. 64 s 1
La apreciaci6n de los pesos de 155 6 en base diez era 1 5 5 6 ==
0 0 =[Ix64 + 5x8 + 5xl]d = 109d ; esto es, pensado en base diez se
FigmaAl.4.b
usaron una pesa de 64 mas 5 de 8, mas 5 de 1, suma que da 109d.
Al apreciar los pesos en base diez en esencia se esta pasando de octal a base diez, siendo que el significado de Ios
sfmbolos 1 y 5 es el mismo en ambas bases. Este metodo sera el usado para pasar de cualquier base a decimal.
Ejercicios:
Con la balanza con pesas octal es pesar un objeto que en base diez pesa 1OOd. Respuesta: J446
Idem otro que pesa 120d Respuesta: 1706
burg
~T
I '~!.
Ginzburg 137

. Sistema en base dos o binario


d (Io
th~·za~.~------""En_b_ase_d~sJ9s_sf_mbglos con _los cuales se puede formar cualquier numero son o y I (figura A 1.2),
Con los mis.mos supuestos que planteamos para la pesada realizada en relaci6n con la fig. A I. I, pesaremos
(fig. Al.5) el mismo objeto cuyo peso en binario se quiere determinar, siendo queen base diez pesa 109 grs.
; 5.
Veamos cuales son las pesas en base dos. Si cada pesa en base diez en relaci6n con la del tamafio anterior era
5.
diez veces mas pesada, en binario lo sera dos veces: juntando dos pesas de un valor se construye una pesa del
tamafio siguiente. Si para fines didacticos simbolizamos en base diez el peso de cada tipo de pesa binario, se
tendria la serie de valores: 1 gr; 2d grs; 4d grs; 8d grs; 32d grs; 64d grs; 128d grs; 256d grs; 512d grs., etc ...
on~
El sfmbolo "d" indica que se trata de base diez. El simbolo para representar 1 gr. es el mismo en ambas bases.
De cada uno de dichos tamafios existe una so/a pesa (en base diez eran 9), siendo 1 el mayor simbolo binario:
fig. - 1 pesa de 1 gramo
de - 1 pesa dos veces mayor que la de 1 gr. (2d)
550 - 1 pesa cuatro veces mayor que la de 1 gr. (4d)
. - 1 pesa ocho veces mayor que la de 1 gr. (8d)
y aside seguido, o sea que podemos tener mas pesas, cada una multiplo de dos (te6ricarnente infinitas), segun
los sea la ma nitud del eso de los ob"etos ue se uiere esar.
La pesa de cada valor se usa (1), o nose usa (0)
Pesaremos otra vez el objeto que en decimal pesaba 109 grs. La selec-
os ci6n de las pesas adecuadas la simularemos hacienda calculos simples
tar en base diez, como se hizo en relaci6n con las figuras Al.I y Al.3.
Suponiendo (fig. Al.5) que se empieza adecuadamente a equilibrar
la balanza colocando en el platillo derecho la pesa 64 veces mas
1 pesada que la de 1 gr, pensando en base diez se habran equilibrado
·Figura A1.5 64d grs, por lo que faltara equilibrar 109 - 64 = 45d grs.
Probando eq~ilibrar agregando en el platillo derecho la pesa de tamafio menor siguiente, 32 veces mayor que la de
lgr., de los 45d que faltaba balancear, ahora restaran balancear 45d- 32d = 13 grs. Si se prueba colocar la pesa 16
veces mayor que la de lgr, sumando en base diez resultarfa (64 + 32 + 16)d = 112d > 109d, con lo cual el peso del
platillo derecho superaria al del izquierdo, por lo que no puede colocarse la pesa 16 veces mayor que la de 1 gr.
Esto se simboliza con un cero en relaci6n con esa pesa 16 veces mayor .. Colocando la pesa 8 veces mayor que la
de I gr. resultan balanceados (64 + 32 + 8)d = 104d grs., faltando ahora balancear (13 - 8)d = 5d grs. Agregando la
pesa siguiente, 4 veces mayor que 1 gr. faltaria balancear (5 -4)d = ld gr., por lo que nose puede colocar (cero) la
pesa 2 veces mayor que la de 1 gr., y si debe agregarse la pesa de 1 gr.
En definitiva, en el platillo derecho se habran colocado: I pesa binaria 64 veces mas pesada que la de 1 gr.; 1 pesa
binaria 32 veces mas pesada que la de I gr.; 0 pesa binaria 16 veces mas pesada que la de 1 gr.; 1 pesa binaria 8
veces mas pesada que la de I gr.; 1 pesa binaria 4 veces mas pesada que la de 1 gr.; 0 pesa binaria 2 veces mas
pesada que la de 1 gr.; 1 pesa binaria de 1 gr. Esto quedarfa simbolizado binario (b) Como 1101 lOib.
100 10 1 ]d 64 32 16 8 4 2 1 ]d
Entonces I 0 9d = I 1 0 I 1 0 1b (sobre los simbolos en ambas bases se indican sus pesos en decimal)
El mismo objeto que en la fig. A 1. 1 fue fraccionado artificialmente en porciones indicadas como 109d; en la fig.
Al .5 lo hemos fraccionado tambien en forma virtual en las porciones indicadas para simbolizar su peso en binario.
Asimismo, si pensamos en el conjunto de personas que en base diez fue dividido conforme indican los
simbolos 109, dicha totalidad en base dos fue dividida (pensando el tamafio de los grupos en base diez), en un
grupo de 64, un grupo de 32; entre los restantes no se pudo formar ningun grupo de 16, si un grupo de 8 y otro
de 4; entre los restantes no se pudo formar ningun grupo de 2, y si un grupo de una persona.
Nuevamente se verifica que un sistema numerico es una forma de fraccionar una totalidad en porciones, cuyos
tamafios, a partir del valor uno, se van escalonando -a medida que se necesitan nuevos tamafios- de forma tal
que cada nuevo tamafto que se necesite es el anterior multiplicado por la cantidad de sfmbolos de la base.

J Qui son los bits y bytes ?


== EI numero binario 1101101 consta de 7 dfgitos binarios. En ingles serf an 7 binary digits, o sea 7 bits.
e 0 sea que un bit es un digito binario, por lo que es un sfmbolo que puede valer 0 6 I.
Un byte es un conjunto de 8 bits. El tamafio de las memorias se mide en bytes. En el interior de un
procesador se opera con multiplos pares de un byte: 2, 4, 8, 6 bytes (16, 32, 64, I28 bits)

JC6mo se simbolizan los pesos en hif!ario sin necesidad de estimar!os en base diez?
Nuevamente por razones didacticas hemos estimado Ios valores de las pesas binarias en base diez.
Si bien se plante6 que la balanza usaba pesas binarias, y que el peso simbolizado 1101101 b se podfa lograr -sin
138

conocer que es 109d- equilibrando Ia balanza conpesas binarias, de ~echo las calculos que hemos realizado en
- - - - - - - - b.ase diez para llegar al 1101101 impliccm un pasaje de base diez a binario. metodo que seguiremos usando.
M.:r .: l ~tGII

A fin de ratificar que cada sistema de numeraci6n no surge del sistenia


decimal, sino que es independiente, como Io sugiere claramente la posibili-
dad de pesar usando pesas binarias, expresaremos en binario el valor de
cada pesa de este sistema. Simplemente (figura Al.6.a) si ponemos en el
plato izquierdo de Ia balanza una pesa binaria dos veces mayor que la de 1
FiguraAl.6.a gr. (2d grs.) para equilibrarla se utiliza (1) la pesa de dicho tamafio y nose
usa (0) la pesa de 1 gr., o sea que esta pesa en binario se simboliza IO
(lease uno-cero, y no "diez"). 2 1

Conforme con esto, en la fig. A 1.2 luego deI sfmbolo mayor 1 sigue el 10 (1 00 = 2d), asi como en base diez
despues del 9 sigue el 10, y en base ocho al 7 le sigue I 0.
Del mismo modo (fig. Al.6.b), si en el plato izquierdo se coloca un cuerpo cuatro veces el peso de 1 gr. (4d grs.
en base diez), se equilibra usando (1) la pesa binaria cuatro veces mayor que Ia de 1 gr., sin usar (0) la pesa dos
veces mayor que la de 1 gr., y sin usar (0) Ia pesa de 1 gr., por lo que en binario este peso se simboliza lOOb
(lease uno-cero-cero, y no "cien"). Igualmente un objeto ocho veces mayor que 1 gr (8d grs.) se equilibra con la
pesa binaria Cie ese tamafio, y ninguna de los tamafios subsiguientes, por lo que en binario este peso es 1000.e, etc.
Por Io tanto, en binario las pesas se simbolizan 1, 10, 100, · 1000 ... (estos mismos simbolos representan Ios
valores de las pesas que se usan en base diez, aunque en binario representan 1, 2, 4 y 8, respectivamente).
lOOXXXl l<Xml l(XXXJ l<nl 100 10 1 ]b l
0 0 1 b = (Ix 1000000 + Ix 100000 + Ox 10000 +
+Ix 1000 + Ix 100 + Ox IO + Ix I )b = 1101 I01 b
Esta cuenta (que indica sumar: la pesa de 1000000, la de I 00000, no la
de I 0000, la de 1000, la de 1000, la de 100, no la de I 0 y sf la de I gr)
Figura A I .6. b realizada en binario darfa, obviamente, 1101101 b.
643216 8 4 2 I
Los pesos de 1101 IOib en base diez eran 1 1 0 I 101b=[lx64+Ix32+0xl6+1x8+lx4+0x2+lxl]d=109d; esto es,
pensado en base diez se usaron la pesa de 64 mas la de 32, mas la de 8, mas la de 4, mas la de 1, suma que da I 09ct.
Otra vez vemos que al valorar Ios pesos de una base en base diez, de hecho estamos pasando de esa base a base diez.
Ejercicios:
Con Ia balanza con pesas binarias pesar un objeto que en base diez pesa 1OOd. Respuesta: 1100 l OOb
Idem otro que pesa l 24d Respuesta: 11111006
;,Cuii/ son los mimeros binarios naturales extremos representables en 11 bits expresados en decimal?
Vamos a par.tir de n=4 bits, para Iuego generalizar para cualquier numero n de bits.
4
EI valor mfnimo es NMIN = OOOOb =Oct; y el maximo NMAX = 111lb=15d = 16- 1 = 2 - I
En aeneral ara n bits
NMIN = 00 ..... OOb = Od; y el maximo NMAX = 11 ..... I lb= (2° - l)d (el numero que sigue aNMAX menos uno)
n bits n bits

Sistema en base dieciseis o hexadecimal ("hexa"}


Si bien la representaci6n de la informaci6n en el interior de un computador s6lo puede ser simbolizada en
binario, ello implica leer o escribir largas sucesiones de ceros y unos (16, 32, 64). La utilidad del hexadecimal
reside en que, como se vera, por un Iado resulta sencillo pasar de binario a hexa y viceversa; y por otro, en
que para representar un mismo numero, se requiere cuatro veces menos simbolos en hexa queen binario.

En hexa los dieciseis sfmbolos van del 0 a F (fig. A 1.2), con los cua1es se puede formar cualquier numero.
Mientras que en base diez para indicar del 10 al 15 se necesitan dos sfmbolos, en hexa se usa uno solo. 1,C61
-~~:::~-::;:~~::::::~::;:~M.:i::~:$:::.~:

Con los mismos supuestos que planteamos para la pesada realizada en re1aci6n con la fig. A 1.1, pesaremos
(fig. Al .3) el mismo objeto cuyo peso en hexa supondremos desconocido, siendo queen base diez pesa I 09 grs.
V eamos cuales son las pesas en hexa; Si cada pesa en relaci6n con la de I tamafio anterior en base diez era diez
veces mas pesada, en hexa lo sera dieciseis veces: juntando dieciseis pesas de un valor se construye una pesa de!
tamafio siguiente. Si para fines didacticos simbolizamos en base diez el peso de cada tipo de pesa hexadecimal
se tendria la serie de valores: 1 gr; lgr xl6d = 16d grs; 16d grs xl6d = 256d grs; 256d grs xl6d = 4096d grs., etc.
El sfmbolo "d" indica que se trata de base diez. El simbolo para representar I gr. es el mismo en ambas bases.
De cada uno de dichos tamanos existen un total de F pesas hexadecimales (en base diez eran 9), siendo F =15d
el sfmbolo hexadecimal de mayor valor:
rvf.Ginzburg 139
- F pesas de 1 gr.
- F-pesas-dieciseisveces-mayorque la de 1 gr. \.lt:>a grs)
- F pesas docientoscincuenta y seis veces mayor que la de 1 gr. (256d grs) y dieciseis veces el tamaii.o anterior
- F pesas mil veinticuatro veces mayor que la de 1 gr. (1024d grs) y dieciseis veces el tamafi.o anterior.
y ~sf_ de segu~do_, ? sea qu: podemos ter:er mas subconjuntos de F pesas que sean multiplos de dieciseis
(teoncamente mfm1tos), segun sea la magrntud del peso de los objetos que se quiere pesar.

Otra vez pesaremos el objeto que en base diez pesaba 109 grs. La selecci6n de las pesas adecuadas la simula-
remos hacienda calculos simples en base diez, como se hizo en relaci6n con las figuras Al.I y Al.3.
Suponiendo (fig. Al .7) que se empieza adecuadamente a equilibrar la
balanza con las pesas dieciseis veces mas pesadas que 1 gr., se podran
colocar hasta 6 pesas de este peso, con lo cual, calculando en base diez,
habremos equilibrado 6x16 = 96d grs., faltando equilibrar 109 - 96 = 13d
FiguraAl.? D grs. El equilibria de los platillos se logra agregando 13d = Dh pesas del
tamaf'io menor siguiente, que es de 1 gr. Por consiguiente, el peso del
objetoenhexaes6D. Osea: 109d =1550 = 1101101b= 6Dh
Asimismo, si pensamos en el conjunto de personas que en base diez foe dividido conforme indica1i'-los
simbolos 109, dicha totalidad en base dieciseis fue dividida (pensando el tamafio de los grupos en base diez), en
6 grupos de 16, y 13 grupos de una person_a, siendo que pueden existir hasta F = 15 grupos de cada tipo.

i Como se simholizan los pesos en hexadecimal sin necesidad de estimarlos en base diez ?
Al igual que.cualquier otro sistema, el hexadecimal no surge del sistema decimal, sino que es independiente, como
asf lo sugiere la posibilidad de pesar el objeto en cuesti6n usando pesas hexadecimales, pudiendose simbolizar en
hexa el valor de las pesas o pesos de este sistema. Simplemente (fig. Al.8) si ponemos en el plato izquierdo de la
balanza un peso dieciseis veces mayor que l gr. (16 grs. en base diez) para equilibrarlo hace falta una sola pesa
dieciseis veces mayor que 1 gr, y ninguna (cero) pesa de 1 gr., o sea que esta pesa o peso en hexa se simboliza 10
(lease uno-cero, y no "diez"). 16 1
Confonne con esto, en la fig. Al.2 luego del sfmbolo mayor F sigue el 10 (1 Oh = 16d), asf como en base diez
despues del 9 sigue el 10, en octal despues del 7 sigue 10, yen binario despues del 1 sigue 10.
Del mismo modo si en el plato izquierdo se colocarfa un peso docientos cincuenta y seis veces mayor que 1 gr
se equilibra con una sola de peso de ese tamafio y ninguna de Ios tamafios menores, por lo que en hexa este peso
se simboliza 1OOh (lease uno-cero-cero, y no "cien").
Por lo tanto, tambien en hexa las pesas se simbolizan 1, 10, 100, 1000 ... (estos mismos sfmbolos representan los
valores de las pesas que se usan en base diez, aunque en hexa representan I, 16, 256, y 4096, respectivamente).
0 sea 100% en hexa: 10 I ]h
6 Dh = 6xl0 + Dxl]h
Esta cuenta (que indica 6 pesas de 100, mas D pesas de 1) realizada en
hexadecimal daria, obviamente, 6Dh.
16 I

FiguraAI.8 0 Con los pesos de 60 hen base diez es: 6 D h = [6xl6 + 13xl]d = 109d;
esto es, pensado en base diez se usaron una pesa de 64 mas 5 de 8, mas 5
de 1, suma que da 109d.
Como ya se dijo, al valorar los pesos de una base en base diez en esencia se esta pasando de dicha base a base diez.
Ejercicios: ,
Con la balanza con pesas hexadecimales pesar un objeto queen base diez pesa 112d. Respuesta: 70h
Idem otro que pesa I OOd Respuesta: 64h

,,S£,~,2~,,,~,'!illf!,!!!!l,$!~,~,!!~~~~!~"~;.,!,,,~!fl~!~!1,,!~"''''~~,,~£~~~~,,;;,[!,~~,~!£.;,,~~1l,l,,~[!~1,,!?.,~~~,,~l,,~,,,,,,,M,,,@,,,,,,,
El cuenta vueltas que indica los kms. recorridos por un auto consta de ruedas con Ios simbolos del 0 al 9.
Cada rueda al cambiar de 9 a 0 obliga a la que esta a su izquierda a avanzar una posici6n. La rueda de las unidades
progresa una unidad merced a una acci6n exterior para que las otras puedan cambiar, si asf debe ocurrir.
Suponiendo que el numero que esta frente al visor es 4588, si la rueda de las unidades avanza un simbolo, pasara de 8 a 9 sin
afectar Ia rueda de las decenas, por lo que el numero siguiente es 4589. Cuando las unidades vuelvan a aumentar uno, ahora
pasaran de 9 a 0, lo que hara que las decenas tambien progresen uno, de 8 a 9, sin afectar las centenas. Por lo tanto, el
numero que sigue sera 4590. Con las mismas consideraciones, si las unidades siguen aumentando uno, sucesivamente se
tendra: 4591, 4592, ... 4599. Luego de este las unidades pasan de 9 a 0, lo que hace que las decenas tambien pasen de 9 a 0,
lo cual a su vez obliga que las centenas cambien de 5 a 6. Asf se formara el 4600, y asi de seguido.
140 M.Ginzbur() ~t.Ginzt
~

Cuenta vueltas hexadecimales y binarios nos permitiran hallar facilmente el numero que sigue a otro dado.
En hexadecimal cada rueda tiene dieciseis sfmbolos (0, L2J.4,5.6.7.8.9.A.B.C.D.E,F), y cuando cambia de Fa 0 hace cambiarb
--------ru-e~da que esta a su izquierda. Saivo que hay 16 simbolos en cada rueda en vez de diez. todo es igual al cuenta vueltas anterior ·~
Asumiendo que el cuenta vueltas hexadecimal indica 3899, si la rueda de las unidades avanza un simbolo, pasara de 9 a A ·5.
hacer cambiar la rueda que esta a su izquierda. por lo que el numero hexadecimal siguiente es 389A. Luego. cada vez qu~
unidades aumentan en uno, sucesivamente se iran formando 389B, 389C, 3890. 389£. 389F. Con el siguiente cambio de 1
1:
rueda de las unidades, esta pasara de F a 0. con lo cual la rueda que esta a su izquierda cambiara de 9 a A, sin afectar a la rueda
que esta a su izquierda. Por Io tanto, el numero que sigue es 38AO, y asf sucesivamente. a
Suponiendo que el cuenta vueltas progrese hasta 3FFF, con el siguiente avance en uno de la rueda de las unidades esta pasara de pa
0, forzando que la rueda que esta a su izquierda tambien cambie de F a 0, lo que a su vez tambien hace que su rueda vecina izquierda
pase de F a 0, Io que a su vez hara que Ia rueda que esta a su izquierda cambie de 3 a 4. En definitiva de 3FFF se pasa a 4000.
Podemos imaginar un cuenta vueltas binario constituido por ruedas que s6Io tienen dos sfmbolos: 0 y 1, cada uno ocupando una
mitad de cada rueda.. Cuando una rueda pasa de 1 a 0 obliga a la que esta a su izquierda que gire media vuelta para que pase a 1 si
estaba en 0, 6 que pase a 0 si estaba en 1.
Suponiendo que este cu enta vueltas indique 1010, si la rueda extrema derecha de las unidades avanza uno pasara de 0 a 1, sin a±ectar
a la rueda que esta a su izquierda por lo que el numero binario que sigue sera 1011. Cuando la rueda de la<> unidades vuelva a
cambiar, esta vez de 1 a 0, hara que Ia rueda vecina izquierda quc estaba en 1 pase a 0,. Esto a su vez obliga a que Ia rueda vecina
izquierda que estaba en 0 cambie a uno, lo cual no afectara a la rucda vecina izquierda de Ia misma. Entonces a 1011 sigue 1100, etc.
En la fig. 1.4 puede verificarse con este metodo Ia generaci6n de la sucesi6n de binarios de! 0000 al 1111.

l,Cuantos bits se necesitan por cada dfgito decimal a representar?


El numero decimal 109 de 3 dfgitos, en binario es 1101101 de 7 bits. Si consideramos que 109 es un poco
mayor que el 99 de dos dfgitos, resultan aproximadamente 7/2 = 3,5 bits por cada dfgito d~cimal.
512d = lOOOOOOOOOb o sea I Obits para representar 3 digitos decimales: 10/3 = 3,3 bits por dfgito decimal.
Con 2 bits se '(om1an 4 = i combinaciones binaries (00 01 10 11). Con 3 bits se forman 8 = i combinaciones binaries (000 00!
4
010 011 100 101 110 111). En Ia figura 1.4 de la secci6n 1.2 aparecen las 16 = 2 combinaciones binaries que se forman con 4 bits.
0 sea, que el exponente de dos indica la cantidad de bits que se necesitan para formar un numero de combinaciones
que es potencia de dos, siendo que si el exponente aumenta en uno, el numero de combinacione.s se duplica.
3
Es importante recordar siempre que i1° = 1024, numero cercano a 1000 = 10 (1 K)
El exponente diez de dos indica que con 10 bits pueden formarse 1024 numeros o combinaciones binarias distintas
(de 0000000000 a 1111111111 b = 1023d), numero cercano a 1OOOd que es el numero de numeros o combinaciones
que en base diez pue en el platillo derecho den fonnarse con 3 dfgitos decimales (de 000 a 999), siendo 3 el
exponente de diez.
Por lo tanto, un numero aproximadamerite igual de combinaciones distintas se fonnan con 10 bits en binario, y con 3
dfgitos en decimal. 0 sea unos 10 bits por cada 3 dfgitos decimales, lo que da 10/3 = 3,33 bits por cada dfgito decimal.

Ejercicio:
6
Cuantos bits se necesitan para fonnar 10 ( 1Mega) numeros distintos. Respuesta 6x3,3 3= 19,98 ~ 20 bits
6 3 3 10 0 20
Otra forma de hacerlo: dado que i , · se tiene 10 = 10 x 10 - 2 x i
0
= 2 El exponente indica que .hacen falta 20 bits.

II CONVERSION ENTRE BASES


Conversion de una base cualquiera a base diez
Se trata de urta metodologfa que de hecho hemos realizado anteriormente cuando evaluamos ei:i base diez los
valores de las pesas con las cuales formamos numeros en otras bases. Asi, hemos realizado:
64 8 1
1 5 5 0 = [lx64+ 5x8 + 5xl]d = l09d
64321684 21 d
1 101 101b=[1x64+lx32+0xl6+1x8+lx4+0x2+lxl]d=109d
16 1
6 D h = [6xl6 + 13xl]d = 109d
~tGinzburg 141

Regla:
-------+-1_,--E.scribir--sobre cad a posici6n su peso en decimal
2. Surnar los productos del peso decimal de cada posici6n por el simbolo que aparece en ella (en hexa se debe
pasar los simbolos A, B, C, D, E, Fa base diez). El resultado de esta suma sera el numero decimal buscado.

Ejercicio: Convertir a decimal el numero binario 10000 Respuesta: 16d


Convertir a decimal los numeros hexadecimales 109 y lOOA Respuesta: 265d y 5006d
Convertir a decimal el numero octal 1037 Respuesta: 543d

Conversion de base diez a otra base cualquiera por el "metodo de las pesas''
Como se puso de relieve anteriormente, el hecho de pesar con pesas de otras bases objetos cuyo peso es
conocido en base diez (figuras. Al.3, Al.5, Al.7) permite determinar en octal, binario, etc. los simbolos que
re resentan en estas bases el eso de dichos ob· etos.
0 sea que el metodo de simular _que se pesa un objeto, cuyo peso se conoce en base diez, con pesas de una
cierta base cuya magnitud se estima en base diez permite convertir un m'.imero en base diez a otra cualquiera.

Refl/a para pasar un numero decimal a binario: (no se requiere realizar dibujo alguno)
a. Dado el numero a convertir, se parte de la pesa binaria que en base diez tiene un valor igual a dicho numero, o que
presenta_el valor menor mas proximo al mismo; ya partir de este valor se escriben en ba.Se diez los sucesivos val ores
decrecientes de las pesas binarias hasta el valor uno, siendo cada valor la mitad de! anterior.
b. Se coloca un uno debajo del primer valor detenninado en el paso anterior. A este valor decimal se le sumara el valor
decimal de cada peso binario que sigue a la derecha sin omitir ninguno hasta el peso uno. Si al sumar el valor de la
pesa que sigue a la ultima que se analizo el resultado alcanzado iguala o es menor que el numero decimal a convertir,
se colocara un uno debajo de! valor de esa pesa; y si ese resultado supera dicho numero se coloca un cero, para indicar
que esa pesa no se usa para balancear.
c. Los unos y ceros asi determinados de izquierda a derecha son las bits dd numero biriario buscado.

EJEMPLO: Convertir el numero 284d a binario


a. => 256 128 64 32 16 8 4 2 1 d
b. => 1 0 0 0 1 1 1 0 0 b c. 284d = 100011100d
En el paso a. se comenzo con la pesa de valor 256, que es Ia menor en relacion con 284, siendo que la de 512 lo supera.
El paso b. comienza escribiendo un uno debajo de 256. Sumando el valor 128 que le sigue daria 256 + 128 = 384 > 284,
por lo que se coloca 0 debajo de 128. Lo mismo ocurre si intentamos sumar al 256 ya sea 64 o 32, por lo que tambien
escribimos un cero debajo del 64 y de! 32, para indicar que no se han usado estas pesas. Con el peso 16 resulta 256 + 16
= 272 < 284 (siendo que aun faltan equilibrar 284 - 272 = 12), por lo que escribimos un uno debajo del 16. Con el peso 8
resulta 272 + 8 = 280 < 284 por lo que tambien se escribe un uno bajo de! 8. Restan equilibrar 284 - 280 = 4, lo cual se
consigue cori la pesa de ese valor, escribiendose un uno debajo de! 4. Dado que se ha equilibrado el 284 con las pesas
indicadas con un uno, no se usaran las pesas de 2 y I, colocandose un cero debajo de cada uno de esos valores.
Verificacion~ siempre es factible determinar si el resultado de una conversion esta bien, realizando el pasaje inverso a
base diez del numero binario hallado, segun Ia regla antes indicada:
256 128 64 32 16 8 4 2 1 d
I 0 O 0 1 l l 0 0 b = (1x256 + Ix 16 + I x8 + 1x4 )d = 284d Se verifica que la conversion fue bi en hecha.
Ejercicio Convertir lOOd a binario Respuesta: 1100100b
Con el presente mctodo formar Ios n(1meros binarios de! 0 al 15, y verificar su concordancia con la fig. 1.4.

Metodo para pasar de base diez a hexadecimal:


a. Dado el numero a convertir, se parte de la pesa hexadecimal que en base diez tiene un valor igual_ a dicho numero, o que
presenta el valor menor mas proximo al mismo; y a partir de este valor se escriben en base diez las sucesivos valores
decrecientes de las pesas hexadecimalcs hasta el valor uno, siendo cada valor dieciseis veces menor que el anterior.
b. Repitiendo la metodologia de las pesas desarro'Ilada en relaci6n con la figura Al.7, sistematizaremos la forma
de hallar las digitos hexadecimales a traves de! siguiente ejemplo representativo

EJEMPLO: Convertir el numero 2574d a hexadecimal


a. => 256 16 1 d
b. A 0 Eh
En el paso a. nose pudo usar ninguna pesa de valor 4096d, par lo que se comenzo con las de valor 256d que es la menor
en relacion con 2574d. Para el paso b., si usamos lOd =Ah pesas de 256d habremos equilibrado 10x256 = 2560 < 2574 (de
haber puesto ·11 = B pesas de 256 excedemos a 1574. Entonces debe escribirse A debajo de 256. Faltan equilibrar 2574-
- 2560 = 14 Si se probara equilibrar con pesas hexadecimales que valen 16 en base diez, no seria posible colocar ninguna
(cero ), pues si se pusiera una, se tendrfa 2560 + 16 = 2576 excediendose el numero 2574, par lo que debe escribirse O
143
NLGinzburg
Reg/a para pasar de hexadecimal a binario:
~eparar ios-dfgitoshexadecimaies de mode de poder formar debajo de cada uno de ellos un cuari:eto a deter- binario
minar de pesos 8-4-2-1. Estos numeros pueden escribirse o ser imaginados mentalmente
2. Convertir cada digito hexadecimal de 0 a Fa decimal (seran iguale; del O al 9), y este n6mero a su vez en un cuarteto
de pesos 8-4-2-1 por el metodo de las pesas ya visto.
3, El conjunto de cuartetos asi formados constituiran el numero binario buscado.

EJEMPLO: Convertir a binario el numero hexadecimal A07


Paso 1 A 0 7 h
8421 8421 8421d
Paso 2 10 10 0000 0 1 1 1b 0 sea A07h = I 0I000000111 b
A=l0=8+2 7=4+2+1

Ejercicio: Convertir a binario lOh Respuesta: 0001 OOOOb

OPERACIONES ARITMETICAS CON


NOMEROS BINARIOS NATURALES
·De que forma la UAL suma dos numeros ?
~Jii;%"'.:%:;::~<t;J;'li><;;<:~~'~"''""';::r;.)mi<®~i!<io'l'<;;;**-'<@<m:m1Mir;:~,,;;;::%:ll"''°'*~l>mc~'''~ll$':°ll:lml"'illl\'>m'iill~~i~.m<<~W,;itll<.'<\>'<;J;<->1~0i:i%:s;::i<M;tmMl\"@~;m~•«,><'''cz•r,<%>;~**"-""R<t..'li:-."l*M>'.B~"'~"'~i;;~mmw~~,~~~w.°"'"l>'$lmmii&'i».-W.®<"<1m;1~l\~Mt'l~<:%il'#:lmii%'
En cualquier base numerica pueden definirse las distintas clases de numeros (naturales, negativos, imaginarios, reales,
etc.), y todas las operaciones que empleamos en base diez. Estas presentan las mismas propiedades conocidas en base
diez, y pueden aplicarse los mismos algoritmos que conocemos para realizarlas con numeros de ·varios digitos.
Comenzaremos con la suma de binarios
Si bien pueden sumarse manualinente varios numeros binarios ordenados uno debS;jo del otro, interesa especialmente operar dos
nurneros binarios por vez, como lo hacen las unidades aritmeticas de los microprocesadores y las calculadoras de bolsillo.
·-11:· · '?°,,,,,.ll!l'.l:,,fa%'' ' ,~;;:11t"1111:~;gy!~!1 l)()'"' '%"'' , , ,:, .. . ..
Esto se verifica en 'ias siguientes sum~ ~'iementates, que son variantes que tienen lugar en ta surna de dos numeros binarios:
0 1 0 10
+__Q_ +_Q_ +i +_!_ + _!
0 1 1 10 11

Efectuar 110110100 + 11010110


1I 11 1
110110100
+ 11010110
- - --·-

1010001010
i hgfedcba

La suma se ha realizado, posici6n por posici6n, como se detalla:

a. 0+0=0
b. O+l=l
1+1=10 se escribe el O y "me llevo 1" de acarreo ("carry") a la :posici6n siguiente
c.
d. 1+0 +0=1+0=1
e. 1+1=10 (idem c.)
f. 1 + 1 + 0 = 10 + 0 = 10 (idem c.)
g. l+O+l= 10 (idem c.)
h. l+l+l= 10+1= 11 se escribe 1 y "me llevo 1" a la posici6n siguiente.
i. 1+1=10

La tabla de restar binaria es sencilla: 0 0 I 0 I 0


o-·o = o 0)'..Y)3'0)')3'0 I 0
1-0= 1 1 1 1 0 0 1 0 1
1-1= 0 10 0 10 I 0 I 10 1
O- 1 = 1 y se "pide 1" a la siguiente; o sea se hace 10 - 1 = 1
1-145

_CODJEJCACION ASCII DE CARACTERES


ALFANUMERICOS Y UNICODE

1
El cod1go ASCII (lease asquz ') s1glas de Amencan Standard Code for Information Interchange es un c6digo binario
ampliamente usado para la transmisi6n de informaci6n, y para codificar los caracteres de un teclado, asi como los que
-
debe imprimir un impresora en modo texto o mostrar una pantalla. Tambien es el c6digo de los archivos de texto.
En la fig. Al .11 aparecen los caracteres alfabetico-numericos imprimibles, mas los de teclas que ordenan movimientos
del cursor que antes eran los del carro de una maquina de escribir (SP abreviatura de "space"; la tecla de retomo del carro y
pasar a un nuevo rengl6n, CR, siglas de "carry return", que aparece en los teclados actuales como .J "Enter";la de "back space"
= BS)1, mas o_tros relacionados con las teletipos \STX -Start of Text- EOT -End ofTransmisi6n- etc) 1•
7
Suman 128 = 2 caracteres y otros a codificar en binario por Jo que bastarian 7 bits para formar igual numero de combinaciones
binarias distintas, aunque se usan 8 bits (el primer bit de todas las combinaciones del ASCII estandar es cero, pudiendose usar
8
para paridad u otros fines). Con 8 bits resultan 2 = 256 combinaciones, 128 para ascii estandar y 128 para ascii extendido.
Por ejemplo, las mayusculas de Ia A hasta Ia Z se codifican segun una sucesi6n ordenada de numeros binarios (que
permite realizar ordenaciones alfabeticas):
64 8 421
A 01000001=4lh = 65d; 0 00110000 = 30h = 48d; SP 00100000 = 20h = 32d;
a 01100001 = 61 h = 97 d; 1 00110001 = 3 lh = 49d;

B 01000010 = 42h = 66d; 2 00110010 = 32h = 50d;

b 01100010 = 62h = 98d;


?
z 01011010 = 5Ah = 90d 9 00111001 = 39h = 57d
se
e z 01111010 = 7 Ah = 90 d
Arriba aparecen combinaciones binarias del c6digo ASCII cuando se pulsa la tecla con el caracter indicado; Asi, cada vez
el que se pulsa A queda 0100000 l en una celda de memoria. Para poder ordenar alfabeticamente las Ietras, Ia B es el
, numero binario siguiente 01000010, y asi sucesivamente se aumenta uno hasta la Z (01011010).
e Al !ado de cada combinaci6n binaria aparecen su valores equivalentes en hexa yen decimal, usados en la tablas ASCII.
r Una mayuscula se diferencia de su minuscula en un solo bit (el tercero desde la izquierda) lo cual se usa en ciertos
l programas para no diferenciar un nombre escrito con mayusculas o minuscufa.s, dado que los 7 bits restantes permiten
l determinar la tecla de la letra tipe,ada sin importar si el caracter es el de arriba o el de debajo de dicha tecla.
Los di itos del O al 9 em iezan con 0011, else undo cuarteto con esos 8-4-2-1 indicados determina ue df ito es.
Sise tipea 109XP en memoria queda en ASCII como: 001100010011000000111001 01010111 01010000
I 0 9 X P
Asimismo, si a la plaqueta de video le Hegan en orden esas tres combinaciones binarias ASCII, en pantalla se vera l 09XP

Cuando se tipea Alt 64 para que aparezca @, dado que 64d = 0 I OOOOOOb este sera el c6digo ASCII de @.

)()!:'.) . ····I tl' •...•. · i2'i< : :3··


:IA) ii:s .· '16 if[ ..:
1

.1.. 1
!;/ {8 !9 ....·: LA< :ar. ·1•:c
I .. I.
f){ fP..\i• . . !pi ...
:a NUL SC
ii STX ETX EQT ENQ ACK BEL BS HT LF VT FF CR so SI
Ll •. •. OLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS us
I'
@H SP ! " # $ % & ' ( ) * +
'
- I i

3T 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
)f i @ A B c D E F G H .1 J K L M N 0
Ls p Q R s T u v w x y z [ \ ] /\
-
)({ .. '
a b c d e f g h i j k I m n 0
117
r.,;;,•.,.,1...,.:....
p q r s t u v w x y z {
I } - DEL
Figura Al. I I (TABLA DEL CODIGO ASCII)

Una tecla como SHIFT es una orden interna para el teclado a fin de que genere mayt'.1sculas o el simbolo superior de Jos dos que
aparecen en una tecla, por lo que nose codifica en ASCH
146 ·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
M.GinzbuJ
s ,1 I

La tabla anterior es una forma ~ompacta de _mostrar Ia tabla con el c6d~go ASCII expresa~o. en h~xa,_ donde cada caracte· I
tiene dos coordenadas que escntas consecut1vamente conforman el eqmvalente hexa del cod1go bmano. ' j
____ _AsLpara hallar el c6digo ASCII de urr c3.racter como la A, esta tiene por coordenadas 4 (horizontal) y 1 (vertical) u
forman 41 h = 01000001 Del mismo modo, SP tiene coordenadas 2 y 0, que fonnan 20h = 00 I 00000; ' qe
ASCII extendido
Si se tipea kit 164 para obtener fi, dado que l 64d = 10100 l 00 b este sera el c6digo ASCII de Ia ft. EI bit extrern
izquierdo es uno. Esto caracteriza a las 128 combinaciones de cualquier ASCII extendido, que puede contener Ian 1 °
vocales con acento, y otros sfmbolos usados en otras lenguas latinas, segun lo establezca Ia empresa que lo imponga. ' as
EJERCICIO: visualizar con el Debug como quedan en memoria codificados en ASCII, Ios caracteres de Ana 3/6/80
Pasos a efectuar a partir del sfmbolo C: \> del DOS :
1. C:\> COPY CON MARIO.CODJ (en italica aparece lo que se debe escribir, yen negrita lo que escribe el DOS)
Ana 3/6/80 I\Z (A Z se usa para cerrar el archivo, siendo que A se logra pulsando la tecla CtrJ)
1 ARCHIVO(s) COPIADO(s)
1
2. C:\> DEBUGMARIO.CODJ (Para poder ver en memoria mediante el Debug el archivo tipeado)
(Guion titilante que indica que el Debug esta esperando una orden)
3 ElOOJ (Orden de leer la memoria a partir de 0100, donde quedan los archivos)
309D: 0100 41. 6C. 61. 20. 33. 2F. 36. 2F.
309D: 0108 39 30.J
A partir de 41. se debe pulsar la barra espaciadora para obtener el valor siguiente (6C), y aside seguido, (como se hizo
explic6 al describir el uso deI Debug) tantas veces como caracteres, espacios y "enter" se hayan pulsado en el teclado
Se verifica que los numeros hexadecimales 41, 6C, etc corresponden a los caracteres tipeados (Ana 3/6/80).
EI lector deb~ realizar esta practica tipeando otros caracteres distintos que Ana 3/6/80 y luego verificar que Ios c6digos
que se leen en memoria corresponden a la codificaci6n ASCII segun Ia tabla dada.

Que es el Unicode ?
Hacia 1990 se busc6 definir un sistema de codificaci6n universal, que permitiese Ia incorporaci6n de los caracteres
(grafos) de todas las lenguas escritas del mundo, tanto actuales como pasadas, asi como Ios simbolos utilizados en
matematicas y otros. EI sistema deberia ser ademas extensible, de forma que pudieran afiadirse nuevos tipos en el futuro.
Por un lado el UCS ("Universal Character Set"), desarrollado por Ia Organizaci6n Internacional de Standarizaci6n (ISO); y por
otro el denominado Unicode impulsado por empresas como Microsoft (integrante de! Unicode Consortium), que habia
incorporado en sus sistemas Windows 9x un juego de caracteres adaptado a la rn lyoria de alfabetos occidentales.
Posteriormente implement6 Unicode en sus sistemas NT y sucesores. Aunque el desarrollo inicial de ambos sistemas fue
independiente, luego convergieron, y el sistema Unicode se convirti6 en un subconjunto del sistema UCS.
Unicode es una norma intemacional de codificaci6n de caracteres. La primeira version (1991), usaba una codificaci6n de 16
bits, por lo que podia codificar 65.536 caracteres. Actualmente se representa con tres tipos de codificaci6n, UTF-8, UTF-16 e
UTF-32) segun que use 8, I 6 6 32 bits para identificar cada caracter. Unicode 4.1, codifica cerca de un mi116n de caracteres
que cubren los principales idiomas escritos de! mundo. Los primeros 128 caracteres de Unicode corresponden a los
caracteres del ASCII y tienen su mismo valor. Puesto que ASCII usa 7 bits por caracter es inadecuado para manejar texto
multilingiie, Unicode adopt6 un formate de 16 bits que extiende las ventajas del ASCII al texto multilingiie.
Unicode se ha convertido en Ia codificaci6n dominante para el procesamiento de texto. Cubre idiomas de America,
Europa, Africa, India, Asia, y Ios simbolos tecnicos.
Unicode proporciona un numero unico para cada caracter, no importa cual sea la plataforma, el programa, o el idioma que
se trate. Un numero hexadecimal y un prefijo U, por ejemplo, U+0041 representa la A en 16 bits. Unicode ha sido
adoptado por Apple, el HP, Ia IBM, Microsoft, Oracle, SUN, Sybase, Unisys entre otros. Es usado en Java, ECMAScript
(Javascript); XML. Tambien por muchos sistemas operativos, por Ios browsers actuales, y muchos otros productos.
La aparici6n de Unicode, y Ia disponibilidad de las herramientas que Io apoyan se encuentran entre las tendencias
globales recientes mas significativas de Ia tecnologia del software. Permite que los datos .sean transportados a traves de
muchos sistemas distintos sin que sufran dafios, y que un producto de software o un sitio Web pueda orientarse a
multiples plataformas, idiomas y paises, sin necesidad de redisefiarlo. Una version de un producto se puede utilizar por
todo el mundo. No son necesarios lanzamientos separados para mercados regionales. Un texto en cualquier Iengua se
puede intercambiar por todo el mundo ..

Las actuales versiones de Windows™ por razones de seguridad pueden requerir alguna modificaci6n menor de este comando
147
rvtGinzburg

EJERCITACION
_...._ _ _ __,_.__Escribi:r:Jos sucesivos numeros hexadecimal es de! 1048h y I 070h.
2. Conforme al ejercicio anterior, indicar cua.I es el siguiente de los siguientes numeros hexadecimales: FFF, 2ABF,
2B99, lFF, ABCD, CODO, AOF, 999.
3. z,De cuantos bytes consta el numero hexadecimal 003B, y que numero binario y decimal es?
4; Dado el numero 10 en base dos, y el numero 10 en base dieciseis (,que numeros son en base diez ?
5. Generalizar la pregunta anterior: dado el numero 10 en base X, (,que numero es en base diez?
6. Dado el numero binario 1111111, hallar una forma rapida de pasarlo a decimal, sin tener que hallar el peso decimal
de cada bit y luego sumar los pesos. Generalizar el procedimiento hallado.

7. Determinar en la expresi6n 2° que sucede con su valor, cada vez que n aumenta uno, y calcular el numero de
combinaciones binarias distintas que pueden formarse con n = I 0 y n = 11. Tener presente la figura 1.4
8. Convertir a base doce el numero decimal 140.
9. Convertir a hexadecimal el numero 11 0000 0000 OOOlb Luego convertir este numero binario a octal.

10. Los numeros de las direcciones de una zona de memoria un computador van de 0000 a FFFF. Determinar a cuantas
posiciones de memoria existen combinaciones.
20
11. Se tiene una memoria con 2 posiciones, y se quiere identificar cada una con un numero binario distinto.
Expresar en binario la primera, segunda, anteultima y ultima direcci6n de dicha memoria.
Indicar en decimal cuantas posiciones son, y cuantos simbolos hexadecimales se necesitan para codificar cualquier
posici6n. Indicar en hexa: el valor de la posici6n cero_ y la Ultima.
12. z,Cuantos bits hacen falta para representar numeros decimales entre 0 y 999999d? z,Cuantos digitos hexadecimales?
13. Los registros de un 386, 486 y Pentium tienen 32 bits. (,cual es el mayor y menor numero natural que se representa?

14. Dados los numeros naturales 180 y 40


a) Representarlos en c6digo ASCII
b) Representarlos en binario y sumarlos en formato 8 y 16
c) Representarlos en binarios y restarlos por el metodo del complemento a Ia base en formato 8 y 16.
15. Siendo p = 180, Q = 40 efectuar en formato 16 la operaci6n P + P - Q. Verificar que el resultado sea correcto.
16. Comparar en base diez y dos, que pasa cuando se multiplica por 10 y por 1000. Generalizar para Ia division.

RESPUESTAS A PARTE DE DE LOS EJERCICIOS


3. 2 bytes.; 003Bh = 00000000001llOOlb=59d
4. Dos y dieciseis
5. x
1. Conviene tomar el numero siguiente 1000000 = 1280 y restarle uno

9. 3001h = 300010 10. 65.536


11. 00000000000000000000 00000000000000000001 11111111111111111110 11111111111111111111
1.048.576; 5 dfgitos en hexa, de 00000 a FFFFF
12. 20 bits y 5 digitos en hexa
13. 232 = 2 10 x2 10 x2 10 x 22 = 1024 x 1024 x 1024 x 4 > 4000.000.000
148

EJERCICIO SISTEMATIZADOR DE CODJGOS


En un teclado se ha tipeado 3Z, y la combinaci6n binaria que resulta en memoria es interpretada por 3 programas ere .
con fines distintos que se indican, siendo que el significado que cada programa asigna a esa combinaci6n debe aparece~
pantalla en caracteres alfabeticos y numericos (alfa-numericos), indicar en cada caso Ios pasos a seguir para que ello suced eii
1) Si dicha combinaci6n es interpretada por el programa Debug que convierte de binario a hexa y viceversa. a.
2) Si 3Z es tipeado mientras se esta escribiendo texto en el programa Word, y el mismo se visualiza en pantalla.
3) Si un programa que esta operando con numeros naturales (magnitudes) interpreta Ia combinaci6n citada, independien.
temente de c6mo fue generada.
Aclaraci6n: como se detalla en la Unidad 2 de esta obra, el teclado no codifica en binario ASCII cacia tecla tipeada E
cambio Ia plaqueta de video se encarga de convertir cada c6digo ASCII que le Ilega en el caracter o acci6n correspondiente. n

Para empezar, Ios dos caracteres tipeados (3Z), en memoria quedaran codificados en ASCII como 0011001 l 0101 lOJo
segun se desprende de Ia tabla ASCII de Ia figura AI. I I (3 = 33 y A= 5A).
I) EI Debug esta preparado para ''ver'' -con vistas a que aparezca en hexa en pantalla- cada combinaci6n binaria dividida
en cuartetos con pesos 8-4-2-1, que debera traducir en digitos hexadecimales (secci6n Al.3):
8421 8421 8421 8421
00 11 00 ll 0101 1010
3 3 5 A estos 4 simbolos son los que deben aparecer en la pantalla, para lo cual el Debug debera generar
en memoria sus correspondientes c6digos ASCII, que deberan Ilegar luego a la plaqueta de video.
Ellosson: OOOllOOII (3) 000110011 (3) 00110101 (5) 01000001 (A) queenhexason33333541 (TablaAl.11)

2) El Word trabaja directamente con los caracteres ASCII que han sido tipeados, por lo que al tipear 3Z simplemente sus
c6digos ASCII (001I0011 y 0IO1 I 010) pasan a la plaqueta de video, que Ios convertira en pantalla en los caracteres 3Z.
Igualmente, si dichos caracteres forman parte de un archivo del Word que se abri6, sus c6digos ASCII pasan a dicha pla-
queta, y asi son visualizados en pantalla.

3) Dado que el programa opera con numeros naturales, cuando interpreta la combinaci6n 00110011 01011010 -que ocupa
dos posiciones sucesivas de memoria (una por byte)- para que se imprima en pantalla como un numero decimal la
interpretara con los pesos siguientes:
32783 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 I
0 0 1. I 0 0 I 1 0 I 0 1 I 0 I 0 b = l 3146d
Para que estos 5 digitos decimales aparezcan en pantalla, el programa debera generar en memoria sus c6digos ASCII que
Ilegaran a Ia plaqueta de video: 00110001 (1) 00110011 (3) 00110001 (1) 00110100 (4) 00110110 (6).

EJERCICIO INTEGRADOR DE CONOCIMIENTOS


Un programador ha desarrollado para variables (datos) que son magnitudes, un programa en un cierto lenguaje "X" de
alto nivel, cuyas sentencias 1 tipe6 desde el teclado de un computador. Para una porci6n de dicho programa ha tipeado la
sentencia que mas abajo se indica. Se supone que luego de ella, se puede escribir el valor de las variables a operar.
A23E
Variable: F
A240
MAGNITUDES .J ( este sf mbolo .J aparece para indicar que se puls6 "Enter")
A242
R=P+Q-T.J (sentencia en alto nivel, en el lenguaje X)
A244
P = 130 Q = 4103 T = 4 .J
I t (las flechas sefialan que se hizo un espacio mediante la barra espaciadora) Fig

2. a
Representar c6mo quedan en memoria los caracteres tipeados, supuestos escritos partir de la direcci6n 0100.
3. Si posteriormente el programador llama al programa compilador del lenguaje "X'', indicar c6mo el compilador d~ja
traducida en memoria la sentencia R = P + Q - T en Ia secuencia de instrucciones en c6digo de maquina, para ~n
procesador de Intel o AMD. Para tal fin usar los c6digos definidos en la figura 1.15, y escribirlos en memoria a partir de
la direcci6n 03AC. Asignar a las variables (datos) R, P, Q y T las direcciones A23E, A240, A242, y A244,
respectivamente. Para cada variable usar 2 bytes.
4. Una vez que todo el programa en el lenguaje "X" fue traducido a c6digo de maquina, se ordena ejecutarlo.

Designamos "sentencia" a cada orden (instrucci6n) que constituye cada "linea" escrita de un programa expresado en un lenguaje de
alto nivel (Pascal, C, Basic, Cobol, Java, etc.), la cual si se tipea quedan codificados en ASCII los caracteres que la componen.
Reservamos la palabra "instrucci6n" o sea "'c6digo de maquina" (a veces llamado "c6digo" a secas) a las 6rdenes que puede ejecutar
una UCP (microprocesador), siendo que cada sentencia debe ser traducida en una secuencia de estas instrucciones.
inzburg rvt.Ginzburg 149

lndicar, suponiendo que se ejecute la secuencia de instrucciones traducida en ~l punto anterior, para las instrucciones
que ordenan sumar o restar, c6mo la UAL realiza estas operaciones con los datos correspondientes. y c6mo queda el
---,"'.~------ regiSfro-A.X lliegcnie-que se ejccuta cada una de ias instrucciohes de dicha secuentia. Tambie11 pasa:r a base dicz
cada resultado binario que esta en AX, verificando que sea el valor esperado.
5. Representar luego de ejecutar la instrucci6n l4 c6mo queda en memoria el resultado asignado a la variable R
conforme ordena dicha instrucci6n. ~
6. Suponiendo que luego de la sentencia R = P + Q-T siga la sentencia PRINT "R=" R (o sea imprimir en decimal el valor
de R hallado ), el compilador la traducira a varias instrucciones en c6digo de maquina una de las cuales Hamara a una
ndien. subrutina de impresi6n. Si esta ordena que la impresora opere en modo texto. indicar c6mo debe quedar codificada en
memoria desde Ia direcci6n 7100, Ia informaci6n a enviar a la impresora para que imprima en decimal el valor de R.
ada. En Este ejercicio integra de forma concreta. l os 4 pasos de un proceso de datos: entrada, memori::aci6n, proceso y salida.
iente.
I. Como se estableci6 en Al.5, al tratar el c6digo ASCII, en una operaci6n de entrada desde el teclado, Ios sucesivos
OI IOlO caracteres tipeados (sean de un texto para un procesador de texto, ode un programa en alto nivel) quedan almacenados en
binario, en posiciones sucesivas de memoria (figura Al.15) en este caso desde la 0100, codificados en ASCII. Para mas
claridad, al !ado de cada casillero aparece el caracter codificado, y su c6digo ASCII en hexa. segun la tabla (fig. Al .11 ).
vidida
2. Cualquier programa en alto nivel se encuentra codificado en ASCII, al igual que una carta, o cualquier texto, es una sucesi6n
car·ac1ten~s aisla~os, codificados individualmente en de

Un programa en
estrictamente una sintaxis especificada, para que pueda ser reconocida como un programa por el programa traductor
(compilador). Else encarga de traducir cada sentencia eh uncz secuencia de instrucciones de maquina apropiadas al
te sus
microprocesador (UCP) que Io va a t:_jecutar.
es 3Z.
Del archivo del disco rfgido donde se encuentra el compilador de un lenguaje X, este pasa a mcmoria. Al ordenar compilar, ,
a pla~
los datos a procesar son los caracteres codificados en binario ASCII, que representan el programa en alto nivel para el programa
compilador. Luego de ser ejecutado (por la UCP), el programa compilador dejara en memoria, traducido a c69igo ci.e.maquina (en
este caso para el microprocesador de Intel), el programa que originariamente estaba en alto nivel. Esto es, el compilador es un programa
cuyo "input" (datos) es un programa en alto nivel codificado en ASCII (unos y ceros), y cuyo "output" (resultado) es el programa
que fue su "'input", pero en c6digo de maquina (unos y ceros), para que pueda ser ejecutado por un microprocesador espedfico.

Un compilador para un lengu~je de alto nivel "X" solo traduce programas escritos en este lenguaje, para que solo puedan ser
ejecutados en microprocesadores de un cierto tipo. Por ejemplo, un compilador que traduce de un lenguaje "X" para
procesadores de Intel o AMD, los programas que genera en c6digo de maquina no pueden ser ejecutados como ser en
procesadores HP, o PowerPC, o SPARC, u otros, por tener cada procesador sus propios c6digos binarios de instrucciones.
Una misma orden de sumar se codifica distinto en procesadores de distinto fabricante, y aun en modelos no compatibles de
un mismo fabricante de microprocesadores.
El compilador para un lenguaje "X" es un programa "inteligente" que recorre repetidamente la zona de memoria donde qued6
codificado en ASCII el programa en Jen ua·e "X". Asf va identificando cada sentencia los datos (variables) gue ella ordena
iiilitil;~I~[ trad~ci~~.~s en '" .. 'j:;llqi~1Wl;lll~l,~llJ~111~1{}11tlg:
2a. Con estos fines (figura A 1.15) primero debe determinar el ti po de variable (en este caso magnitudes , o ~ea n(1meros
1

naturales) que las sentencias ordenan procesar, para Ilevar a cabo las traducciones a instrucciones para procesar magnitudes, y
c6digos de datos correspondientes a estas. Entonces, el compilador antes de traducir leera en memoriaque en ASCII esta
A23E~-----i R escrito "MAGNITUDES", a fin de poner en juego las subrutinas de traducci6n para este tipo de variables.
F,___---.
A240 ,___----. P 2b. ASIGNACIONES DE DIRECCIONES A LAS VARIABLES: como se estableci6 en relaci6n con la figs.
A242 1 - - - - - - 1 Q 1.3 y 1.15 cada instrucci6n debe indicar la direcci6n del dato (valor de la variable) que ordena operar. Es por ello
que antes de traducir cada sentencia con sus variables en instrucciones para un procesador, el compilador debe
A244 ,___ ___, T asignar la direcci6n que tendra cada variable, que sera tambien la direcci6n de! dato cuando se !es da un valor a cada
variable antes de que se ejecute el programa. Esto se hace en 2.d.
Figura Al .14 EI compilador reservara (conforme al enunciado de! c:,jercicio) dos bytes de memoria para las variables R, P, Q y T,
en direcciones de memoria arbitrarias que en este ejemplo van de A23E hasta A245 (fig. Al.14). Esto es, para el
compilador la variable R seni la direcci6n A23E y la variable P sera la direcci6n A240, etc., bastando la primer direccion
deja de una variable para identificarla, dado que se sabe que ocupan 2 celdas todas las variables tipo "Magnitudes".
a un O sea que el compilador en primer termino solo identifica cada variable por su primer direcci6n, sin que interese para
r de formar las instrucciones (paso 2c) el valor concreto de la variable, pues en estas instrucciones se indica d6nde esta la
44, variable, a fin de poder localizar en memoria este valor (por lo que no es imprescindible asignar direcciones consecutivas
como se hizo ). No interesa en Ia traducci6n el valor concreto que se le asigna a esa variable antes de la ejecuci6n del
programa, como se hace en 2d, cuando se escribe dicho valor concreto en las posiciones reservadas para cada variable.

e de 2c. CODIFICACION DE LAS INSTRUCCIONES RESULTANTES DE LA TRADUCCION: Unavez asignada a cada


en: variable una direcci6n de Iocalizaci6n, el compilador traducira la sentencia R = P + Q - T en instrucciones cuyos c6digos de
utar
Mas adelante se realizan ejercicios similares al dado, pero para variables que son de! tipo "Integers'·, "Reales" (punto flotante)
rvtGinzburg
I
151

3. Cuando se ordene ejecutar el programa que el compilador dej6 en c6digo de maquina en memoria, y la UCP ejecute las
instrucciones I1 a li, luego de cada una de ellas. el registro AX quedara como se indica a continuaci6n. La UAL solo operara en
as-inst.~Jccicnes !2 e !:;,-que crderrar1 sumar y restar, respectivawcute~ indicfutdose pfua. las inisfflU.S le:::. cper3.ci6n de la UAL.
s 1'
(14)'. Despues de ejecutar 11:
n un AX = OOOOOqoo 10000010 que es el valor de P (l 30d = 0 l 82h; este y otros valores en hexa sirven para el Debug).
s de
las Despues de ejecutar 12 :
-Q· AX= 0001000010001001 que es P + Q (4233 en decimal).
rna Este valor es el resultado de sumar en la UAL 0000000010000010 (P)
ta~ + 0001000000000111 (Q)
tro. 00010000l000100 l = 1089h (P + Q)
Despues de ejecutar 13 :
AX= 0001000010000101 que es P + Q-T = R (4229d = 1085h).
Este valor es el resultado de sumar en la UAL --7 0001000010001001 (P + Q)
+ 1111111111111011 (bits de T invertidos)
1
DE: 0001000010000101 (P + Q)-T = R
~;.0,
Despues de ejecutar l4 el valor de AX no cambiara, pues 14 ordena que una copia de AX pase a memoria
II AX= 0001000010000101=1085h
or 4. La ~jecuci6n de 14 ordena queen la direcci6n A23E yen la siguiente (asignadas a R) copiar el valor de AX (8510
en hexa), por lo que luego de ejecutarse 14 en memoria se tendra para R los valores l 0 y 85 indicados en la figura Al .17
be
l: 5. En modo texto, la subrutina de impresi6n dejara en p0siciones sucesivas de memoria los caractcres a imprimir, cada uno
as en c6digo ASCII. Previamente dicha subrutina interpretara la orden de impresi6n (en este caso R =valor de R), siendo que el
s valor de R que esta en A23E y A23F debeni pasarlo a dfgitos decimates codificados en ASCll. Esto es, determinara que el valor
o de R, que es 0001000010000101 es el 4229, el cual en ASCII resultara 00110100 00110010 00110010 00111001, como
aparece en memoria en la figura A 1.16 Antes de estos c6digos aparecen los c6digos de R y el de igual (= ), como se indica.
a . •·
e EJERCICIO COMPLEMENTARIO:
O Usando el Debug como se explic6 en la secci6n 1.6, escribir en memoria los datos- e instrucciones como quedaron en la
a fig, Al.15. Luego ejecutar cada instrucci6n y verificar que los resultados concuerden con las respuestas dadas para 3 y 4.
Dado que R no se conoce, se comienza por escribir el valor de P en la direcci6n A240 , seguido por los valores de Q y T
-E A240 (Comando para examinar memoria y escribir en ella si se desea, siendo que xx indica el contenido "basura" pre-existente)
309D:A240 xx.82 xx.00 xx.07 xx.I 0 xx.04 xx.00 .J (0082 se escribe 8200, etc.)
Para corroborar que los valores recien escritos son los nuevos contenidos de las posiciones modificadas, otra vez se examina con E
-E A240 .J (Examinar memoria para verificar si la escritura anterior fue correcta)
309D:A240 82. 00. 07. 10. 04. 00. .J (la escritura fue correcta)
(A240) (A241) (A242) (A243) (A244) (A245) Entre parentesis las direcciones

Con el mismo procedimiento se escriben los c6digos de maquina (cod-op+ dir de! dato) de las instrucciones a partir de 03AC
-E 03AC (Examinar memoria y escribir en ella)
309D:03AC xx.Al xx.40 xx.A2 xx.OJ xx.06 xx.42 xx.A2 Y.x.2B (A240 se escribe 40A2, etc.)
309D:03B4 xx.06 xx.44 xx.A2 xx.AJ xx.3£ xx.A2 .J (los cod-viJ nose invierten: 0306 sigue igual, etc)
-E03AC -1 (Examinar memoria para verificar si la escritura anterior fue correcta)
309D:03AC A 1. 40. A2. 03. 06. 42. A2. 2B.
309D:03B4 06. 44. A2. A3. 3E 42 .J
(03B4) (03B5) (03B6) (03B7) (03B8) (03B9) Entre parcntesis algunas direcciones de los valores

-RIP-1 (comando al Debug para examinar el valor del Registro IP y cambiarlo si se desea)
IP 0100 (el Debug informa que actualmente el IP contiene 0100)
: 03AC .J (al !ado de los dos puntos que deja el Debug escribimos 03AC, nuevo valor que debe tener IP)

-R .J (Antes de ejecutar se deben examinan registros, siendo que el Debug muestra la informaci6n siguiente)
AX=OOOO BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
ES=309D SS=309D CS=309D IP=03AC NV UP EI PL NZ NA PE NC
309D:03B4 Al40A2 (en negrita se verifica que, como debe ser, el IP esta en 03AC, y que la pr6xima instr. a ejecutar es Al40A2)

-T .J (Orden para ejecutar una instrucci6n 11)


AX=0082 BX=OOOO CX=OOOO DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
ES=309D SS=309D CS=309D IP=03AF NV UP EI PL NZ NA PE NC
309D:03AF 030642A2 (pr6xima instrucci6n 12 a ejecutar)
: Constatamos que 11 se ha ejecutado correctamente, pues se ha cumplido la orden que portaba su c6digo: escribir en A.-X una copia
ctel contenido de la posici6n A240, que es 0082. Tambien ha cambiado automaticamente IP a 03AF, para apuntar la direcci6n de 12,
como habiamos previsto al hablar de IP. Asimismo vemos que el c6digo 030642A2 de Ii es el correcto, por lo que podemos ejecutar 12
TI !vf.Ginzburg -La PC por Dentro 153

__.__, ________ __________ - "


Apendice 2 de la Unidad 1-- -~ -- --· - - - - . . --- -- - . -·

Clasificaci6n def software


Podemos clasificar el software en tres categorias: software de aplicaci6n, software de base y software
"dafiino" (virus).

SOFTWARE DE APLICACIONES

El software de aplicaciones son los programas que desarroIIa O' adquiere un usuario para que un sistema de
computaci6n realice las tareas que requiere.

SOFTWARE DEL SISTEMA

Junto con un computador se vende o entrega el denominado #software del sistema" (o parte del
mismo) sin el cual su manejo serfa bastante complicado para la realizaci6n de las tareas requeridas, y
su programaci6n estaria a cargo de especialistas en el hardware, amen de resultar muy lenta y
engorrosa. Tambien par seguridad no conviene en muchos sistemas que cualquier usuario acceda a
discos o destruya informaci6n de otros.
Este software se compone, pues, de programas para llevar a cabo funciones del sistema estrechamente
relacionadas con el hardware de un sistema de computaci6n ( operaciones de E/S, supervision de multitarea,
traducci6n de lenguajes, manejo de archivos, etc.).
La funci6n del software del sistema es controlar y dirigir la operaci6n de una computadora, de modo que al
usuario le parezca estar frente a una potente maquina "virtual", facil de operar y programar, con la que se
puede "dialogar". Asi no tiene que verselas con la maquina "real", electronica.
Esta en esencia solo realiza un limitado numero de operaciones elementales a gran velocidad, pero "sobre ella"
el software del sistema simula otra maquina virtual, que ante el usuario aparenta ser cualitativamente superior.
Vale decir que los programas de! sistema sirven para que un computador pueda usarse para resolver las
problemas de aplicaciones de los usuarios, y en general han sido desarrollados para un determinado tipo de
procesador.
Cuanto de este software necesita un computador depende de su aplicaci6n. Si esta dedicado siempre
a una misma tarea, ejecutando solo un programa, lo mas probable que no hagan falta programas
del sistema. En cambio si es usado para multiples usos, o sea para prop6sitos generales, es
indispensable contar con una jerarquia de tales programas.
El software del sistema puede clasificarse como sigue:
• el "software de base"
• el usoftware de control de comunicaciones"
• el "software de administraci6n de base de datos"
El software de base (sistema operativo + utilitarios) es el principal encargado de transformar la
maquina n desnuda" en otra virtual, con facilidades y potencialidades propias.
Fue el primero que se desarroll6 para ayudar al usuario en el desarrollo y ejecucion automatica de sus
programas de software de aplicaciones; a3i como para controlar dicha ejecucion, y salvar errores que puedan
subsanarse durante la misma (como los de lectura de disco y otros). La experiencia fue indicando que existe un
1-154
conjunto de procesos, como los de EIS, Ia traducci6n de un lenguaje de programaci6n de alto nivel (Cobol,
Fortran, Basic, Pascal, C, ... )a instrucciones de maquina, ciertos calculos rutinarios, y otros, que independiente-
mente del proceso de datos 91:1~_£_e_alice un_ computador, siempre aparecen en alguna etapa d~l mismo.
r:
I -
Los fabricantes de computadoras desde un principio comenzaron a proveer los programas y
subrutinas estandares para poder realizarlos, a la vez que tomaban mas automatico y facil el
manejo de las maquinas, merced a otros programas que tambien vendian. Su desarrollo implica
muchas horas-hombre de trabajo, que un usuario comlin no puede concretar. Aparecieron asi los
primeros sistemas operativos (SO), como tambien se indica en el Apendice 3.

Un sistefua operativo puede definirse como un conjunto de programas que controlan la operaci6n
automatica de un sistema de computaci6n, con dos funciones complementarias
I. Para que sea una maquina virtualfticil de operar y programar.,
II. Para administrar los recursos de dicho sistema, a fin de optimizar su funcionamiento,
detectar errores e futentar salvarlos

Seglin el SO que se trate, se da distinta importancia a estas funciones.


Con el fin de facilitar la operaci6n de un computador, un SO decodifica un conjunto de comandos que
el usuario ordena por teclado, los cuales conforman un "lenguaje de control de trabajos". En el
presente, a traves de programas interactivos como el Windows, estos comandos se ordenan
clickeando un bot6n del mouse sobre la porci6n de pantalla que representa el comando en cuesti6n.
Un SO puede divi~irse en m6dulos que administran los cuatro recur~,os de un sistema de c6mputo:
UCP, MP, PERIFERICOS Y ARCHIVOS.

Asf se tiene:
• Programas para determinar cua.I sera el pr6ximo programa que ejecutara la UCP, y ordenar su
ejecuci6n sin intervenci6n del operador.
• Programas para establecer los lugares dispohibles de la MP donde se almacenaran programas a
ejecutar y sus datos.
• Programas para procesos de E/S de datos entre MP y perifericos. (Para leer/escribir un sector
1
de un \1-isco, para leer I escribir un port de interfaz, borrar pantalla, etc.)
• Programas para manejar archivos en discos y cintas.
(creaci6n, borrado, apertura, cierre, escritura, lectura, etc de archivos).
En multiprogramaci6n ("multitasking"- multitarea) varios programas presentes en MP dan lugar a procesos
que se disputan los 4 recursos citados. El SO optimiza el funcionamiento del conjunto, oficiando de "arb!tro",
posibilitando que al mis:ino tiempo, mientras la UCP ejecuta uno de los programas de usuario, se realicen
tambien procesos de E/S correspondientes a otros programas de usuario, almacenados en MP.
Los programas de un SO estan constituidos brisicamente por las mismas instrucciones que las programas de
usuario, solo que organizadas para cumplir distintos prop6sitos (como los arriba indicados). Asimismo,
estos programas -como cualquier otro- son ejecutados por la UC de la forma vista.
Por ejemplo, no existe una instrucci6n "especial" del SO, que ordene controlar si hay o no papel en
una impresora, sino una secuencia de instrucciones simples que combinadas adecuadamente
cumplen dicho cometido, formando parte de una subrutina del SO.
Los SO pueden clasificarse como sigue:
• SO monotarea: solo pueden controlar la ejecuci6n de una tarea del usuario por vez. Simplemente cargan
y ubican en MP la aplicaci6n en curso, posibilitando que pueda usar los recursos del sistema. Cuando
aparece un comando tip.o EXIT el SO da por finalizada la aplicaci6n, y se encarga de encadenar la
siguiente. Ejemplo el D.O.S. .
• SO multitarea: permite la multiprogramaci6n, cargando y ubicando en MP diversas aplicaciones, pro-porcionando a
cada aplicaci6n la posibilidad de usar Ios recursos existentes. Controla que la UCP ejecute sucesivamente porciones
de cada una, con la suficiente rapidez para dar la impresi6n que cada tarea o usuario tiene todo el sistema a S1:J.
disposicion. Ejemplos: los SO "UNIX'' y "OS/2" y "WINDOWS NT"
Existen dos clases de SO multitarea:
1
Las rutinas de manejo de cada periferico, que contemplan temporizaciones, sincronizaciones, detalles circuitales de! mismo, se conocen
como el driver de! periferico en cuesti6n.
M.Ginzburg-La_PC por Dentro 155
a.. SO de utiempo compartido" ("time sharing") que asignan a cada aplicaci6n el tiempo que
peri6dicamente, en una "ronda" de procesos, tiene asignado para que la UCP ejecute parte del
_________,__ ismo_______ __________________ --·---·-··-
b. SO de .1~tiempo real": cada tarea se ejecuta durante un tiempo que depende de determinados
eventos -como ser la realizaci6n de una E/S- que ocasionan la conmutaci6n de una tarea a
otra, volviendo mas tarde a completarse el proceso de una actividad inconclusa.
Los programas utilitarios agilizan ciertos procesos que requiere el uso normal de un computador. Asi entre
otros tenemos:
• Programas traductores (compiladores e interpretes) a c6digo de maquina de programas
escritos en lenguajes de alto nivel (Fortran, Cobol, Basic, etc).
• Programas editores de enlace ("link-editores") que acoplan subrutinas a programas
compilados, de modo que puedan ejecutarse como un todo.
• Programas editores de texto o de programas en curso de desarrollo.
• Programas cargadores, que pasan programas de discos a MP.
• Programas de servicio, como los que pasan datos de disco a cinta.
• Programas para manejar "hojas electr6nicas" y "menus".
• Programas para depurar errores en otros programas en desarrollo.
Se trata de programas que dan "apoyo", en el sentido que preparan la ejecuci6n de otros programas, y
ayudan al usuario a desarrollar nuevos programas. Estos programas son coordinados por el SO.
Mediante up "lenguaje de comandos" el usuario especifica al SO que desea realizar, para que sea este el
que tome el control del proceso a partir de dicha orden, qtiedando usuario libre de esa responsabilidad.
Con el advenimiento del teleprocesamiento en gran escala, con computadores conectados a redes,
se fueron desarrollando /./software de control de comunicacioites'', encargado ae··ra. gesfi6I1 y
manejo de las comunicaciones a distancia. Gracias al mismo, cuestiones tales como los protocolos
para establecer y concluir una comunicaci6n entre computadores y Io terminales, la verificaci6n de
errores en la transmisi6n de datos, y el pedido de retransmisi6n en caso de error, son
"transparentes" para el usuario, que asi no debe desarrollar un software para comunicaciones a
distancia. En general este software se activa a traves del SO, ante un requerimiento de un programa
de usuario de hacer una entrada o salida desde o hacia una terminal o computadora remota.
El concepto de "base de datos" o .1'banco de datos" se refiere a una colecci6n de datos sobre un
mismo tema, interrelacionados, almacenados con un minima de redundancia, tales que los mismos
puedan ser usados por tantas aplicaciones como sea posible.
En una primer etapa, las denominadas bases de datos eran varios archivos relaciortados, diseftados
para una aplicaci6n determinada, o para un grupo de aplicaciones muy semejantes, a las que un
programa accedia a traves del modulo administrador del so.
Asi el archivo del departamento de compras de una empresa servia en menor grado para producci6n,
pero no era.muy util para otras gerencias. A medida que las bases de datos se emplearon para multiples
aplicaciones fue necesario asegurar que su crecimiento, al varias la estructura general de los datos, no
requiera modificar los programas de aplicaci6n que la utilizaban, y viceversa.
Por otra parte, surgieron nuevas exigencias para las bases de datos: deberian permitir que los
usuarios utilicen los datos de una manera que no fuera siempre la prevista por los diseftadores,
para poder responder a distinto tipos de consultas. No es lo mismo pedir un listado del personal de
una empresa por apellido, edad, cargo y sueldo, que solicitar a una base que empleados ganan mas
de X pesos, su nombre y edad. Esto ultimo supone un programa "inteligente", con capacidad para
deducci6n 16gica y para dar respuestas a consultas de alto grado de abstracci6n~
Fue necesario desarrollar programas complejos para crear y mantener bases de datos, que
relacionaran entre si los distintos archivds de una base para que ella se comporte frente al usuario
como si' virtualmente tuviera cierta i/inteligencia". Apareci6 asi el .1.1software de administraci6n o
manejo de base de datos" (sus siglas en ingles son DBMS).

Diferenciaci6n en MP de software y datos:


1-156
Los datos a procesar y los resultados son registrados en MP y registros de la misma manera que los
programas mediante estados electricos de los circuitos. Si bien resulta claro que los d.atos no
;:__------.R:fe::ttr~a:rte-de-1-hardwaref
. ert cadaaplicaCi6n es menester distinguir cuales son los datos y cual es
el software requerido para procesarlos.
En general/ las datos se almacenan en zonas de MP separadas de la zona don.de esta el programa que
indica c6mo procesarlos y ubicarlos.
En cada procesamiento los datos a tratar no forman parte del software que describe su tratamiento.
Es Jactible que un programa oficie de datos para otro programa. Por ejemplo un programa que esta
en un lenguaje que la UCP no puede ejecutar directamente (Cobot C Fortran/ Basic/ Pascal/ ... )
debe traducirse a instrucciones en c6digo de maquinaf mediante un programa traductor
correspondientef el compilador.
(I
E~
SOFTWARE DANINO ("VIRUS"} sir
El
EI software "dafiino" esta constituido por los "virus", que son programas. Un programa "virus" consta de ap
dos partes. la~

Una de ellas al ser ejecutada por la UCP, sirve para la autocopia del programa, con el fin de autoreproducirse La
co
tantas veces como pueda, para pasar de un computador a otro. La otra parte, al ser ejecutada produce los
la~
dafios para el que ha sido concebido el virus. cal
inc
El "contagio" de un virus consiste en pasar su~repticiamente a formar parte de otro ptograma o de un St'i
programa en disco (archivo "ejecutable", tipo .EXE, .COM, .sxs, .BIN, .BAT, los programas que estan en de
ios sectores. de booteo de un disco y otros ). Lue go tiene lugar una fase de "incubaci6n" o propagaci6n, op·
durante la cual solo se ejecuta la porci6n que autoreproduce el prograrna virus. Cuando el virus se autocopi6 inf
un cierto numero de veces, o en una fecha preftjada, o cuando el usuario realiza algo especificado, se ejecuta Al
la porci6n que provoca el dafio objeto del virus. -q
Por ejemplo una forma tipica de entrar un virus es cuando un disquete con un ''game" infectado (programa hai
ejecutable conteniendo un programa virus) es copiado de un disquete al d'isco rigido. Cuando se quiere usar el Po
pli:
"game" se ejecuta este y el programa virus, que asi se auto reproduce, y copias del mismo se instalan en otros
en
programas del usuario. Asirnismo cualquier copia del "game" que se pase a un amigo propagara el virus, y VO~
aunque luego el "game" se borre del disco, ya copias del mismo infectaron otros programas. Otros virus pri
pasan a memoria cada vez que un archivo infectado se ejecuta, y residen en memoria esperando que se Fin
ejecute otro archivo, para infectarlo. Otra forma de contagio es encender el computador con un disquete en jap
cuyo sector de booteo se ha introducido un programa virus. Puesto que cuando un computador arranca cor
primero intenta hacerlo desde el programa de booteo del disquete, una copia del programa virus pasara luego IN'
al sector de booteo del disco rigido. De esta forma, cada vez que luego se encienda el equipo,- se generara en La
memoria una copia del programa virus. Existen virus que suprimen la protecci6n contra escritura de archivos me
y que restauran la ultima fecha de actualizaci6n de un archivo para que no se detecte que lo han cambiado. ma1
Asimismo pueden detectar las llamadas que se hacen a un archivo, de rnodo de simular la informaci6n que se Lo~

obtendrfa si el archivo no estuviera infectado. Los virus "polim6rficos" encriptan los c6digos de las sen
instrucciones que los componen de una manera distinta en los archivos que infectan. Con este auto Anl
sig1
en._criptamierito evitan ser..detectados por los programas "anti-virus" anc
par:
Eldafio de im virus puede tener como objetivo el borrado de informaci6n (archivos o discos completos}, la De
alteracion de tablas o parametros que utiliza el SO (como la FAT -tabla de localizaci6n de archivos-), o visi
directamente la modificaci6n archivos con programas del SO. Existen virus que suplantan al SO en funciones ves·
daves, como la lectura/escritura del disco, asignaci6n de memoria, obtenci6n de informaci6n acerca de la epo
configuraci6n del sistema, etc. Poe
prir
Tarnbien ·pueden destruir hardware, como ser obligar al cabezal del disco rigido que salte continuamente
hon
entre dos posiciones extrernas (lo cual a su vez produce Ia perdida de la informaci6n contenida en el disco), o nun
intensificar Ia acci6n del haz de rayos cat6dicos, para producir un dafio irreparable en Ia pantalla del monitor. ded
nun
aun
pos
SUS
otra
Tod
con
sisH
rvL Ginzburg - La PC por Dentro 157

_,Ap_e~~ice 3 fle}§!J.J_nidad 1

coNTENIDOS DE ESTE APENDICE significa dedo, se use tambien para indicare cada una de las
Este apendice no debe verse meramente coma una "historia", posiciones de un numeros, y se hable de computadoras
sin mas, de la evoluci6n tecnica de! procesamiento de datos. "digitales''.
Ella es mas bien un pretexto para recopilar todos aquellos
aportes te6ricos y tecnol6gicos que estan presentes hoy dfa en La etapa siguiente de la computaci6n pudo haber empeiado con
las modernas computadoras. la representa:;i6n simb6lica de numeros mediante montoncitos
La gran mayoria de ellos no fueron pensados para las de diez guijarros 0 piedritas. Del USO de estas ultimas para
computadoras, pero son rnuchos los conceptos de la L6gica, y dicho fin, ha derivado la palabra "cakulo", siendo queen latfn
las ideas subyacentes en ciertos dispositivos mecanicos de
caiculo, y otros, anteriores a las computadoras, que fueron
[ncorporados a estas.
S6lo ha variado su forma de irnplementaci6n, que pas6 a ser
electr6nica, de modo de lograr mayor velocidad y confiabilidad
operativa, acorde a una sociedad industrial que devora
informaci6n en sus mas variadas formas.
Al tratar las generaciones de computadoras se establece
..:quizas por primera vez- un paralelo entre los avances de!
hardware y software.
Por otra parte, una funci6n complementaria que intenta cum-
plir esa secci6n, es familiarizar al lector con terminos usuales
en el ambito de la informatica, tales como Sistemas Operati- asi Ufi Prl111\l<llPntP
vos, multiprogramaci6n, memoria virtual, etc., dando una
con una veintena de piedras.
primer idea sabre los mismos, como un diccionario ..
De esta forma, con unas pocas piedras se podian contar
Finaliza esta historia con una breve referencia al proyecto
conjuntos tan grandes de elementos como fuese necesario.
japones de "Quinta generaci6n de computadoras", en relaci6n
Bastaba con agregar nuevos surcos a la izquierda, y seguir con
con la inteligencia artificial.
la misma me,·anica de conteo descripta
INTRODUCCION Asimismo, se ·podia interrumpir transitoriamente una cuenta,
La palabra computar proviene del latfn. Significa genenca- dado que el resultado alcanzado quedaba registrado por las
mente contar, calcular, aunque hoy dfa esta asociada a una piedras contenidas en cada ranura.
maq uina determinada. Posteriormente el abaco foe motivo de varias mejoras que le
Los procesos de datos, y en particular la computaci6n, en el dieron mas velocidad de c6mputo y potiabilidad. Los surcos
sentido generico citado, son tan antiguos coma el hombre. fueron reemplazados por finas varillas paralelas de madera
Antes de iniciar la cronologfa de los acontecimientos mas paralelas, sujetas a una base, sabre las cuales se podian ensartar
significativos ocurridos en este area, trataremos dos formas las "cuentas". La figura A3. l ilustra un abaco americano
precolombino.

:L_m
ancestrales de procesamiento: el USO de los dedos y del abaco
para contar y calcular.
De las primeras etapas no han quedado manifestaciones
visibles; son dificiles de precisar, pero estan apareciendo
vestigios indirectos de ellas, cada vez correspondientes a
epocas mas remotas . 0 0
Podemos decir que la primer herramienta para computar o
primera computadora, fueron los dedos de las manos de!
hombre. Con ellos simboliz6 otros conjuntos de entes o sucesos
numericamente equivalentes. Asimismo, manteniendo los
0
dedos en determinada posici6n, pudo memorizar y comunicar
numeros. Puesto que la suma y la resta implican contar, F! ::ura A3. 1 Figura A3.2
aumentando o reduciendo el numero de dedos estirados, fue
posible sumar y restar. Hoy en Africa, una persona cuenta con En Oriente encerraron sabre varillas de madera 9 (6 diez)
sus dedos los grupos de de diez formados con los dedos de otra cuentas o bolillas deslizables hacia arriba o hacia abajo,
otra persona, ampliando el rango de una cuenta. resultando asi mas veloz. En el presente el abaco japones en
Todas esta tecnicas manuales usadas para representa numeros Iugar de las nueve cuentas por hilera tiene dos "campos" (figura
con los dedos, son posicionales, como tambien lo es nuestro A3.2) que se suman. Uno con cuatro cuentas de valor unitario,
sistema decimal. No es c.asual que "digito" -palabra latina que
1-159

-
'
/
1614 ----- u- ··-- -- - - - - -
Juan NEPER, escoce~, c_oncibe la representaci6n de cualquier
numero N como 1OX, siendo x lo que se dio en Hamar el
acumulador, formandose en el mismo tambien el numero A (sin
que se produzca-ri!ngt'.in--arrastrer
ventanillas.
que- ·aparecera en ias
o
"]oQ:aritmo" en base 10 de N (x = log 10 N). Aparecen las tablas Nuevamente se giraban a la derecha los diales hasta quedar
s
de logaritmos que dan X para cada N, y permiten transformar indicando cero. Este sentido de giro no afectaba las ruedas de!
s
cualquier producto o division en una suma o resta de acumulador, que seguian guarda;do el valor de A
Jogaritmos, respectivamente. Neper tambien construye unas Girando otra vez a la izquierda los diales, se forrnaba ahora las
y
a tablillas de madera grabadas. que llevaban su nombre, que unidades . decenas , etc . , del numero B.
permiten multiplicar rapidamente dos numeros Estas se usaban Cada dial hacfa mover igualmente su correspondiente rueda de!
e en Oriente desde mucho tiempo atras. acumulador, a partir de la posici6n que habia quedado cuando
Estas ideas dieron nacimiento a las reglas de calculo, utili- se registr6 el numero A, pudiendose producir arrastres hacia
zadas hasta 1970 como calculadoras portatiles. otras ruedas. De esta forma al numero A del acumulador se le
suma B, y el resultado acumulado A+B, aparecera en las
e 1623 ventanillas. Si desoues de este
s SCHICK.ARD, aleman, construye para Kepler, un reloj de Si despues de est~ resultado se queria sumar otro numero C, se
: calculo, basado en ruedas contadoras, para hacer sumas y restas procedia de la misma forma como se hizo con B.
s de hasta seis digitos La maquina hacia la resta por el metodo de! complemento a la
u base (diez) del minuendo. Por ejemplo, para efectuar 710 - 84,
1642
se realizaba 710 + 916 = 1626, siendo 916 = 1000 -84.
~ El resultado eran los digitos (subrayados), que se formaban sin
, considerar el ultimo uno de la izquierda, o sea 626.
Varias ideas de Pascal siguen vigentes hasta hoy: la necesidad
de un registro acumulador, y el uso de un mismo dispositivo
para surnar y restar. Esto ultimo sumando al minuendo el
complemento a la base del sustraendo

1671

FiguraAl.3

Reemplazaba el calculo con pluma y papel, o con abaco, sin


requerir un operador experto. Era mas lenta que el abaco, pero
mas c6moda, dado que mecaniza las acciones de mover una a
una las cuentas de este, de cambiar 10 cuentas de una posici6n
por una de la siguiente (arrastre o acarreo ), y daba directamente
el resultado mediante un numero decimal.
Consiste en dos contaciores-registros con engranajes super-
puestos. El de mas arriba -con ventanillas- oficiaba de acu-
Figura Al-4
mulador de resultados (como el visor de una calculadora de
bolsillo actual). E 1 registro inferior servia para entrar los
numeros a sumar mediante el posicionamiento de sus diales De este modo, existian dos contadores: uno que ejecutaba, de 1
decimal es externos (equivalemes a un teclado ). Estos eran a 9 veces la suma de un numero consigo mismo, y otfo que
ruedas independientes entre si. Cada uno al ser girado hacia la controlaba cuantas veces debia repetirse dicha suma. Tanto la
izquierda, provocaba que la rueda del acumulador que estaba maquina de Pascal, coma la de Leibnitz; se basan en la acci6n
sobre ella girara igual numero de posiciones. Girada a la dere- basica de contar, en este caso dientes de engran~jes.
A partir de entonces se hicieron sucesivos iritentos para fabricar
cha no producia efecto rnecanico alguno.
Las ruedas del acumulador estaban relacionadas mecanica- comercialmente calculadoras mecanicas de mesa.
La tecnologfa requerida recien pudo concretarse efectivamente
mente corno las del cuenta-vueltas de un pasacasetes: cuando
hacia 1810, cuando Charles Thomas, alsaciano, fabric6 la
una rueda pasaba por la ventanilla de 9 a 0, hacfa girar una
posici6n a la rueda vecina izquierda. Se sumaba asi automati- primer maquina comercializable, producida en serie.
En el presente, aun se usan calculadoras mecanicas, con
camente uno a esta posici6n.
Para surnar dos numeros A + B,. primero se giraban a la iz- teclado, y mecanismo para multiplicar impulsado por motor. en
quierda las ruedas-diales hasta lograr que todas las ruedas del reemplazo del accionado manualmente.
acumulador indiquen cero en las ventanillas. Luego, los diales Leibnitz en 1703 estudi6 el sistema binario de numeraci6n.
se giraban a la derecha hasta quedar tambien en cero.
A continuaci6n, girando cada dial hacia la izquierda, se
formaban las unidades, d.ecenas, etc., del numero A, por lo que
simultaneamente se movian igualmente las ruedas del
1-158
v otro con una cuenta que vale par 5 al ser movida hacia la
divisoria. En esta se suman ambos campos.
l:'Or sumas rependas se inuTfipiica;--y mi.iltipllcaciones repetidas
ecuaciones cuadraticas. Usaron el cambio de variable t == ax
. d . . '. '
ca lcu 1a ban Ia suma e progreswnes antmet1c::is y geometricas ~
Los chinos usaban un sistema decimal con jeroglificos. Un aba~
.Y
----
1614
Juan NEI
numero l'
permiten hallar potencias. Operando en forma inversa, es primitivo con ·palillos de dos colores permitfa operar con nfuneros ''logaritm
posible restar, dividir y obtener raices cuadradas. positivos y negativos. Asimismo resolvian sistemas de ecuaciones de logarit
Iineales (con matrices) por un metodo semejante al de Gauss. cualquier
Durante milenios el abaco fue la calculadora "de bolsillo" de las
En la India 800 AC parece surgir el sistema decimal posicionaI y logaritmo
mas variadas culturas, incluida la romana, hasta el adveni-
mas tarde matematicos hindues como Aryabhata y Brahmagupta tablillas c
miento de la notaci6n numerica "arabica", que permiti6 operar
hicieron importantes contribuciones a la matematica. perrniten
como lo hacia el abaco, pero con lapiz y papel..
Grecia fue cuna de Tales de Mileto, Pitagoras y de Euc!ides de en Orient1
E 1 abaco sigue siendo muy usado hoy dia en Oriente, donde es
Alejandria Estas idei
manejado a una velocidad prodigiosa. Debemos mencionar el
zadas has1
torneo realizado en 1946. entre un operador yankee, experto en 350AC
~calculadoras electricas de escritorio, y otro japones experto en El "Organon" de ARISTOTELES compendia sus obras sobre 1623
abaco, quien gan6 4 a 1 en calculos compl~jos, que inclufan las L6gica, que entonces se llamaba "analftica". Esto es, el analisis scHICKJ
cuatro operaciones fundamentales. de Io que consideraba la estructura comun a todo razonamiento: calculo, b;
Cuando se generaliz6 en Europa la notaci6n simb6Iica que el silogismo y sus variedades formales, independientes de los de hasta s1
imita su operaci6n el abaco fue sustituido. significados en juego. Es un estudio de! pensamiento y su
coherencia, con vistas a alcanzar la verdad. · 1642
CRONOLOGIA DE PROCESOS DE DATOS ARQUIMEDES desarroll6 un metodo de calculo infinitesimal
MANUALES, MECANICOS Y APORTES TEORICOS para determinar volumenes de cuerpos con formas curvas,
anticipandose notablemente a los desarrollos del siglo XVII.
Desde su aparici6n, la subsistencia de los seres vivientes esta
ligada a su capacidad de procesar estimulos para responder a las
variaciones de! ambiente, actividad que comparte el hombre a
nivel instintivo, como se plante6 en la secci6n 1.1
La transmisi6n de informaci6n a nivel genetico tambien es
esencial para cada especie.
1.000.000 AC? Cuando emerge el hombre como ta!, como
animal simb61ico, permanentemente necesita procesar simbolos i§!.~F·•··
que tambien le permiten remitir a entes y sucesos no presentes
:J.19¥:.M~§ML· >.•······ ·. , .........,),; .•.,,.
Los hindl'.1es predominan en matematica hasta el siglo XII.
fisicamente. Esto tiene Iugar con el lenguaje hablado y la En America precolombina, los mayas usaban el abaco, y varies
mente, Io cual implica procesar sfmbolos, · para combinarlos; sistemas posicionales que inclufan el numero cero.
recordarlos y comunicarlos, amen de captarlos. Por lo tanto, el
proceso de sfmbolos es tan ancestral como el hombre, siendo Siglo VII
que tambien esta presente en las especies vivientes. E 1 matematico indio Brahmagupta, enuncia una serie de proce-
dimientos para el calculo numerico decimal.
300.000 AC ? Ademas del cerebro se usan otros medios para
registrar sfmbolos, Mediante los dedos, marcas en maderas y Reemplaz<
cuerdas, conjuntos de objetos pequefios (piedras, guijarros), el requerir u
hombre representa otros conjuntos de entes numericamente equi- mas c6mo
valentes, que necesit6 contar. Al contar hasta un cierto numero de una las cu1
elementos se hace una marca o signo que representa a todos ellos por una de
30.000 AC: De esta epoca de! Cro-Magnon se conservan el resultad,
pinturas rupestres para registrar entes y sucesos en general Consiste <
>i;; puestos. E
relacionados. Hay indicios de representaci6n de calendarios. Siglo Xll
La notaci6n numerica arabica es introducida en Italia, junto con mulador d
10.000 AC: En Medio Oriente se emplean medallones de sus metodos de calculo para las operaciones mercantiles. bolsillo a<
arcilla con sistemas de numeraci6n decimal y hexadecimal. numeros a
Se supone la exis~encia de abacos. Siglo XIII decimal es
El monje Raimundo Lulio crea la "maquina de la verdad" ruedas ind
3000 AC: Los egipcios tenian un sistema de numeraci6n jero- formada por tres discos que permitfan inferir la verdad o izquierda,
glffico. Grupos de 1, 10, 100, ... eran indicados por un simbolo falsedad de enunciados conformados con combinaciones de sabre ella
distinto y agrupados se sumaban, idea que usaro11 Ios romanos. Jetras de las discos, que simbolizan atributos, virtudes, sujetos cha no pro
Usaban ni'.iineros fraccionarios y ecuaciones. En Babilonia naci6 16gicos y preguntas. Asf, Ia letra B representa Dios, la bonada; Las rueda
el sistema sexadecimal que hoy empleamos para medir tiempo y y la pregunta si algo existe. mente corr
angulos. Nose sabe si usaba cero, pero ya un mismo signo podia
una rueda
tener varios significados, "(sistema tipo posicional). Alli se han SigloXV
Se introduce la coma decimal para separar la parte entera de la posici6n a
encontrado tablillas de arcilla, donde se indican paso a paso
camente ur
algoritmos para calculos complejos con ecuaciones y formulas. fraccionaria .
Para suma
Su notaci6n para los fraccionarios les permiti6 desarrollar aproxi-
quierda la~
maciones sucesivas para calcular raices cuadradas, que siglos
acumulado
mas tarde adjudicaron a Newton. Un producto a,b se hacia despe-
2 2 se giraban
jando en (a+b) 2 =a +2a.b+b usando tablas de cuadrados a fin de
facilitar calculos. Para dividir multiplicaban por la inversa: a:b =
A continu
=a. lib . Resolvfan sistemas de 2 ecuaciones con 2 inc6gnitas 'y Ver al respecto "Siria Hist6rica, Cuna de Ia Ciencia" de Samira formaban l
Abdel Masih. ;::ditorial- Universidad Abierta Interamericana-2005 simultanea
1-159

1614 acumulador, formandose en el mismo tambien el numero A (sin


.~· Juan 1"l'EPER-;-esco~c~~ncihe-la-representaci6n-de·-cua:lquier - que se proalizta ningurf·-a.rras1Ye},-que aparecera en ias
aco numero N como 1ox, siendo x lo que se dio en Hamar el ventanillas.
ros '')ogaritmo" en base 10 de N (x = log 10 N). Aparecen las tablas Nuevamente se giraban a la derecha los diales hasta quedar
nes de logaritmos que dan X para cada N, y permiten transformar indicando cero. Este sentido de giro no afectaba las ruedas de!
cualquier producto o division en una suma o resta de acumulador, que seguian guardando el valor de A
ly fogaritmos, respectivamente. Neper tambien construye unas Girando otra vez a Ia izquierda Ios diales, se formaba ahora las
pta tablillas de madera grabadas, que llevaban su nombre, que unidades , decenas , etc . , del numero B.
permiten multiplicar rapidamente dos numeros Estas se usaban Cada dial hacia mover igualmente su correspondiente rueda de!
de en Oriente desde mucho tiempo atras. acumulador, a partir de la posici6n que habia quedado cuando
Estas ideas dieron nacimiento a las reglas de calculo, utili- se registr6 el numero A, pudiendose producir arrastres hacia
zadas hasta 1970 como calculadoras portatiles. otras ruedas. De esta forma al numero A del acumulador se le
suma B, y el resultado acumulado A+B, aparecera en las
re 1623 ventanillas. Si despues de este
is SCHICK.ARD, aleman, construye para Kepler, un reloj de
Si despues de est~ resultado se queria sumar otro numero C. se
o· calculo, basado en ruedas contadoras, para hacer sumas y restas
)~,- procedf a de la misma forma co mo se hizo con B.
de hasta seis digitos
La maquina hacia la resta por el metodo de! complemento a la
u · base (diez) del minuendo. Por ejemplo, para efectuar 710 - 84,
1642
se realizaba 710 + 916 = 1626, siendo 916 = 1000 - 84.
El resultado eran los dfgitos (subrayados), que se formaban sin
considerar el ultimo uno de la izquierda, o sea 626.
Varias ideas de Pascal siguen vigentes hasta hoy: la necesidad
de un registro acumulador, y el uso de un mismo dispositivo
para sumar/ y restar. Esto ultimo sumando al minuendo el
complemento a la base del sustraendo
1671

Figura Al.3

Reemplazaba el calculo con pluma y papel, o con abaco, sin


requerir un operador experto. Era mas lenta que el abaco, pero
mas c6moda, dado que mecaniza las acciones de mover una a
una las cuentas de este, de cambiar 10 cuentas de una posici6n
por una de la siguiente (arrastre o acarreo ), y daba directamente
el resultado mediante un numero decimal.
Consiste en dos contaciores-registros con engranajes super-
puestos. El de mas arriba -con ventanillas- oficiaba de acu-
mulador de resultados (co mo el visor de una calculadora de Figura Al-4
bolsillo actual). EI registro inferior servia para entrar los
numeros a sumar mediante el posicionamiento de sus diales De este modo, existian dos contado.res: unc) que ejecutaba de 1
decimales externos (equivalentes a un teclado ). Estos eran a 9 veces la suma de un n(lmero consigo mismo, y otro que
ruedas independientes entre si. Cada uno al ser girado hacia la controlaba cuantas veces debia repetifse dicha suma. Tanto la
izquierda, provocaba que la rueda del acumulador que estaba maquina de Pascal, coma la de Leibnitz; se basan en la acci6n
sobre ella girara igual n(1mero de posiciones. Girada a la dere- bilsica de contar, en este caso dientes de engranajes.
cha n.o producia efecto mecanico alguno. A partir de entonces se hicieron sucesivos iritentos para fabricar
Las tuedas del acumulador estaban relacionadas mecanica- comercialmente calculadoras mecanicas de mesa.
mente como las del cuenta-vueltas de un pasacasetes: cuando La tecnologia requerida recien pudo concretarse efectivamente
una rueda pasaba por · 1a ventanilla de 9 a 0, hacia girar una hacia 181 O, cuando Charles Thomas, alsaciano, fabric6 la
posici6n a la rueda vecina izquierda. Se sumaba asi automati- primer maquina comercializable, producida en serie.
camente uno a esta posici6n. En el presente, aun se usan calculadoras mecanicas, con
Para sumar dos numeros A + B,. primero se giraban a la iz- teclado, y mecanismo para multiplicar impulsado por motor, en
quierda las ruedas-diales hasta lograr que todas las ruedas del reemplazo del accionado manualmente.
acumulador indiquen cero en las ventanillas. Luego, los diales Leibnitz en 1703 estudi6 el sistema binario de numeraci6n.
se giraban a la derecha hasta quedar tambien en cero.
A continuaci6n, girando cada dial hacia la izquierda, se
formaban las unidades, d.ecenas, etc., del numero A, por lo que
simultaneamente se movian igualmente las ruedas del
T
-I
n J George STIBITZ, de la Bell Telephone de EEUU,
1-161

r_ c: __ c~!l~~l!Ye__ 19- _fy!_<?9~1 T, calculadora con reles. no


programable, para -d1Cuios compTejos~ con datos
numericos entrados por el teclado de una teletipo, que
:::~·:·:~::::'.;!;~~~;!~~~~~~l~~@j@L:=·=·:· :=::::;:g:::::~~=::~:::::·:::·:··
tambien los puede transmitir a distancia.
tarjeta perforada comen;:b'':'''":'
aplicarse en las grandes corporaciones, mucho antes que se
inventaran las computadoras.
Realizada con reles electromecanicos. EI programa se
almacenaba en una pelicula de cine con perforaciones, o sea,
era externo al sistema de reles procesador de datos.
El movimiento mecanico de arrastre de la misma hacia entrar
la instrucci6n a ejecutar. La entrada y salida de datos se
efectuaba mediante cinta de papel perforada.
1942
Calculadora electr6nica automatica ABC (Atanasoff-Barry-
Computer), en Iowa (EEUU), realizada con valvulas
e~ectr6nicas. No era de uso general. Fue pensada para resolver
· 1907
La valvula electr6nica trio do de vacio es inventada por Lee s1stemas de ecuaciones lineales.
Para esa misma epoca se propane el uso de discos y tambores
DEFOREST
magneticos para almacenar grandes cantidades de informaci6n.
PRECURSORES Y PROTOTIPOS DE CALCULA-
DORAS AUTOMATICAS
1925
. Vanevar BUSCH, ingeniero norteamericano, construye una
maquina capaz de resolver ecuaciones diferenciales, con reles :!i!l,,,."x:. .::9.1\\:@,stm~:~sD'l
Bajo la direcci6n de John y Prosper ECKERT, de
(contactos mecanicos accionados electricamente)
la Universidad de Pennsylvania (EEUU) se comienza a
1936 construir la ENIAC
Konrad ZUSE, aleman, siendo estudiante de ingenieria inicia la
1944
construcci6n de Ia calculadoni digital automatica Z 1, para
calculos corrientes en estadistica.
Alan TURING investiga en Inglaterra aspectos te6ricos de la
l6gica, en Io referente a la relaci6n existente entre una tE~mienza a operar en EEUU Ia "MARK . f. o
descripci6n simb6lica de un proceso real, y la posibilidad de (Automatic Sequence Control Calculator), primer computador
que un automata pueda seguir tal descripcion con la suficiente de uso general. Primera se us6 para confeccionar tablas
exactitud como para reproducirlo. matematicas, y luego para resolver sistemas de ecuaciones
En el area de proceso de datos, implica si el problema asociado algebraicas y diferenciales. Operaba internamente en el sistema
con dicha descripcion tiene o no solucion efectiva mediante un decimal, con numeros enteros de hasta 23 digitos y signo. Cada
· programa ejecutable por un computador numero se podia almacenar en registros aritmeticos de 24
Para dilucidar esto, propuso un modelo matematico de ruedas decimales. Existfan 72 de estos registros. Cada uno se
automata general -hoy conocido como "maquina de Turing"- podfa sumar o restar con el contenido de otro cualquiera que
asimilable a una computadora. Si con tal modelo se puede luego guardaba el resultado. Las ruedas, en forma
representar un problema, este tiene solucion mediante un independiente, podian girar si se acoplaban o no al eje, que
. algoritmo (programa). giraba continuamente. Medi ante I 0 escobillas se obtenia
electricamente su posicion. En una suma, las ruedas de un
registro giraban segun el numero registrado en el otro, que asi
1937
Howard AITKEN de la U. de Harvard (EEUU), con apoyo de se suma al numero contenido en el primero, como en la
IBM empieza a desarrollar la calculadora MARK I con reles, calcuiadora de Pascal. Datos de! tipo constantes, se podian
basada en el modelo de Babbage. entrar manualmente en registros con llaves selectoras
decimales. Las instrucciones de un programa estaban en forma
1938 binaria en una cinta de papel perforado, materializadas por la
Claude SHANNON,,_ norteamericano, propane tratar la 16gica presencia o no de agujeros en la misma (hasta 24 por fila), Asi,
deductiva en la forma conocida como algebra de Boole, una fila podra indicar la operacion a realizar o en que registros
= mediante el sistema binario. estaban los operandos. Esta informacion almacenada en la
cinta, que oficiaba de memoria externa, era tomada a raz6n de
• 1939
una fila por vez, para establecer que hacer a cada paso. En
G. ATANASOFF ayudado por C. Berry, construye en Iowa
funci6n de! valor alcanzado por una variable, se podia dejar de
(EEUU) un prototipo de calculadora digital electr6nica con
lado una cinta para seguir con otra secuencia de instrucciones
valvulas electr6nicas, para aplicaciones limitadas. Tenia una
de otra cinta. Esto era equivalente a la existencia de
memoria basada en capacitores, como las actuales DRAM.
instrucciones de salto condicionado, requeridas en cualquier
Es visitado por Mauchly,.futuro creador de la ENIAC.
computadora automatica Los datos se introducian en los
1-163

LAS GENERACIONES DE COMPUTADORAS


n tubo basa-enlatecnologia
La division en "generaciones·' se Circidtal em/Jleada, siendo que las computadores de una generacion preseman
·en la: mayor velocida~. mayo~ capacidad de memoria ~ menor tamano_ 9ue los de la anterior.
por ei En las generac1ones pnmera a cuarta, predomma la construcc10n de computadores segun el modelo de Von Neumann, que ha
nsad{ merecido sucesivas mejoras en velocidad. El denominado "Proyecto de Sta generaci6n"' plantea el desarrollo de computadores con
lla. ·1· rocesadores en aralelo (Ar uitecturas designadas ·'no Von Neumann")

or PRIMERA GENERACION DE COMPUTADORAS (1952-1958)


fabricaci6n de computadores en serie, con tecnologia de valvulas electr6nicas (figura derecha)
Ejecutaban algunas miles de instrucciones por segundo. Hasta la Pegasus (1958) la UCP solo
Ro} tenia un solo registro, designado Acumulador.
N:· Alrnacenaban de 10.000 a 20.000 bytes en su memoria. Eran muy voluminosas.
Medios de entrada/salida: tarjetas perforadas, cintas de papel perforadas.
elay;_;; Memoria principal con tiempo de acceso muy grande en comparaci6n con los tiempos de
procesamiento internos de la UCP. Memoria secundaria: cinta magnetica.
MS:
amaf'' 0

i::i6n" HARDWARE PARTICULAR SOFTWARE GENERAL


ticc(
1952 UNIVAC I (Universal Automatic Computer), creada por Se proveen, listos para usar, programas "cargadores",
Eckart y Mauchly, socios en una empresa comprada luego por desarrollados para ubicar en la memoria principal
Remington Rand. Oper6 hasta 1963 en la Oficina de Censos, otros programas a ejecutar.
ooo Trabajaba con 12 digitos decimales, codificados en binario. Programaci6n en lenguaje simb6lico de maquina
lde
AM. Presentaba memoria Williams y unidades de cinta magnetica. (Assembler); que'permite expresar los c6digos binarios de
Mecanismo de interrupci6n. Esta computadora "universal" fue las instrucciones de maquina mediante simbolos de nuestro
pensada para aplicaciones de estadistica y comerciales. alfabeto, para facilidad Ciel programador Requiere un
1953 701/IBM, con un · repertorio de 24 instrucciones. Memoria programa traductor, que provee el fabricante, para
for Willliams de 2K, de 36 bits por celda. Para usos cientificos. transformarlo en c6digos que la maquina entiende.
1955 704/IBM, primer maquina electr6nica con representaci6n de Univac desarrolla los primeros leiiguajes de programaci6n
numeros en punto flotante. Registros de la UCP para mas pr6ximos al lenguaje humano, o de alto nivel, que
direccionamiento indirecto e indexacion de datos en memoria. requieren de un programa traductor para llevarlos a c6digo
Memoria principal de 4K de ferrites. y circuitos para de maquina.
operaciones en punto flotante. Repertorio de 40 instrucciones. Ellos fueron 'Mathmathic' y 'Flowmatic' precursores de!
2,5 veces mas rapida que la 701. Algol y Cobol
UNIVAC 1103, para usos cientificos. Representaci6n en Entre 1954/57 Backus desarrolla el lenguaje de programa-
punto flotante: Primer maquina con mecanismo de ci6n FORTRAN (Formula Translation), cuyo programa
interrupciones de programas en ejecuci6n, para pasar a traductor sera empleado en la 709/IBM.
ejecutar una rutina cuando ocurre cierto evento, y luego Primaba el procesamiento de datos en lotes ( batch ), con
retomar el programa interrumpido. La UCP tenia un registro. mucho trabajo de preparaci6n y recolecci6n de datos fuera
1956 PEGASUS: primera en tener 8 registros en la UCP. de linea, ("off line"). Esto es, en dispositivos fuera del
1957 BURROUGHS desarrolla una computadora totalmente control de la UCP, tales como las perfo-verificadoras de
transistorizada para la Fuerza Aerea de EEUU. tar:_jetas.
1958 709/IBM introduce los canales procesadores de las opera- Lotes de tarjetas perforadas, recolectadas en distintas
ciones de entrada/salida que realizan los perifericos bajo SU fuentes eran llevadas al centro de c6mputo, y luego
control. La UCP se libera de dicha tarea, para ejecutar agrupadas para ser procesadas secuencialmente por los
distintos programas. Se consigue simultaneidad de operacio- programas correspondientes (Proceso "batch") .
nes de E/S de datos, correspondientes a distintos programas. Un proceso comenzaba solo cuando el anterior termin6.
La UCP delega a los canales la gesti6n de los perifericos segun
instrucciones preparados para ellos en la memoria principal. .Lenguaje LISP (J. McCarthy) para inteligencia artificial.
Esta innovac1on, junto con las interrupciones, son Lenguaje ALGOL (Algorithmic Lenguaje)
modificaciones del esquema basico de Von Neumann, en el
cual las E/S se hacian a traves de! acumulador de la UCP. Se proveian programas para procesos "batch" (en lotes)
Permiten un mejor aprovechamiento y automatismo de las En proceso de archivos, los lotes de tarjetas pasan a una
maquinas, especialmente en multiprogramaci6n. Ultima cinta magnetica, que luego sera procesada, para generar
maquina de IBM con valvulas. una nueva cinta actualizada.
PILOT: multipr_ocesador financiado por el National Bureau of Aparecen, junto con los discos magneticos, las operaciones
Standards. Varias UCP comparten la memoria principal. Cada en lfnea (on line), en las cuales los datos se procesan sin
una realiza una tarea distinta: aritmetica de E/S, y todas estan demoras, desde perifericos ligados a la UCP
supervisadas por un control maestro Los fabricantes generan programas para manejo de discos y
demas perifericos en uso. Estos programas y otros seran la
base de los futuros Sistemas Operativos (SO)
1-164

SEGUNDA GENERACION DE COMPUTADORAS (1959-1964)

Hacia 1960 la primera-generaC!on. con v<iivulas eledr6nicas resuffa obsoleta.


Se impone el transistor (figura de la derecha), mas confiable, de menor tamafio, menor
disipaci6n de calor y mas rapido que la valvula para cambiar de estado. Asi se alcanzan
velocidades de procesamlento de centenares de miles de instrucciones por segundo.
Tambien aumenta Ia velocidad de acceso a la memoria principal, que en todas las maquinas pasa
a ser de nucleos de ferrite
Crece el repertorio de instrucciones de maquina
Dispositivos de E/S: tarjetas perforadas, tinta de papel perforado teletipos, impresoras, cintas
magneticas de alta velocidad.
Memoria auxiliar: cintas y discos magneticos.
Se generaliza el uso de los canales y aparecen elaborados mecanismos de manejo de
interrupciones.
Aparecen los sistemas operativos, el tiempo compartido ("time sharing y se generalizan los
Ienguajes de programaci6n de alto nivel.
Las maquinas disminuyen de tamafio y costo. Se instalan equipos por valor de 4.000 millones de
d6lares.
Los principales avances y exponentes se indican a continuaci6n, siendo que el esfuerzo estuvo
centrado en lograr maquinas mas veloces y bajar costos. El desarrollo del software estuvo
relegado, a pesar de su importancia (salvo en Ia B5000 de Burroughs)

HARDWARE PARTICULAR SOFTWARE GENERAL

1959 RCA 501 y NCR-GE 304, con UCP conteniendo 8000 diodos Programa traductor (compilador) para lenguaje de
y 4000 transistores. Hacian 20.000 sumas/egundo. programaci6n COBOL (Common Business Oriented
TEXAS INSTR. patenta el circuito integrado ("chip''), en Lenguage).
una pastilla plastica que sera la tecnologia de la tercer gene-
raci6n de computadoras
1960 Serie 7000/IBM, con memoria de ferrites de 32.000 celdas de Aparecen los "paquetes de software", provistos por los
32 bits, y 25 veces mas rapida que Ia 701. 185 tipos de fabricantes de computadoras.
instrucci6n y 7 registros en Ia UCP. La 7090 era como la 709 Se desarrollan sistemas operativos que residfan permanen-
(tipo ENIAC) pero transistorizada, para usos cientificos. temente en memoria, para manejar las operaciones de EIS,
PDP/1 de DEC (Digital Equipment Corp): primer intento de Iimitar los tiempos de ejecuci6n de programas, y otras
K. Olsen de realizar una MINICOMPUTADORA de menor tareas. Se Ios conoci6 como "Sistemas Ejecutivos".
tamafio y costo (U$S 120.000) que las fabricadas hasta
entonces. Surge el lenguaje APL.
1961 1620 y 1401 de IBM: maquinas mas pequefias, organizadas
hacia el caracter, y para numeros decimales de longitud
variable, orientada hacia pequefias empresas. Software para simular la memoria virtual mediante los
1962 ATLAS (Universidad de Manchester-Inglaterra), con memoria discos.
"virtual", para simular una memoria principal mas grande que
la fisicamente real.
D-825 de Burroughs: multiprocesador con hasta 4 UCP Lenguaje PL/I , para usuarios de IBM.
conectados a 16 m6dulos de MP conmutables, para aplicacio-
nes militares Sistema de tiempo compartido (time sharing ) desarrollado
1963 BSOOO de Burroughs, maquina organizada en pilas alejada del en el MIT. Los usuarios interactuan a traves de terminales
modelo de Von Neumann, Pensada para un eficaz con teclado en forma rotativa con una computadora central
procesamiento del Ienguaje de alto nivel Algol 60. 0 sea el Cada uno lo hace durante una fracci6n de segundo, pero se
hardware en funci6n del software. Memoria virtual por le parece que el solo usa Ia maquina.
segmentaci6n.
I 964 7094 de IBM con solapamiento de funciones en la ejecuci6n
de cada instrucci6n. 50 veces mas rapida que la 70 I.
Presentaba solapamiento para Ia ejecuci6n de las
instrucciones.
1-165

'tERCERA GENERACION DE COMPUTADORAS (1964-1972?)


,.;+,.~~=iffiWC)_....{lC-I.os__cifcuitas_int.egrados_en_pe_quefia_y__mediana _(figura
derecha) escala _de.
integraci6n, y de plaquetas impre~as. con cam,inos de cobr~ p,ara sopo{tarlos, p~rmitieron equipos
mas compactos, confiables y econom1cos. En estos predomma el uso del disco rigido.
fiacia 1975 el total de equipos de computaci6n instalados asciende a U$S 24000 millones Se
generaliza el ~so de las computadoras para ~os n:as diversos tipos_ de actividades. El sistema 360 de
IBM (y sus s1stemas operat1vos), es el eqmpam1ento representat1vo de esta generaci6n. en Ia cual
aparecen las minicomputadoras.

HARDWARE PARTICULAR SOFTWARE GENERAL


System/360 de IBM: (de G. Amdhal) computadora de uso
1964 universal (cientifico- comercial): para reemplazar tan to a una 7000 Los sistemas operativos de IBM apuntaban a cubrir las
necesidades de un amplio espectro de usuarios, siendo
como a una 1401, a las cuales podfa simular. Maquina tomados como modelos por otras empresas.
microprogramada: la secuencia de pasos necesaria para ejecutar Estos eran el CP67/CM6 para maquinas grandes, los
una instrucci6n esta almacenada en una ROM, en la UC. Con OS/MFT y OS/MVT para medianas y grandes, y el
memoria de ferrite, de un mill6n de celdas de 32 bits, ampliable a DOS/360 para las mas chicas. En general permitian la
16 millones (MB). Gran diversidad de canales y perifericos. multiprogramaci6n, el tiempo compartido y la memoria
La UCP presenta 16 registros de uso general. Operaciones en virtual.
binario, decimal codificado en binario y binario punto flotante
(simple y doble precision). Hacfa 106 sumas por segundo, con En materia de lenguajes se universaliza el uso de
numeros de 32 bits. Sistema de prioridades para interrupci6n de FORTRAN y COBOL Se comienza a poner enfasis en
programas. Prot.ecci6n de zonas de MP reservadas, y elaborado lenguajes modulares, fiiciles de corregir.
registro de estado de programa, permiten una multiprogfamaci6n Se desarrolla en 1965 el BASIC (J.Kemeny y T.Kurtz)
compleja. Luego se agregan la memoria virtual y la antememoria para cursos de iniciaci6n a la computaci6n.
"cache" (memoria rapida ubicada entre Ia MP y la UCP).
6600 de CDC: para aplicaciones nucleares. Inicia una serie de
supercomputadoras. Con unidades "pipe line" para efectuar varias
operaciones aritmeticas en paralelo. Podia ir ejecutando I 0
instrucciones juntas. Era I 0 veces mas rapida que la IBM 7090.
Creada por Cray, fue un prototipo de los procesadores RISC, por
su arquitectura sencilla, y la limitada cantidad de instrucciones.
PDP/8 de DEC: inaugura la era de las minicomputadoras. Los procesos "batch" comienzan a dejar lugar a las
La parte central podia entrar en un caj6n de manzanas. Costaba operaciones "on line", desde terminales con teclado y
18.000 d6lares y realizaba 300.000 sumas por segundo. pantalla. Esta interactividad hombre-maquina. permite
Tecnologia MOS con transistores de metal-oxido-semiconductor, desarrollar mas eficazmehte nuevos programas, realizar
1965
que permiten una alta densidad de integraci6n de transistores en c6mputos, y manejar archivos en forma mas directa y
un microcircuito. Creada por RCA. Permiti6 el advenimiento de descentralizada. Un ejemplo son las termina-Ies usadas
los microprocesadores y las memorias de gran capacidad en Ios bancos.
RED ARPA en EEUU: primera red de minicomputadoras Se acelera el ocaso de las tmjetas.
distribuidas, para transmisi6n de paquetes de datos.
PDP/11 de DEC: serie de minicomputadoras para uso general.
1966
1970 Primer Microprocesador: el 4004 de INTEL, que operaba de a 4 Hacia 1970 nace el lenguaje PASCAL, creado por el
bits por vez, En dos pastillas con microcircuitos integrados suizo N. Wirth, para programaci6n estructurada
contenia la UCP. En total tenia 2.300 transistores. Ese mismo afio
En el MIT se termina el sistema operativo Multics,
aparece el 8008 para 8 bits. Fueron pensados para aplicaciones de
empezado en 1965. Sirvi6 de base al UNIX
control electr6nico, no para computaci6n.
370 de IBM con memoria virtual.
1971 Aparece el SO UNIX, de Ios laboratorios Bell.
ILLIAC IV: desarrollo poco exitoso de un supercomputador con
Es eficaz, econ6mico y mas sencillo que los SO de
4 UC. Cada una opera simultaneamente sobre 64 conjuntos de
IBM. Adaptable a las mas diversas arquitecturas,
datos organizados (matrices, vectores etc.). Las 4 UC pensadas
tambien pasara a. ser el modelo para las mas pequeiias
para hacer 4 calculos distintos al unisono, resultando 4x64 = 264
Bill Gates que particip6 de este proyecto, luego aplic6
calculos en paralelo. Varias ideas fueron usadas posteriormente.
aspectos del mismo al sistema operativo DOS de
STAR 100 de CDC (Compafiia de grandes maquinas) Con el
Microsoft.
mismo fin que la anterior usa el procesamiento pipe-line .
Como en una fabrica de autos el hardware de Ia UCP conforma
una cadena de unidades (U) dedicadas a una acci6n especifica:
U. de obtenci6n de la Instrucci6n ~ U. de interpretaci6n de la
misma ~ U. de localizaci6n de datos en MP ~ U. de calculo
A medida que avanza la ejecuci6n de una instrucci6n, la U de
obtenci6n extrae la siguiente de MP, y asi sucesivamente. Lenguaje PROLOG (Calmeraver y Roussel) para
inteligencia artificial
1-167

para el 80286. Frecuencia reloj m<i"Xima: 12;5 MHz. Contenia 134.00"


transistores
••-m.odo.r.e-64,-computador_personal basado en el microprocesador 651 o,
lf------,--=~~---l-4'""':...'.fl'l.~
con 20 KB de ROM, y 64 KB de RAM
ATARI 800 microcomputador con microprocesador 6502. RAtvl de 16KB
CRAY X-MP supercomputadora mas rapida que la CRAY I Aparece la interfaz grafica Windows 1.0 de
Aparece la Macintosh de Apple Microsoft y MS-DOS 2.0
Aparece la PC AT, PS/1 y PS/2de IBM usando el 80286 Lenguajes: C++ Pascal AFNOR, ADA83
370-XA de IBM que amplia a 32 las lfneas de direccionamiento de Versiones, 3.0 y 3. I de MS-DOS para PC AT
memoria queen el modelo 370 eran 24. Lenguajes: Prolog III, Concurrent C.
Micro VAX 32 con un microprocesador
80386DX de Intel, con 275000 transistores, que procesa intemamente
datos de 32 bits, que lee o escribe 32 bits en memoria. Permite una SO: Amiga OS para Commodore Amiga,
memoria real de hasta 4 GB. Puede operar en multiprocesamiento, con MIPS OS pa.ra procesadores MIPS
memoria virtual, si se usa un sistema operativo adecuado. El chip 80387 es Lenguajes: Cobol 85, Object Pascal
el coprocesador matematico opcional para el 80386. Frecuencia reloj
maxima: 40 MHz.
ministr6. ,µn ..•• · Amiga 1000 de Commodore, primer computador multimedia. Podia
M (Control exhibir 4096 colores. Presentaba video acelerado y sintesis de voz. La
dministraba: pantalla podia mostrar multiples pantallas de distinta resolucion. Su
alto nivel, sistema operative propio era multitasking. La RAM era de 256 KB.
Primeros RISC fabricados par H. Packard para sus minicomputadoras. Version 3.2 de! MS-DOS
3090NF de IBM: es la 370 convertida en un procesador vectorial AIX de IBM y HP-UX basados en el UNIX
Cache interno en microprocesadores: en el SUN3/260 y en el Motorola Lenguajes: Self y Eifel
68020 .
Primeros multiprocesadores (varias UCP trabajando en paralelo)
producidos comercialmente: ENCORE MULTIMAX y el SYMMETRY
IBM RT PC primer modelo comercial RISC de IBM
Mini-supercomputadora C-1 de Convex Maquina vectorial diez veces mas
barata (U$S 500'.000) que una supercomputadora grande.
Estaciones de trabajo SUN b~sadas en el procesador RISC SPARC Lenguajes: Perl 1.000, Haskell 1.0, ADA ISO
(Scalable Processor ARChitecture). MS-DOS 3.3 para Ia PS/2 de IBM
30386SX de Intel, que procesa internamente datos de 32 bits, que lee o
escribe 16 bits en memoria. Permite una memoria real de hasta 16 MB. IBM y Microsoft lanzan el OS/2, sistema
Puede operar en multiprocesamiento, con memoria virtual, si se usa un operative multitarea.
sistema operativo adecuado. Aunque es menos rapido que el 385DX,
convenia, por ser mas barato, a usuarios, siendo que los chips de memoria
disponibles masivamente eran para leer o escribir 16bits par vez. El chip
80387SX es el coprocesador matematico opcional para el 80386SX.
implanfa~ Frecuencia reloj maxima: 33 MHz
ayoriade Los siguientes microprocesadores RISC se empleaban en distintos equipos:
SPEC)'RUM H. Packard, CLIPER de Fairchild, CRISP de AT&T,
MIPS de MIPS Co., PYRAMID de Pyramid, y otros. Todos ellos
ejecutaban unas 8 a 10 mill ones de instrucciones por segundo (MIPS), con Version 4.0 del MS-DOS para discos mayores
frecuencias entre 15 y 30 MHz. que 32 MB. AUX (Apple UNIX)
88000, procesador RISC de Motorola Aparecen el lenguaje A y el Tcl/Tk
80486DX, que procesa internamente datos de 32 bits, que lee o escribe 32
bits en memoria Permite una memoria real de hasta 4 GB. Puede operar en
multiprocesamiento, con memoria virtual, si se usa un sistema operativo
adecuado. Contiene dentro de! chip una memoria cache de 8 ,KB, y un
coprocesador matematico. Consta de 1.200.000 transistores
A 50 MHz procesa hasta 50 MIPS.
1989
vo DOS i860, procesador RISC de Intel. Con un "pipe line" mas elaborado que las Lenguajes; Borland Pascal Object, Eiffel 2,
NIX. anteriores 80x86, acorta el tiempo de ejecucion de las instrucciones. Perl 3.000
1990
CRAY Y-MP mas rapido que el CRAY X-MP (ciclo de reloj 6 nseg.)
RS/6000 RISC sistema RISC de IBM, para estaciones de trabajo.
1990
Supercomputadores vectoriales NEC SX/2, Fujitsu VP200 y el Hitachi S829
Procesadores RISC: Alpha de DEC, y R4400 de Silicon Graphic
80486SX de Intel, similar al 80486DX, pero sin procesador matematico
1991 Lenguajes: Python derivado de! C y del ABC
interno. El mismo es externo y opcional:: el 80487SX
Acuerdo entre IBM, Motorola y Apple para implantar un nuevo estandar en Nace el LINUX basado en el UNIX
hardware y software de PCs, tomando coma base el microprocesador
PowerPC (Performance Optimized With Enhanced RISC)
80486DX2 de Intel, similar al 80486DX, pero con una frecuencia inte 'a Sale la version Windows 3.1 y DOS 5.0
1992 de reloj m<i"Xima: 66 MHz (externamente se comunica a 33 MHz) Solaris de SUN
~
1
i
1-168
i
1993 Pentium (80586) que pro~esa inte~namente datos .de 32 bits, y que lee o
escribe 64 bits en memona. Perm1te una memona real de hasta 4 GB. pl
.;;,;.~~------!---1-:.~-ed&-0pe.+ar_gn--mu.lti.prncesamiento, con memoria virtual, si se usa un 1
sistema operativo adecuado. Contiene dentro del chip una memoria cache ffl
de 16 KB, y un coprocesador matematico. En una pulgada cuadrada tiene "C
cerca de 3.200.000 transistores. Frecuencia reloj maxima: 100 MHz Aparece el sistema operativo Window NT . laf
Se trata de un procesador "superesca/ar'' que puede terminar de ejecutar version DOS 6.0 ;.- la en
dos instrucciones simultaneamente si son simples y cumplen otras co
condiciones. Para este tipo de instrucciones opera como un RISC. A 66 Se
MHz opera 100 MIPS. En punto flotante es 4 veces mas rapido que el 48t Lenguajes: M derivado del MUMPS inr
1994 Power PC 601 y 603 para PCs de escritorio y notebooks. El PERL 5.000 hie
Paragon de Intel, multicomputador que permite conectar hasta 4000 w
procesadores RISC i8609 en paralelo, con los que llega a 300 GigaFLOPS
1995 Arquitectura P6 de Intel, adosado con otro chip para cache externo de 512 Sale la version 6.2 del MS DOS re
KB, con lo cual tiene 31 millones de transistores. Opera interna y Aparece el sistema operativo Windows 95 in:
extemamente con igual n(1mero de bits que el Pentium. Tambien tiene dos y el Tru Unix de 64 bits. Pa
caches internos de 8 KB cada uno. Presenta 3 pipe lines, pudiendo asi IBM lanza el OS/2 Warp Windows NT 4.0 ra1
terminar 3 instrucciones simples juntas. Convierte las instrucciones 80x86 Lenguajes: Java 1, Ada 95, Delphi, Eiffel 3 Es
en instrucciones simples, tipo RISC. Es 50% mas rapido que el Pentium si tar
opera con OS/2 o el Windows NT. Puede conectarse directamente a otros 3 op
procesadores P6 para multiprocesamiento. DE
se1
Pentium Pro (200 Mhz) con arquitectura P6. Con 5,5 y 15 millones de
transistores en el procesador yen el cache L2, respectivamente. Para Win- 01
dows NT y otros sistemas de 32 bits usados en redes. co
1996 PowerPC 620 de 64 bits, para estaciones de trabajo y servidores de redes tar
de alta velocidad. Utiliza 7 millones de transistores. Muy buena perfor- Lenguajes: PostScript level 3, Eiffel 4, da
mance en punto flotante, superiot a la de enteros. Haskell 1.3 pr1
KS procesador RISC de AMD, competidor de Intel. Compatible con los 80x86. Wundows NT 4.0 rel
Insertable en lugar de un Pentium. Convierte instrucciones CISC en RISC.
Pentium MMX con nuevas instrucciones para multimedia y comunicaciones. Ar-
co
De menor rendimiento que el Pentium Pro para sistemas operativos de 32 bits.
di:
1997 K6 de AMD (233 Mhz) con nucleo RISC. Agrega instrucciones multimedia: Lenguajes Fortran 95 ISO, Prolog IV,
Pn
Pentium II (Klamath) 330 Mhz. Conjuga Pentium Pro con MMX. Proc. MIPS 00 Cobol, Modula 2 ISO, Alpha 0
cs
1998 Pentium II Xeon con cache de mayor capacidad. Windows 98 Lenguajes C++ , Visual Basic
1999 Celer6n: Es un Pentium II sin cache L2 adosado. Sustituto de! Pentium MMX Java 2, Eiffel 4.2, Perl 5.005
La
como micro-procesador barato.
re:
Pentium III (500 Mhz a 1 Ghz) 9,5 millones de transistores. Incorpora nuevas Mac OS version 8
"i1
instrucciones SIMD para multimedia y red (Streaming SIMD Extension-SSE). Lenguajes M ISO, Delphi 5, Ruby 1.3.2, ho
K6-2 de AMD, 9,.3 milll, detransistores. 550 Mhz. Cache intemo (LI) de 64K Haskell 98,
en
Power PC G4 de Motorota, totalmente RISC, de 500 MHZ. pr
2000 Pentium 4 (1,4 a 1,6 Mhz) con versiones Celer6fi y Xeon. Windows 2000 Java Script, C#, Perl 5.6.0 L<'
2001 Pentium 4 Xeon (1,4 1,5 1,7 Mhz). Windows XP Lenguajes: Cobol 2002 efi
2002 Athlon de AMD 4ta generacion (2 Ghz) Window.s CE para dispositivos moviles (celu- LC
Itani um de Intel de 64 bits. Duron de AMD para competir con el Celeron. Iares, palm, etc.) St
Itanium 2 -IA64 (1 Ghz) de Intel-HP. Reemplaza al Xeon en servidores. Microsoft Net: para comunicaciones en red.
De 210 a 4 IO mill ones de transistores Lenguajes: Fortran 2000, Delphi 7, Perk 5,8 Si
2003 Athlon (5ta generacion) AMD lanza los procesadores Opteron para servi- ci1
dores para 32 y 64 bits. 4 GB de RAM. Para multiprocesamiento. Windows XP 64 bits para plataformas si1
Pentium 4 (2,6-3 Ghz) para Hyper Threading (HT). Lenguajes: Java 2 vl .5, C# ISO, Ruby 1.8 co
Pentium 4E (3,4 Ghz) "Prescott" (HT). 7500a11000 MIPS. PHP 4.3.5 R1
2004 AMD 64 8va. generacion de procesadores x86 con ahorro de energia. re
Pentium 4 EE (Extreme Edition) con 2 MB de cache L3. P1
2005 Pentium M bajo consumo, para notebooks, 140 millones de transistores Lenguajes: Ada 2006, Python 2.4.1, C# 3.0 cc
Pentium D: 2 procesadores en un chip. Cada uno con 2 MB de cache. L2. PHP 4.4.1, Perl 5.8.7, Ruby 1.8.3
L<
Puede operar con 32+32=64 bits. cc
Opteron Dual Core 2.6 GHZ
so
2006 Athion 64 X2 Dual Core 154 a 233 millones de transist. Controlador de in
memoria incluido Bus Hyper Transport (8 GB/seg-max) u
Pentium 4 EE Dual Core Tecnologia .065 micras 3,46 Ghz. tn
re
re
dt
1-169
pROYECTO "QUINTA GENERACION" Estos, interactuando con el computador, podran conocer las
mejores opciones o diagn6sticos en determinados temas de
En t 982. en Jap?,n se anunci6 el co~f enzo del proyecto de interes. En los sistemas de ensefi.anza imeligente se podra
;.Quinta Generac10n de Computadoras· , a desarrollar en un recibir instrucci6n y ser examinado por la computadora.
tapso de diez afi.os, con el fin de crear una arquitectura basada Un factor que ha contribuidu al desarrollo de los SE es Ia
n una maquina paralela de inferencias l6gicas y el software necesidad de las grandes empresas de simular situaciones reales
~rrespondiente para Ia misma. por computadoras.
Se plante6 un nuevo modelo de computador, que pretendfa
;nnovar en gran medida las tecnicas informaticas ( como lo AI comenzar una partida de ajedrez, o durante su desarrollo,
~icieron el microprocesador y el microcomputador) en especial cada jugador no prueba tod<.1,:; las jugadas posibles. Su expe-
en Ios siguientes aspectos: riencia, lo Ileva a dejar de lado las que tienen poca probabilidad
de ser apropiadas, dedicando ~u tiempo a analizar un reducido
Ve/ocidad de procesamiento: se busca procesar mas datos e subconjunto de jugadas posiuks
instrucciones por unidad de tiempo. En general, el metodo heuristico se aplica a ciertos problemas,
para tal fin se requiere circuitos electr6nicos integrados mas Y supone una serie de tanteos, para indagar si se esta o no por
rapidos que los actuales, y una arquitectura ti po paralelo. un camino correcto. En cambid el metodo algorftmico garantiza
Esto ultimo supone varios microprocesadores realizando varias que producira un resullaJo buscado, al aplicar un
tareas simultaneamente, coordinados por otro, que en cada procedimiento totalmente especificado. Del mismo modo, los
oportunidad puede ser cualesquiera del conjunto. programas usados en IA, en general. incorporan un conoci-
De este modo se supera la clasica forma de operaci6n miento que 'r~rmite descartar soluciones altamente improba-
secuencial. bles de ser adecuadas, y generan aquellas que pueden serlo.
0 sea que se basan en reglas heuristicas, que guian a los
Operaciones con l6gica simb6lica: en el presente, en las programas seg(m una lfnea de razonamiento.
computadoras, mediante estructuras numericas, se representan
Dicha incorporaci6n de conocimiento se puede llevar a cabo al
tambien letras y caracteres, resultando en general programas y
generar el sistema, merccd a un trabajo conjunto de!
datos excesivamente largos. Se trata ahora de poder lograr
programador de! SE y de un experto en el tema, que permitira
programas acordes al tipo de datos a procesar. Este aspecto se
sistematizar el conocimiento existente sabre el mismo en un
relaciona con el tema siguiente.
conjunto de reglas. Por ejemplo, un supuesto sistema de diag-
Aplicaciones orientadas hacia la lnteligencia Artificial: esto es, n6sticos mecanicos, deducira en funci6n de Ios datos sensado$,
computadoras con caracteristicas apropiadas para esta que un autom6vil tiene problemas de encendido, sin perder
disciplina, que se viene desarrollando desde la decada del 60. tiempo en determinar antes que rto es la bomba de nafta, o la de
Para poder entender los objetivos y resultados de este proyecto, agua, etc.
es necesario desarrollar las nociones que siguen.
La estructura del programa de un SE permite:
La Inteligencia Artificial (IA) supone una nueva forma de
Obtener a partir de una gran masa de informaci6n
resolver problemas, desarrollando sistemas informaticos almacenada sobre el tema, rcspuestas a preguntas no
''inteligentes", que presentan ciertas caracteristicas propias del previstas por los program :i.dores
hombre, en el manejo de los simbolos, en areas tales como" Aprender a inferir en forma limitada a partir de la
entendimiento de lenguajes, aprendizajes, resoluci6n de informaci6n existente. Ello permite:
problemas, consultas, simulaci6n y otros. - Actualizar h informaci6n almacenada,
La IA supone la existencia de computadoras, y para el manejo - Usar la nueva informaci6n para realizar inferencias reque
- efectivo de los simbolos se nutre de otras disciplinas, como la requeridas.
L6gica formal, la Sicologfa del Conocimiento y la Lingilistica.
Suele dividirse la IA en tres campos de aplicaci6n: Un SE puede aprender a adquirir nueva informaci6n ya sea:
Sistemas expertos: para brindar informaci6n relevante sobre; a. lnfiriendo informaci6n de la existente
ciertos temas, realizar diagn6sticos, pron6sticos, simular b. Obteniendola del usuario, si cste advierte que la misma
situaciones reales, etc., sabre la base de un almacenamiento de influira en el resultado buscado,
conocimientos previos, iqtroducidos por un experto en el tema.
Robotica: para aplicaciones industriales, y con todo lo Basicamente, un SE consta de dos porciones:
relacionado con la vision y manipulaci6n de objetos.
Procesadores de lenguajes humanos: para facilitar la I. Una "base de conocimiento", que almacena toda la informa-
comunicaci6n de las computadoras con los hombres. ci6n disponible
2. Un denominado "motor de inferencia" , que es un programa
Los Sistemas Expertos (SE) se refieren, en primera instancia, a encargado de encauzar el SE, de forma que responda
computadoras programadas para brindar informaci6n relevante coherentemente a las preguntas formuladas . Para tal fin, debe
sobre un tema determinado, emulando a un experto en el seleccionar las reglas de inferencia necesarias para la respuesta
mismo. adecuada, entre todas las reglas que estan almacenadas en la
Un SE permite superar las limitaciones de la programaci6n base de conocimiento.
tradicional para resolver problemas de alta complejidad,
relacionados con el suministro de informaci6n precisa, clara y Si bien el desarrollo de la IA recien empieza, sus aplicaciones
resumida en respuesta a preguntas que formulan usuarios, a fin son bastante ;estringidas. En el presente se observan en los SE
de tomar decisiones. limitaciones ,mportantes:
No pueden inferir a partir de postulados o teorfas, -tampoco
pueden razonar por analogfa- ni obtener informaci6n com-
1-170

pletamente nueva respecto de la existente. Su capacidad de


t
l
f

lenguaje KLl. de suficiente capacidad expresiva para describ·


el procesamiento paralelo de la informaci6n. Si bien KLJ "'~ ,_ r
1
aprendizaje es muy eleme.I"l!al.
Lo anterior trae aparejado: Ienguaje de muy alto nivel, es tambien un lenguaje de maq~tn
• Carencia de sentido comun. a ser ejecutado por los prototipos de procesadores desarrol!act~:
• Capacidad de inferencia degradable al extremo, si el durante el proyecto. --]
problema o pregunta no se ajusta a los fines para los cuales Al comenzar el proyecto se construy6 la maquina PSI (Person anal
1
el SE fue creado. Sequential Inference Machine). El modelo PSI-III -al final d:l cual1
Debe notarse que ya, desde el advenimiento de las proyecto- ft~~ capaz de realizar cerca de 1,5 millones d aunc
computadoras, surgieron falsas expectativas acerca de lo que inferencias 16gicas por segundo (LIPS). e 1
realmente son capaces de hacer ellas por sf mismas suplantando En 1988 se construy6 un sistema que utilizaba multiples PSI en hum
al hombre, o en relaci6n a una supuesta mejor calidad de vida paralelo, base para desarrollos en software. med
humana merced a estas maquinas. I
Hacia el final del proyecto se construyeron varios prototipos de
En el terreno de los procesadores de lenguajes naturales (PLN) PIM (Parallel Inference Machine), o maquinas KLl. en st
se busca que la comunicaci6n con una computadora este al En 1992 se desarroll6 para el PIM un modelo judicial, que
alcance de todos, sin requerir especialistas para manejarlas, o teen<
gener6 correctamente un juicio sobre un caso policial
curses de apoyo. Se ha traspasado a la maquina, cada vez en mod•
ingresado, luego de haber analizado mas de doscientas !eyes, y
I
mayor grado, la tarea de_facilitar esa comunicaci6n, por medio de haber comparado el caso con 115 casos reales juzgados.
de programas complejos. Un PLN puede formar parte auxiliar en la
Los investigadores participantes sostienen que se alcanzaron
l
de un SE de consulta de informaci6n. Su funci6n es analizar la buena parte de los objetivos, y que la tecnologfa por ellos
estructura gramatical y el significado de las preguntas que un indu:
creada tiene una inercia natural de entre diez a veinte afios antes
usuario plantea, para luego generarlas en el lenguaje artificial una i
de ser aplicada, como sucedi6 con UNIX, C y RISC.
propio del sistema en cuesti6n. misrr
Tambien afirman que se crearon falsas expectativas, como que
I
Asimismo convertira las respuestas en este lenguaje al lenguaje en diez afios se resolverfan Ios problemas mas dificiles que
open
natural correspondiente. Debido a la ambigi.iedad de · los plantea Ia IA, o que se iba a crear un traductor con las mismas
son c
ienguajes humanos, a SUS multiples estructuras y a las capacidades de un ser humano. Asimismo no se desarrollaron
que r
dificultades para formalizar toda su riqueza expresiva en forma sistemas para el reconocimiento de patrones, o para traducir.
pro ft
16gica, los PLN no han podido aun desarrollarse en la medida
Como resultado de este proyecto, Jap6n se plantea el "Proyecto 1
de las necesidades.
de Computac ion def Mundo ReaI" en base a redes neuronales, carac
Por otra parte, los PLN requieren grandes computadoras para
tambien de diez afios de duraci6n. En m
ser realizados. Algunas de las cosas que pueden hacer los PLN
E
son la correcci6n de errores lexicograficos cometides por el E. Shapiro y D. Warren en comentarios aparecidos en la revista cualq
usuario y la sustituci6n de una palabra formulada antes, por Communications of The ACM (marzo 1993), plantean que la· pro ye
otras estructuras gramaticales. Si se pregunt6: computaci6n paralela requiere un mercado que necesite grandes p
z,Que acciones estan por debajo de su valor nominal? calculos numericos regulares, que hoy son suficiente-mente apara
puede luego preguntarse: simples como para ser planteados mediante lenguajes la pu
z,Cuales de ellas valen menos de $50 convencionales. Todavia no existe una demanda de computa- esta
El proyecto "Quinta Gen~raci6n" inclufa en el area PLN: doras paralelas para realizar una clase mas amplia de proble- autOJ:
mas, a nivel de requerimientos industriales. incre1
• Un traductor automatico multilinglie, capaz· de manejat En relaci6n con la IA, manifiestan que el "boom" que provoc6 [.
100.000 palabras. en los afios 80 ha declinado, reduciendose el numero de E
• Un sistema capaz de hablar y entender un lenguaje natural investigadores en este area, y que Ios que siguen en ella. no de vc:
con unas 10.000 palabras de vocabulario. requieren un poder computacional mayor. Tampoco hoy lo criter
• Un modulo auxiliar de comunicaci6n., para lenguaje necesitan las aplicaciones basadas en SE. encuE
natural, de 5000 palabras, en un sistema de consulta sabre Sostienen que los investigadores de la "Quinta Generaci6n" no televi
varies temas con 10.000 reglas de inferencia. han logrado determinar demasiadas aplicaciones que pongan de del h<
relieve el poder computacional de las maquinas construidas. televi
BALANCE DEL PROYECTO QUINTA GENERACION puedE
Quedaron en el camino falsas expectativas acerca de
Del artfculo de Ia revista BYTE Argentina, de J.C. Sabbione, de concebir un computador inteligente, capaz de razonar (1
julio de 1993: "El Proyecto de Quinta Generaci6n, z,exito o como el hombre; o que podria recibir instrucciones en
fracaso?" resultan las conclusiones que siguen. nuestra lengua. p
Hacia 1985 se desarroll6 un modelo de lenguaje 16gico para conoc
inferencia en paralelo, denominado GHC. A partir de el se c
elabor6 -como base para Ia segunda mitad del proyecto- el ningu
mare£
S1
del pe
[.
E:
con vi•
una ir
ericas,

(1
Mund
1-171

ACERCA DE LA TECNOLOG1A
EI modelo instrumental concibe la tecnologfa a partir del aparato tecnico tornado aisladamente. De esta manera, los criterios de
analisis que sobresalen son los de medias, usos, fines. Un lavarropas es un medio para un fin. Su comportamiento se iguala al de
cualquier instrumento. El modelo instrumental generaliza el ejemplo del lavarropas a la totalidad del sistema de la tecnologia:
aunque mas complejo, el sistema tecnol6gico seguirfa siendo un medio para un fin.
Por supuesto, este modelo considera obvio que los fines a los que sirve la tecnologfa son determinados por la libre decision
humana: el hombre puede emplear la tecnica para fines belicos o pacfficos. En cualquier caso, se supone que el hombre controla los
medias tecnicos en funci6n de sus objetivos. Este modelo, por lo tanto, considera la tecnologia como un medio neutral.
La general difusi6n de este modelo obedece al hecho de que responde a la experiencia~inmediata que el hombre corriente posee
en su relaci6n con los artefactos que lo rodean: el decide si va a encender el televisor o no, si usara una agenda electr6nica o no.
Sin embargo, es err6neo transferir esta experiencia individual y limitada de! especio personal a la totalidad del sistema
tecnol6gico. Ocurre que la tecnologfa, en tanto sistema, presenta caracteristicas e impone conductas que superan ampliamente el
modo de comportamiento de! hombre con el artefacto aislado.
En primer lugar, el sistema tecnol6gico no es un simple conjunto mas complejo de instrumentos: presenta el aspecto de una red,
en la cual cada nudo supone y promueve a los otros.
Un avi6n no es un simple aparato que nos transporte de un lugar a otro: implica un sistema de aeropuertos. equipamiento
industrial, talleres mecanicos, oficina de controles, ademas de un staff de personal especializado y entrenado, lo que supone a su vez
uiia instancia educativa y una estructura tecnocientffica de investigaci6n, planificaci6n y diseno. A su vez, en la trama de esta red, los
mismos aparatos generan las condiciones que los hacen indispensables.
De este modo, cada instrumento supone la totalidad del sistema tecnol6gico. Por otra parte, este sistema no es una entidad que
opere en el vacfo. Integra a la sociedad tecnol6gica en su conjunto: implica una cultura para la cual los aparatos, su posesi6n y su uso
son considerados valiosos en funci6n de un determinado estilo de vida, un criterio de felicidad y un concepto de progreso. Es por eso
que no es posible transfefir los instrumentos de la sociedad tecnol6gica a otras culturas sin producir al mismo tiempo modificaciones
profundas en el sistema de referencias de la cultura receptora.
Toda transferencia de tecnologia comporta al mismo tiempo transferencia cultural. En este sentido, cada instrumento posee el
caracter de un holograma: esto es, un tipo de organizaci6n en el que cada elemento C')ntiene la presencia de Ia estructura en su totalidad.
En un holograma, "el todo esta en la parte, que a su vez esta en el todo", y de tal modo que una parte es apta para regenerar el todo.
El caracter de la tecnologia, como vemos, supera en mucho la mera instrumentalidad. El comportamiento del hombre frente a
cualquier aparato rebasa en mucho su simple uso. Basta observar la actitud del hombre comun frente al autom6vil: en su posesi6n se
proyectan valores de prestigio, poder, potencia. Se le atribuyen significados que van mucho mas alla de su mera utilidad.
Podria argumentarse que esta proyecci6n de valores es ajena a la tecnologia en si, y que nada tiene que ver con la eficacia del
aparato. Sin embargo, la sociedad tecnol6gica no podrfa funcionar sin esa proyeccion emocional-valorativa. Es lo que sabe muy bien
la publicidad, al recurrir mas frecuentemente a este tipo de proyeccion que a la utilidad especffica de! aparato. En efecto, el apelar a
esta fetichizaci6n del aparato no es un mero recurso publicitario: la publicidad no alcanzarfa efectividad si la identificaci6n
autom6vil-prestigio-poder-felicidad no estuviera ya profundamente internalizada en los consumidores. La publicidad reproduce e
incrementa las connotaciones del imaginario social de Ia civilizacion tecnologica.
[ ... ]
En efecto, el sistema tecnol6gico no es un mero medio: impone al hombre transformaciones profundas en su conducta, criterios
de valor y pautas de interacci6n humana. Pensemos solamente como la television ha revolucionado los estilos informativos, el
criterio de esparcimiento, el arte, los habitos de vida. El analista Langdon Winner reflexionaba sobre el hecho senalado por las
encuestas relativo a que la poblaci6n norteamericana pasa aproximadamente siete horas diarias (un tercio de su ciclo vital) mirando
television. Los argumentos de quienes adhieren al caracter meramente instrumental de la tecnologia hacen referencia a la voluntad
de! hombre, para recordar que "siempre se puede apagar el televisor". Esto es trivialmente cierto. Pero teniendo en cuenta el rol de la
television en nuestra cultura, debemos acordar con Winner cuando observa que la television (no el televisor) es un fen6meno que no
puede "apagarse" de ningun modo.
(Tornado de: Regnasco, M. J.,- Crftica de la raz6n expansiva - Radiografia de la s,ociedad tecnol6gica, Buenos Aires, Biblos, 1995)

A medida que el volumen de informaci6n aumenta a ritmo vertiginoso, se obstaculiza el proceso que convierte la informaci6n en
conocimiento.
Con el poder de procesamiento de las computadoras, pareciera que podemos manejar cualquier volumen de informaci6n sin
ninguna dificultad. Pero esta situaci6n encierra un problema: la seleccion, clasificacion y sistematizacion de la informaci6n exige un
marco te6rico que no esta al mismo nivel que los datos.
Se trata de los presupuestos basicos, de las valoraciones subyacentes y de los marcos de contextualizacion que estan en la base
de! pensamiento racional y simb6lico.
[ ...]
Es necesario tener en cuenta que las ideas que gobiernan los datos no son informaci6n. Son compromisos filos6ficos,
convicciones profundas. Como observa Th. Roszak, el principio "Todos los hombres son iguales ante la ley'', no es el resultado de
una inducci6n empirica. Es una conviccion profunda, se refiere al valor esencial de las personas, remite a reflexiones filosoficas,
eticas, y no a datos, cifras o estadisticas.

(Tornado de : Regnasco, M.J., (compliladora) Para comprender la problenuitica de! mundo actual, Buenos Aires, Ed. Imago
Mundi, 2006)
1 j Nf.Ginzburg-La PC por Dentro
173

JI
-------·-··----- -··---··-- --------- _ .. _

Apendice 4 de la Unidad 1

-Modelo circuital conceptual que no requiere conocimientos previos de


circuitos 16gicos, con camino de datos de concepci6n RISC
El presente modelo apunta a ser una aproximaci6n conceptual del funcionamiento interno de una UCP sin que
el lector tenga un conocimiento previo del funcionamiento de los circuitos l6gicos que se describen en la obra
"De la Compuerta al Computador".
Teniendo presentes los esquemas las figuras 1.31 .y 1.32 con multiples caminos entre registros se desarrollaran
los mismos para comprender mas en detalle como funciona un procesador en la ejecuci6n de las instrucciones,
sobre la base de un camino de datos ("data path") de 3 buses, como tienen los actuales procesadores.

I A los fines didacticos, a partir de la fig. A4.6 cada nueva figura incorpora (en trazo grisado) las descripciones
de pasos en la ejecuci6n de un total de 3 instrucciones llevados a cabo en las figuras anteriores, siendo que las
lineas en trazo negro ilustran acerca del paso elemental que se esta llevando a cabo. De esta manera, la fig .
. A4. l 4, ultima de la serie, permite integrar las anteriores, y que el lector pueda tener una idea mas general
acerca del interior de una UCP sencilla, y c6mo se repite la generaci6n de las sefiales de control.
Descripci6n general
Los bloques que aparecen bien delimitados en las figuras A4.6 hasta A4.14, que intervienen en la descripci6n,
se comunican entre sf mediante caminos internos, es este caso de 8 6 4 lineas conductoras, por las que pueden
transitar simultaneamente hasta 8 6 4 bits (como en una autopista de 8 carriles por la que circularian 8 6 4 autos
a igual velocidad como se detalla en Ia fig. 1.52). Este conjunto de lineas o '~bus" se representa mediante una
uni ca linea gruesa, con la indicaci6n del numero 8 6 'el 4 segun sea.
Las lineas de un solo conductor forman parte de la UC (no delimitada como bloqu~ para no complicar Ios
dibujos). La UC por un lado entran pulsos electricos de igual duraci6n de un Secuenciador (realizado en
forma didactica mediante uria llave rotatoria que permanece igual tiempo en cada posici6n); y por otro !ado la
UC recibe la orden que porta cada instrucci6n mediante cada una de las lfneas que salen del Decodificador.
La UC realiza sus funciones de control mediante lineas de un solo conductor denominadas Iineas de control,
la mayoria de las cuales determina si por el camino (bus) que cada una de el/as contra/a va a pasar o no
informaci6n (Esta alternativa se representa por un contacto o Have designado L, que puede estar cerrado o
abierto, respectivamente, el cual es comandado por una de dichas lineas de control a el asignada en forma fija.
Puesto que cada camino consta de 4 u 8 lineas, cada contacto dibujado representa 4 u 8 contactos que se deben
cerrar o abrir al unisono. Otras Iineas de control de la UC gobiernan la operaci6n que debe hacer la UAL, y la
linea LI (que sale al exterior de la UCP) ordena si la memoria sera leida o escrita. Otra linea E/ ordena escritura
Las lineas de control cierran transitoriamente o mantienen abiertos los contactos L segun el estado de otras
lineas de un solo conductor del interior de la UC que las gobieman. Estas se designan con indicaci6n del
tiempo durante el cual estan activadas y del c6digo de la instrucci6n <lei cual depende su aparici6n, como ser
"3v.(volts) durante TI" 6 "3v para 0001 y T3", etc.
Dado que una linea de control puede cerrar el conj unto (4 u 8) de contactos L que comanda durante la
ejecuci6n de diferentes instrucciones o en distintos pasos de las mismas (en tal instrucci6n o en tal otra, o en tal
otra o en tal paso de una instrucci6n o en tal otro de la misma), estas distintas alternativas que se pueden
enunciar verbalmente, se representan mediante una compuerta OR, que se simboliza como una "media luna".
Por lo tanto las lineas de control que salen de la UC en general son salidas de compuertas OR (fig. A4.14)
Los bloques delimitados en las figuras A4.6 hasta A4.14 son:
I. La UAL que recibe los dos datos a operar mediante ios buses Xe Y de 8 lfneas que entran a ella, siendo
que el resultado que genera en sus salidas van al bus de 8 lineas designado \V.
1-174
i
j
Il M.<
l

Los registros (R, A, RDI, IP), que guardan informaci6n. Ellos pueden tomar o no informaci6n del bu \V
2.
----------'-se~a. . .u_'n___e_l_es:@_QQ_f~rr_ados/abie~os de los contactos L que !os vinculan con el bus W, pz:.ra luego reten~rla. f
As1m1smo R y A, pueden enviar o no una copia de su contenido al bus X conforme el estado de Ios L
lo~ lig~n con ~l bus X. AI :egistro IP sus L lo comunican con el bus Y. El registro RDI (Registroq~:
~Irec~1?nes) t1ene s~s 4 ~ahdas conectadas directamente al bus de direcciones, por donde se envia cada
direcc10n a la memona. Solo RDI e IP tienen 4 salidas; los restantes tienen 8.
3. Lq. memoria, que en este esquema consta de 16 celdas para 8. bits cada una, numeradas con direcciones de
0000 ~ 1111. Ya sea para leerla o escribirla, al registro RDI le debe Ilegar la direcci6n de la celda a Ia que
se qm_ere acceder,, la cual a tr~ves del bus de direcciones que comunica RDI con memoria llega al
decod1ficador de esta que perm1te localizar la celda direccionada de la forma vista en la figura lxxx
Cuando Ia memoria es direccionada con orden de Iectura (mediante la linea LIE) puede pasar una copia d~
los 8 bits contenidos en una celda de la misma al registro RDA (Registro de Datos) vinculado a ella.
Desde este una copia de dicha informaci6n puede pasar al bus X (si los contactos Lx esta cerrado). Sise
direcciona la memoria para escribir una celda, a RDA deben llegar los 8 bits a escribir desde el registro A
por el bus Y, para Io cual los contactos LY deben estar cerrados. Luego la linea LIE (lectura./escritura)
debe dar la orden de escritura, para que una copia de RDA pase a la celda direccionada ..
4. El registro de instrucci6n, RI, que puede tomar directamente su contenido (una instrucci6n del programa)
de RDA la cual a su vez provino de memoria, cuando los contactos LR1 estan cerrados.
5. El decodificador cuyo accionar se vera luego, siendo que cada una de sus lineas de salida (una distinta por
cada instrucci6n) determina los pasos para ejecutar la instrucci6n que activ6 la linea que le corresponde.
6. Un secuenciador o generador de secuencias de pulsos de igual duraci6n temporal.
Como se ha planteado (Secci6n 1.7), la ejecuci6n de una instrucci6n se lleva a cabo mediante una
secuencia de pasos que progresan con cada nuevo pulso originado por dicho generador.
A los fines didacticos supondremos (fig. A4.1) una llave rotativa selectora de varias posiciones, capaz de
comunicar los 3 volts (3v) de una batefia conectada a su contacto central a la linea conductora que sale de!
punto donde la Have hace contacto. Si la Have permanece por ejemplo T = 1 segundo en cada posici6n1
rnientras queda ese tiempo en la posici6n 0 contacto 1, la linea unida al mismo (designada "3v durante
Tl") estara en toda su longitud con 3v. (fig. A4.2). Tambien se dice que sobre esa linea tiene lugar un
F
3v.
pulso de ~ensi6n de 3v designado TI, de un segundo de duraci6n. •
Si luego que termina el primer segundo, instantaneamente la llave pasa al coiifacto 2 permaneciendo otro
segundo (designado T2 en relaci6n-con el contacto 2) en esta posici6n, los 3v de la bateria se comunicaran
a la linea "3v durante T2", naciendo un pulso T2 al mismo tiempo que "muere" Tl. Del mismo modo,
cuando la Have pasa al contacto 3, nace T3 y muere T2 como se aprecia en la fig. A4.2
Estos pulsos seran usados por la UC para generar y determinar la duraci6n de los pulsos de control que
proveen las lineas de control, mediante los cuales cierra !laves 6 indica 6rdenes para la UAL.
Reloj

Co

"3v durante T3" "3v durante T2"


"3v du rante T4'
"3v durante T3" Ovolts
FiguraA4.2
Figura A4.1
Puede considerarse a su vez que otros "pulsos reloj" mas angostos que caen a 0 volts cada segundo, en los, '1
insta~tes de tiempo 1, 2, 3, 4, 5 ... generados por un cristal piezo-electrico, son los que hacen rotar la ll~ve. •
Esta vuelye siempre al contacto I, para generar el pulso TI, pudiendo hacerlo desde el contacto 3, 4 o 5, J~
• 3
segun se necesite. 4
Co
Para un computadorsupondremos -segun el ejemplo de la figura 1.29- que entre la aparici6n de un p~lso reloj
y et siguiente transcurre un tiempo de tan solo 20 nanosegundos ( 1 nseg. es una milesima de millonesima de
·segundo), que seria tambien la duraci6n de los pulsos TI, T2 ,T3 .... generados hipoteticamente por la llav~
rotatoria temporizadora descripta. Esta frecuencia de aparici6n equivale a 50 millones de pulsos reloJ
generados por segundo, o sea 50 megahertz (MHZ}
La UAL en relaci6n con sus entradas Xe Y, y salida W, en general puede hacer sumas o restas: X ±Y =='- W.
Los valores Xe Y son la informaci6n que viaja por los buses Xe Y, pudiendo ser provista por dos registros.
como ser A y RDA. El resultado ( que siempre pasa al bus W) puede ser asignado a un registro, como el R
I rvLGinzburg-La PC por Dentro 175

-- t
\\I La operaci6n que efectuara la UAL depende en este esquema de cual de sus lfl}eas de_ op~r_'1~iQ_n_ (J:(+Y, O+Y,
._.,.....,.,.-!------e-t_c....,..)-=-e-s-te-,-,
rJa. -ac-t-=-iv-=-ada por fa lffleci'-de control de la UC que la activa, mediante un-pulso de duraci6n Tl, T2 ,T3 ....
que Si la UC ordena hacer W = X + 0, y tambien ordena cerrar los contactos LRnA,X y Lz,A (que respectivamente
de permiten pasar informaci6n de RDA al bus X, y del bus W al registro A) resultara que una copia del registro
ada RDA pasara, sin modificaci6n alguna, al registro A. Asi pasa una copia def contenido de zin registro a otro.
En caso de que la UC ordenara hacer W = 0 + Y y cerrar los contactos que correspondan, mediante un pulso
de de duraci6n Tl, T2 ,T3 ... ., es factible transferir una copia del IP al RDI, o del RI al RDI, segun se necesite.
que De esta forma, los multip.les caminos entre registros de las figuras 1.31 y 1.32 han sido reempl~os por los
al tres buses internos X, Y, W, qu~ a traves de la UAL permiten por ejemplo transferencias entre registros, o
xx. sumar los contenidos de dos registros y el resultado guardarlo en un tercero.
de
la.- Las lineas "3v durante Tl", "3v durante T2" .... que salen de la llave rotativa (fig. A4.l), cuando estan en 3v.
se se emplean mayormente para indicar intervalos de tiempo (indicados Tl, T2 ... ) en que deben permanecer
A: cerradas las L que ellas comandan, a fin de habilitar los caminos (buses) que dichas llaves gobieman.
Cuando dichas lfneas dejan de estar en 3v las !laves que dichas lineas comandan quedan abiertas, deshabili-
r~L
s·.'.~~
1
_- --- tando dichos caminos para que no puedan realizarse movimientos por ellos.
~);
En la fig. A4.3a (que es parte de la fig. A4.6) se quiere simbolizar, que la linea "3v durante Tl" comanda en ese
tiempo Tl en que esta en 3v. el cierre de las Baves LIP,Y (la flecha al final de la linea que llega hasta la Have
or qui ere indicar una fuerza que produce el cierre), para que una copia del contenido del registro IP pase al bus Y. Al
mismo tiempo- dicha linea cierra las Haves LRm para que el registro RDI pueda tomar la informaci6n 0000.
"3v du rante T1"
na ..
r~~~~'*'~~~~~'~"""""""""""' .........""!!
I "3v durante T2"
de
aer
n,
te
un 3v.
•3
• •
ro
ari
o;
Figura A4.3a · Figura A4.3b
ue
La fig. A4.3b (parte de la A4.7) simboliza que al pasar la Have rotativa a la posici6n 2 deja de estar en 3v la
linea "3v durante Tl" por lo que aparece en grisado, con lo cual se abren las Haves LIP,Y (que comunicaban IP
con el bus Y) y las LRoh a la par que la linea "3v durante T2" cierra durante T2 las LIP, para que 0001 pase al IP.

Compuertas ANP y OR ·
Es factible condicionar el cierre de Haves La que dos (o mas) lfneas esten simultaneamente en 3v un tiempo T.
Para ello dichas lineas deben ser entradas de una compuerta AND, cuya linea de salida comanda el cierre de
Haves cuando permanece en 3v, y las abre mientras nose de dicha simultaneidad. Por ejemplo (fig. A4.4 que es
parte de la fig A4.8), la linea de salida AND "3v para 0001 y T3" comanda el cierre/apertura de las Haves
Lrn,X. Esta linea durante el tiempo T3 permanecera en 3v (cerrando las Lrn,X) si estan en 3v la linea "3v
durante T3" y tambien
la linea "3v para 0001"
S RI (es ta ultima esta en 3 v
e.' •2 mientras se ejecuta la
5, JV "3v durante T3"

J
instrucci6n de c6digo
• 3
4 0001, durante T3 y T4,
Com puerta And como se vera). Puesto
j que solo durante el
le' ----~1lm tiempo T3 ambas lineas
e 10{0 estan en 3v, la salida de
j FiguraA4.4 la AND "3v para 0001 y
T3" solo estara en 3v
durante T3 , y s6lo para
, la instruc-ci6n de
Figura A4.5
c6digo 0001.
1-176

De manera g_eneral, una compuerta circuital genera el estado electrico (Ov 6 3v) de su linea de salida en
funci6n del estado electrico (Qy_6 3Y) de dos o mas Iirreas que son sus entradas.
En definitiva el cable de salida "3v para 0001 y T3" acompafiara el estado de la lfnea "3v durante T3", o sea que
sobre esa linea tendra lugar un pulso de 3v que durara un tiempo T3. Es como si el pulso hubiese pasado de Ia
lineas de entrada "3v durante T3" a la de salida. De esta forma, de todo el tiempo en que "3v para 000 l" esta en
3v, con la linea "3v durante T3" se determina el tiempo T3 a fin de que las Lrn,X esten cerradas solo durante T3.
Si para dos instrucciones distintas o pasos diferentes de una misma instrucci6n ( durante la concreci6n de uno 0
del otro) se necesita cerrar las mismas Haves, se debe recurrir a una compuerta OR simbolizada como una
media luna. Asi (fig. A4.5 que es parte de A4.8), las Haves LRm se deben cerrar durante TI por que esta en 3v
la linea "3v para Tl (fig, A4.3.a) o bien en T3 por estar en 3v la Iinea "3v para 0001 y T3" (fig. A4.4).
A su vez como se vio, la salida AND "3v para 0001 y T3" para estar en 3v requiere la conjunci6n de dos lineas en
3v. En la figura A4.13 la OR se ampli6 a 4 entradas, pues como se vera, las LRoI se deben cerrar durante T3 en
cada una de las 3 instrucciones distintas ejecutadas, y ademas siempre durante Tl en el primer paso de
cualquier instrucci6n, cuando se Ia solicita a memoria (en una o en otra o en otra o .... ).
En una OR basta que una entrada este en 3v. un tiempo T para que su linea de salida tambien lo este ese
m.ismo tiempo. Mientras ninguna de sus entradas este en 3v. su salida tampoco lo estara.

Ejecuci6n de instrucciones
Efectuaremos_ en el modelo de procesador la operaci6n R = P + Q, teniendo presente sus analogias con una
calculadora de bolsillo (fig. 1.2), y siendo: P = 5 = 00000101 Q = 4 = 00000100.
En la fig. A4.6 y siguientes, las instrucciones tienen 8 bits: los 4 primeros para indicar la operaci6n ordenada
( codigo de operaci6n), y los 4 ultimos para indicar en que direcci6n leer o escribir un dato en memoria.
Las 3 instrucciones que usaremos se ha supuesto que ocupan las 3 direcciones sucesivas 0000, 0001 y 00 l O de
la memoria (fig. A4.6). Estas, al igual que los datos Py Q, en la practica llegan a memoria provenientes de uri
disco, o desde el teclado.
La instrucci6n It (c6digo de operaci6n 0001) ordena llevar al registro Auna copia del contenido de la celda de
memoria de direcci6n 1010, donde se encuentra el valor de P (c6digo completo: 000 I I 010). Esto equivale a
llevar el valor de Pal visor de una calculadora de bolsillo, como primer paso para hacer P + Q.
La instrucci6n I2 (c6digo de operaci6n 0011) ordena sumar al contenido del registro A una copia de!
contenido de la celda de direcci6n 1100 (donde se ha supuesto que esta el valor de Q), y el resultado de Ia suma
(en este caso P + Q) asignarlo al registro A, perdiendo este su valor anterior. En cierto modo es como en una
calculadora entrar el valor de Q y apretar la tecla + , de manera que cuando se pulsa la tecla = el resultado de
la suma aparecera en el visor en lugar del numero anterior. C6digo completo: 0011 1100
La instrucci6n I3 (c6digo de operaci6n 0111) indica llevar a Ia posici6n de memoria 1110 una copia del registro A.
Se puede equiparar en cierta medida a la acci6n de pulsar en una calculadora la tecla M. + para que una copia
de lo que esta en el visor se guarde en la memoria de la calculadora. C6digo completo: 0111 1110.
Las acciones que ordenan II, 12 e 13 estan escritas en memoria, constituyendo un corto programa, para que se
lleven a cabo-cuando la UCP las ejecute, como se describe a continuaci6n.

l Como se ejecuta'un programa constituido par It, /2 e 13 en el modelo de la figura


A4.6 y siguientes ?
Antes de ejecutar un programa, es necesario que en registro IP este la direcci6n de su primer instrucci6n (que
en este caso es 0000), la cual en la practica es determinada por el sistema operativo ..
Como se detalla en Ia figura 1.27, la ejecuci6n de una instrucci6n comprende en general los siguientes pasos;
que progresan en sincronismo con los pulsos reloj:
1. Obtener la instrucci6n mediante una lectura de Ia memoria, y llevar una copia de eHa al registro RI.
Mientras esto sucede Ia UC puede cambiar el valor del IP para que contenga la direcci6n de la siguiente
instrucci6n a ejecutar, que sigue a continuaci6n en memoria.
2. Con el c6digo de la instrucci6n en RI la UC lo decodificara, con lo cual quedara determinado que
hardware intervendra en cada uno los pasos siguientes que correspondan a Ia ejecuci6n propiamente dicha.
3. Obtener el dato a operar si el mismo esta en memoria, para lo cuaI primero se de be determinar su direcci6n
y luego pasarlo al registro RDA mediante una lectura de memoria. Sise debe escribir (un resultado) en Ia
memoria, se debe pasar en este paso su direcci6n al registro RDI.
4. Realizar Ia operaci6n que ordena la instrucci6n.

l Como son las 4 pasos anteriores en la ejecucion de It ?


rvf.Ginzburg-La PC por Dentro
177
_...____________ --- ---

"3v durante Tr

Figura A4.6

"3v durante T2"


• 2
• 3v ~

''··.•.•.w••"""'"·"•"•W•W ·•.•.•• ~
UE
Figura A4.7

MEMORIA
1-178


• 3v -.,.______..;;...._________....,_
•4 ~ "3v durante T3"

Figura A4.8 p
.' ''

11 oo j;1:,\1~:p1~QJJl!U1~illl a
r''«'''"""'""''»"T''"'*'*'"~·'~X·"·X<~»o<x·'""''"'"'''"';::::::::::::::::::::::::::~"""'"""'"'""'.%''0•"«·0·"'''"*'-'""''~'"''"'•'
I • ;r"*., ,., ,. ,., .,~,.,., ., , ,~,J

11
12
Is
Figura A4.9

MEMORIA 11 00 Q
J Nf.Ginzburg-La PC por Dentro 179

J ..
··
Paso 1 (Obtencion del codjgQ_9~.~Qstruccion II en RI)
En este paso la llave rotativa temporizadora debe estar primero en la posicion 1 durante Tl = 20 nsea., tiempo
durante el cual la l!nea "3 v dur_ante TI" esta en 3.v; y luego en la posicion 2 durante Tl = 20 nseg. siguientes.
Pu~sto que II esta en memona, hay, q~e loc~hzarla en esta mediante su direccion siempre contenida en el
reg1stro IP (~g. A4.6). Fuest? ~ue el um.co r~g1str?, que esta conectado al bus de direcciones que va a memoria
es RD~, en el se debe const1tmr cualqmer dir~cc10n (de instruccion 0 de dato) a la que se qui ere acceder en
memona. Por lo tanto, se debe pasar una coprn de IP al RDI. Para ello la lfnea de control "3v durante Tl" 3
cerrara las llaves LIP,Y, lo cual permite que una copia del contenido del IP pase al bus Y. Asimismo, dicha
line~ tambien ac?la sobre la entr~~a "O + Y" de la UAL para ordenar esa suma, de modo que sea W = Y. Asi la
copia del contemdo del IP que VIaJaba por el bus Y pasa sin alteracion (pues se le sumo O) al bus W.
Dado que por otra parte "3v durante Tl" actua cerrando las llaves LRni, el contenido de IP (0000, direccion de
II) que viaja por el bus W pasara al RDI, con lo cual tambien viajara por el bus de direcciones hacia memoria.
4
Entonces en la memoria comenzara el tiempo de acceso para la localizacion de la instrucci6n (II en este caso),
siendo que ademas se necesita que le llegue una orden de lectura por la linea LI que debe estar en 3v, tambien
merced a la linea "3v durante TI".
Cuando termina el tiempo TI todas las llaves cerradas durante el mismo se abren, y la llave rotativa pasa a la
posicion 2 (figura A4.7), con lo cual queda en 3v durante T2 = 20 nseg. la linea de control "3v durante T2".
Esta cierra las llaves LM,Ri, de modo que cuando llegue a RDA el c6digo de maquina de la instruccion pedida
(en este caso 00011010, copia del contenido de la direccion 0000), dicho codigo pase solo a RI.
Paralelamente con esto "3v durante T2" cierra las Haves LIP, y abre las L'IP (que volveran a su posicion
anterior cuando termine T2). Entonces la salida del sumador que suma 1 al contenido del IP (que mientras L'IP
estaba cerrada era 0001 = 0000 + 1) cornunicara su valor al IP. Este quedara asi con 0001, preparado con la
direcci6n de I2, para cuando se pida esta instrucci6n.
En definitiva, luego de las acciones determinadas per las lfneas de control "3v duraiite TI'' y"3v diirante T2"
se habra obtenido en RI el codigo 00011010 de It (instruccion a ejecutar), yen el IP la direcci6n de I2.
En la descripci6n anterior debe observarse que en cada transferencia de informaci6n que ha tenido lugar solo se
han cerrado las /laves que permiten dicho movimiento, siendo que las restantes quedan abiertas. Esto se logra
en los tiempos apropiados (Tl, T2, T3, ... ) merced a las lineas de control citadas que comandan dichas Haves.
Paso 2 (Decodificaci6n de la orden que determina los pasos a seguir)
Al mismo tiempo que en T2 llega la instrucci6n 00011010 al RI, sus primeros 4 bits (0001 ), que constituyen el
"c6digo de operaci6n" (cod-op) que ordena la operaci6n a realizar, entran (fig A4.7) al circuito decodificador
Este tiene tantas salidas como instrucciones diferentes existan, pero solo una estara en 3v segun sea el cod-op
presente en el RI. Esa linea determinani los pasos a seguir, segun se vera a continuacion.
Asi (fig. A4.8), toda vez que el cod-op sea 0001 (0 y 0 y 0 y 1, detectable mediante una And no dibujada) solo
la linea "3v para 0001" queda en 3v, rnientras que las restantes salidas del decodificador quedan en 0 volts.
Esta situaci6n subsistini has.ta que se termina de ejecutar la instrucci6n (tiempo T4 para esta instrucci6n It).
Paso 3 (Obtenci6n del dato)
Hasta aca, luego de los tiempos Tl y T2 se obtuvo en RI una copia <lei c6digo 00011010 de It que estaba en
memoria. Como se vera a cantinuaci6n, en el tiempa T3 se direccionara el data (P = 5 = 00000 I 0 I) que esta en
memoria (en la direcci6n 1010); yen el tiempo T4 este dato pasara de RDA al registro A (paso 4).
El paso 3 empieza cuando la llave rotativa esta en la posici6n 3 en la que permanecera T3 = 20 nseg, con lo
cual quedara en 3v durante ese tiempo la linea "3v durante T3". En el paso 2 la linea "3v para 0001" del
decodificador ya esta en 3v, representando la orden "enviar al registro A una copia del dato que esta en la
direcci6n de .memoria (en este caso 1010) que acompafia a la orden 000 l ". Esta linea determina que debera
ocurrir en el circuito en los tiempos T3 y T4, para llevar a cabo la arden que ella representa, segun se apreciara.
Durante el tiempo o pulso T3 de ejecucion de Il, las sefiales "3v para 0001" y "3v durante T3" estan simultanea-
mente en 3v. Entonces (fig. A4.8), la linea de salida designada "3v para 0001 y T3" de la compuerta AND de
las que ellas son entradas estara en 3v durante T3 segun se plante6 en la fig. A4.4. Entonces (fig. A4.8), la
5
salida "3v para 0001 y T3" debera ordenar cerrar durante T3 las LR1,X y LRm , Y ordenara que Ia UAL realice
W = X + 0, permitiendo asi que Ia direcci6n del dato (1010) que esta en la mitad de RI pase primero al bus X,
y de este al bus W, desde donde pasa al RDI. De este registro llegara directamente a memoria a traves del bus
de direcciones (de forma semejante, en el paso 1 la direccion de II lleg6 a memoria, pero provista por el IP). Entonces
en la memoria carnenzara el tiempo de accesa para la localizaci6n del data (00000101 =5 = P) que esta en la

: En los graficos que sigue~ las lineas de control que estan en 3v se dibujaran en t~azo ne~ro. ., . . .,
Tiempo que transcurre desde que la direcci6n se form6 en RDI hasta que una copia de la mformac10n correspond1ente a esa dJrecc1on llegue a RDA
5
Dado que LRDI debe cerrarse durante T 1 cuando "3v durante T 1" esta en 3v o tambien cuando "3v para 0001 Y T1" esta en 3v (como se da
ahora), estas Iineas deben ser entradas de una OR (que no aparece por razones didacticas en la fig A4.6) cuya salida comanda a LRDI
·~l
1-180
j;1.Ginzb
------~dir~-e-i-On-f10-W)-dada por RD!. La lfnea LI debe estar en 3v siendo la salida de una compuerta OR (agregad
en relaci6n con la fig A4.6, pues se necesita ordenar leer en el paso 1 6 en el 3). De este modo L./ estara en 3va
si en la Or esta en 3 v su linea de entrada "3 v durante TI" (como sucedi6 en el paso I) o tambien si esta en 3 ~
l
su linea de entrada "3v para 0001 y T3" conforme ocurre ahora.
Paso 4 (Realizaci6n de la operaci6n ordenada)
Cuando la llave rotativa pase a la posici6n 4 (fig, A4.9) la lfnea "3v durante T4" queda en 3v, y tiene lugar el
ultimo paso de la ejecuci6n de II, durante el cual una copia del dato queen T4 llega a RDA pase al registro A.
Para ello la lfnea de salida de AND "3v para 0001 y T4" cerrara las LY, asf la salida de RDA podra comunicar
su contenido al bus Y. De este bus debe pasar al bus W para llegar al registro A, lo cual tambien requiere que
la salida "3v para 0001 y T4" ordene a la UAL efectuar W = 0 + Y, y que las Lw,A se cierren.
La operaci6n W = 0 + Y se ordena hacienda que la linea "O + Y" que entra a Ia UAL este en 3v. Como esto
debe ocurrir en durante TI de la fase de pedido descripta o tambien en el presente, Ia salida OR de entradas "3v
durante TI", "3v para 0001 y T4" (no dibujada en la fig. A4.6) servira en ambos casos para ordenar 0 + Y.
De esta forma, la sefial "3v para 0001 y T4" determina que una copia de RDA pase al registro A, quedando este
con el valor del dato (00000101 = 5 = P), por lo que asi finaliza la ejecuci6n de Il ·

i,C6mo son /os 5 pasos anteriores en la ejecuci6n de /2 de c6digo de operaci6n 0011?


Paso 1 (Obtenci6n del c6digo de la instrucci6n 12 en RI)
Como se determin6,
durante el tiempo T2
de ejecuci6n de II, el
IP habia cambiado •

Figura A4. l 0
desde entonces al valor 0001, que es la direcci6n de 12.
Luego del tiempo correspondiente al ultimo paso de la ejecuci6n
de una instrucci6n (T4 en la instrucci6n Il anterior) siempre debe
suponerse qu~ la Have rotativa vuelve a su posici6n 1, para luego
pasar a la posici6n 2, 3, etc. permaneciendo siempre 20 nseg. en
cada posici6n. Asi nuevamente se iran generando los tiempos TI,
T2, T3, etc., siendo que para todas las instrucciones en Tl y T2, se u
lleva a cabo la fase de pedido de cada instrucci6n de manera semejante a
como se hizo para II (figuras A4.6 y A4.7, de referencia para cualquier instrucci6n).
Por consiguiente al cabo de! tiempo T2 de la instrucci6n 12 sera IP = 0010 y RI =
00111100, lo cual se da por supuesto en el paso posterior ilustrado en la figura
A4.10, y en el paso 2 que se describe a continuaci6n.

Paso 2 (Decodificaci6n de Ia orden que determina los pasos a seguir)


A la par que durante T2 llega Ia instrucci6n 00111100 al RI, sus primeros 4 bits (0011 ), cod-op de la operacion
...
a realizar, entran al circuito decodificador. En este, toda vez que el cod-op sea 0011 (0 y 0 y 1 y I) solo la lin~a
_-·.·1·.·
•.
:•._.

Dado qm
-
6

0001 y T3 "
'"3v para 0011" queda en 3v mientras que las restantes salidas estaran en 0 volts. Esta situaci6n perdura hasta :i
entradas de
que se termina de ejecutar la instrucci6n (tiempo Ts para esta instrucci6n 12). j Ana!ogam1:
~ T3" o "3v J
~
i J \it.Ginzburg-La PC por Dentro 181
-- i'
ada I Paso 3 (Obtenci6n del dato en RDA)
'"'nc...,;3~''i---"--~EH-!es-tiempes--.+-1-y-T:-2-se-ebtuv0-en--RI ~una copia del c6dig6 00 I I 1100 ae 1:2 que estaba en memoria. En este
3v f paso, en el tiempo T3 se obtendra en RDA el dato (Q = 4 = 00000100) que esta en memoria (en la direcci6n
1100). En el tiempos T4 este dato se sumara al contenido registro A (paso 4).
El paso 3 (fig. A4. l 0) es igual al paso 3 de II (fig. A4.8). Empieza con la llave rotativa en la posici6n 3,
el quedando asf en 3v la lfnea "3v durante T3" (T3 = 20 nseg.).
A.. ~a e~ el paso 2_ la linea "3v para 0011" del decodificador esta en 3v para determinar que debera ocurrir en el
ar circmto en Ios t1empos T3, T4 y Ts, para llevar a cabo la orden que esta lfnea representa: "sumarle al reo-istro A
ue una copia del dato que esta en Ia direcci6n de memoria (en este caso 1100) que acompafia a Ia orden 00°11, y el
resultado asignarlo al registro A en reemplazo del valor que tenfa ".
to Durante el tiempo T3 de ejecuci6n de I2, las sefiales "3v para 0011" y "3v durante T3" estan simultaneamente
3v en 3v. Por lo tanto, coma en Ia fig. A4.8, la Iinea de salida "3v para 0011 y T3" de Ia compuerta AND de las
que ellas son entradas estara en 3v durante T3. Entonces (fig. A4.10), dicha salida "3v para 0011 y T3" debera
6
te ordenar cerrar durante T3 las LRI,x y LRm , y ordenara que la UAL realice W = X + O, permitiendo asi que la
direcci6n del data
(1100) que e~ta en la
? mitad de RI pase
primero al bus X, de

Figura A4.1 l
este al bus W, desde donde pasa al RDI.
De este registro llegara directamente a memoria a traves del bus 11
de direcciones vinculado al mismo.
12
En la memoria (con orden de lectura dada por la linea LI en 3v)
comenzara a transcurrir el tiempo de acceso a la celda de Is
direcci6n 1100, al final del cual (que sera durante T4) una copia
del contenido de esta celda (00000100 = 4 = Q), pasara al RDA.
u
La linea LI estara en 3v siendo la salida de una compuerta OR (con una p
entrada mas en relaci6n con la fig. A4.8), siendo que LI. debe estar en 3v, si esta en
3v su lfnea de entrada "3v durante TI" (como sucede en el paso 1 de la fase de
pedido de cada instrucci6n) o tambien si esta en 3v su lfnea de entrada "3v para 1100 Q
0001 y T3" (como sucedi6 en el paso 3 de II) o tambien si esta en 3v su lfnea de
entrada "3v para 0011 y T3" como ocurre en el paso 3 de la presente instrucci6n.
Paso 4 (Realizaci6n de Ia operaci6n ordenada y almacenamiento del resultado en el registro temporario R)
Cuando la llave rotativa pasa a Ia posici6n 4 (fig. A4. l 1) Ia linea "3v durante T4" queda en 3v. Entonces tendra
lugar otro paso de la ejecuci6n de 12. en el cual dicha linea en conjunci6n con la linea "3v para 0011" pondran
en 3v la linea.de salida "3v para 0011 y T4" de Ia AND cuyas entradas son esas dos lineas.

6
Dado que LRni debe cerrarse durante T 1 cuando "3v durante T 1" esta en 3v (como en el paso I de cualquier instrucci6n o tambien cuando "3v para
0001 y T3 " esta en 3v (como en el paso 3 de 11) o tambien como en este paso 3 de h (con "3v para OI 11 Y T3" en 3v), estas 3 lineas deben ser 3
entradas de una OR (que eran 2 en la fig. A4.8) cuya salida comanda a LRm
A.nalogamente, para LRr,x, ella debe cerrarse durante T3 en el paso 3 de I 1 ode h (presente instrucci6n), o sea siesta en 3 v la linea "3v para 0001 y
11
1'1 o "3v para OOI I y T 3 ", por Io que estas 2 Iineas deben ser 2 entradas de una OR (no dibujada en la fig A4.8) cuya salida comanda a LR1,x
1-182

---------'=Esta salida_determinara qu.e !a UAL sume eI registro RDA (ai ciiai durante T4 llega el dato desde 1100) con
A, y que el resultado se guarde en el registro temporario R (que no sera necesario en el modelo que se exponee
1
continuaci6n de este). Se requerira un quinto paso a fin de que durante Ts una copia del registro R pase al .A. a
Para el paso 4 la linea de salida de AND "3v para 0011 y T4" debe ordenar por un lado cerrar las LY 7 asi
1
salida de RDA podra comunicar su contenido al bus Y, y por otro cerrar LA,X de forma que el registro A podr;~ '
pasar una COP.ia de su contenido al bus X. Al mismo tiempo "3v para 0011 y T4" debe ordenar a la UAL efectu;
W = X + Y (mediante "X + Y"), y que Lw,R se cierre a fin de que el resultado de la UAL, siempre presente en el
bus W, pueda llegar al registro R.
De esta manera hasta aca (T4), la sefial "3v para 0011 y T4" ha determinado que una copia de RDA se sume en
la UAL con una copia del registro A, y que el resultado pase al registro R, quedando este con el valor de Ia
suma (00001001=9 = 5 + 4 = P + Q).
Paso 5 (Almacenamiento del resultado en el registro ordenado)
Cuando la Have
pasa a la posici6n 5
(fig. A4.12) la linea
"3v dura.nte Ts"

Figura A4. l2
queda en 3v, tendra lugar el ultimo paso de la ejecuci6n de I2.
En este paso dicha linea en conjunci6n con la linea "3v para 0011"
pondran en 3v la linea de salida "3v para 0011 y Ts" de la AND
cuyas entradas son esas dos lineas. Esta salida determinara que una
copia de R pase al A.
Ello implica que "3v para 0011 y Ts" cerrara las LR,x asi la
salida del registro R podra comunicar su contenido al bus X.
De este bus debe pasar al bus W para llegar al registro A, lo cual
tambien requiere que la salida "3v para 0011 y Ts" ordene a la UAL efectuar W =
X + 0, y que)as Lw,A se cierren. W = X + 0 se logra haciendo que la linea "X + O"
que entra a la UAL este en 3v. 1100 Q
Como esto debe ocurrir en el paso 3 de la instrucci6n 0001 o tambien en el
presente, la salida de la OR (no dibujada en otras figuras) de entradas "3v para 0001 y T3", "3v para 0011 Y
Ts" servira para ambos casos.
De esta forma, la sefial "3v para 0011 y Ts" determina que una copia de R pase al registro A, quedando este.
con el valor del resultado (00001001 = P + Q), por lo que asi finaliza la ejecuci6n de I2

l Como son los 4 pasos anteriores en la ejecucion de 13 ?


Paso 1 (Obtenci6n del c6digo de la instrucci6n 12 en RI)
Como se determin6, durante el tiempo T2 de ejecuci6n de 12, el IP habia cambiado desde entonces al valor
0010, que es la direcci6n de 13.

8
7 Dado
Siendo que Lv debe cerrarse en este caso, cuando la linea "3v para 0011 y T.i'' esta en 3v o tambien cuando la linea "3v para 0001 y T./' esta en 3v 0001 y T
(como en el paso 4 de I 1) se ha agregado en la fig. A4. l l (en relaci6n con la fig A4.9) una compuerta OR cuyas 2 entradas son esas 2 lineas, para 3v), esta~
contemplar que su salida comande a Lv
..._ j
i1
r;!.Ginzburg-La PC por Dentro

Luego del tiempo correspondiente al ultimo paso de la ejecuci6n de una instr.uc. ci6n (T.5 en .la. 1.·ns. trucci6n 12
183

;n el .· anterior) ~ebe suponerse que ~~}Ia.:re. ~~ta!iva; ~ely~a~ su posici6n L para.luego pasar a la posici6rr 2, 3, etc.
A.nea I pem~nec1endo s1empre 20 ns~g. en c~da pos1c10n. As1 nuevamente se iran generando los tiempos TI, T2, T3,
._ · etc., s1endo q~e para todas las ~nstrucc10nes en TI y T2, se lleva a cabo la fase de pedido de cada instrucci6n de
s1 Ia manera s~m~Jante a como se ~1zo para II (fig~ras A4.?_ YA4.7, de referencia para cualquier instrucci6n).
odra Por cons1gmente al cabo del t1empo T2 de la mstrucc1on 13 sera IP = oo 11 y RI = o111111 o lo cual se da por
ctuar supuesto en el paso 3 ilustrado en la fig. A4.13. '
en el
Paso 2 (Decodificaci6n de la orden que determina los pasos a seguir)
e en A la par que durante T2 llega la instrucci6n 01111110 al RI, sus primeros 4 bits
e la (0111), cod-op de
la operaci6n a
realizar, entran
(fig. A4.13) al •

Figura A4.l 3
circuito decodificador. En este, toda vez que el cod-op sea 0111
(0 y I y I y 1-) solo la linea "3v para 0111" queda en 3v mientras 11
que las restantes salidas estaran en 0 volts. Esta situaci6n 12
perdura hasta que se terrnina de ejecutar la instrucci6n (tiernpo
13
T4 para esta instrucci6n 13).
Paso 3 (Obtenci6n de la direcci6n de rnernoria a escribir en RDI)
Al cabo del tiernpo T2 se obtuvo en RI el c6digo 0111 1110 de I3 1010 p
que estaba en rnemoria. En este paso 3, en el tiernpo T3 se obtendra en RDI la
direcci6n (11 W) de rnernoria donde escribir el contenido del registro A.
En el tiernpo T4 este contenido pasara a RDA y se escribira en rnemoria (paso 4). 0
En el paso 2 la linea "3v para 0111" del decodificador ya esta en 3v para deterrninar
que debera ocurrir en el circuito en los tiernpos T3 y T4, para llevar a cabo la orden · 1110 ···. R
que esta linea representa: "en la direcci6n de memoria (en este caso 1110) que
acompafia a la orden 0111 escribir una copia del contenido del registro A".
y
El paso 3 empieza cuando la llave rotativa .esta en la posici6n 3 en la que perrnanecera T3 = 20 nseg, con lo
cual quedara en 3v durante ese tiernpo la lfnea "3v durante TJ".
e.
La direcci6n donde escribir el contenido de A se obtendra de RI, siguiendo el mismo proceso que se hizo en el
paso 3 de las instrucciones ll e 12 (figuras A4.8 y A4. l 0).
Durante el tiernpo T3 de ejecuci6n de 13, las sefiales "3v para 0111" y "3v durante TJ" estan sirnultaneamente
en 3v. Por Io.tanto, corno en la fig. A4.8, la linea de salida "3v para 0111 y T3" de Ia cornpuerta AND de las
que ellas son entradas estara en 3v durante T3 segun se defini6 en la fig. A4.4. Entonces (fig. A4.13), dicha
r 8
salida "3v para 0111 y TJ" debera ordenar cerrar durante T3 los contactos Lm,X y LRo1 , y que la UAL realice

8
Dado que LRD1 debe cerrarse durante T1 cuando "3v durante T1" esta en 3v (como en el paso 1 de cualquier instrucci6n o tambien cuando "3v para
0001 y T 3" esta en 3v (como en el paso 3 de I1) o tambien como en el paso 3 de h, o tambien como en este paso 3 de l3 (con "3v para 0111 y T3" en
3v), estas 4 lineas deben ser 3 entradas de una OR (que eran 3 en la fig A4.10) cuya salida comanda a LRm
1-184

W = X + 0, permitiendo asf que Ia direcci6n (11 I 0) que esta en la mitad de RI pase primero al bus X, de este
bus W, desde donde pasa al RDI. De este registro llegara directamente a memoria a traves del bu~ ;i /".
--------~dir~.e-c-c~io_n_e_s_v~in-culado al mismo. Asi teirnlna el desarrollo del paso 3. \.l~ v ._,

Paso 4 (Realizaci6n de la operaci6n ordenada)

• c
c
F
!N7
Figura A4.14
.i H
Estando la direcci6n 1110 en RDI, cuando Ia llave rotativa f progr
pase a la posici6n 4 (fig. A4.14) -con Io cual "3v durante T4" i se reI
queda en 3v- tendra lugar el ultimo paso de la ejecuci6n de 13, p,
que consistini simplemente en que una copia del contenido de dedic
A (00001001 desde la instrucci6n anterior) pase al registro interi:
RDA para que luego la memoria la escriba en Ia direcci6n a)
dada por RDI. Para ello Ia linea de salida de AND "3v para E s
0111 y T4" cerrani las LA,X asi la salida de A podra comunicar su contenido l
(00001001) al bus X. De este bus debe pasar al registro RDA, lo cual tambien s
Q
requiere que la salida "3v para 0111 y T4" ordene que las Lx se cierren y que la f1
Iinea E quede en 3 volts durante T4 (orden de escritura a la memoria) mientras dicha b) "
linea esta en 3v. Entonces hacia el final de T4 una copia de RDA (00001001) se R fl
escribira en la direcci6n I 110, finalizando la ejecuci6n de la presente instrucci6n.

De esta forma se ha calculado mediante 3 instrucciones Ia expresi6n R = P + Q, habiendo quedado el resultado En sir
(00001001) guardado en memoria en la direcci6n asignada a la variable R. Pl

l Como queda en definitiva el circuito de/ procesador desarro/lado ?


En Ia figura A4.14 estan integradas las figuras A4.6 a A4.14. Se invita al lector a repetir la ejecuci6n de las Al
instrucciones antes tratadas en este nuevo esquema mas general. El circuito de la UC esta constituido por D~
lineas de un solo conductor que pueden ser entradas de compuertas And, cuyas salidas van a compuertas Or, con la
siendo que las salidas de estas ultimas son las lfneas de control. El conexionado AND-OR de la UC puede repres
redibujarse segun una matriz, como en la fig. A4.33 del Modelo de UCP rapida para instrucciones tipo RISC.

Res,
mas
Pr;
Cc
a)
b)
Analogamente, para LR1.x, ella debe cerrarse durante T 3 en los pasos 3 de I 1 o de h o de b (presente instrucci6n), o sea si esta en 3 v la linea "3v para
0001 Y T3" o "3v para 0011 Y TJ" o "3v para 0111 y T3 ", por lo que estas 3 lineas deben ser 3 entradas de una OR (dibujada en la fig A4.10 con2
entradas) cuya salida comanda a LRi.x
CODIFICACION Y OPERACJ6N
DE ENTEROS Y REALES
FLAGS DE LA UAL
!NTRODUCCJ6N
Hasta el presente hemos representado m1meros, los hemos operado e interpre.tado resultados suponiendo que en un
programa en alto nivel se. pueden definir variables desitgnadas supuestamente "MAGNITUDES", que a nivel de maquina
11
se representan en memoria como binarios naturales, los cuales se han tratado en el Apendice 1 de la Unidad 1.
12
Para variables tipo "Enteros" y "Reales'' supuestamente definibles en un prograrila en alto nivel, este complemento esta
'3 dedicado a la representaci6n binaria de las mismas en memoria, a las operaciiones con dichas representaciones, y a la
14 interpretaci6n de resultados de estas operaciones. Asf se tratanin:
a) "ENTEROS': corresponden a m1meros positivos o negativos en base diez, (±N) simbolizables en pantalla con los
sfmbolos + y - , cuya magnitud N es un numero natural. A nivel de maquina se representan en memoria mediante
binarios naturales que representan enteros. Estos tambien se conocen como "binarios con bit de signo" o "binarios
signados", por que el valor 0 6 1 del bit extrema izquierdo de dichos binarios naturales (bit de signo) indica si
representa un entero positivo o negativo, respectivamente. Son operados en la UAL como binarios naturales.
"REALES": corresponden por ejemplo a enteros positivos y negativos, fraccionarios, irracionales, que en memoria se
representan como m1meros binarios en "punto (coma en castellano) flotante", en una notaci6n exponencial del tipo
N = ± m x 10 ±p y son operados en el Coprocesador Matematico o Unidad de Punto Flotante (FPU).
En sfntesis:
PROGRAMA EN ALTO NIVEL BAJO NIVEL (MAQUINA)
Magnitudes Binarios naturales
Enteros Binarios naturales considerados con bit de signo (signados)
Reales Binarios en punto flotante
Al final de este complemento se trata la codificaci6n binaria BCD, que en alto nivel corresponde a variables tipo "PACKED"
Dado que, como se vera, los binarios que representa'n a enteros se suman y restan como binarios naturales, en relaci6n
con la resta de estos, ya planteada su mecanica en el Apendice 1 de la Unidad 1, a los fines de una mejor comprensi6n de la
~epresentaci6n y resta de enteros, se volvera a ver mas en detalle la resta de binarios naturales.

Resta de ntimeros naturales sin pedir prestado, mediante la suma de/ minuendo
mas el complemento al modulo def sustraendo
Primero plantearemos este metodo para m1meros en base diez y luego para binarios.
Con el objetivo de usar un (circuito) sumador tambien para restar, restaremos numeros naturales:
a) mediante una suma
ra, :. b) sin "pedir prestado" de una posici6n a otra.
2
• ,C Ul-2
..,...I,
f
___
En lo que sigue primero efecturaremos en base diez-543 - 84 mediante una suma; lo cual originara una segunda
que se puede realizar sin "pedir prestado". Luego de mostrar el "artificio" se indicara Ia forma practica de concretar a) r~ta
liOCiXX
f!
Si:
y ).
Sea A- B = (543 - 084) = R (resultado a deterrninar). ! (lC
Si sumamos a ambos lados 1000, que tiene tantos ceros coma dfgitos tiene A, el resultado R quedara excedido en lOOQ. J IO(
(543 -084) + 1000 = R + 1000 (paso 1) reordenando: 543 + (1000-084) = R + lOOO. I Un
!-:arest~ (10?0 - 084) = 916 r~quiere
"pedir pre~tado", l!
siendo 916 el con:plemento (lo que le falta) a 84 para ser lOOo :::256-
pudiendo s1mbo11zarse c84 = 916; s1endo 1ooo la cant1ctad total de numeros dec1males cde ooo a 999) que puecten forrnarse , rusti
,, ·
n=3 d ig1tos, denormma
· d a "mo"dulo " (1000 = M) . 0 sea C84 = 916 =CB es el complemento al "m6dulo" o a "la base" de 84 ::::Bcon °l
Calcularemos C84 = (1000- 084) = 916 sin "pedir prestado" dado que (1000 - 084) = 1 + 999 - 084 I 11]
(999 - 084) = 915 no requiere "pedir prestado", siendo 5 lo que falta a 4 para ser 9; 1 lo que falta a 8 para ser 9, etc. oorn
' 1101
En definitiva haremos 543 + (1000 - 084) = 543 + (999 - 084) + 1 = 543 + 915 + 1 = 1459 = R + 1000, como t
indica a continuaci6n en grisado. Como se justificara, sera R = 459 que resulta simplemente de descartar el uno de i ~e 45 Dai
sin tener que realizar un paso extra para restar el exceso de 1000. ' ::: 255 ·

A =543 ------------• JUSTil


= = 543
B = 084-
}916 = 1000-84 = C84= Cs= +1000-84
-------
J ~ :io~
= 1000 + 459 = = 1000 + (543 - 084) = 1000 + R suma'
01100
R
l 001
WSTIFICACION POR QuE SE DESCARTA EL UNO Y EL RESULTADO SON LOS DfGITOS QUE LE SIGUEN: +110
Las sumas de la izquierda y derecha son iguales, dado que 543 = 543 y 915 + 1=916 =CB =1000- 84, la suma derecha
permite poner en evidencia que 1459 es la resta pedida (543 -· 84) = R excedida en 1000 (paso 1). Resulta asf que el exceso
de 1000 que esra sumado a Res simplemente el uno que descartamos de 1459, por lo que R = 459 es el resultado de (543 - 84),
como se indica a continuaci6n:
xa59 = l~QO + 459 = l~PO + (543 - 084) Las SUI

'
',,~--- ''~-------- ~
=CB'~
Se explica ahora las ventajas de usar como exceso la unidad seguida de ceros (modulo M = 1000 en este caso): por un excedi,
lado como valor sumado a R es facil de eliminar, sin necesidad de hacer 1459 - 1000; y por otro si al modulo se le resta descar1
uno (modulo menos uno) permite hacer la resta M- B =CB = (1000- 084) como (999- 084) + 1 sin "pedir prestado".

j Dado que 999 = 1000 - 1 = M-1, el 915 = 999 - 84 = C'B, es lo que le falta al 84 = B para ser 999 = M-1, o sea es el
complemento al "modulo menos uno" (C'B), llamado tambien complemento a "la base menos uno": C' 8 = M-1- B

Siendo CB = (1000- 084) = (999 - 084) + 1=CB+1, resulta en general que para calcular el complemento al modulo de
un numero sin ''pedir prestado ", primero calculamos su complemento al modulo menos uno, ya este le sumamos uno.

Generalizaci6n: (A- B) = R
(A-B)+M=R+M (M=lOn) (A-B)+M=A+(M-B)=A+CB = A+C'B+l=R+M Nt.1
siendo: C'B = M-1 - B; n es la cantidad de dfgitos de A; y 10 la base en cualquier sistema numerico (10 es dos en binario)
Uri
Resta de naturales binarios signifi
Repitiendo el planteo recien vista para naturales en base diez, lo aplicaremos para restar en formato n = 8 los binarios Ne
naturales 10001100 y 00100110 que corresponden a las magnitudes 140 y 38 en base diez. mimer
1) Esto es, efectuaremos A - B = (10001100 - 00100110) = R como se efectua en un computador, segun se indica a defini<
continuaci6n en grisado: Es
interic
A= _140 =_10001100- El metodo consiste, pues en sumarle al minuendo A el numero que Ve
B= 38= 00100110- resulta de invertir cada uno de los bits de/ sustraendo B, y en la misma puede
R operaci6n sumar uno. Para hallar el resultado R se descarta el uno Juera un sut
deformato, y se to man los bits que siguen a die ho uno. l Qt
R R = 01100110 = 102 Verificaci6n 102 = 140 -38 del 00
A continuacionjustificaremos la metodologfa empleada. demo
imp lie
r----------""'
c Ul-4

c
-100

900
I
-99

901
-98
I
902
-- - _-3
I
997
-2
I
-1 o
I
+1
I
+2
I
+3
I
+97 +98
I
+99
-t--..
--
998 999 000 001 002 003 097 098 099

Con estos m1meros de n=3 dfgitos, se cumple que (-A) + A = 0 si descartamos en el resultado el uno de I 000.
Por ejemplo, la representacion 997 del negativo -3 sumado a su magnitud (3), o sea: 997 + 3 = 1000 puede verse coma
(-3 + 1000) + 3 = 1000 = 1000 + 000. Esto es, 997 es -3 excedido en 1000, exceso que ha pasado al 000 considerando 1000-
= I000 + 000. Por consiguiente, si en 997 + 003 = 1000 descartamos el uno que esra fuera del formato, el resultado es 000. - Si
· El cuen~a-vueltas tambien servirfa para efectuar sumas algebraicas. Asf -3 + 12 implicarfa a partir del ooo ir ::: 10(
primero al 997 y luego avanzar 12 combinaciones, de modo de llegar al 009, que es el resultado de esa suma. para
Se observa que el dfgito izquierdo indica el signo: los positivos tienen todos un cero como dfgito izquierdo, mientras Uamc
que los negativos un nueve. Decimos que el signo de los numeros enteros asf representados esta en el dfgito extrema
izquierdo, el cual es el "digito de signo". En esta convencion los positivos mantienen directamente su magnitud en las E
cifras que estan a la derecha de dicho dfgito, pero los negativos siguen otra regla de representacion, segun ser vercl. dfgitc
Como ser, el +3 se representa 003, mientras que la representacion del -3 es 997. COM!
Puesto que s.e dedica un dfgito extra para el signo, el mayor numero positiv-0 tiene magnitud 99 (en vez de 999 usando P:
los tres dfgitos para la magnitud). El 900, como se vio, corresponde a un numero negativo de magnitud I 00. E
Nos encontramos con una forma distinta de interpretar Los numeros naturales del cuenta-vueltas. Ahora, por ejemplo s
el 997 como natural representa 997 unidades, pero interpretado como numero con dfgito de signo es el -3. del ni

Dejaremos de lado el cuenta-vueltas y generalizaremos esta convenci6n. Supongamos que queremos representar el
m1mero-63 sin tener que ir 63 pasos hacia atras desde el 000 para ver que m1mero es entre los que empiezan con 9.
Observando en la recta cada negativo y su correspondiente representaci6n mediante el numero natural que empieza con 9,
resulta que la magnitud de cualquier negativo sumada al natural que lo representa da siempre por resultado 1000.
Asf, para el -1 es 1+999=1000; para el -3 es 3+997=1000; para el -99 ~ 99+901=1000; para el -100 es N1..
100+900=1000, etc. (Esto equivale a lo expresado que se cumplirfa que A+ (-A)= 0 si nose considera el I de 1000).
Por lo tanto, la representaci6n de un numero negativo es el numero natural que sumado a su magnitud (tambien m1mero A
natural) da por resultado 1000, que es la cantidad de m1meros distintos que hay entre 000 y 999 para n=3 (designada "modulo") por le
p
Asf el mimero natural 997 es lo que le falta a 3 para ser 1000; 901 lo que falta a 99 para ser 1000, etc. debaj
Decimos que 997, que representa al negativo -3, es "el complemento a 1000" de 3 (lo que falta a 3 para ser 1000). retrrn
Entonces, el numero que representa a -63 sera el complemento a 1000 (que simbolizaremos c6 3) de su magnitud 63. de 4
A
0 sea debe ser: 63 + C63 = 1000. Por lo que dicho numero sera: C63 = 1000 - 63 = 93
corre
De manera inversa, si preguntaramos que mimero negativo es el representado por el natural 937, o sea cual es su has ta
magnitud, la misma serfa el complemento a 1000 de 937: 937 + C937 = 1000. Jes cc
Asf,
La magnitud sera C937 = 1000- 937 = 63. Luego 937 representa al numero -63.
bit d1
= = =
Tambien podemos escribir -63 937 C63 indicando que 937 "funciona como" o "representa" -63, siendo la
=
igualdad formal: 937 -63 + 1000. 0 sea que la representaci6n de un negativo por el complemento de su magnifod,
puede verse como dicho negativo excedido en 1000.
Observese que cada numero positivo es simplemente el numero natural que es su magnitud, necesariamente con un
cero a la izquierda, pudiendose pensar como si dicho cero fuese un signo + "pegado" a su izquierda.
A diferencia, los negativos no son simplemente su magnitud con un nueve agregado a su izquierda, sino el 1
=
complemento al modulo (en este caso 1000) de dicha magnitud. En general sera: -N CN =M -N (Mes el modulo)_ SUS C
sigm

N1.2 Complemento al modulo 0 "a la base II .


Puesto que 1000 es la cantidad de numeros o combinaciones distintas que puedenformarse en el cuenta-vueltas de 3 [ asf ~
dfgitos, y tecnicamente este m1mero se denomina "modulo" (M), en forma generica el "complemento a 1000" lo
denominamos "complemento al modulo". 2 L
Siendo M = 1000 = 103 o sea la base a la potencia tres, tambien podrfa decirse "complemento a la base a la potencia 3", cornpi
pero ha quedado "complemento a la base" como sin6nimo de complemento al modulo. propit
En este caso que usamos n = 3 dfgitos, para cualquier numero N se cumplira, generalizando expresiones usadas mas puede
arriba, que N + CN = 1000 = 103 rial~
Para combinaciones de n dfgitos, se tendra la expresion general de un uno seguido de n ceros: puede
des arr
c Ul-5
...
.-~-___,..,------- --- --------· -- N+ cN = 10° ~ moo ...• o =M

_l, Las nuiquinas operan con nlimeros que s6lo pueden tener un nlimero fijo n de dfgitos (bits en binario) 0 sea con
l ''fiormatos " determma
. d os 2 , d e donde resu1ta que para cada formato de n digitos corresponde un, valor de
o J modulo igual a la unidad seguida den ceros, numero queen cualquier base se expresa 10n (10 es 2 en base dos).
:: I
5
Si operamos en formato de 5 dfgitos (modulo 10 = 100000), el mimero entero -63 se representarfa como 99937 =
r :; 100000 - 63; mientras que +63 serfa 00063. Conforme a lo anterior, podemos decir queen la convenci6n que usamos
para representar los enteros con dfgito de signo, los negativos se representan por el complemento al modulo (tambien
s tlamado "a la base") de SU magnitud. En general sera: -N CN = M -N =
0
_. Es conveniente acostumbrarse aver los mimeros negativos o positivos coma en un cuenta vueltas, con todos sus n
: dfgitos, o sea por ejemplo 63 coma 00063, con ceros a la izquierda completando el formato.
l COMPLEMENTO AL
l
11
MODULO MENOS UN0
11

-
1 Para obtener 937 = 1000 - 063 hay que efectuar una res ta pidiendo prestado 11 11

l Esto ultimo puede evitarse si se hace primero 999 - 063 = 936, y al resultado se le suma uno: 936 + 1=937.

I
Siendo 1000 el modulo, es 999 el modulo menos uno; por lo que 936 es el complemento al "modulo menos uno"
del numero N=063, que simbolizaremos C'o63
De donde resulta, que para evitar "pedir prestado" conviene determinar el complemento al modulo de un numero
calculando primero su complemento al modulo menos uno y luego sumarle uno: C =C' + 1

IN1.3
1
Ntimeros binarios con bit de signo? correspondientes a ~1ntegers??
J (enteros) en lenguajes de alto nivel
l
Aplicaremos los conceptos anteriores a los numeros binarios naturales para representar numeros binarios enteros,
por lo cual es muy importante terter presente en detalle todo lo visto en relacion con los enteros decimales.
Podemos imaginar un "cuenta-vueltas" binario, constitufdo por un tambor que en su superficie tenga escritas, una
debajo de otra, las 16 combinaciones binarias de 4 bits 1' que van del 0000 al 1111, el cual puede ir hacia adelante o
retroceder. Siesta en 0000 y retrocede una combinaci6n se pasa a 1111, del mismo modo que un cuenta-vueltas decimal
de 4 dfgitos (con 10000 numeros decimales) pasarfa de 0000 a 9999.
A partir del 0000, avanzando desde el 0001 al 0111, estos numeros naturales con bit extrema izquierdo 0
corresponderan a mimeros positivos; mientras que si el tambor retrocede desde el 0000, se tendra 1111, 1110, 1101, ...
hasta el 1000, mimeros naturales con bit extrema izquierdo 1, que pasaran a representar numeros binarios negativos que
les corresponden, los cuales en el papel se simbolizan con un signo menos adelante coma los negativos decimales.
Asf, los negativos tienen bit de signo 1, y los positivos bit de signo 0. El numero cero se conseidera positivo, por tener
bit de signo 0. Podemos expresar -110 = 1010 donde el sfmbolo = indica que el natural 1010 "representa" al -110.

-8 -7 -6 -5 -4 -3 -2 -1 +1 +2 +3 +4 +5 +6 +7
-1000 -111 -110 -101 -100 -11 -10 -1 0 +1 +10 +11 +100 +101 +110 +111

1000 1001 1010 1100 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111
1101

Los numeros binarios naturales indicados debajo de farecta representan a los binarios enteros (positivos y negativos) y
I
sus correspondientes enteros en base diez escritos sobre la recta. Se denominan "binarios con bit de signo" o "binarios
' signados", siendo que los negativos se representan por el complemento al modulo de su magnitud.
Notese que estamos usando los numeros naturales con su bit extremo izquierdo de valor uno con dos significados:
asf el 1101 como natural simboliza 130 unidades, y como signado el numero binario negativo -1 ln = -3o

2 Los numeros de una maquina solo pueden constar de una cantidad fija de digitos, coma es de apreciar en una calculadora manual, que en un
computador tfpicamente pueden ser 8, 16, 32, 64, 128 bits. Cuando se opera con un numero finito de digitos puede suceder que no se cumplan ciertas ·
propiedades de las numeros. Asf, dado queen el cuenta vueltas ejemplificado no existen numeros mayores que 999, ni numeros menores que 000,
puede que para ciertos numeros nose cumpla que sea: (A-B)xC = AxC - BxC o que sea (A-B) + C =A - (B + C), si en el lado derecho de esas
igualdades AxC, BxC 6 B+C superan 999.
1 Si bien se ejemplifica con todas las combinaciones que pueden fonnarse con 4 bits -dado que asf pueden tenerse a la vista todos los numeros que se
pueden representar en este fonnato- el modelo es generalizable para combinaciones de cualquier numero de bits, del mismo modo que los conceptos
desarrollados para el cuenta-vueltas decimal de 3 dfgitos son aplicables a conjuntos de numeros decimales compuestos por tantos dfgitos como se requiera.
c Ul-6
Dado que estamos usando un bit para el signo, si con 4 bits el numero natural mayor que se podia representar es el
11 llB 15B ahu1a chnay-vrpositiv-o--es ei 01lls=7B, siendb ei mas negativo ei 1000B = -IOOOB = -80 2
-
L Repres
4 2. Compl1
Puesto que el numero de combinaciones binarias distintas que pueden formarse con 4 bits es 2 0 = 160 = 10000
dicho numero constituira el modulo para el conj unto de -eombinaciones dadas, representadas antes sobre una recta. B, 3. Cambi:
Como en el cuenta-vueltas decimal, tambien se verifica que para cualquier numero negativo la suma de su
4. Sumar
magnitud (m1mero natural) mas el numero binario natural que lo representa da por resultado el modulo: 3
1 1 1 1 0 1 0 1 0 1 1 1
+
Esta relacion permite determinar el mimero binario
natural que representa a un entero negativo que se quiere
I En definifr
+O 0 0 I
1 0 0 0 0
+1 0 1 I
1 0 0 0 0
10 0 I
1 0 0 0 0 etc... representar. l El m!r
I numero er
Por ejemplo, si se quiere conocer para modulo lOOOOB (16 0 ) como se representa el numero -1 lOB, se parte de su
magnitud 110 (6 0 ) y se halla el complemento de este numero al modulo:
l No del
Co 110 = (10000 - 1IO)B = 1010 (16 - 6 = 10), combinacion que coincide con la indicada para -110 en la recta dibujada. J en esencia
I
l
Obshvese que en la presente convenci6n para representar un negativo con bit de signo se usa el compleniento al Por lo
modulo de su magniitud, por lo que no se trata simplemente de agregar un uno adelante de un mimero natural. 1
}
~ Esim;
Asf, -1 lOB se representa con bit de signo como 1010 y no como 1110. t
I La repr
t mas cerm

Il
CALCULO DEL COMPLEMENTO AL MODULO A TRAVES DEL COMPLEMENTO AL MODULO MENOS UNO Esto es, m
La resta anterior 10000 - 110 = 1010 requiere "pedir prestado". Para evitar esto conviene -como se hizo en base diez Por ejt
en la secCi6n Nl.2- calcular primero el complemento al "modulo menos uno" (C'), y a este sumarle uno (CN = C'N + 1).
Esto en decimal significa queen vez de hacer 16 - 6 = 10 se efectua 15 - 6 + 1 como se hace a continuaci6n en binario. 1 1. Repres1
l 2. represe
l
Puesto que operamos con m:imeros de 4 bits, el modulo es 10000 (l 60), y el modulo menos uno sera 1111 (15o) 1 JI
Si queremos calcular Co110 hacemos: i1 Obsen
negative, 1
1111 Observando los numeros 0110 y 1001 =C'ol IO• resulta que el complemento al modulo menos entero, se1
0110 uno puede hacerse simplemente, invirtiendo los unos y ceros del mimero a complementar con lo que
1001 =C'o110 por ceros y unos respectivamente, sin gue sea necesario realizar resta alguna como la efectuada
+ _ _1_ _(1111 - 0110). No debe perderse de vista que el complemento al modulo menos uno, y el uno que
1010 = Co110 luego se suma en definitiva sirvern para hacer 10000 - 0110 = 1010 sin pedir prestado y sin reali Problem
zar ninguna resta. De esta forma no hay que "pedir prestado" ni tampoco. efectuar resta alguna. que repre~
A los fine:
Reg/a practica para hallar en base dos el complemento al modulo En princi1
desconoce
es un nun
resulta qu
EJEMPLOS Dado que
Aplicaremos los conceptos anteriores a la representaci6n de numeros enteros suponiendo una maquina que opera con m.lmeros complem1
binaries de 8 bits (''formato 8"). Por lo tan
Con m.lmeros de 8 bits el modulo es 280 = 2560 = lOOOOOOOOs = 10lOOOB; esto es, la unidad seguida de 8 ceros en binario, que
implica que pueden formarse 2560 combinaciones binarias. En defini1
En este formate, el mayor numero positive que puede representarse es 01111111 B = 1270 , y el negative de mayor magnitudes Veam
lOOOOOOOB = -128n es este ex
Puesto qu
Problema directo: representar con bit de signo el numero -59 0 = -111011 . Para ello seguiremos los siguientes pasos:
Sise h
En car
2 Observese al respecto queen esta convenci6n siempre el m1mero negativo de mayor magnitud que puede representarse, supera en uno al positivo
de mayor magnitud. Esto se debe a que siendo par el mimero total de combinaciones, y presentar el m1mero cero el dfgito 0 como bit de signo, de
3 Elposi;
hecho es un numero positivo mas. Esto tambien se verific6 en el cuenta-vueltas'decimal, donde los mimeros extremos eran 99 Y -100.
3 Tambien con este subconjunto de binarios de n =4 bits se verificaria que A + (-A)
=0. Asf, la magnitud de un negativo sumada al binario que lo
representa, como ser 101+1011=10000 (5 + 11 =16) puede verse como 101+(-101+10000) = 10000 = 10000 + 0000. [en decimal: 5 + (-5+16)=16J· 4 Vale de
Esto es, 1011 es -10 l excedido en I 0000, exceso que ha pasado al 000- considerando 10000 = 10000 + 0000 . Observes
Por consiguiente, si en 101 + 1011 = l 0000 descartamos el uno que esta fuera del forrnato, el resultado es 0000. de la izquie
1 En general, para m.i.meros den bits, el modulo sera la unidad seguida den ceros (JOn), y el m6dulo menos uno estara constituido porn unos
Usarno
2 Tambien denominado "complemento a la base" o "complemento a dos" .
igualdad, I
'i
-
l 1. Representar su magnitud 59 como binario natural: 111011 =
c Ul-7
59
-,--i<'L,"=Omptetarlus-bits-"dt:
2. la magnitudCOD. ceros hasta cOinpletar ei fonnato, resultando de hecho el +59 3 00111011 = +)9
, J,
3, Cambiar los ceros por unos y las unos por ceros (complemento M-1) 4 11000100
4, Sumar 1 al complemento al modulo menos uno +
1
11000101

En definitiva para formate 8 se hizo: -59n = -00111011 =11000100+1=11000101 (natural que representa al -00111011)
, El m1mero binari.o natural asf obtenido representa -con la convenci6n del complemento al modulo 0 a la base- el
numero entero negat1vo dado.

No debe perderse de vista, que las pasos indicados, en especial 3 y 4 (ver "Calculo del complemento a traves del ... ) sirven
en esencia para obtener sin "pedir prestado" el resultado de la resta: CoOI l lOl l = 100000000-00111011=11000101

Por lo tanto, en formato 8 result6 -590 = -11 lOllB =1100010h I (ACLARACI6N CONCEPTUAL)

Es importante realizar en orden las cuatro pasos indicados, so pena de no llegar al resultado correcto.
La representaci6n de un positive, es sencilla: si:inplemente resulta de agregar a su magnitud (numero natural) uno o
mas ceros ~ la izquierda hasta completar el formato.
Esto es, un mimero positivo debe tener un cero en su extren:io izquierdo (correspondiente a su signo ).
Por ejemplo la representacion del entero positivo 59, o sea +59 requiere:
1. Representamos su magnitud 59 como binario natural: 59 = 111011
2. representamos +59 con bit de signo completando con ceros el formate +59 = 00111011

Observese que el natural 59 en binario es 111011, o sea empieza con l, sin que ello signifique que es un numero
negativo, pues estamos suponiendo que representa un m1mero natural. Si hubiesemos supuesto que 111011 representa un
entero, serfa un m1mero negativo, pues el uno de la extrema izquierda indicaria bit de signo negativo. Esto esta de acuerdo
con lo que hemos dicho que un binario que empieza con uno, tiene dos significados segun se lo" considere natural o entero.

Problema inverso: dada una combinaci6n binaria cuyo bit extremo izquierdo es uno, como ser 1010, suponiendo
que representa un numero entero, determinar cual es este expresado en base diez.
A los fines conecptuales conviene tener presente la recta con todos los binarios de 4 bits con bit de signo antes dibujada.
En principio podemos asegurar que si es un entero y tiene bit de signo uno, es un numero negativo, cuya magnitud X
desconocemos: 1010 =-
X. Para determinar el valor de esta magnitud X sabemos que la representacion de un negativo
es un numero natural (1001 en este caso) que es el complemento al modulo de la misma. Observando la recta citada
resulta que 1010 ( 10)0 representa al -110 (-6) 0, siendo 110 el valor que buscamos. Pero no es necesario ver la recta.
Dado que 1010 + 110 = 10000 = M, resulta que lo,s numeros naturales 1010 y 110 son complementarios: 1010 es el
complemento al modulo de 110 (magnitud del numero negativo), ya su vez 110 es el complemento al modulo de 1010.
Por lo tanto, conocido 1010 resulta que 110 = 10000-1010, resta que es mas facil hacer como 0101+1=0110.
8421 8421
En definitiva, 1010 =-X = - (0101 + 1) = - 0 1 1 0 = - 6 0 Obviamente que si se hace 1 0 1 0 =-10 D esta mal.
Veamos otro ejemplo: dada la combinaci6n 11010110 suponiendo que representa un numero entero, determinar cual
es este expresado en base diez. 32 16 8 4 2 1
Puesto que el bit de signo es 1, 11010110 =-
X = - (00101001+1) = - 1 0 1 0 1 0 = -42
128 64 32 16 8 4 2 1
Sise hiciera simplemente 1 1 0 1 0 1 1 0 = 198 se estarfa considerando al 11010110 como un numero natural.
En cambio se puede llegar al resultado -42 si al bit de signo se le da el valor -128, ya los siguientes 64, 32, 16, 8, 4, 2, 1

3 El positivo debe tener por lo menos un cero, sino implica que el numero en cuesti6n nose puede representar.
00111011

4
HHHH
Valedecirsehaefectuado: I I 0 0 0 I 0 0 + 1 = 11000101
Observese al respecto el cuidado que debe tenerse de partir del numero positivo que en el forrnato dado tenga correctamente completados los ceros
de la izquierda para dicho fonnato, para no incurrir en errores.

Usamos el simbolo = para indicar que el 1100010 I 8 por la convenci6n adoptada representa al -111011 s siendo que no se trata de una
igualdad, Esta seria: 11000101 = -111011 + 100000000
C Ul-8

----------~-12_8 6_4_12 1§~8 .4 2 I


Asf resulta: 1 1 0 101 1 0 = [lx (-128) + lx64 +Ox 32 + lx16 + Ox8 + lx4 + lx2 + Oxl]n = (-128 + 86) 0 =-42 0
,--
;. l
d
Sise parte de un mimero entero como el 01100011, para determinar que mimero decimal es, dado que su bit de signo es cero s
trata de un entero positivo, por lo cual la soluci6n es sencilla, pues su magnitudes simplemente el numero natural que sigue al cer~: e l, u
64 3216 8 4 2 1 l Sf
= + 99
0 1 1 0 0 0 1 1

Propagaci6n de signo
'l
i
L
SU
j de
Otra importante conclusion puede extraerse del siguiente ejercicio: representar -59 con 16 bits (antes representado con 8)
J
En formato 16 sera 59 = 0000000000111011, y SU complemento a modulo sera '' P::
1111111111000100+ 1 =1111111111000101 =-111011 =-59
Comparando con la misma representaci6n de -59 realizada mas arriba en formato 8, resulta que ahora se tiene el
I:
I
mismo numero con ocho unos mas a la izquierda, de donde se deduce que:
Cuando se tiene un numero con bit de signo negativo, si se agregan unos a la izquierda del mismo, el
numero no cambia; de manera analoga que si a un numero positivo se le escriben ceros a la izquierda.
:b
;-">~~Wi$

Por lo tanto, cuando se debe pasar un numero con bit de signo negativo (positivo) a un formato mayor, se le deben ftv2.1
agregar unos (ceros) hasta completar el nuevo fofmato, acci6n que se conoce como ''propagaci6n del signo" J Con
i(antes c
Valores extremos representables con bit de signo en un formato dado fverific
l
Determinaremos en base diez los valores lfmites que existen para numeros ~e 4 bits con bit de signo, y 1menos
encontraremos una expresion generalizable para cualquier numero de bits. ijPara tal
Para n = 4, el positivo de mayor magnitudes +Nmax = 0111 8 = 70 = (8-1)0 = (2 -1) 0 = (2
3 4 1
- -1) 0 l
j
1 i
Generalizando para n bits: +Nmax = (2"- -l)o; Ji) +8
El negativo de mayor magnitud para n=4 es -Nmax = 10008 = -8 0 = (-24- 1)0; y para n sera: -Nmax = (-2"-1) 0 I +30

~)
Paran=8bitsresulta: +Nmax=01111111=2 8- 1 -1= 27-1= 127; y -Nmax=l0000000= -2 8- 1 = -128 J Or
J-s
Por lo general cuando en muchos lenguajes de alto nivel se definen "integers", sin mas aditamentos, el compilador 1+30 =
o ;una subrutina los traduce a binarios con bit de signo enformato de 16 bits. j
Aplicando las expresiones anteriores, resulta un rango entre -32768 y + 32767, siendo que los numeros Porl I
correspondientes son: 10000000000000008 (15 ceros) y 011111111111111 ls (15 unos) ·
•ronnato,
Resulta relevante compararlo con los maximos usando 32 bits, correspondientes a "Long Integers" ·•l•iiendo q:
-Nmax = - [10000 ... (31 ceros) .. 0] 8 = (-231 )0 z
9
(-2xl0 )0 y +Nmax = [10000 ... (31 ceros) .. O]s = (2 -l)o
31
= 2xl0
9 ... ,descartar
o l--
31 x 10 3 iObserve
Una forma rapida de hallar x en 2 = 10 es tener presente que 2 = 1024 :::: 1000 = 10 Jsigno cc
por lo que 231 z 210x2 10x2 IOx2 I = 103xIO 3xlO 3x2 = 2x109, vaIor semeJante
. aI m
. d"1cad o mas
,. arr1"b a. Jcte I os
~
d1
1orden d'
Valores extremos representables con binarios naturales en un formato dado ]ios num~
f!!_ma, nz
j
Jc)
I +8 =
f-30 =
Recapitulaci6n de la representaci6n de enteros como binarios con bit de signo: i Porlo
:que repn
• Un entero positivo en un formato dado es su magnitud (binario natural) con bit de signo 0 coma bit extremo izquierdo,
pudiendo existir mas ceros a la izquierda de su magnitud, hasta completar dicho formato.
1

--- Un entero n~gativo en ~n formato dado se representa por .un bin~rio natural que cs el complemento al modulo (CN)
-----..1d~e.__su
• .,
0
macmtud N._debiendo presentar por lo tanto un bit de sumo
v
I como ....,hit PrtrPmfl i';'nuiPr/°ln P.n _.;: 11 rf'nrf'<::Pn-
__ _.. ............... ....,, ""'V-1-----·--
c Ul-9

........ - --r----:'--
...;..·~

ro, se taCIOil. (Puede verse el complemento CN coma el negativo -N excedido en el modulo: cN = -N + M)


ero: ., Un nun:ero negati:'o (~ositivo) ~o can:bia si se le agregan unos (ceros) a la izquierda de su bit de signo, pasando a
I ser el bit extrema izqmerdo el bit de s1gno (''propagacion de signo")
ij,
La n:agnit~d de un mim~ro positiv~ (bit de signo 0) es directamente la del numero natural que esta a la derecha de
su b1: de. s1gno. En camb10 la magmtud de un negativo (bit de signo 1) se halla hacienda el complemento al modulo
del bmano natural que lo representa, para lo cual se deben invertir todos sus bits (inclufdo el bit de signo) y sumar uno.
on 8)
Para conocer que mimero en base diez es un binario con bit de signo uno, el mismo sera un numero neaativo, cuva
magnitud X se halla invirtiendo los bits de dicho binario, incluido el bit de signo, y sumando uno. A la ~aanitud ~sf
hallada se le colocaran los "pesos" de cada bit para determinar la magnitud del numero decimal negativo b~scado.
ne el
l

o, el

eben !N2.1 Suma en base diez con dfgito de signo. Operatoria y ventajas
I Con vista a la suma de binarios con bit de signo, realizaremos primero operaciones con decimales con dfgito de signo
i(antes definidos), o sea con m1meros naturales decimales que representan a decimales enteros sin usar los sfmbolos + y -
!Verificaremos que mediante dichos mimeros naturales se pueden sumar los enteros decimales que ellos representan, con
o, y lmenos pasos que los utilizados para sumarlos en el papel de la forma conocida.
l

;Para tal fin realizaremos las siguientes sumas: a) (+8) + (+30); b) (-8) + (+30); c) (+8) + (-30); d) (-8) + (-30)
Como hay m1meros de 2 dfgitos, mas el dfgito de signo se necesitan 3 dfgitos: +8 =008; +30 =
030; -8 = 992; -30 = 970
ja) +8 =
I +30 = En este caso como la representaci6n de cada positive es el m1mero natural que es la magnitud del mismo
con el dfgito de signo 0 a su izquierda, en esencia estamos sumando dos m1meros naturales, obteniendose
j como resultado otro m1mero natural que tambien tiene un cero a s..i izquierda, el cual representa el +38.
j

Ilb)
i! Operaci6n Justificaci6n De esta forma, sumando los m1meros naturales 992 y 030 que
! -8 =~9 = = 1000 + (-8) representan a (- 8) y (+30) se obtiene el nurnero natural 1022.
dor I+ 3o = + o30 = =_+_<._+.....3..-0).____ _ __ Si descartamos el uno de 1022 queda 022 que representa a
= 1_~00 + <:-8) +_ C+30J
eros lI . = + 022
·.......... ·19'-?o•. ······ ~~--------/
+22 = (-8) + (+30), o sea el resultado de la suma pedida.

l Por lo tanto, mediante una suma de naturales se pueden sumar nurneros enteros, con la simple correcci6n de descartar el uno fuera de
J formato, como se justifica a la derecha. Esto es, al hacer 992 + 030 = 1022, puede considerarse que se esta haciendo 1000 + (-8) + (+ 30),
I siendo que 992 = -8 + 1000 contiene el -8 excedido en 1000 (modulo). Este exceso pasa al resultado 1022, siendo facil de corregir
9 j descartando el uno de 1022. Asf no hay necesidad de hacer 1022 - 1000 que implicarfa perder tiempo en un paso mas.
O D
lr--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,

j Observese la ventaja de usar la convenci6n del complemento para representar los negativos en la surna de numeros con
l signo contrario.Si tuvieramos que hacer la surna (-8) + (+30) con papel y lapiz, primero tendrfamos que determinar cual
l de los dos mimeros tiene mayor magnitud (en este caso el +30), luego hacer la resta 30 - 8 = 22 cambiando en este caso el
!orden de los mimero dados, y despues colocar en el resultado el signo del mayor (+22). En cambio, con esta convenci6n
los numeros se operan en el orden dado, y no es necesario comparar sus magnitudes, ni efectuar una resta en Lugar de una
suma, ni colocar en le resultado el signo del mayor, requiriendose simplemente el mismo sumador que para naturales.
c)
+8 = 008 978 es un m1mero negativo por tener dfgito de signo 9 (978 = -X) cuya magnitud X se halla siendo
-30 = +97 0 que 978 es el complem~nto de X (978+X=1000), o sea: 978 = -X = -(1000-978) = -22 =

~
mt:=
-22 = (+8) + (-30). Entonces, en el 978 = -22 + 1000 esta incluido el -22 excedido en 1000.
Aclaraci6n: 1000-978 tambien puede hacerse 999 - 978 + 1 con el complemento al m6dulo menos uno.
Por lo tanto, sumando los mimeros naturales 008 y 970 que representan a +8 y -30 se obtiene el nurnero natural 978,
que representa al-22. A continuaci6n se verifica que al sumardichos numeros naturales se suman tambien (+8) + (-30).
C UI-10

+8 = 008 = = ..i. ( +8) :Porlo


-30 = ~= = 'I 000 - (-30) idefon
-------~~moo=- 22 = 1001} + (-22) =1-000 : (+8) + (-3o) !10000
""-----~ ~ '.Estee
Entonces, al hacer 008 _+ 970 = 978, puede consider~sta
haciendo 1000 + (+8) + (-30), siendo que 970 = -30 + Ill()) le) 5
cont1cne eJ -30 excedido en 1000. Este exceso pasa al 978 = -22 + 1000, que .:s el complemento de 22, sin que l ;
·~ como en e I caso b); pero para hallar el resultado (-22) se Jebe proceder como se hizo 3
. hacer una correcc1on
nece-s1te aniba se.!.4 mas
Par lo tanto, el exceso 1000 de la representaci6n 970 del -30 est:i incluido en el re~ultado 978 = C22 que represeiita el -22 !
. J;.8 =
d) !~43=
962 es un m1mero negativo por tcner dfgito de signo 9 (962 = -X) cuya magnitud X se halla siendo J
-8-
-'30 que962eselcomplementod.;;X (962+X= 1000), osea: 962= -X= -(1000-962)=-38=(-8)+(-30) l
Entonces, en el 962 = -38 + 1000 esta incluido el -38 excvuido en 1000. I
f De
Nuevamehte sumando Ios i.umeros naturales 992 y 970 que representan a -8 y -30 se obtiene el l
962 =-38 =
m1mero natural 962 C 38 , qu'; representa aJ -38. ·fnatura1
i)uma!
A continuaci6n se verifica que al sumar dichos i.umer ~s mturalcs se suman tambi\. (-8) + (-30). Esto es
-8 = 992 :..: ~ 1000 + (-8) Entonc
- 30 =+97 0 = =- +I 000 + (-30) }ustijil
x:62 = I ~P.~. + 962 = _1__?.~~ + 1000 + (-3~) =-~-~00 + 1000 + ~) liiendo
...... ······ .. - ····· ··......... ... ····· ·................... ~.:.:.__________________./ }Este e.x

Entonces, al hacer 992 + 970 = 1962, puede suponerse que se esta haciendo 1000 + 1000 + (-8) + (-30), siendo que 992 = -8 + 1000 jel uno
contiene el -8 excedido en 1000, y 970 = -30 + 1000 contiene el -30 excedido en 1000. Resulta que al sumar dos negativos (-8 y .jPor lo
-30), mcdiante los numeros naturales que los representan (992 y 970) puede considerarse qu~ en el resultado (1962) esta el negativo ._;represei
(-38) que es el resultado buscado excedido en 1000 dos veces. Puede suponerse como en el caso b), que uno de los excesos es el 1000 de }
1962 = 1000 + 962, el cual se resta descartando el uno de 1962. El otro exceso de 1000, com0 .::.n c), puede considerarse incluido en el ld) Su.
962 = C38 = -38 + 1000 que representa al -38, siendo que el -38 puede obtenerse a partir del 1~62.

N2.2 Suma de enteros representados por binarios naturales con bit de signo ..g =+
·43=- l
Al definir antes la convenci6n usa<la para representar m1meros binarios enteros (''INTEGERS"), se vi6 que uno de sus objetivos
era poder sumarlos como binarios naturales, a::;f los circuitos desarrollados para estoS'sirvan tambien para los primeros.
A los fines did{ cticos convicne comparar lo que sigue con lo desarrollado antes en N2.1 para enteros decimales.
Re2..lizar~.mos e:1 Lina.riv Je 8 bi\; (formato 8) las ~ ~guie~,tes S'.lmas de "Integers" pl .•1teadas en decimal: Es ti
represe1
a) (+8) + (+43); b) (-8) + ( +43); c) ( +8) ·i- (- !3); d) (-8) + (-43) ·n

a) Simza de positivos (Con "papel" :: ~quiet.! .:.igniC:::ar c6mo s ~rfa lu ~uc . usanjo simbolos + y - en un papel) 1100111
Papd UAL lustific
C+ s0 ) = c+IOOO) = 00001000 ;1oooooc
+ (+43 0 ) = + (+101011) = + 00101011 32 16 2 1
, tlOIOlC
00110011-7 +110011 = +51D Verificaci6n: +51 = (+8) + (+43
(-1010
En este caso como la representaci6n de cada positivo es el mimero natural que es la magnitud del mismo con el bit de signo 0 a su (!11001
izquierda, en esencia estamos sumando dos numeros naturales, obteniendose como resultado utro numero natural que tambien tiene gn , b), que 1
cero a su izquierda, el cual representa el + 110011 = +51 D· En negrita aparece la cuenta que realiza la UAL. · otro exo 4
b) Sumu de numeros de signJ opuesto con resultado positivo 1-110011
-8 0 =-I 000 = -00001000 == 11110111 + 1 = 11111000 (conforme a los 4 pasos antes inJicados) j'---
! Ger
j .
+43D = +101011 = 00101011 conforme a lo visto antes para n = 8 jlllagmt1
Papel UAL Justificaci6n ]Suma qi
-8 = -1000 - 11111000 248 ~ = 100000000 + f-1000) =256 + (-8) ltl sis
+43= + 101011 =+00101011 = '.!56 35 = +(+101011) = (+43) l

291 = 00100011 - JOOQOOOOO T 00100011::;: 100000000 + (-1000) + (+101011) ~


··· ................ - :········· . . . . ~-..........,..---······· __..,, · , .1--Los
De esta forma, sumando los numeros naturales 1111 ~000 y 0010C911 que reprc:-:-ntan a 1-1000) y (+101011) se obtiene el numer~ l·n
natural 1001000011. Si descartamos cl uno de 100100011, qu~da 00100011. Una subruti9ici'para visualizaren base diez en panta!lael i(' e1 or,
resullddo 00100011, por tener este bit d~ sign::> cero, lo considerara p0sitivo, y su magni'tud Ia determinarfa asf: 1~mo s
32 21
00100011 = +35 Vcrificaci6n: +35 = (-8) + (+43
c Ul-11
--·- ~por lo tanto, mediant~ w~z swna de binarios naturales se pueden sumar binarioss enteros, con la simple correcci6n de descartar el uno fuera
'~: formato, co mo se JUSt!f.!.C:3:~l'!.~erecha. Es~o-~, al _h~~~ 1111_ 1_()_()_0 + O_()_l()_()_Ql_l = 1001000011, puede corisiderarse que se es ta hacienda
l1lX)OOOOOO + (-1000) + (+101011), siendo que 11111000 = -1000 + 100000000 contiene el -1000 excedido en 100000000 (modulo).
jEste exceso pas6 al resultado 1001000011, siendo facil de restar descartando el uno extrema izquierdo del rnismo.
l
+ l()Q) Jc) Suma de numeros de signo opuesto con resultado negativo
que se 1..43 == -00101011 = 11010100 + 1=11010101 (conforme a los 4 pasos antes indicados)
iba Pape! UAL Justificaci6n
22
· +1000 = 0000 I 000 =
, 8 ::: = (+ 1000) = (;-8)
~43== -101011 =+11010101 t:: 213 = +1oooooooo+c-101011) =256 + (-43)
iendo I 10 111 0 l = I Q? 000000 + (-I 000 11 ) = 100. 000000 + (+ l 0 00) + (:_ 1O1OI 1)
221 ··15-6--- .........-.1.i~----· _.-"
(-30)
lDe este modo, sumando las m1meros naturales 00001000 y 11010101 que representan a (+1000) y (-101011) resulta el mimro
ene el inatural 11011101 que tamhien, co mo se ha visto, por empezar con uno puede rep res en tar un entero negati vo: 11011101 -X =
liu magnitud X se calcula (ver problema inverso) como -X = -(00100010 + 1) = -100011 = -35
. }ESto es, dado que 11011101 = -X + M = -X + 100000000 resulta X = 100000000- 11011101, y se calcula como (00100010 + 1).
{Bntonces, en el 11011101 = -100011+100000000 esta incluido el -100011 excedido en 100000000. Verificaci6n: (+8) + (-43) = -35

~caci6n: ~
Al hacer 00001000 + 11010101 1IO11 IO1, puede considerarse que se esta haciendo I 00000000 + (+1000) + (-10IO11 ),
!1iendo que 11010101 = -101011 + 100000000 contiene el -101011 excedido en 100000000.
'Este exceso pasa al 11011101 =
-100011+100000000, que es el complemeDto de 100011, sin que se necesite descartar
el uno como en el caso b ); pero para ha.liar el resultado (-100011) se debe proceder como se hizo mas arriba.
1000
(-S Por lo tanto, el exceso 100000000 de la representaci6n 11010101 del -101011 esta incluido en el resultado 11011101 = c 100011 que
ativ~ Jrepresenta el -100011, que tambien puede considerarse que forma parte del 11011101.
00 de f
en el J~) Suma de nega,tivos
Pape! UAL Justificaci6n
=+ -1000= 11111000 =
.g = l 00000000 + (-1000)
-43=-101011= 11010101 = . ,. llOQ.!)Ol ,= + 100000000 + (-101011)
ivos JQQl!.Q.1=100000000+ 11001101=1OO~Q.Q~OO+1o.ooq.~000+(-110011)=_~Q0000000+.~90000000+(:1OOO)+i.:-10101 l)
lt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -· ··--~---- ..............._...~-----·---······ ____.,,.

Este caso combin? b) y c), puesto que se descarta el uno fuera de formato y el resultado indicado con una llave (11001101)
=
Irepresenta un negativo, por tener bit de signo uno: 11001101 -X, cuya magnitud X se halla como en el caso c). Esto es:

!1001101
3216
=-X = -(00110010 + 1) = -00110011 = -51
21
Verificaci6n: (-8) + (-43) = -51
'

lustificaci6n: Al sumar 11111000+11010101=111001101 (en negrita se distingue el bit de signo), puede suponerse que se esta·haciendo:
100000000+ 100000000+ (-1000) + (-101011), siendo que 11111000= -1000 + 100000000 contiene el -1000 excedido en 100000000, y
11010101 = -101011 + 100000000 contiene el -101011 excedido en l<XX){)()()()(). Resulta que al sumar 40s negativos (-1000) y
(-101011), mediante los mimeros naturales que los representan (11111000 y 11010101) puede considerarse que en el resultado
a su ·(111001101) es ta el negati vo (-110011) que es el resultado buscado excedido en 100000000 dos veces. Puede su ponerse co mo en el caso
e un
b), que uno de los excesos es el 100000000 de 111001101 = 100000000 + 11001101, el cual sc corrige descartando el uno de 111001101. El
otro exceso de 100000000, coma enc), puede considerarse incluido en el 11001101 = C 1HxHJ = -110011 + 100000000 que representa al
-110011 = -51, siendo que el -110011 puede obtenerse a partir del 111001101. "-

f GeDeralizacioD: como el numero binario natural que representa un binario negativo es el complemento de su
lllagnitud, siendo esta igual al binario negativo excedido en el modulo, resulta que este exceso pasa al resultado de la
. iuma que hace la UAL. Dicho exceso puede aparecer: a) como un UDO fuera de formato que se descarta;
b) como formando pa.rte del res.ultado si es negativo;
~ si se suman dos negativos resultan dos excesos, uno de los cuales es el uDo fuera del formato que siempre se descarta,
y el otro forma parte del resultado negativo.

ero l Los ejemplos dados permiten confirmar que con la convenci6n del complemento se pueden sumar dos numeros enteros
a ei len el orden que han sido dados, sin necesidad de determinar en ca.so de tener signo opuesto, cual tiene mayor magnitud
!(como se hace con papel y lapiz), ni tener que restar el mayor del menor, siendo que el resultado tiene el signo del mayor.
c Ul-12
,... !
I
l
I ejemf
---JV.--S--Resta-de binarias enieros con bit de signo -R+:
Los m1meros binarios con bit de signo por ser m1meros naturales tambien se restan como si fueran binarios naturales po
lo que es importante repasar el procedimiento de restar naturales mediante el metodo de sumar al minuendo el complern'ent0r b) Re
al modulo del sustraendo, tratado en SU implementaci6n en el Apendice I de la Unidad 1 de esta obra, y tambien mas e
detalle al comienzo de este complemento, en "Resta de numeros naturales sin pedir prestado, ... " - n II i) Cas

Esto es, cuando la UAL (circuito preparado para sumar o restar binarios naturales) recibe una orden de restar, al· -A=_: I
minuendo siempre le suma el m1mero que resulta de invertir cada bit del sustraendo, y ademas en la misma operaci6n sum j -B=:
un uno como tercer sumando. Si le llega coma sustraendo un m1mero que empieza con un uno, para ella sera un nti.mer~ 1
natural, sin la posibilidad de "darse cuenta" que es un numero con bit de signo uno, proveniente de complementar anterior-
mente (en la traduccion de decimal entero a binario signado) la magnitud de un numero negativo en el formato dado.
I
OOlOOI
Igualmente tampoco se "da cuenta" si el minuendo representa un negativo. Eso solo "lo sabe" el programa que orden6 Ja l
resta, y que de ser necesario interpretara e] resultado como un mimero con bit de signo si se lo debe imprimir o visualizar J 111 l
como un numero decimal entero. 00 I(
+
En lo que sigue, realizaremos distintas restas con los numeros usados para las ~ umas de enteros recien vistas.
Cuando se indica "Memoria" se quiere hacer alusion a los numeros supuestos 1. ,1 memoria que se quiere restar, luego
de haber sido traducidos de decimales enteros a binarios con bit de signo, siendo que si un binario que representa a un
decimal negativo empieza con bit de signo uno, debe suponerse que antes se invirtieron los bits de la magnitud del binario Se
negativo y que luego se sumo uno. La indicaci6n "UAL" se refiere a la suma que hace la UAL para efectuar la resta de comple
una copia de los m1meros que estan en memoria. Vale decir que "Memoria" se refiere a numeros binarios resutantes de al m6di
una traducci6n de numeros decimales a binarios hecha (por una subrutina) en un proceso anterior a la cuenta que hace OOlOIC
la UAL, originada en la ejecucion de una instruccion de resta que forma parte de un programa que se esta ejecutando
posteriormente a dicha traducci6n. La "Justificacion" solo tiene significacion te6rica. "Papel" se refiere a la resta con los ii) Cas
binarios simbolizados con los sfmbolos + y - con papel y lapiz. Todo lo dicho es importante para entender el proceso.
a) Resta de dos positivos: (+A)- (+B) -A=...:-
i) Caso en que A> B (Resultado R positivo)
-B==

Papel Memoria UAL J ustificacion


_+43 = +101011=00101011 = ,.,. = = +101011
tL =- +1000 =00001000 => + 11011
= 100000000 -1000
+R
= lOOOQOGOO + (+101011)-(+lOOQ.)
______ / , tR 110 l
oooc
+
00100011 = +100011 = +35 Verificacion: (+43)-(+8) = +35
Por lo tanto al hacer la suma en la UAL puede considerarse que se esta hacienda la resta de enteros dada excedida en
100000000. Puesto que 100100011=100000000 + 00100011 el exceso es el uno que esta fuera de formato (flecha punteada)
La
ii) Caso en que A< B (Resultado R negativo) resultac
Pape! Memoria UAL Justificaci6n - (- 10<
= +1000 UALd
+8 =- +1000 ~00001000 =
+43 = +101011= 00101011 => En
}11010101= Coo101011 ::: +100000000-101011
-R UALs
10000000 + (-110011) = 100000090 + (+I000)-(+101011)
se ve c
·····-············-~-R
pudien
11011101 =- (00100010 + 1) = - 100011 = -35 Verificacion: (+8)-(+43) =-35
Si en r
De manera generica: dado que los. positivos son los binarios naturales que representan su magnitud con uno o mas se desc
ceros a su izquierda: +A= A y +B = B, la resta de positivos (+A) - (+B) se debera realizar como la resta de naturales En cas
A-B,queenlaUALseefectuaracomo A+CB=A+(M-B)=M+A-B=M+(+A)-(+B)=M ± R dondeseve magni1
que la suma de naturales que hace la UAL equivale a hacer la resta de enteros pedida excedida en el modulo M, pudiendo en el c
ser el resultado positivo o negativo.
Si en magnitudes A> B (caso i), el resultado sera positivo (+R) y se suma a M, por lo que aparecera un uno fuera de formato, Nu
que se descarta para guitar dicho exceso M, dado que M es un uno seguido de tantos ceros como bits tenga el formato. me nos
Si A< B (caso ii) el resultado es negativo (-R), por lo que el resultado M- R = -R + M que arroja la UAL al hacer A +CB que us
debe ser un numero natural que empiece con uno (bit de signo 1), el cual es el complemento de la magnitud de -Rj ha teni
Entonces si se quiere determinar esta magnitud R, debe complementarse el resultado de la UAL como se hizo en e
1j

I c lll-13
----..1
lJ ejernplo ii). El exceso M (100000000 en nuestro caso) pas6 al numero natural que empi.eza co n uno, que es e I resu 1tado
----:'--l_R-+-i\1
J gen.eradc uor Ia UAL, e! cua! representa a
.I,, -'.
-R t -R
_""., ' ...,,.,
= -D ...... U\
- .&.'--I .J..'f.J..)~

naturales po :
complem'en r j b) Resta de negativos: (-A) - (-B)
mbien mas to J i) Caso en que A< B (Resultado R positivo)
en !
I Pap el Memoria UAL
de restar, al j -A=_:-8 =J-1000) ::J1111000 =C1000 =
eraci6n surna ii -B = -43 = (-!O ~O 11) = 110.1 ~!9L_~-~~~!~!!_ 00101011= C11010101= Cc101ou = CCB
a un m:imero 11} +
ntar anterior. · .
ormato dad 1 · 00100011 = +100011 = +35
0, i
Verificacion: (-8) -(-43) = +35
ue orden6
.
la / }' J usti·fi1cac10n:
·,
ro visualizar l I 1111000 = = I 00000000 -1000

stas.
--1f,I +oo1o1oI1o~ 010101l=C11010101= 10000000-11010101=100~0000-(lOOOd'OOOO-lOIOllO)
+
----'-----'---!....~-'----=...::.....:...:..
restar, luego -~ {~~~!-~OO 11
= ~-~~~~,OQ?..~.~ = = :~~-~~9000 + H 000)-(-10l011)
resentaaun ~------ ------------··---·--· .--+R
d del binario Se ha vuelto a repetir la suma de la UAL y se ha puesto de relieve que 00101010 + 1 = 00101011 = 100000000 - 11010101 es el
r la resta de 1 complemento al modulo del sustraendo 11010101 que entro a la UAL, siendo a su vez 11010101 = 100000000-101011 el complemento
esutantes de al modulo de la magnitud 10101 ldel sustraendo (- 101011)' de la resta originaria. representado por dicho natural 11010101..En definitiva,
ta que hace 00101011 =B es el complemento del complemento de 101011 =B, habiendo resultado (-1000)-(-101011) como (-1000) + 101011.
ejecutando
esta con los ii) Caso en que A< B (Resultado R negativo)
roceso.
Papel Memoria UAL
-A=_:-43 = (-101011): 11010101 =C101011 =
-B = .=.!. =- (-1000)
+R =-11111000 = CIOOO _
. . . . ___________________ 00001000= C11111000 = Cciooo = CCB

11011101 =- (00100010 + 1) = - 100011 = -35 Verificacion: (-43) -(-8) = -35

J ustificacion
11010101 = = 100000000 -10l011
OOOOOllll + =1ooojoooo-(1 oo!}efoooo-i ooo)
+ 1 JVOOO 1000= C11111000 = 10000000 -11111000
+8) = +35 = 1?9000000 + (:-10101!)-(-lOOj))
11011101 = 10000000 + (-100011) =
excedida en ::::
~- .....................~.. -----·--·-·-------·-···· ___....-R
punteada)
La justificaci6n es semejante al caso i), siendo que dos excesos se anulan entre si, y el tercer exceso de 100000000 por ser el
resultado negativo de la UAL (11011101) esta oculto en el mismo, al igual que el resultado (-100011) de la resta originaria (- 101011) -
- (- 1000) el cual se saco a luz al hacer 11011101 =- (00100010 + 1) = - 100011. En ambos casos se verifica que la resta que hace la
UAL de los naturales que representan a los negativos, es la resta de negativos originaria excedida en el modulo 100000000.

Enforma generica: (-A)- (-B) se debera realizar como la resta de naturales CA- CB= (M-A)- (M-B) queen la
UAL se efectuara como CA+ CcB = (M-A) + [M- (M-B)] = (M-A) + (-B) =M +(-A)+ (- B) = M ± R donde
se ve que la suma de naturales que hace la UAL equivale a hacer la resta de enteros pedida excedida en el modulo M,
pudiendo ser el resultado positivo o negativo.
43) = -35
Si en magnitudes A< B, el resultado sera positivo (+R) y se suma a M, por lo que aparecera uri uno fuera de formato, que
uno 0 mas se descarta para quitar dicho exceso M, dado que Mes un uno seguido de tantos ceros como bits tenga el formato.
e naturales En caso que A > B el resultado es negativo (-R) y el resultado M - R que genera la UAL es el complemento de la
onde se ve inagnitud R del resultado, por 16 que si se quiere determinar R se debe hallar el complemento del resultado, como se hizo
, pudiendo en el caso ii), siendo que el exceso M pas6 al m.1mero natural que empieza con uno que representa el resultado.

de formato, Nuevamente debe ponerse de relieve que la UAL para calcular - (-B) no hace en ningun momento "menos por
mate. menos mas", aunque en definitiva suma la magnitud de B como numero positivo, cumpliendose dicha regla algebraica
cer A+CB que usamos para operar con papel y lapiz. Para ver mas claro que ocurre, se debe tener siempre presente el proceso que
d de -R ha tenido lugar antes que opere la UAL, la cual en este caso hace una resta cuando una instrucci6n para restar asf lo
hizo en el
c Ul-13
ejernplo ii). El exceso M (I 00000000 en nuestro caso) pas6 al numero natural que empieza con uno, que es el resultado
a-tur-al-es-.-po~J-.-""'R~!~}4-ggnerado-Por-la.UAL,-el cual representa a -R ( -R = -R + M).
1
omplern' r b) Resta de negativos: (-A) - (-B)
ent0 ·
bien mas' i)Caso en que A< B (Resultado R positivo)
en
Papel Memoria UAL
de restar, al -A==....:-8 = (-1000) :: 11111000 = C1000 =
nci6n sum.a -B = -4 3 = (-l 01-0 11) =l 10.1 01 01 = C10Io11
+R -------------------- 00101011= C11010101= CCI010n = CCB
un nurnero
tar anterior-
mato dado. 00100011 = +100011 = +35 Verificacion: (-8) -(-43) = +35
e orden6 Ia Justificacion:
0
11111000 =
visualizar = 100000000 - I 000
00101010'L +
~I + 1 JUDIoIo11=C11010101 = I 0000000-11oio1o1=1 oo<}t"oooo-{1oooj(oooo-ioio 110 >
as. • -----------"-------_.:...
estar, luego f
senta a un I{~-~!- ~ ........... -------~-~~~-~~gooo
+H 00~+-Rl
OIO 11)
del bin · . .
ano 1 Se ha vuelto a repetlf la suma de la UAL y se ha puesto de reheve que 00101010 + 1 = 00101011 = 100000000 _ 11010101 es el
1
la resta de complemento al modulo del sustraendo 11010101 que entr6 a la UAL, siendo a su vez 11010101=100000000-101011 el complemento
utantes de 'dul d 1 . 101 1 . . . . .
a que ha al mo o e a magrutud 0 ldel sustraendo (- 101011) de la resta ongmana. representado por dicho natural 11010101..En definitiva,
ce 00101011 =B es el complemento del complemento de 101011 =B, habiendo resultado (-1000)-(-101011) como (-1000) + 101011.
jecutando
ta con los ii) Caso en que A< B (Resultado R negativo)
ceso.
Papel Memoria UAL
-A=_:-43 = (-101011): 11010101 = C101011 =
-B= -8 =- (--1000) =11111000 = C1000
+R -------------------- 0000 l 000= C11111000 =Cc1000 = CCB

11011101 = - (00100010 + 1) = - 100011 = -35 Verificacion: (-43)-(-8) = -35


Justificacion
11010101 = = 100000000 -101011
00000111 'L +
+ If 0001 OOO=C11111000 = I 0000000 -11111000 = 1oooj(oooo-{100¢0000-i ooo)
8) = +35
11 0 111 01 = 10000000 + (-1 000 11 ) = = 1o_qoooooo + ti o 1o1 !)-(-I OOJ))
cedida en
unteada)
""·······-······-~ ........................ - .--'--R.

La justificaci6n es semejante al caso i), siendo que dos excesos se anulan entre sf, y el tercer exceso de 100000000 por ser el
resultado negative de la UAL (11011101) estaoculto en el mismo, al igual que el resultado (-100011) de la resta originaria (-101011)-
- (- 1000) el cual se sac6 a luz al hacer 11011101 =-
(00100010 + 1) = - 100011. En ambos casos se verifica que la resta que hace la
UAL de los naturales que representan a los negatives, es la resta de negatives originaria excedida en el modulo 100000000.

Enforma generica: (-A)- (-B) se debera realizar como la resta de naturales CA- CB= (M-A)- (M-B) queen la
UAL se efectuaracomo CA+ Ccs = (M-A) + [M- (M-B)] = (M-A) + (-B) = M +(-A)+ (-B) = M ± R donde
se ve que la suma de naturales que hace la UAL equivale a hacer la resta de enteros pedida excedida en el modulo M,
3) = -35 pudiendo ser el resultado positivo o negativo.
Si en magnitudes A< B, el resultado sera positivo ( +R) y se suma a M, por lo que aparecera un uno fuera de formato, que
o 0 mas se descarta para guitar dicho exceso M, dado que M es un uno seguido de tantos ceros como bits tenga el formato.
aturales En caso que A> B el resultado es negativo (-R) y el resultado M - R que genera la UAL es el complemento de la
de se ve magnitud R del resultado, por 16 que si se quiere determinar R se debe hallar el complemento del resultado, como se hizo
udiendo en el caso ii), siendo que el exceso M pas6 al mimero natural que empieza con uno que representa el resultado.

ormato, Nuevamente debe ponerse de relieve que la UAL para calcular - (-B) no hace en ningun momenta "menos por
to. menos mas", aunque en definitiva suma la magnitud de B como numero positivo, cumpliendose dicha regla algebraica
A+CB que usamos para operar con papel y lapiz. Para ver mas claro que ocurre, se debe tener siempre presente el proceso que
de -R. ha tenido lugar antes que opere la UAL, la cual en este caso hace una resta cuando una instrucci6n para restar asi lo
o en el
C Ul-14

orde~a. Esta instrucci6n forma ~arte de u?~ supuesto progra~ a que se e~t~ eje~~ta_~d~: Per~ ~ntes de ~u~ este se ejecute,
I
--+-·"'"'e_,_l...,m~1~sm
1
......o.....debe...estar-en-memom1 y tarr..b!en lcs datos que e1 procesara aurante su e1ecuc10n. Esto ultimo supone, por
J
UJ
,JI D
.n.

e) a(
ejemplo, que cuando los datos fueron tipeados en base diez coma numeros enteros, el programa que los traducira a
combinaciones binarias esta preparado para traducir cada entero tipeado en el numero binario natural qu~ lo representa.
-8 :
Sise tipea en base diez (alto nivel) un entero positivo, quedara en memoria traducido como un binario natural (bajo nivel)
+43 =
que empieza con un bit cero; y si se tipea un entero negativo quedara en memoria como un binario natural que empieza
con bit uno, cuyo valor (incluido dicho uno) es el complemento de la magnitud del negativo tipeado (para obtenerlo, a esta
magnitud pasada a binario se le invierte cada bit, y al numero asi formado se le suma uno, de la forma vista).
El parrafo anterior se refiere a la traducci6n (por media de una subrutina para enteros) de enteros en base diez como la
que se supone que ha tenido lugar en los ejemplos anteriores, de los numeros ±8 y ±43 a los correspondientes binarios
naturales con bit de signo cero 6 uno que los representan en memoria, indicados en la columna "memoria". Esta
traducci6n, se reitera, es realizada por un programa traductor antes de la ejecuci6n del programa que procesara estos Justific
datos, el cual en el momenta de la traducci6n no se sabe cuando se ejecutara. corespor
Cuando el programa procesador se ejecute, cada vez que una instrucci6n del mismo ordena una resta, el hardware de la UCP esta excedid~

proyectado para que la UC ordene a la UAL que haga una resta, para lo cual la UAL sumara al minuendo el complemento al represen1
modulo del sust:raendo. Por ejemplo, si el sustraendo es 11010101, la UAL "no sabe" si provino de la traducci6n del Demar.
decimal natural 213, 6 si se origin6 al traducir el entero -43 = -00101011=11010100 + 1=11010101. efectuai
Ya sea en uno u otro caso le llegara como sustraendo el 11010101, al cual para- restarlo invertira cada bit y sumara uno a fin de naturale
complementarlo: 11010101 => 00101010 + 1=00101011. Si el programa procesador esra trabajando con enteros, debe supo-
nerse que 11010101 provino de la traducci6n del -43, para lo cual un programa traductor (software) tuvo que haber ordenado
la inversion.antes indicada para obtener el 11010101 (la UAL no lo sabe), y luego durante la ejecuci6n de una instrucci6n de
resta, ta UAL (hardware) realiza una nueva inversion y suma uno, obteniendose nuevamente 00101011 a partir del 11010101. N.4
~'%=i~'.:"$.~~'!;:::~-::'":::.:;~

Entonces, para hacer por ejemplo (-A) - (-B) = (-8) - (-43) prirnero un programa traductor represent6 en memoria (-8)
1. Exp
y (-43) como los binarios naturales 11111000 y 11010101; y luego, en otro momenta, cuando una instrucci6n de resta del exec
programa que realiza esa resta ordena realizarla, para concretarla la UAL volvio a invertir los bits de 11010101 y le sumo uno,
2. Exp
resultando 00101011, como se hizo en el ejemplo d).
com
Todo sucede como si en definitiva se.. hubiese hecho -(-43) = 43, aunque en realidad primero por software se tradujo oper
el (-43) = -00101011 a 11010101, ya posteriori la UAL para hacer la resta indicada lo convirtio en 00101011 3. Dad
aritrr
c) Resta de un positivo menos un negativo (no importa la relaci6n de sus magnitudes, el resultado sera siempre positivo) 4. Rep1
Papel Memoria UAL 5. Su pc

_j8 =_(+1000) =_00001000 = 6. l,Cu~

-=.±1.= (-101011) = 11010101 => 7. Para


+R numf
00110011 = + 51 Verificaci6n: +51 = (+8) - (-43)
8. Reali
J ustificaci6n
comi:
00001000 = =(+1000) con 11
00101010} 43 256 213 + 25RJi 43 9. Para'
+ 1 00101011=C11010101=100000000-11010101=10oop'oooo-(IOOOyvOOO-IOIOll)

-
00110011 =
~--------~~~~~~__;,~~~~~~----+R
----
= (+1000)-(-101011)

En primer Iugar observerse que la UAL ha realizado (+1000) - (-101011) como 00001000 + 00101011 o sea en
1-0. Dada
sea n
a) (1
11. Para I:
definitiva ha sumado dos positivos, como si algebraicamente se hubiera hecho "menos por menos, mas" aunque un suma,
computador jamas hace el producto de dos signos, sino que siempre la operacion (suma o resta) ordenada, Y de 12. Idem
hecho d~ la representaci6n de los m1meros resulta como si se hubiese hecho tal producto, como se hace con papel y lapiz. en -qm
Justificaci6n de porque los binarios enteros se restan como si fueran binarios naturales: es muy semejante a la realizada 13. Efectl
en los casos b) con sustraendo negativo, pero como el minuendo es positivo, no aparece el resultado excedido en 100000000., verifi- "menc
candose que al hacer la suma en la UAL corespondiente a la resta de los binarios naturales que representan a (+1000) - (-101011) operac
tambien se esta hacienda la resta de enteros pedida.. 14. Justifo
sumas
De manera generica (+A) - (-B) se debera realizar como la resta de naturales A- CB= A- (M - B), queen la UAL se aparec
efectuara como A+ CcB =A+ M - (M-B) = M -M + A+ B =(+A) - (-B), donde resulta que la suma de naturales de
15. Efectu
la UAL equivale a hacer la resta de enteros pedida, siendo Mel modulo. concm
suponi
---------------------------.-
-
C Ul-16

16. Si en base dos, formato 8, para magnitudes se ordena realizar 37 - 120 verificar que ocurre con el resultado, y si no es el
-----~.n:ecto,.-aque sedebe.elkL Idem si pm-a e:u.tervs Se urdena restar (+37).::... (+120).
17. Suponiendo que la UAL realiz6 la suma 00001000 + 11010101, indicar: a) que magnitudes sumadas en base diez, y b) que
numeros enteros sumados en base diez pueden originar indistintamente dicha suma, y verificar que el resultado de la UAL Su ii
pasado a base diez esta bien en ambos casos .. (Esta cuenta y las siguientes ya se han realizado antes para enteros).
Ell as
18. Idem para las sumas (11111000 + 00101011) y (11111000 + 11010101). Cero
apan
~9. Suponiendo que la UAL realiz6 una resta mediante la suma 11111000 + 00101010 + 1, indicar: a) que magnitudes restadas en
base diez, y b) que numeros enteros restados en base diez pueden originar indistintamente dicha suma en la UAL, y verificar que
el resultado de la UAL pasado a base diez esta bien en ambos casos "EN
20. Idem para las siguientes sumas hechas por la UAL para restar: (00001000 + 11010100 + l); (11111000 + 11010100 + I).
....
(00101011 + 11110111 + 1); (11111000 + 10000100 + 1). (Esta ultima suma en la UAL no fue ejemplificada anteriormente) IF +
ELSl
Respuestas de algunos ejercicios planteados
3 100000000 - 01000111 4 1111111110110010 5 0000000010110010 6 2 bytes
7 La maxima magnitudes 4.294.967.295. El mayor entero positivo es +2.147.483.647 y el mas negativo es -2.147.483.648
32
Por ejemplo, 2 = 2 10 x 2 10 x 2 10 x 22 == 103 x 103 x 103 x 4 == 4000 x 106 siendo 2 2 = 1024 == 1000 = 103
8 a) 00096 + 00180 = 00276 = +276 b) 00096 + 99820 = 99916 =-84 c) 999094 + 00180 00084 +84
d) 99904 + 99280 = 99724 -276 =
9
10 a) · 00010010 + 01100110 = 01111000 = 120 b) 0001001O+1Ob11010 = 10101100 =-84
=
c) 11101110 + 01100110 01010100 = 84 =
d) 11101110+10011010 10001000 =-120 9,
11
12 La verificaci6n no resulta en formato 8 por que la maagnitud del resultado supera la maxima para ese formato.(+127 y -128
respectivamente (situaci6n de "overflow" a tratar). En cambio el resultado concuerd~ con el valor esperado en formato 16.
-- -
13 a) 1010110 = -84 b) 01111000 = 120 c) 10001000 = -120 d)'Ol010100 = 84 I

14
15 10010110 + 11011010 + 1 = 101110001; 01110001 = 113 (siempre se descarta el 1 fuera de formato en el resultado de la UAL)
(+150)- (+37).no se pued~.hacer en formifo 8 para signados, pues para representar +150 se necesitan por lo menos 9 bits. modo
16 Con magnitudes no es factible hacer una resta si el minuendo es inenor que el sustraendo. El resultado como numero natural no THEN
tiene sentido. En cambio puede efectuarse la resta de enteros indicada, y su resultado sera correcto en formato 8. En cas
17 Cuando la UAL suma dos numeros co mo 00001000 + 1101010 l, ninguno de elfos sufre ningun cambio, como ocurre con el sigue i:
sustraendo en la resta .. a) Si dichos numeros b!1iarios naturales provienen de la representaci6n de una suma de magnitudes que
- por ejemplo fue tipeada en base diez, simplemlnte determinando que numero en base diez es cada uno, resulta 00001000 = 8 y
Por lo
11010101 = 213, siendo que el resultado de la suma en la UAL interpretado como magnitud: 11011101 = 221 es 8 + 213. secuern
b) Si dichos binarios natural es representan a enteros en base diez, interpretandolos de la forma vista resulta . 00001000 = +8 y el valo:
11010101 = -(00101010 + 1) = -101011 = -43 , siendo el resultado 11011101 = -(00100010 + 1) = -100011 = -35, o sea pasarc
que la suma de enteros (por ej. tipeados) que produce la misma suma en la UAL (00001000 + 11010101) es (+8) + (-43) =-35
Natura
18
19 Si la UAL hizo 11111000 + 00101010 + 1 = A+ CB, siendo A= 11111000, es CB= 00101010 + 1 = 00101011, por lo que el El indi1
sustraendo B que entr6 a la UAL fue B = 11010100 + 1=11010101. Entonces la resta que hizo la UAL fue A - B = 11111000 - una co1
- 11010101. a) Si estos binarios naturales representan magnitudes es 11111000 = 248 y 11010101 = 213, y si del resultado de Junto c·
la UAL 100100011, se descarta el uno fuera de formato queda 00100011 = 35. 0 sea que la resta de magnitudes 248 - 213 = 35 Entre e
puede originar en la UAL la suma 11111000 + 00101010 + 1. b) Si dichos binarios naturales representan a enteros, l no; e 1 1.
l

interpretandolosdelaformavistaeslllll000=-(00000111+1)= -1000= -8y11010101::-(00101010+1)= -101011 lo desbc


= -43, por lo que la resta de enteros (-8) - (-43) tambien origina 11111000 + 00101010 + 1 en la UAL, y el resultado de esta j coincid
suma sin el uno de la izquierda, interpretado como entero es 00100011 = + 35 = (-8)- (-43). j queen 1

Los
20 Si la UAL hizo (00001000 + 11010100 + 1) es CB= 11010100 + 1 = 11010101 por lo que B = 00101010 + 1 = 00101011. 1
Luego fue A- B = 00001000 -00101011. a) 00001000 = 8 y 00101011 = 43 por lo que la resta de magnitudes 8 -43 no
i una ins
J dec1.d.Ir
1
se puede hacer (resultado 11011101=221 no tiene sentido en magnitudes). b) 00001000 = +8 y 00101011 = +43, por lo que la l .
resta de enteros (+8) - (+ 43) tamabien origina (00001000 + 11010100 + 1) en la UAL, y el resultado de esta suma interpretada l eJecutar
como entero es 11011101 =- (00100010 + 1) = - 100011 = -35 = (+8)- (+ 43). f
I sumas y
En 1
Si la UAL hizo (11111000+10000100+1). es CB= 10000101, por lo que B = 01111011, o sea A-B = 11111000-01111011.
a) Para magnitudes 11111000 -01111011 = 248 - 12 = 125 = 01111101 (resultado de la UAL descartando el uno izquierdo) '~
b) Para enteros 11111000 =- (00000111 + 1) = - 1000 = -8; 01111011 = +125; por lo que la resta (-8) - (+ 125) = - 133
lnumem
1

tambien origina (11111000 + 10000100 + 1)., pero el resultado 01111101 = + 125 no tiene sentido para enteros pues el
t2._peran 1
verdadero resultado (- 133) supera el maximo - 128 representable en formato 8 (situaci6n de overflow a tratar).
l
- el
~ fi5 lndicadores_de_estado szvc { f!ags 1)
11 1
CUl-17

que
AL 1Su importancia: En el capftulo 1.9, figura 1.35 de la "PC por Dentro" se muestra el mecanismo de las instrucciones de salto.
) Bllas tambien se tratan en detalle y apar~cen forman~o parte de secuencias de instrucciones en la U nidad "Assembler desde
1Cero . Supongamos que en un lenguaJe de alto mvel formando parte de un programa para procesar niimeros enteros
11

• aparece por ejemplo una estructura como:


en
ue
lI ENTEROS"
1
1
El diagrama conceptual que sigue permite apreciar, en primera
instancia, c6mo un procesador podrfa llevar a cabo con las ins-

IiF' ~A~· ~B· TFIEN° h~~;; .~~;;c~di~i;~~to


0

1). I" trucciones que el puede ejecutar lo que ordena la estructura IF.
l ELSE hacer "procedimiento 2" (En grisado se indica la traducci6n de esta estructura)
J .................................. .
En el mismo se supone que las instrucciones de
qo maquina 11 a In que el procesador ha ejecutado

I
48 A o ejecutara son la traducci6n de las lfneas de
0:0 I
l programa anteriores al IF, simbolizadas con pun-
1- - .J - -. tos suspensivos, al igual que las que le siguen.
84
1j ... - In- -' A fin de cumplimentar el IF, para determinar si
+A < +B debera existir una instrucci6n supuesta
ln+l que ordene la resta A - B. Si el resultado
de esta es negativo (bit de signo uno) es
suficiente para saber que +A < +B sin que
8 importe el valor concreto del resultado.
La instrucci6n de salto siguiente In+2 encerrada
.----- . en un rombo, pregunta si el bit de signo
._ - - - _I
-- - - -
I I
designado S del resultado anterior vale 1.
._ - - - _I
)

el
e
y
.
y
a
, Naturalmente la UAL es la encargada de indicar si el bit de signo S del resultado de la resta que efectu6 vale 0 6 1.
l El indicador de signo o "'flag S" es generado al mismo tiempo que dicho resultado, y tiene un valor que es simplemente
· una copia del valoar del ultimo bit de la izquierda del formato de n bits o posiciones del resultado.
e Junto con el flag S En cada operacion que realiza, la UAL genera junto con el flag S otros indicadores acerca del resultado.
Entre ellos ahora nos interesa: el indicador de resultado cero (flag Z), cuyo valor I 6 0 dice si el resultado fue cero o
no; el indicador de desborde u "overflow" (flag V) cuyo valor 0 6 I indica si el resultado de una suma de enteros entr6
o desbord6 el formato de la UAL, y el flag C de acarreo o "carry", cuyo valor I 6 0 en cada suma que realiza la UAL
coincide con el valor del transporte hacia la posici6n n+ 1 fuera del formato de n bits o posiciones de la UAL, siendo
queen cada resta de la UAL el valor de C es opuesto al valor de dicho transporte.
Los valores de los flags se guardan en el "Registro de Estado" (RE) de la UCP. Cada vez que la UC debe ejecutar
una instrucci6n de salto, segun por cual(es) flag(s) pregunta esa instrucci6n, leera su(s) valor(es) en el RE a fin de
decidir si se salta a ejecutar otra instrucci6n (cuya direcci6n permite determinar la instrucci6n de salto), o si pasa
ejecutar la instrucci6n que sigue a la instrucci6n de salto, como se representa en el diagrama visto mas atras.
En lo que sigue trataremos el significado y utilidad de cada flag, y ejemplificaremos cqmo se determina su valor en
sumas y restas realizadas anteriormente.
Como se vera, los valores de los flags S, V y Z intervienen en instrucciones de salto de programas que procesan
m1meros enteros, mientras que los valores de los flags C y Z corresponden a instrucciones de salto de programas que
operan magnitudes. Por el valor del flag Z pueden preguntar instrucciones de salto de uno u otro tipo de programas.
~--------------------------------------.-
c Ul-18
Indicador S de signo para enteros (Flag S):
------:S~1,·nu1rr1.,progrm-tnterpret~cel resliitaao de fa-tJAL como un numero natural que representa a un numero entero, el
-pamai
calcul
valor de S es el valor del bit de signo del resultado:
Conoc
S=O si el resultado es positivo por presentar bit de signo 0.
•pantal
S=l si el resultado es negativo por presentar bit de signo 1.
Ur
Si la UAL suma o resta dos numeros de n bits, el valor de S es pues el valor del bit extrema izquierdo del resultado
Ta
en el form.a.to de n bits, o sea el bit del resultado que estd en la misma posici6n que los dos bits de signo de los sumandos.
ipara 1

f- n ~ f-n ~ I rnagni
:...---
-8 = + 11111000 -8 = - 11111000 11111000 En
+43 = 0010IO11 +43 = 00101011 + 11010100
100100011 ~ R = 00100011 = +35 1 La
1J 1!1001101 ~ R = 11001101 =-51 UAL s
S=O C=l Z=O V=O JJ : emple:
S=l C=O Z=O V=O usan p;
sabe" ~
Junto con el flag S sedan Ios valores de los flags C, Z y V, a fin de que estos ejempios sirvan tambien en Ia medida que realiza
definamos, y para poner en evidencia que siempre la UAL genera los cuatro flags simultaneamente, dado que "no los pro
sabe" si el programa que se esta ejecutando es para enteros o para magnitudes. 'Ejempl

lndicador C de acarreo ("carry") solo para una suma de naturales (Flag C en la suma): Jndici
Cada vez que a una UAL -que opera con n bits o posiciones- se le ordena una suma (siendo que tambien suma
En
cuando se le ordena una resta) el flag C es el acarreo de valor 1 6 0 a Ia posici6n n+ 1, suponiendo que la suma continua.
posici6
f- n ~ f- n ~ : la resta
248 = + 1111 1000 8 = + 00001000 De est~
43 = 00101011 213= 11010101 sustrae
100100011 ~ 100100011::;: 291 0 110111 01 ~ 110 11101 =221 Eje1
jJ 1J f compar
C=l S=O Z=O V=O S=l Z=O V=O
"O"
Ex profeso se ha elegido la misma cuenta en la UAL ejemplificada para el flag S, a los fines que se verifique que si
un programa para magnitudes ordena sumar 248 + 43, cuando una instrucci6n ordene esta suma, la UAL realizara Ia
misma suma que si otro programa para enteros ordenara (-8) + (+ 43), dado que la representaci6n binaria deI 248 es la misma
que la del -8 , y la del 43 es identica a la del +43, entero positivo de magnitud 43. Si 1::
la izqui
Una aplicaci6n del flag C (tratado en un ejercicio de la Unidad 3 de esta obra) se da cuando se quiere sumar en una 5689.I:
UAL para 8 bits dos m1meros de 16 bits. Primera se suman los 8 bits de Ia mitad derecha de dichos m1meros, y Iuego los para afi
8 de la mi tad izquierda mas el acarreo de la mitad derecha hacia la izquierda (valor 1 6 0 del flag. C). I minuern
l
Otra aplicaci6n corriente se da en programas que operan con magnitudes. Cuando ordenan una suma, si C=l, por tratarse El n
de un uno fuera del formato de la UAL, en general se considera err6neo el resultado. El valor del flag C se guarda en el i hace c01
Registro de Estado, y por lo tanto puede conocerse su valor, y asi formar el resu.Itado correcto en 2 bytes de memoria. i "lo que
Pero esto no es muy practico, por lo que si C=l y el programa no lo considera, el resultado se supone err6neo, pues le d1ag Ca
=
falta un bit. Esto es, si en la suma anterior consideramos el uno fuera de formato, 100100011 291 es el resultado correc- Elv:
to, siendo que cualquier suma de naturales que haaga la UAL siempre estd bien si se tiene en cuenta ·el uno que esta a) Cm
fuera de formato (CUAL). Obviamente, si die ho uno el programa no lo to ma en cuenta, el resultado 00100011 esta mal. b) Cm
Es importante subrayar que la UAL es un circuito, que "no sabe" siesta sumando naturales que son magnitudes por que
Efec1
originariamente se tipe6 248 + 43, o naturales que representan a enteros, porque se tipe6 (-8) + (+ 43) 3 eomo en el ejemplo c)
que repr
anterior de la suma de enteros de signo opuesto. Puesto que la UAL hace la misma sunia en ambos ejemplos, los valores de · represen
los flags son los mismos. En esencia la UAL siempre suma (y resta) naturales, ya sea que representen magnitudes o enteros. la UAL:
Por tal motivo para la misma cuenta han sido determinados los flags para enteros y naturales, como ocurre en la
. resta de<
realidad, pues la UAL esta proyectada para generar ambos tipos, a fin de que pueda ser usada para los programas que sustraenc
operan con enteros y los que operan con naturales. estara ex
A su vez los programas interpretan un resultado de una u otra forma. Un programa para enteros esta preparado para
interpretar 11001101 como un negatvo. En caso de tener que convertir este numero a decimal (para mostrarlo en Dado qu
indicada,
3 do), toda
Lo anterior implica que las instrucciones para sumar y restar numeros naturales o enteros son las mismas Para el caso de definirse datos "reales",
existen instrucciones para operar aritmeticamente en punto flotante, siendo el coprocesador matematico el encargado de realizarlas, y no Ia UAL.
c Ul-19
pantalla o imprimirlo) al detectar que el numero empieza con el bit 1, generara el c6digo ASCII del signo menos. Luego
m,el ·,.'1lcul-ara-lamagrritud birraria del r!!ismo ha!lando su complemento a! m6dulc
'"" .....,., .L. '
J" a:~/ .rl,,..,,.,.m;T'lor;;
..L U'-"L ....... ..L..L..L.l...L.lJ."'4..L"-"
,,,,,,P:
'1.uv ri1:lrnprnt:lP0im~l
.lJ.~.&..J...1.-.&.V ............................. _ ...
2<:
_;_...

-Conocido este generara el c6digo ASCII de cada uno de los dfgitos que lo componen, de modo que puedan aparecer en
pantalla 0 papel, formando el numero -51.
Un programa para magnitudes interpretara 11001101como 205 asignando directamente los pesos 128, 64,, 32, etc.
act 0 Tambien ambos programas diferirdn en las instrucciones de salto involucradas, pues son distintos para enteros que
os.
naturales. No debe perderse nunca de vista que el tipo de datos definidos en Pascal, C, Basic, etc (integers ,
magnitudes, reales, etc) determina las instrucciones que el programa compilador deja traducidas en c6digo de maquina.
En sfntesis:

· La UAL en esencia opera con naturales. Pero como los binarios con bit de signo (provenientes de enteros) en la
51 . UAL se suman como naturales, y a fin de que las instrucciones de salto de los programas para rn1meros enteros puedan
: emplearse, de los cuatro indicadores citados SZVC -que genera la UAL luego de cada operaci6n aritmetica- SVZ se
: usan,,p~ra enteros, y CZ p~ra n~:urales, como se vera. CZ 6 SVZ pueden usarse solos o cornbina~os. La UAL "no
sabe s1 el programa en eJecuc10n es para enteros o naturales, y tanto la suma o la resta de ambos tipos de numeros las
que j realiza de igual forma. Luego de cada operaci6n que efectua, la UAL genera SZVC, y son las instrucciones de salto de
"no i las programas que se ejecutan, las que preguntan por el valor (0 6 l), de SVZ y CZ segun sea para enteros o naturales.

Ejemplos de utilizacion aparecen en las secuencias de instrucciones de la Unidad 3.

Indicador C solo para la resta de binarios naturales (Flag C en la resta):


ma En una UAL de formato n si se suman dos naturales, el valor de C es "lo que me llevo" si la suma contfnua en la
ua. posicion n+l. En la resta de naturales debe interpretarse que el valor de C es "lo que pido prestado" a la posicion n+l en
- la resta originaria de dos numeros naturales de n bits (no en la suma que hace UAL para restar) si la resta continuara.
; De esta forma, el flag C sirve en la resta de naturales para determinar si el minuendo es mayor o menor que el
sustraendo, sin importar el valor concreto del resultado, ni el orden en que se restan los numeros naturales.
Ejemplificaremos primero para restas de naturales en base diez una nueva forma de usar "lo que pido prestado", para
comparar naturales:
1
"O" <= 8520 "l" <= 2831
si 2831 8520
la 5689 4311
ma
Si la primer resta continuara hacia la izquierda del formato de 4 digitos, se "pedirfa 0 " a un supuesto quinto dfgito a
la izquierda del minuendo, lo cual es suficiente para afirmar que 8520 2: 2831 sin que interese el resultado correcto
na 5689. Del mismo modo en la segunda resta siesta continuara se "pedirfa "l" para que el 2 sea 12, lo cual es suficiente
os para afirmar que 2831 < 8520 aunque el reultado 4311 no interesa ni tiene sentido, pues para restar naturales el
minuendo debe ser mayor que el sustraendo.
se El mismo criteria puede seguirse para binarios naturales, pero como la UAL no resta "pidiendo prestado" como se
el hace con papel y lapiz, sino que las restas se realizan mediante sumas en la UAL, vamos a ver la relacion existente entre
a. "lo que pido" si la resta contfnua, con "lo que me llevo" en la suma que se hace para restar, que para dif~renciarlo del
le flag C antes definido para la suma que se hace para sumar, lo designaremos CUAL.
C-
El valor del flag C en una resta de binarios naturales A - B sera contrario a CUAL, y significara:
a
a) Cuando se "pide uno" prestado (C=l) si la resta continuara a la izquierda implica que A< B.
b) Cuando se "pide cero" prestado (C=O) si la resta continuara a la izquierda implica que A 2: B.
e
Efectuaremos las mismas restas antes realizadas en N.3 con los naturales 11111000 - 00101011 y 00001000 - 11010101
c)
que representaban las restas de enteros (-8) - (+43) y (+8) - (-43) respectivamente, y que ahora que dichos naturales
e
: representan magnitudes, son las restas 248 - 43 y 8 - 213, respectivamente. Como puede verificarse, las operaciones en
la UAL son identicas, por lo que volvemos a afirmar que la UAL "no sabe" si la resta que esta haciendo se gener6 en una
a
resta de enteros o en una de magnitudes, solo esta proyectada para que cuando reciba la orden de restar, invierta los bits del
e
sustraendo (empiece este con 1 6 0) y sume uno a fin de calcular su complemento al modulo, con lo cual el resultado
estara excedido en el m6dulo, exceso que si A 2: B aparecera en la UAL como un uno fuera de formato CUAL
a
n Dado que la UAL resta a naturales que representan enteros o a naturales que representan magnitudes de la misma form.!:!
indicada, sin saber si se trata de uno u otro tipo de representaci6n (el unico que lo sabe es el programa que se esta ejecutan-
, do ), toda vez que CUAL = 1, este uno fuera de formato siempre debe descartarse, sea para naturales o para e:nteros.
c Ul-20
.. TT.AT
Utl.L Restaoriginaria UAL
f- n ~ f- n ~ f- n ~ f- n ~
248 "O" <=_ 11111000 11111000 8 "l" <=_00001000 00001000
43 00101011 + 11010100 213 11010101 + 11010100
1 1
111001101 011011101
JJ JJ
CUAL=l ~ C=O S=l Z=O V=O CUAL=O ~ C=l S=l Z=O V==O
Conforme s.e vi6 para las restas de naturales, cuando hay un uno fuera de formato debe descartarse (sean estos naturales
que representan enteros o magnitudes, por lo que el resultado de la primer resta sera 11001101 = 205 = 248 - 43; y por
ser C=O implica que 248 ~ 43, pues si la cuenta sigue hacia la izquierda se pidirfa "O prestado".
El resultado de la otra resta 11011101 = 221 no tiene sentido para naturales, pues al ordenar hacer 8 - 213 se ha
intentado restar un numero menor de otro mayor. Aunque asf sea, puede establecerse que por ser C=l implica que 8 < 213
(suponiendo que nose conozcan esos valores), pues se pedirfa "l prestado" si la cuenta continuara hacia la izquierda.

En relaci6n con el valor adjudicado al flag C se verifica que es contrario al valor de CUAL, por lo que de esta forma (un
con el valor de CUAL obtenido de la suma que hace la UAL se conocera si "pido 0 6 l" en la resta originaria. sien

Demostraremos que siempre que la UAL hace una resta, lo que "se pide" si ella siguierra es contrario al valor de CUAL.
. Ve
Para ello, segun se trat6 en la resta de naturales, para hacer A- B la UAL hace A mas el complemento al modulo de B:
A + CB =A + (M - B) = M +(A- B) = 100 ... 0 + (A- B), dado que M para un forrnato n, es un uno seguida den ceros. dete

Si A~ B ("pido O"), es (A - B) = X ~ O; entonces 100 ... 0 +(A- B) = 100 ... 0 + X por lo que si a 100 ... O
se le suma X den bits,, el uno de 100 ... 0 se mantendra, correspondiendo en la UAL dicho uno a CUAL = 1. defi
Exi~
Si A< B ("pido 1") puede escribirse (A- B) = -(B - A); entonces 100 ·--. 0 +(A - B) = 100 ... 0 - (B - A), por
lo que si a I 00 ... 0 se le resta (B - A) resultara un numero sin el uno de 100 ... 0 por lo que en la UAL sera CUAL= 0.

La resta 248 - 43 es util para mostrar que el flag S no sirve para naturales. Podrfa pensarse equivocadamente que si
se restan dos naturales y el resultado es negativo, implica A< B. Sin embargo dicha resta arroj6 S=l siendo 248 > 43

Para las dos restas que hizo la UAL mediante una suma, junto con el flag C se dan los valores de los flags S, Z y V, a
fin de que estos ejemplos sirvan tambien cuando definamos Z y V; siendo .ademas que siempre la UAL genera Ios cuatro
flags simultaneamente, dado que "no sabe" si el programa que se esta ejecutando es para magnitudes o para enteros.

posi
SUIT.
sup1
Ent~~ces, Z=l significa "si, es cero" o es "cierto que es cero"; y Z=O "no es cero" 6 "es falso que es cero". asf t
Dado que el numero cero se representa igual para naturales o signados, el indicador Z puede usarse indistintamente paia 9 bi
detectar resultado cero en ambos tipos de numeros. trrn
Ahc
+(+43) = +00101011 + 0 = + 00000000 _ 43 = 00101011 00101011 rest
(-43) = 11010101 _Q_ = 00000000 43 = 00101011 + 11010100
proJ
100000000 000000000 1 rest
f-R=O~ f-R=O~ 100000000 que
f-R=O~ cier
Z=l C=l S=O V=l Z=l C=O S=O V=l Z=l C=O S=O V=l inst

La suma en la UAL de (+43) + (-43) serfa la misma que si se originara por los naturales 43 + 213, pues en ambos basl
casos al sumar los dos numeros naturales que los representan se obatiene el modulo, pues son complementarios. Par:
El resultado cero interpretado como representaci6n de un entero forma parte de los positivos, acorde con lo cual S=O. Un
En la resta es C=O pues CUAL =l. En los ejemplos dados al definir Sy C result6 siempre Z=O, pues resultado es "no cero".
tod:
...,

--- c Ul-21

O V:::o
aturales
3; Ypor

3 se ha
8 < 213
.
En las determinaciones anteriores del valor de V se supone que los operand-os se pueden representar en el formato
forma ''(un positivo debe estar representado por un natural con un bit izquierdo cero, y un negativo con un natural con bit uno
siendo que el overflow (no 6 si) se refiere a si el resultado se puede representar o no en el formato de la UAL. '
: Puesto que el valor de V se determina en funci6n de los bits de signo de los naturales que representan a enteros, el flag
CUAL. ' V es un flag exclusivo para enteros.
Observese que la UAL no pierde tiempo en calcular si el resultado supera l+Nmax I 6 l-Nmin Simplementa l.
ros. detecta overflow en funcion de los bits de signo de los operandos y del resultado.

0 ... 0 Las operaciones siguientes muestran que no existe ninguna relaci6n entre el flag C de naturales y el flag V recien
definido solo para enteros, dado que puede ser V=l y C=O, asf como V=l y C=l.
Existe una tendencia, que nose condice con la definicion dada para overflow, de designar con esta palabra el caso en que
A), por
en una suma de magnitudes sea C= 1. Si bien implica un uno fuera de formato, el resultado de dicha suma estarfa bien si
AL=O.
este uno es considerado por un programa para magnitudes: Pero ocurrre en la practica, como se indic6, que tale.s programas
que si no lo consideran, por lo que interpretan C=l como resultado err6neo. En una suma de enteros el valor de C no interesa.
3
+80 = + 01010000 = 80 -80 = + 10101000 = 176 -80 = IO 101000 10101000
yV,a
+90 = 01011010 = 90 -90 = 10100110 = 166 +90 = 01011010 + 10100110
cuatro
010101010 101001110 1
101001110
V= 1 C=O S=l Z=O V= 1 C=l S=O Z=O V= 1 C=O S=O Z=O
Interpretando los binarios naturales que reprresentan los enteros positivos (+80) y (+90) resulta que la suma de dos
positivos di6 por resultado un negativo (S=l) lo cual es suficiente para afirmar que el resultado es err6neo. Se ha intentado
sumar dos positivos -siendo que cada uno es representable en formato 8- pero el resultado que debia haber sido +170
supera a +Nmax = +127 en ese formato. Observese que para representar el +170 se necesitan 9 bits (+170 = 010101010),
asf este positivo tiene un cero como bit de signo., y si supuestamente se hubiera operado con los operandos representado en
e para 9 bits (en una UAL serfan 16) seria V=O, como puede verficarse. De esto se deduce que el overflow es un error por
truncamiento, puesto que en un formato mayor no ocurriria, siendo que los bits del resultado en el formato dado esran bien.
Ahora bien, la suma anterior de enteros tambien pudo haberse originado de la suma de magnitudes 80 + 90 para la cual el
resultado 10101010 = 170 es correcto, interpretado como m1mero natural por un programa para magnitudes. En cambio un
programa para enteros dado que 10101010 empieza con uno, lo interpretarfa como -(01010101 + 1) = -01010110 = -86,
resultado que no se condice con la suma de enteros ordenada (+80) + (+90) = + 170. Por tal motivo, este programa luego de
que una instrucci6n ordene una suma o resta, debe seguirle una instruccion de salto que pregunte si V=l, de modo que si es
cierto salte a un procedimiento preparado al respecto, y que en caso de.ser V=O el programa siga normalmente con la
instrucci6n siguiente a la de salto. Esta alternativa es semejante a la indicada en el diagrama anterior (rombo para S=l).
Igualmente en la suma (-80) + (-90), resulta que la suma de dos negativos di6 pQr resultado un positivo (S=O) lo cual
mbos basta para afirmar que el resultado es err6neo. Este, que debia haber sido · -170 supera a -Nmax = -128 en formato 8.
Para representar el -170 se necesitan 9 bits (-170=101010110), asf este negativo tiene un uno como bit de signo.
O. Un programa para enteros interpretarfa 01001110 como + 78 por empezar con cero, r~sultado obviamente errado.
ero".
En la resta (-80) - (+90) = -170 obviamente, como en la suma anterior, vuelve a ser V=l, y ello puede ocurrir en
toda suma que haga la UAL para restar, si en ella los operandos son de igual signo y el resultado es de signo contrario.
c Ul-22
--Det-erm,ip.££i6n .si un ep;tero es mayor o menor q!!.e -otrfJ aur:que el r~su!:tado de "la. resta sea 2rrado, ::sa:ra-dc Sy lr
Aunque la resta (-80) - (+90) arroj6 V=l y S=O (V -::P. S), igualmente puede determinarse si A ;e: B dado que S:::Q
implica queen la UAL se sumaron dos negativos y el resultado fue positivo. Por lo tanto, debi6 haber sido S=l, 0 sea
que a pesar de que se sabe que el resultado de la resta esta errado (V=l), podemos afirmar que el mismo fue un m1mero
negativo, con lo cual se deduce que es A< B. Efectivamente, se verifica que (-80) < (+90). Numeros a
Del mismo modo, si se hace (+80) - (-90) = +170 la UAL arrojarfa V=l y S=l (V = S), lo cual implica queen e!Ja
se sumaron dos positivos y el resultado fue negativo. Por lo tanto, debi6 haber sido S=O, o sea que a pesar de que se ..43 0=1101
sabe que el resultado de la resta esta errado (V=l), podemos afirmar que el mismo fue un m1mero positivo, con lo cuaJ 80=-000C
se deduce .que es A ;: :-: B. Efectivamente, se verifica que (+80) ;: :-: (-90).
Anteriormente se vi6 que si el resultado de una resta de enteros arroja V=O y S=l (V-:/:. S), como el resultado esta
=
bien yes negativo, impllica que minuendo < sustraendo, y que si en una resta de enteros resulta V=O y S=O (V S), dado
que el resuhado esta bien y es positivo, se infiere que minuendo ;: :-: sustraendo.

Por lo tanto, comparando los 4 casos descriptos, resulta, independientemente que el resultado este bien o mal, que:
si V = S sera siempre minuendo;::: sustraendo.
si V -:t: S sera siempre minuendo < sustraendo.

~5.1
i
'ffiW;Wl,~>;'i'i?;-;i,~'m~:ii

Cuadro final de interpretaci6n de los flags en la suma y en la resta:. q. Indic2


Suma d~ enteros: (±A)+ (±B) = (±R) Suma de naturales (magnitudes): A+ B = R '.2. Exp lie
V=O Resultado correcto (R =OK) C=O ("llevo O" si suma continua) Resultado correcto en la ;3. Des er;
si S=O resultado positivo (+ R). UAL y para un programa que opere con magnitudes.
si S=l resultado negativo (- R). C=l Resultado correcto en la UAL si un programa consi-
:4. Explie
V=l Resultado err6neo (R = £). dera C= 1 formando parte del resultado de la UAL JS. Exp lie
Resultado incorrecto si dicho programa no considera
C=l como parte del resultado de la UAL(caso tfpico) j
i6. lMedi
Z=l implica resultado cero (R=O)
Z=O implica resultado no cero (R;eO) Tambien implica que "llevo 1" si la suma continuarfa. ]7. Exp lie
siendo
El flag C no es para enteros; y su valor siempre se descarta Z=l implica resultado cero; Z=l implica resultado no cero
1--~~~~~~~~~~~~~~~~~~~~--;~~~~~~~~~~~~~~~~~~~~~~:s. Parat<
Resta de enteros: (±A)- (±B) = (±R) Resta de naturales (magnitudes): A- B = R misma

V=O es R= OK El valor de C nunca puede formar parte del resultado de la ;9. Para tc
si S=O resultado es + R ~ minuendo ;: :-: sustraendo UAL, pero sirve para conocer si A ;e: B (incluso si R = e). la misi
si S=l resultado es - R ~ minuendo < sustraendo C=O ("pido 0 prestado" si resta originaria continua)
j

V=l es R= E Iho . Para tc


entonces A;:::-: B, por lo que R =OK en la UAL l la misr
si S=O (debi6 ser S=l) ~ minuendo < sustraendo
si S=l (debi6 ser S=O) ~ minuendo ;: :-: sustraendo C=l ("pido 1 prestado" si resta originaria continua) :11. Para lz
entonces A < B, por lo que R = E para naturales. me nor
En general: si V = S ~ minuendo ;: :-: sustraendo l
El flag S de enteros no sirve para determinar si A ;e: B
i
I) par::
si V :I= S ~ minuendo < sustraendo
El flag V de enteros no es indicativo de nada para naturales II) para
Z=l (R=O) ~ minuendo = sustraendo
Z=O (R:;CQ) ~ minuendo :;{: sustraendo Z=l (R=O) ~ A=B 12. Para fo
Z=O (R:;CO) ~ A:;CB que cor
El valor de C no interesa para enteros y nunca puede
formar parte del resultado de la UAL 13. Realizz
14. Enfum
'15. Se tiern
para de
c Ul-23
Esquema de una resta y generaci6n de flags cu Ia UAL

A modo de esquema referencial, a Ia izquierda aparecen los


tres numeros que entran a la UAL en una resta, (incluido el
uno que se suma a los bits invertidos del sustraendo ), y las
meros a restar operaciones que tienen lugar en su interior.
0=11010101 Tambien se ejemplifica c6mo se determinan los valores
80=000010 de los flags, yen particular la inversion de CUAL que tiene
lugar en toda resta para generar el valor del flag C.
=O Cuando la UAL suma, no se produce la inversion del
segundo numero (sustraendo en una resta), ni de CUAL
dado que en Ia suma C = CUAL; y el tercer numero que
entra es 0 en vez de 1, usado en la resta para sumarle uno
a ios bits invertidos del sustraendo.

5.1 EJERCICIOS SOBRE FLAGS


Indicar d6nde se guardan los flags y cual es SU utilidad
Explicar la diferencia entre los flags V y C, y si existe alguna relaci6n entre sus valores.
Describir dos aplicaciones d.el flag C en las sumas.
Explicar por queen una resta se debe invertir CUAL.
Explicar por que el flag C no se considera para enteros.
l,Mediante una suma se puede saber si el minuendo es mayor, igual o menor que el sustraendo ?
Explicar por que para cualquier suma o resta que haga la UAL, siempre genera simultaneamente los flags SZVC,
siendo que SVZ sirven para enteros, y CZ para magnitudes.
Para todas las sumas de enteros de la secci6n N.2.2 determinar los valores de SZVC, que magnitudes producen la
misma suma en la UAL, y que conclusiones resultan de los valores -de los flags para enteros y magnitudes.
Para todas las sumas de enteros del ejercicio 10 de N.4 determinar los valon:.;., de SZVC, que magnitudes producen
la misma suma en la UAL, y que conclusiones resultan de los valores de Jos flags para enteros y magnitudes.
Para todas las sumas de enteros del ejercicio 12 de N.4 determinar los vaiores de SZVC, que magnitudes producen
la misma suma en la UAL, y que conclusiones resultan de los valores de los flags para enteros y magnitudes.
Para las restas de la secci6n N.3 hallar los valores de SZVC y usarlos para determinar si el minuendo es mayor,
menor o igual que el sustraendo, verificando que lo determinado se cumple para los mimeros dados en base diez:
I) para los numeros enteros en base diez que originaron cada resta.
II) para las magnitudes que en base diez que originarfan la misma resta, los cuales deben ser previamente determinados

Para formate de n=4 bits encontrar ejemplos de restas de magnitudes en que si A;;?: B es S=l, y si A< Bes S=O, y
que conclusiones se extraen respecto del flag S para comparar magnitudes.
Realizar en el menor formate posible sin que de overflow la operad6n -534 - (-256) indicando SZVC.
En funci6n del proble~a anterior explicar por que se afirma que el overflow es un error por truncamiento.
Se tiene un apellido que empieza con D y otro que empieza con R, en tfSe orden. Indicar como harfa un computador
para determinar en funci6n de SZVC, si estan en orden o no.. -
Q
J

I c Ul-24
RemJJ£stas_de
_. __afaunos.
- ejercicios planteados
~~~_..,._,~~r·

i
5. En una suma de enteros C siempre se descarta pues se trata de un exceso en la representaci6n de uno de
los operandos.
11
6: No, solo mediante una resta.
ill
7. La UAL no sabe si el programa que se esta ejecutando es para magnitudes o enteros, por lo que esta
preparada para generar los flags para ambos tipos de variables. Un programa para magnitudes usara ap
solo CZ y uno para enteros usara SVZ. un
la
8. a) S=O Z=O V=O C=O Enteros: V=O S=O ~ R=ok y +R Magnitudes 8 + 43 ere
C=O~R=ok

b) S=O Z=O V=O C=l Enteros: V=O S=O ~ R=ok y +R Magnitudes 248 + 43 C=l ~R=c
cac
c) S=l Z=O V=O C=O Enteros: V=O S=l ~ R=ok y -R Magnitudes 8 + 213 C=O~R=ok pes
ma
d) S=l Z=O V=O C=l Enteros: V=O S=l ~ R=ok y -R Magnitudes 248 + 213 C=l ~R=c

pm
10, a) S=l Z=O V=l C=O Enteros: V=l ~ R=c Magnitudes 30 + 102 C=O ~ R=ok= 132

b) S=O Z=O V=l C=l Enteros: V=l ~ R=c Magnitudes 226 + 154 C=l ~ R=c
con:

11. a-i) V=O S=O Z=O C=O Enteros: V=O S=O ~ R=ok y +R y min;:::: sust (+43);:::: (+8)

Magnitudes 43 - 8 C=O ~ min ;:::: sust 43 ;:::: 8 ~ R=ok=35 otra

a-ii) V=O S=l Z=O C=l Enteros: V=O S=l ~ R=ok y -R y min< sust (+8) < (+43)

Magnitudes 8 -43 C=l ~min< sust 8 < 43 ~ R=c

b-i) V=O S=O Z=O C=O Enteros: V=O S=O ~ R=ok y +R y min :2: sust (-8);:::: (-43)

Magnitudes 248 - 213 C=O ~min;:::: sust 248;:::: 213 ~ R=ok=35

b-ii) V=O S=l Z=O C=l Enteros: V=O S=l ~ R=ok y -R y min< sust (-43) < (-8)

Magnitudes 213 - 248 C=l ~min< sust 213 < 248 -~ R=c

c) V=O S=O Z=O C=l Enteros: V=O S=O ~ R=ok y +R y min;:::: sust (+8);:::: (-43)
Dem:
112 1/·
Magnitudes 8 - 213 C=l ~min< sust 8 < 213 ~ R=e
H
0, I I
d) V=O S=l Z=O C=O Enteros: V=O S=l ~ R=ok y -R y min< sust (-8) < (+43)

Magnitudes 248 - 43 C=O ~ min :2: sust 248 :2: 43 ~ R=ok=205 A cc

I 0 I 10

Regla1
1. El b
2. Ap<
pesos 11
3. Se s1

Elp
Reglapr
--- N.6 Ntimeros binarios fraccionarios
c Ul-25

En el sistema decimal, un numero fraccionario se puede expresar co mo un cociente 0 mediante una coma. Asf:
1/4 = 0,25; 413 = 1,33 ... , etc. En base dos o en otra, tambien podemos representar, con una simbologfa semejante, un
numero que sea menor que la unidad, o que presente una parte entera y otra que es una fracci6n de la unidad.
Volviendo a la balanza decimal del apendice de la Unidad 1, con 9 pesas de 1, 10, 100, .... gramos, si se necesira
esta apreciar fracciones de un gramo, podemos suponer que existen 9 pesas de una decima de gramo (If IO = O, I), 9 pesas de
sara un centesimo de gramos (1/100 = 0,01), etc ... Cada 9 pesas que son fracci6n de gramo son diez veces menores (diez es
la canatidad de sfmbolos) que las 9 existentes de la medida superior siguiente. Como se vi6 para parte entera cada pesa
era diez veces mayor que la medida inferior siguiente. Cuando escribimos que un objeto pesa 328,205 la coma indica
que el 8 que esta a su izquierda son unidades, y que el 2 de su derecha son <;lecimas de gramo.
Esta misma convenci6n se usa en base dos, pero del mismo modo que a partir de la pesa de I gramo hacia arriba,
cada pesa es el doble que la medida anterior menor, las pesas menores que 1 gramo van en una progresi6n en que cada
pesa es la "!itad de la medida mayor anterior, comenzando por la medida de 1/2 gramo, exisfiendo tanto para las
mayores o menores de 1 gramo, una pesa de cada tipo. Expresadas en decimal las pesas binarias tendrfan los gramajes:
. . . 32g, 16g, 8g, 4g, 2g, lg, l/2g, l/4g, 1/8g, 1/16g,
pudiendo existir infinitas medidas hacia un lado u otro. Expresadas en binario serfan:
... IOOOOOg, lOOOOg, IOOOg, lOOg, lOg, lg, 1/lOg, l/IOOg, 1/lOOOg, 1/IOOOOg ...
Realizando las divisiones binarias indicadas conforme se vi6 en el apendice numerico de la Unidad 1, y usando
coma para separar la parte entera de la fraccionaria, tambien resulta en binario:
1/10 = 0,1 11100 =O,Ql etc ...
Suponiendo un objeto que pese en decimal 0,75 g. en la balanza con pesas binarias se formarfa con una de 1/2g y
otra de 1/4g, que expresado en binario serfa: 1/1 Og + 1/1 OOg = 0, 1g + 0,01 g = 0, 11 g
Para cotejar la estructura fraccionaria en bases dos y diez. en las
figuras siguientes se ha dibujado la misma fracci6n de un cfrculo.
Dicha fracci6n en base diez se forma con 7 agrupamientos de 1110
de cfrculo, mas 5 de 1/100, mientras que en base dos con u11:a
fracci6n que es la mitad y otra igual a la cuarta parate del cfrculo.
Al igual qtie en base diez, en base dos habra fracciones que no
puede expresarse mediante un numero finito de dfgitos. Tambien
como veremos, puede ocurrir que un:a fracci6n representable por
un numero finito de dfgitos en base diez, requiem infinitos en base
dos.
Entonces, del mismo modo que en base diez existen la decima,
centesima, milesima, .... parte de la uni dad, en base dos, se define
la mitad, cuarta, octava, diciseisava, ... parte de la unidad.
De manera in versa, dado 0, 11 en binario, para concer que fracci6n decimal se procede como se indica a continuaci6n:
1/2 1/4

H
0,1 lB = (1/2 + 114 )D = (0,5 + 0,25)D = 0,75D

A continuaci6n generalizaremos el metodo para pasar a decimal un numero binario con parte entera y decimal

168 4 2 1 1/21/4118

HH+ +H
10110,101 8 = 10110,lOlB =(16+4+2)+(1/2+l/8)D =(22+0,625)D =22,625

Reg/a para convertir un numero binario con parte fraccionaria a decimal:


1. El bit que esta a la iquierda de la coma binaria le corresponde peso 1
2. A partir del mismo hacia la izquierda los pesos 2, 4, 8, 16, ... se escriben sobre los bits de la parte entera; y hacia la derecha los
pesos 1/2, 1/4, 1/8, 1/16, 1/32 ... sobre los bits fraccionarios
3. Se suman los pesos de las posiciones que tengan un uno, y el numero se expresa en decimal.

El pasaje inverso de decimal a binario se realiza segun la siguiente:


Reg/a para convertir un numero decimal con partes entera y fraccionaria a binario:
--
nes
N.8 _Rf!/3-[~~~!!!.a~i6n en punto flotante de ,uJmeros rea/es
c Ul-27

declarados como tales en alto nive/


Asf como se definio una forma de representar numeros positivos y negativos sin usar signos mas y menos, cuando se opera con
numeros que presenten coma se requiere alguna convenci6n representarlos mediante combinacione binarias.
1e
Las representaciones de numeros reales en ''punto flotante" 1 ("floating point"= FP) -en castellano coma flotante- sirven para
tal cometido, permitiendo ademas operaciones con magnitudes y resultados dentro de un amplio rango de valores, para aplicaciones
desde las comerciales hasta los calculos astron6micos. Ademas, obviamente, se puede operar con mimeros enteros.

En esencia se trata de una representacion de tipo exponencial: N= ±mxrn±p


semejante a la notaci6n cientffica decimal, que permite en unos pocos bytes expresar numeros muy grandes o muy pequefios ..
Su denominaci6n se debe a que la posici6n del punto (coma), en la expresion anterior, puede desplazarse en el mimero m de Ia
expresi6n anterior, si a la par se ajusta el exponente p, para adecuar la representaci6n de operandos o resultados, si asf se requiere.
Esto se vincula con el hecho de que los circuitos para operaciones en punto flotante (coprocesador) determinan en forma
automatica el lugar d6nde va la coma en cada resultado, desentendiendose de ello el programador. Cuando un computador no posee
tales circuitos, se debe recurrir al software que opera con la UAL para emularlos, a costa de velocidad de procesamiento.
En notaci6n cientffica estandar, los numeros se expresan de la forma: N = ± n E ± p = ± n x 1O ± P
naria. donde n es un numero comprendido entre 1 y 1O; p es un mimero entero.(asf tambien rep~esentan las calculadoras de bolsillo)
Por ejemplo:
0,00003 = 3.0 E -5 = 3 x 10-5
-246,36 = -2.4636 E +2 = -2,4636 x 102
s, sin 82000000000 = 8.2 E +10 = 8,2 x 1010
En el papel n 6 p pueden tomar cualquier valor, mientras que en el visor de una calculadora tienen valores max1mos
predeterminados. Supongamos queen un cierto formato n y p pueden tener hasta 5 y 2 dfgitos, respectivamente; y que no escribimos
la letra E o la base 10.
ra, en Los mimeros anteriores podrfan representarse como sigue; (+3,0000; -05) ; (-2,4636; +02) ; (+8,2000; +10)
Tambien diremos que constan de una mantisa con 5 dfgitos significativos o de precision, y que cada factor de escala (1 o-5 102
e que y 1010 segun sea) determina la verdadera posici6n de la coma.

N ormalizacion:
iones
En notaci6n exponencial siempre es posible correr k lugares la coma a la izquierda (o derecha), si simultaneamente se
incrementa (o decrementa) el exponente en un valor k, sin que cambie el valor de! numero representado.
Asf, sumando uno a los exponentes de los m1meros anteriores, resulta:
0,3 x 10-4 -0,24636 x 1o3 0,82 x 1011

= nP
Decimos que se trata de una notacion exponencial "normalizada", de la forma: m x lOP
donde m es la mantisa, siendo de la forma O,X 1X2 ... Xn con X 1 -::t O; o sea que debe ser distinto de cero el primer dfgito que
sigue a la coma. En general, sera pues 0, 1 ~ m < 1
Un m1rnero puede expresarse en forma normalizada en cualquier base.

Representacion estandar para punto flotantedel IEEE 1


Existen varias convenciones para expresar numeros reales en punto flotante.
A los efectos de presentar la representaci6n estandar para punto flotante del IEEE, ("Floating Point Standard" - FPS)
consideraremos para los mimeros binarios que 1B ~ m < 1OB

o sea que m sera de la forma: m = 1,f (f parte fraccionaria de m)

Por ejemplo, los siguientes numeros reales en base diez, convertidos a base dos, y en forma exponenencial nonnalizada seran:

50 = 101 8 = (1,01 x 100)8 = (1,01 x 1010) 8 2 (se desplaz6 la coma 2 = 108 lugares a la izquierda para normalizar)

En contraposici6n los numeros de ''punto fijo" o "coma fija" en castellano, suponen que la coma debe estar en una posici6n fija en un
determinado formato de bits, segun la conveniencia del cruculo a realizar. En particular si se supone que esta luego del bit extremo derecho, se trata de
un numero entero. En un formato de 8 bits, estos enteros tienen un rango de 0 a 255 con resoluci6n de una unidad entre una combinaci6n y la
siguiente. Si por ejemplo la coma se ubica a la izquierda del bit mas significativo, todos los numeros de dicho formato seran fraccionarios, de la forma
0, ...... Entonces la resoluci6n pasa a ser 1/256, pero el rango estara solo entre 0 y 1. Vale decir que al aumentar el rango se pierde resoluci6n. A
diferencia, punto flotante permite alta resoluci6n y rango extenso.
1 Instituto de Ingenieros Electr6nicos y Electricistas
C Ul-28
100
200 = 10100s = (1,01 x IOOOO)s .= (1,01 x l0 )s (se desplaz6 la coma 4 = lOOB lugares a la izquierda para normalizar) Ot
.,,,rp,.;:
•r---
(-4101,25)B = (-1000000000101,0l)B = (-1,00000000010101 x IOOOOOOOOOOOO)n= (-1,00000000010101 x I0 1100)B La
(en este caso se desplaz6 la coma 12 = 11 OOB lugares a la izquierda) ifpre~
,,..--

0,0156250 = (0,00000l)B3 = (1,0 x _I__ )B = (1,0 x 10-110)B (se corri6 la coma 6 = llOB lugares a la derecha) Un
0
1000000 01
10 = lB = 1,0 x 10° B (la coma nose corri6 ningun lugar hacia derecha o izquierda) mi1
01
-0,So = O,ls = 1,0 x 1110s = 1,0 x 10-1 B (se corri6 la coma un lugar a Ia derecha) Lo:
Co
12,1 D = (12 + O,l)B = (1100 + 0,00011) B5 = 1100,00011
--n
= 1,10000011 x 101IB Co
Co
Reglas bllsicas de representaci6n en FPS: Co·
• La representaci6n es de la forma N = ± m x 10 ±p = ± 1,f x 10 ±p (siendo lOn = 2) represt
• En simple precision cualquier numero requiere 32 bits = 4 bytes. En
• Solo se representa la parte fraccionaria f de la mantisa m, reservandose para la misma los ultimos 23 bits,
sobreentendiendose que la parte entera es siempre implfcitamente 1 y que existe una coma antes de f 6 Sig
• El signo de la mantisa sera un bit de signo (S) que vale 0 si es positiva, y 1 si es negativa, estando dicho bit el
extrema izquierdo de la representaci6n (separado de la mantisa)7 Pc
• Al exponente ± p se le debe sumar 1270 ("exceso o desplazamiento 127"), resultando un numero c = ± p + 127 Bl
para el cual se reservan 8 bits a continuaci6n del bit de signo citado.
• El numero cero puede representarse con los 32 bits iguales a cero (+O), 6 con el bit de signo de valor 1, y los 31 a. El 1

restantes con valor cero (-0) ~. Lm


• Existe una convencion para representar +9<: y .-9<: t. Lm
Se aplicaran estas reglas a la representaci6n en FPS de los numeros antes normalizados deb

s ±p + 127 f Asi
(8 bits) (23 bits)
~. Pue
+ 2+127=129 10000001B=1290 se halla sumando
127 0 al exponente p = 108 = 20 Exi
)a prec
10000011B=131 0 se halla sumando
1270 al exponente p = lOOB = 40 ~ango,
20 = 1,01x10100 =
10001011B=l390 se halla sumando De1
1270 al exponente p= 11008 = 120 ,exp one
-4101,25 = -1,0000000001010lxl01100 =
01111001B=121 0 se halla sumando
Sig
1270 al exponente p = -01108 = -6 11]
0,015625 = 1,0 x 10-110 =
. m=

-0,5n =0,IR = 1,0x 10-I = +N


Sis
Apl
+ 3+127=130 f Re~
12,1 = 1,10000011 x I 011 =· \111:-illl~ :ilifi.IUll\l~ll.\:J.:fil,~l~llli.~tl~l.l~:: 103

2 -N
En cualquier base, correr la coma n lugares a la derecha (izquierda) es multiplicar (dividir) por un uno seguido de n ceros. Asimismo este
ultimo numero se puede expresar como IOn (que serfa 10-" si la coma se corri6 n lugares a la izquierda) -N
3
Este numero se halla a partir del 0,015625 por sucesivas multiplicaciones por dos (secci6n N.6)
5 Valor determinado anteriormente Un
6
Aunque f no este normalizado, se considera que m = 1,f si lo esta, pues tiene dicho uno en la posici6n mas significativa. Este bit no forma parte
del formato de 32 bits. La unidad de punto flotante (coprocesador) lo incorpora cuando debe operar.
7 Se trata pues de una representaci6n de numeros del tipo signo y magnitud. 1
Esta
---
izar) . no .se emplea la. convenci6n. de complemento
Observese que
ta_c..on_b1Lde.s1gno y magmtud normabzada I .
a dos ' )'a sea para el exponen
.
_ _ __ _ --···
te o la mantzsa.
___ ···- _
c Ul-29
· E sta se
..
1100
)B ,,..... L a
coma es t,.a imp
. I"1c1"ta, a 1a izqmer
. . da de1 b.it mas
,. s1gm
. ·fiicativo
· de la parte fracci"onari·a de la
man t.isa. T ampoco .s~
I
~resenta Ia base lOB = 2o
1

ha) Un exponente positivo mas el exceso 127 puede formar un numero entre:
01111111=127 = 0+127 y 11111110 = 254 = 127 + 127 (exponentes entre 0 y +128);
mientras que exponentes negativos excedidos en 127 forman m1meros entre:
01111110 = 126 = -1+127 y 00000001=:=1=-126+127 (exponentes entre -1 y-126).
Los val ores maxima 11111111 y mfnimo 00000000 para p+ 127 se reservan para representaciones especiales:
Con 11111111 y f = 0 se representa el infinito (+ 6 - segun el bit de signo)
Con 11111111 y f:;:. 0 se usa para indicar operaciones no validas, como 0 por oc
Con 00000000 y f = 0 se trata del numero cero, como se anticip6 .
... Con 00000000 y f:;:. 0 el numero esta desnormalizado: tiene una magnitud menor qu(! el valor ~nimo que se
representa en el formato normalizado.
En definitiva el intervalo de exponentes va de -126 a 127.
3 bits,
Siguiendo el camino inverso, puede hallarse cudl es el numero real correspondiente a su representaci6n en FP
o bit el
Por ~jemplo, si en la memoria se lee el numero en FP como
+ 127 BFCOOOOO = 1011111101 lOOOOOQOOOOOOOOOOOOOOO puede razonarse asf:

los 31 El primer uno implica que es negativo;


Los 8 bits siguientes 01111110 8 = 1260 = p + 127 son el exponente excedido en 127, o sea p = 126 -127 = -1
~. Los 23 bits restantes 11000000000000000000000 constituyen la parte fraccionaria (t), delante de los cuales
debemos agregar un uno y la coma, que se quitaron cuando se pas6 de decimal a FPL.
Asf se forma la mantisa m = 1,f = 1, 11000000000000000000000
d. Puesto que N = ± m x 10P (108 = 20 ); en este caso N = -1,llxlO -ls = -0,11 ls= -(1/2 + 114 + l/8)0 = -0,8750
umando
Existe tambien el formato FPS de doble precision, con 64 bits: 11 para el exponente excedido en 1023n, 52 bits para
= 2o
}a precision de la parte fraccionaria f de la mantisa, y uno para el signo.
umando
B = 40 ,~an gosde representacion:
mando Determinaremos primero el mayor m1mero positivo representable (+NMAx) que en punto flotante tendra maxima
= 120 .exponente (11111110 subrayado) y mantisa (23 unos): 01111111011111111111111111111111
Siguiendo los pasos a,b,c,d anteriores, resulta:
mando
QB=-6 111111108 = 254 = p + 127; luego p = 254 - 127 = 127
m= l,llllllllllllllllllllllls= 1,990 =2o
127
+NMAx= mx2Po= 2x2 o
S1. se qmere
. expresar 21270 como una potencia
. de mez,
.'i· debe ser 2127 o = lOY o

Aplicando logaritmos: 127. log 10 = Y. log 10 10 de donde 127. 0,3 = Y. 1


127 38
Resultando Y = 38,1=38 y por lo tanto +NMAX = 2x2 0 = 2xl0 0
1038 es un uno seguido de 38 ceros, por lo que pueden representarse m1meros con hasta 38 digitos
-NMAX tendra la misma magnitud que +NMAX dado que su representaci6n solo diferira en que empieza con 1:
mo este 38
-NMAX = 111111110111111111111111111111 ll Entonces resulta: -NMAX = -2xl0 o

Un m1mero fraccionario positivo mas pequefio (+NFMIN) en FP se define para p+127 = 00000001, y con f = 0
na parte

Esta convenci6n prevee operaciones con mantisas no normalizadas.


c Ul-30
+NFMIN - 00000000100000000000000000000000
-
Su mm
para su
de donde 00000001 = 1 = p + 127 por lo que p = -126; m = 1,f = 1,00000000000000000000000 = 1
P= 11
o sea que en decimal se tiene +NFMIN = lxT 126 ::::: 10-38 0 = 0,0 .... Olo (cero - coma - 38 ceros - uno)
Q= 11.
(38 surge de aplicar logaritmos siendo ahora Y = 126 x 0,3 = 37,8::::: 38)
El fraccionario negativo mfnimo representable correspondiente al anterior tendrfa igual magnitud, diferiendo en 1
. d e s1gno.
b 1t · S ena
,. en d ec1ma:
· 1 - N FMIN = -lx2-1210 ::::: -10-380 = -0,0 .... 01 0 (cero - coma - 38 ceros - uno) e
V.9
De acuerdo a los resultados obtenidos, se tiene el siguiente rango de representacion:
Seg
38 como e
+~Ax= 2x10
-N --10-38 +N _ +10-38 Los
. rMIN"" ''FMIN""
te, sin
co mun
Lai
por lat
Si algun dato o resultado positivo o negativo presenta parte entera con magnitud que supere NMAX , se tendra
"overflow'', pues su exponente superarfa el valor maxima 128. Y si el mismo es un fraccionario positivo o negativo de 8-4
magnitud menor que 10-38 , se tendra "underflow". 0 oc
Debe notarse que los numeros reales representados en PF constituyen solo un conjunto finito de numeros reales I oc
racionales. Asimismo, sus valores no estan uniformemente distribufdos en la recta que los representa, como denotan los 2 oc
·
puntos 1rregu1armente
· d.b · a· os, y pued e d e aucirse
I UJa ·,. N = mx 10P+ 127
· de i a expres10n 3 oc
4 0 ]
Manejo del underflow: desnormalizaci6n 5 0]
Otra de las ventajas de la convenci6n del IEEE, es que se pueden representar y operar nurneros "desnomzali:azdos", de la zona de underflow, 6 0 ]
siendo asf rnas pequefios que el rnenorde los numeros normalizados (lxT126). Ellos son de la forma (-l)S x O,f xlO -126 o sea que todos son 7 0]
del tipo O,xxxxx tienen exponente-126, y se identifican por que C =00000000. Esto ultimo se hace para que exista una proxi-midad entre el 8 lC
mayor m1mero desnormalizado 0000000001111111111111111111111 l = 0,1111. . .l lxT = 0,99999 x2-
126
126 126
yel numero normalizado mas 9 1(
pequefio ya tratado: +NFMIN = 00000000100000000000000000000000 = I xT
E~ rn1mero desnormalizado mas pequefio es 00000000000000000000000000000001.
23 126 149 De
Resulta, que el exponente es -126, y la parte fraccionaria T 23 ; por lo que su valor es T ·T = 2-
Los valores deterrninados valen (signo por medio) para los desnormalizados negativos. se reali
indi car
Simple precision en punto flotante de 32 bits: El
Puesto que los m1meros extremos representables en FP son ±1038 , ello implica que, como ser, podemos tipear en el teclado based,
un m1mero en base diez de 37 cifras, que sera aceptado dentro del rango de representacion. Pero, como se verificara,
devolvera con precision las 7 primeras de sus cifras, dado que en la representacion tratada solo se disponen de 23+ 1=24 Asf:
bits para guardar cualquier m1mero representable en FP (son 23+ 1 por el uno de la normalizacion que no se representa).
Esta limitacion de la cantidad de dfgitos que se pueden representar, propia de cualquier representacion de m1meros en un En
computador (sean reales, integers u otros) determina que siempre se trate de "mimeros con precision finita". He
Ejemplo: sea el numero 4.294.967 .2940 = 1111I11111111111111111111111111 Os que normalizado y representado en
De
FP resulta l,1111111111111111111111111111110 x 101m 1 31
< >B = 0100111101111111111111111111111111111110
Pai
31+127=158+====== 23 bits======-+
As
Como solo pueden almacenarse 23+ l= 24 bits de la parte fraccionaria, resulta que el m1mero queda truncado, con 8 bits
fuera del formato (11111110 = 254). Suponiendo que no exista redondeo para el truncamiento dichos 8 bits se 00 aLa 9~
considerarfan ceros, por lo que el numero almacenado serfa: BCD 1:
fueran
1111111111111111111111100000000 = 4.294.967.294- 254 = 4.294.967.040
binario
Se verifica, como se anticipo, que solo se han conservado intactos 7 dfgitos de precision. Esto esta de acuerdo con el
hecho de que a cada digito decimal le corresponden 3,5 bits, por lo que 24 bits permiten representar 24/3,5 dfgitos
cociente cercano a 7. Sun
Un
constit
Punto flotante doble precision (64 bits):
Un Pentium esta preparado para procesar 64 bits en FP, segun la convencion para este formato del IEEE, el primer bit es e Es1
del signo; luego siguen 11 bits para el exponente mas 1023 de exceso, quedando los 52 bits restantes para representar 1: 1. Si
parte fraccionaria del numero normalizado. Esto permite una precision de (52+ 1)/3,5 dfgitos, cociente cercano a 15.
-
--.
Sumas en el coprocesador (FP U - Floating Point Unit)
. . ru;:a-%l!JP..af!fe-S!af-DQS-nl_lffief0S ' e! CQnfQrP<:!'JrJ{)r
r ______ _.. ......io-1rnb
o--...- _p). . .PvnnnPnt,,. ,..J,,.J ~-:.-~- -1 J _ J _____ .
_..,,.t''-'H-.6.U.- UV.1 H.1~11V1 '11 UCl 1nayor:
c Ul-31

111
P = 11000011000000l01000000000000000 = 1,00000101x10 0,0000100000101 xlO!IOO
11
Q= 110001011 00000000011111000000000 = 1,00000000011111 x 10 ()() =+ 1.00000000011111 xlOI lOO
1,000010001010001 xlO! !OO

el
Codificaci6n suma en BCD natural
Segun se vi6, para pasar del sistema decimal al binario es necesario realizar una serie de operaciones aritmeticas
como en el metodo manual de las sucesivas divisiones por dos. '
~os "codigos BCD" (Binary-Coded-Decimal: decimal codificado en binario) se emplean para convertir directamen-
te, sm calculo alguno, mimeros decimales en combinaciones binarias, segun determinadas convenciones que tienen en
co mun el hecho de que a cada digito decimal le corresponden 4 bits. '
La convenci6n "BCD natural" o "BCD 8-4-2-1" atribuye a los sfmbolos decimales la correspondencia binaria dada
por la tabla de la figura 2.2 que volvemos a repetir:
dra
de 8-4-2-1
0 0000
les 1 0001
los 2 0010
3 0011 8-4-2·18-4-2·1 8-4·2·1 8-4·2·1
4 0100 8125rf l_QOO.QOOl,00,lQOl.Q!BCD
5 0 101 8 1 2 5
ow, 6 0 11 0 mientras que en el sistema binario se representa
son 7 0 111 4096 12864 3216 8 4 2 1
e el 8125n= 1 1 1 1 1 1 0 1 1 1 1 0 1B
8 1000
mas 9 100 1 Asimismo, 100 =OOOIOOOOBCP; siendo en cambio 100 = IOIOB

De lo anterior surge claramente, que si bien las conversiones de decimal a BCD, y de hexadecimal a binario natural,
se realizan de igual forma, el significado de la combinaci6n binaria es bien diferente. Se us6 el sfmbolo = para
indicar equivalencia de representaci6n entre BCD y decimal, y no el sfmbolo = , pues se trata de una convenci6n.
El pasaje inverso de BCD a decimal consiste en separar en el numero binario grupos de 4 bits, y determinar en
ado base diez que dfgito decimal representa cada cuarteto:
ra,
=24 Asf: 0 0 1 0 1 0 0 I 0 0 0 0 0 0 0 0 sco 29000 =
a). L 2 J L 9 JL 0 J L 0 J
un En definitiva, podemos sistematizar est6 asf, para indicar que el pasaje es directo solo en sentido horizontal:

Hexadecimal ¢=: 1 simbolo por cuarteto de bits => Binario natural


en
Decimal ¢=: I simbolo por cuarteto de bits => BCD
O
Para pasar de decimal a hexa, o en sentido inverso, hay que hacer las operaciones indicadas en la unidad 1.
=
Asf: 00101001000000008 co 29000 = B54H = 101101010100s; siendo tambien: 0010100100000000s = 2900H
bits
La desventaja del BCD respecto a las binarios naturales, es que en BCD en un byte se pueden representar combinaciones desde
se 00 a 99, mientras que con las segundos se puede codificar de 0 a 255, en un byte. Asimismo, solo conviene realizar sobre datos en
BCD la suma y resta, existiendo instrucciones para corregir (ajustar) los resultados que se obtienen de sumar cuartetos BCD coma si
fueran m'.imeros binarios. En esencia el formato BCD es un buen compromiso entre el tiempo de convertir m'.imeros de ASCII a
binarios -que en BCD es directo- y el tiempo que insumen sumas y restas, que en BCD es bastante corto, segiln podra deducirse
el
os,
Suma de ntimeros en BCD natural
Un metodo para sumar dos numeros decimales codificados en BCD "natural" consiste en sumar los cuartetos que los
constituyen como si fueran numeros naturales, y luego sumar 6 = 0110 si la suma parcial de dos cuartetos sup era 9 = 1001 B
B

s e1 Esto ultimo puede ocurrir de dos formas:


r la 1. Si dicha suma resulta con valores 1010 a 1111 (100 a 15 0 ): combinaciones que no son BCD
.
~!. -

C Ul-32

2 Si ella es 10000, 10001, 10010, 10011 (16 0 a 19 0 2 ): combinaci6n BCD con 1 de acarreo
l
p ~e ejernplificauna s1frnaefectuada cort este metodo, apiicabie a cuaiquier nuinero de dfgitos.
Las combinaciones a corregir porno ser BCD, o por que el uno fuera del cuarteto indica resultado ~ 16, se les ha sumado Ollo.
En negrita aparece el uno de acarreo en decimal yen BCD.

111 1 Para justificar por que se suma 6, apelaremos


37853- 0011 0101 0011 un cuenta-vueltas binario con numeros de~
+ +
12776-0001 0111
,;;::;::;;::;;;;::;;;;;:;:;:-j-~~~~-j-~~~--,1-----=-_:._:::.....::...~--,
0110 0000 al 1111 (modulo 16), razonan.do como
sigue. Si (dibujo de la derecha) a partir c..1
50629 )100 0000 avanzamos 5 posiciones se llega al OlOI.
011 0 9 y si luego progresamos 7 mas se alcanza I~
1100, habiendo realizado la suma 5 + 7 ::::
0101 + 0111 = 1100 con numeros binarios
natural es.
La misma suma en el cuenta-vueltas izquierdo
para decimales y BCD (con numeros de 0000 a
1001): si desde el 0101 se avanza 7 posiciones
mas se alcanza el 0010 luego de haber dado Una
vuelta, en correspondencia con el numero 12::::
0001 OOlOBCD
Si queremos usar el cuenta-vueltas binario (con
6 pasos mas que el otro) para sumar en BCD
cada vez que al sumar alcanzamos el valo;
1001 debemos sumarle 6 = 0110, de modo de
pasar al 1111, que esta a una unidad del 0000,
0101 del mis mo modo que lo es ta el 1001 respecto
del 0000 en el cuenta-vueltas BCD.

Podemos pensar esto ultimo como queen el cuenta vueltas binario la suma 5+7 la realizamos como 5+4+6+3. Esto es, descom-
ponemos 7= 4+3, para mostrar que al realizar la suma parcial 5+4 habremos llegado al 1001 en este cuenta-vueltas, por lo que le
sumamos 6=0110 para pasar al 1111, y luego sumamos las 3 unidades que faltaban para completar las 7 de la cuenta. De esta forma,
como se ha dibujado, se alcanza el 0010, como debe ser en la suma BCD.
Puesto que en una suma no importa el orden de los sumandos, en v·ez de efectuar 5+4+6+3 se hace directamente 5+7+6 = ,
0101+0111+0110 como se realiz6 para uno de los cuartetos de la suma BCD arriba ejemplificada. ·
A2
4
Decimal (BCD) empaquetado (packed)
El termino "empaquetado" se refiere a una representaci6n numerica con uno o mas bytes, siendo que en los dos A2
cuartetos de cada byte estfo codificados en BCD dos dfgitos decimales. A2
En contraposici6n en BCD "desempaquetado" cada dfgito decimal ocupa un byte, como ser 3 = 00000011
A2
Existe una representaci6n "clasica" basada en los 4 bits por dfgito del 0 al 9 del c6digo BCD, con caracteres
adicionales para indicar signo mediante otros 4 bits extras de las combinaciones restantes ( 1010 a 1111, de A a F) que
iran en el extremo derecho. Los m1meros positivos pueden terminar en cualquiera de las combinaciones: 1100 (C), 1010
(A), 1111 (F) 6 1110 (E). Para los negativos se pueden usar indistintamente 1011 (B) 6 1101 (D)
Los procesadores de Intel™ para codificar signo agregan t;m byte extremo izquierdo, cuyo primer bit (0 6 1) indicael
signo. Los siete bits siguientes pueden ser de valor cualquiera (elegidos ceros en los ejemplos siguientes)
p Ejemplos:
CONVENCION "CLASICA" CONVENCION DE INTEL™

310289 = -
0 3 1 b 2 8 9 F

+26998 = =·
2 6 9 9 8 c +

-26998 =:. -
2 6 9 9 8 D 0 2 6 9 9 8

2
La suma de dos dfgitos decimales a lo sumo es 19, cuando se suma 9 + 9 + 1 (1 de acarreo de la posici6n anterior)
---- M.Ginzburg

EJERCICIO INTEGRADOR DE CONOCIMIENTOS PARA INTEGERS


cu l-3_.!

Este ejer~icio des~rr?Ilado en I~- figur~ Al.2~ ~a sido pen:_ado par~ ve~ las similitudes y diferencias entre el procesamien-
ado 0110. to de vana~les riefm1<las ~omo \1_agmtud_es \hgura A I.!.) del Apend1ce I) y las definidas como "Integres".
Portal mot1vo se han eleg1do las m1smas direcc1ones queen la fig. A I .15, y los mismos valores de los datos. salvo el signo.
Un programa~or ~a d~sarrollado para variables que son integers, un programa en un cieno lenguaje de alto nivel "X".
elaremos a cuy~s se~te~c1as t1peo desde el teclado d~ un computador._ P_ara una porci6n de! programa ha tipeado Ia sentencia que mas
meros del abajo se md1ca. Se supone que Iuego de ell<: ~e puede escnbir el valor de las variables que se ordena operar.
_do como
partir c!..1 INTEGERS .J ( este sfmbolo .J aparece para indicar que se puls6 ''Enter")
a al 010}' R = P + Q-T .J (sentencia a traducir)
alcanza l~ R = 130 Q = -4103 T = -4 .J (valores de las variables para cuando se ejecute el programa en c6digo de maquina.
5+7::::
s binarios
i i (las tlechas seiialan que se hizo un espacio mediante Ia barra espaciadoraJ .

I. Representar c6mo quedan en memoria los caracteres tipeados, a partir de la direcci6n 0100.
izquierdo 2. Si posteriormente el programador llama al programa compilador del Ienguaje ''X'', indicar c6mo el compilador deja
de 0000 a
posiciones traducida en memoria Ia sentencia R = P + Q - T en c6digo de maquina, para un procesador de Intel. Para ta! fin
dado una usar los c6digos usados en el ejercicio integrador de la figura A 1.15 del Apendice I (puesto que los enteros se
mero 12:::: suman y restan como si fueran naturales), y escribirlos en memoria a partir de Ia direcci6n 03AC. Asignar a las
variables R, P, Q y T las direcciones A23E, A240. A'.242 y A244 respectivamente.
nario (con 3. Una vez que la sentencia R = P + Q - T fue traducida a c6digo de maquina, se ordena su ejecuci6n. Indicar, en el
en BCD, supuesto que se ejecute la secuencia traducida en el punto anterior, c6mo la UAL lleva a cabos las sumas y restas
el valor que las instrucciones correspondientes ordenan, los valores de los flags SZVC generados, y c6mo queda el registro
modo de AX luego que se ~jecuta cada una de las instrucciones. Tambien pasar a base diez cada resultado binario que esta en
del 0000, , AX, verificando que sea el valor esperado.
respecto 4. Representar luego. de ejecutar la instrucci6n 14, c6mo queda en memoria el resultado asignado a la variable R.
conforme ordena dicha instrucci6n.
5. Suponiendo que Iuego de la scntencia R = P + Q-T siga la sentencia PRINT "R=" R (o sea imprimir en dec:mal el valor
de R halladc,), el compilador la traducira a varias instrucdones en c6digo de maquina, una de las cuales llaman'ra una
, descom- subrutina de impresi6n. Si esta ordena que la impresura opere en modo texto, indicar c6mo debe quedar codificada en
lo que le 1n.::moria desdc la <lirecci6n 7100, la informaci6n a enviar a la impresora, para que imprima en decimal el valor de R.
sta forma,
I. Al tipear las lineas d~ la porci6n de programa fuente en alto nivel anterior, cada caracter tipeado quedara en memoria
5+7+6 = en ,r,.:5digo ASCII, como aparecc en el esquema de memoria que esta a la izquierda de la fig. Al.20, La diferencia con la
fig. Al.15 es que ahora se define INTEGERS, y queen los numeros negativos se tipea un signo menos delante de ellos.

A23E 1 - - - - - 1 R 2a. Suponiendo que al ejecutarse el programa compilador, cuando este detecta INTEGERS, una subrutina preparada
F,_______. para estos, reserva dos celdas sucesivas para cada variable (fig A 1.19), al igual co mo se hizo en la fig. A 1.14 para
n los dos A240 ,_____ ___, p MAGNITUDES, siendo que ahora se supone que +Nmax = 0111111111111111 = +32767
A242 1 - - - - - 1 O 2b y 2c. En decimal serfa R = 130 + (-4103) - (-4) sin poder realizar mas por menos igual a menos, ni
A244 _ _ _ T menos por menos igual a mas. Puesto que los numeros binarios con bit de signo se suman y restan como si foeran
aracteres . binarios naturales, los cod-op 0306 y 2B06 para sumar y restar binaries que ocupan dos celdas, seguiran siendo
Figura ALI9 validos para INTEGERS. Igualmente los cod-op Al y A3, independientemente del tipo de variable ordenan
a F) que
transferir 2 bytes consecutivos entre memoria y AX o a la inversa. Puesto que ex-profeso para R, P, Q y Tse han mantenido las
C), 1010 mismas direcciones asignadas en la fig. ALIS la zona de instrucciones de la fig Al.20 sera la misma que la de dicha figura.
A esta altura habra terminado el proceso de traducci6n, realizado con las mismas consideraciones gue el ejercicio integrador
indica el de la figuraAl.15 del Apendice 1.
2d. Observesc queen decimal la suma algebraica concreta seria R = (130) + (-4103) - (-4), pero que las instrucciones
han sido traducidas respetando las operaciones que operan los 11umeros entre parentesis, sin que se haya realizado "mas
por menos igual a menos", ni "menos por menos igual a mas''.
El valor decimal 130 de la variable P que en memoria esta en ASCII como 00 I I 0001 00110011 00110000 ocupando las
posi~iones 0 l 13 a 0115 (ver fig. A 1.15) queda.ra traducido romo el valor binario con bit de signo 0000000100000 I Os =
1300 = 0082h que ocupara las posiciones A240 y A241 asignadas a la variable P. EI valor decimal -4103 oe Q que se
9 encuentra en binario ASCII en las posiciones 0117 a 01 IB (4 bytes). las traducira como el binario con bit de signo EFF9
= 1110111111111001 8 = -4103 0 = EFF9h que ocupara las posiciones A242 y A243. De.I mismo modo. el valor -4 de T
llega como 00110100 en ASCII, ocupando un byte, pasara a ser 1111111111111100 8 = -40 = FFFE en A244 y A245.
El valor de la variable R recien se conocera cuando se ej~cute la secuencia 11 a 14 traducida.
8
3. Cuando se ordene ejecutar el programa que el compilador dej6 en c6digo de maquina en memoria, y la UC ejecute las
instrucciones 11 a1 4, luego de cada una de ellas, el registro AX quedara como se indica a continuaci6n. La UAL (que es
la unica que entiende binario natural) solo opcrara en ias instrucciones 12 e 13, que ordenan sumar y restar, respectiva-
8
mcnte, indicandose para las mismas Ia operaci6n de la UAL.
Despues de ejecutar I 1: AX= 00000000 l 00000 J 0 = 0082h que es el valor de P ( 130 en decimal)
CUI-34 M.Ginzburg M.Gii
2.a
l=Jl

t
Memoria
Memoria Principal
Principal Figura Al .20

Despues de ejecutar 12 :
AX= 1111000001111011 = F07Bh que es P + Q seg(m el resultado de la UAL (-3973 en decimal).
Este valor es el resultado de sumar en la UAL: 0000000010000010 (P)
Los indicadores que genera Ia UAL son S=I Z=O V=O C=O +1110111111111001 (Q)
1111000001111011 = F07Bh = -3973 = (~ + Q)
Despues de ejecutar 13 que ordena restar:
2003
AX= 1111000001111111 = F07Fh que es P + Q-T = R segun el resultado de la UAL (-3969 en decimal). 4
Este valor es el resultado de sumar en la UAL: 1111000001111011 (P + Q) 5
Los indicadores que genera la UAL son S=l Z=O V=O C=l (resta) + 0000000000000011 (bits de T invertidos) 6
I A200
111 I 000001111111 = F07Fh (P + Q) - T = R 1
2
Observese que al representar -4 en el paso 2d. el traductor (software) complement6 el +4 binario, y en el 3
R
paso 3 la UAL (hardware), para restar siernpre complementa el sustraendo, por lo que el -4 antes Bc08
p representado en memoria, se vuelve a complernentar otra vez, quedando nuevamente +4 9
(0000000000000011 +I = 0000000000000100 = +4. A
Q B
En definitiva aritrneticamente result6 que -(-4) = +4, aunque, como orden6 la sentencia, la variable T fue
restada, sin irnportar que su valor sea negativo o positivo, y eso fue lo que se hizo en el proceso tratado. Oc15
FiguraAl.22 Despues de ejecutar 14 el valor de AX no cambiara, pues 14 ordena que una copia de AX pase a memoria:
7100 AX = 1111000001111111 = F07Fh
1 F
4. La ejecuci6n de 14 ordena queen la direcci6n A23E yen la siguiente (asignadas a R) copiar el valor de AX, por
2
3 lo que luego de ejecutarse 14 en mernoria se tendra lo indicado en la figura Al.22
4
5 5. En modo texto, la subrutina de impresi6n dejara en posiciones sucesivas de rnemoria los caracteres a
9 imprimir, cada uno codificado en ASCII. Previamente dicha subrutina interpretara la orden de impresi6n (en este
Figura A 1.23 caso R = valor de R), siendo que el valor de R que esta en A23E y A23F debera pasarlo a digitos decimates
codificados en ASCII. Esto es, determinara que el valor de R, que es 1111000001111111 = -3969, el cual en
ASCII resultara 00111101 00110011 00111001 00110110 00111001, como aparece en rnemoria.
Antes de estos c6digos aparecen los c6digos de Ry de =, como se indica en la figura A.23
6. Cuando se ejecute mediante el Debug-como se hizo a continuaci6n de la fig. Al .15- la secuencia de instrucciones 11 a 14,
se verificara que los contenidos de A,,'( despues de ~jecutar cada instrucci6n sean los calculados mas arriba y el valor de los flags
que genera la UAL, siendo que NC es C=O, CY es C=l, NZ es Z=O, ZR es Z=l, NV es V=O, OV es V=L PL es S=O, NG es S=l.
urg M.Ginzburg CUI-3.)
l!;JJ:;'. Q~/~1011\./TJ:r-OJJ.nno nr:: r'r'\AU'\..l"'lllJllJ-A•---- Hl::ALES
- ... - ... - - - • - -
I LJ;:j ~AHA
_ _ _ ___,_ _ ........... ..,,.• ....,.• ...., ..•••• ....;.~ • • ,.,.,;,,'ttJ, • ...,,_ '-'~1vvv11v11c1v

Un pro~ramad?r ha desarrollado para variables que son rea/es, un programa en un cierto Jenguaje de alto nivel "X... cuyas
sentenc1as ha t1peado desde el teclado de un computador. Para una porci6n del programa h~ipeado la sentencia que mas
abajo se indica. Se supone que luego de ella, se puede escribir el valor de las variables que '<lfcha sentencia ordena operar.

REALES .J
R=P+Q-T-1
P = -130,5 Q = 4103,75 T =4 .J
i i (las flechas indican que se hizo un espacio mediante la barra espaciadota)

1. Indicar c6mo quedan en memoria Ios caracteres tipeados. a partir de una direcci6n dada
2. Si posteriormente el programador llama al programa compilador del lenguaje "X'', indicar c6mo el compilador deja
traducida Ia sentencia R=P+Q-T en c6digo de maquina, para un procesador de Intel, trabajando en punto flotante, y
escribirlos en memoria a partir de la direcci6n 20D I. Asignar a las variables R, P, Q y T las direcciones DC 15. 2003.
A200, y BC08, respectivamente. ·
3. Si una vez que todo el programa en el lenguqje ''X" fue traducido a c6digo de maquina (y luego "link editado" para
agregarle subrutinas), se ordena ejecutarlo ("run"), indicar cuando se ~jecute la secuencia traducida en el punto anterior,
c6mo el coprocesador lleva a cabo las sumas y-restas que las instrucciones correspondientes ordenan, y c6mo queda la
cima de la pila que el coprocesador opera, luego de que se ejecuta cada una de las instrucciones de dicha secuencia.
Tambien pasar a base diez cada resultado binario que esta en la cima de la pila, verificando que sea el valor esperado
4. Indicar luego de ejecutar la instrucci6n 14 c6mo queda en memoria el resultado asignado a la variable R, conforme
ordena dicha instrucci6n.
5. Suponiendo que luego de la sentencia R = P + Q - T siga la sentencia PRINT "R=" R (o sea imprimir R =valor
hallado de R en decimal), el compilador la traducira a varias instrucciones en c6digo de maquina, una de las cuales
Hamara a una subrutina de impresi6n. Si esta ordena que la impresora opere en modo texto, indicar c6mo debe quedar
codificada en memoria la informaci6n a enviar a la impresora, para que imprima en decimal el valor de R.
6. Ejecutar mediante el Debug la secuencia de instrucciones determinadas en el punto 2, verificando que los resultados
esperados coincidan con Ios calculados en el punto 3. ·

I. No hay grandes diferencias con la concreci6n de este punto en el ejercicio anterior para enteros.
2. El compilador para el lenguaje "X" recorre la zona de memoria donde qued6 codificado en ASCII el programa en
lenguaje "X". Asi va identificando cada sentencia y los datos que ella ordena operar, a fin de traducirlos en instrucciones
(c6digos) de maquina que el microprocesador pueda ejecutar, y c6digos de datos que el coprocesador pueda operar.
2a. con esto fines debe determinar el tipo de variables (en este caso reales) que las sentencias ordenan procesar, para llevar a
cabo las traducciones a instrucciones para procesar punto flotante, y c6digos de datos correspondientes a estas. Entonces, el
2003 compilador antes de traducir leera en memoria que en ASCII esta escrito "REALES".
4 p 2b. el compilador reservara 4 bytes de memoria para las variables R, P, Q y T, (si fueran en doble precision"
5 reservaria 8 bytes) en las direcciones de memoria indicadas ( figura A I .24).
6
2c. Una vez asignada a cada variable una direcci6n de localizaci6n
A200 - - - Coprocesador y las tres siguientes, el compilador traducira R = P + Q - T en instrui-
1 0 .Matsmatlco {Fru} UAL UC ciones cuyos c6digos de maquina son indicados en la figura Al.26 .
2
n el 3 _,_ Tales c6digos suponen, que el coprocesador matematico (FPU) -hoy
AXI I integrado al microprocesador- esta ligado a una pila de registros sin
ntes Renistro
Bc08 IP I I denominaci6n individual (fig. A 1.25). Para la traducci6n operaremos
+4 9 Renistro
A
T Reoistro RI I I con el registro gue esta en la cima de la pila de la misma forma que
B Renistro lo hicimos con AX en los ~jercicios para magnitudes (fig. Al.15 de!
fue
Reaistro Apendice I y la fig AI.20 anterior). La instrucci6n 11 (c6digo D906)
Dc15 Reaistro ordenara llevar el dato P que esta en 2003 a la cima de la pila. 12
R Renistro
a: ) Figura A 1.25
(c6digo D806) ordena sumar contra la cima el dato Q que esta en
A200, y el resultado guardarlo en la cima. I 3 ( c6digo D826) ordena
Figura A 1.24 restar contra la cima el dato T que esta en BC08. I4 ( c6digo D916) ordena enviar una copia de la cima hacia DO 15,
por
donde esta Ren memoria. La instrucci6n I 0 (c6digo DBE3) habilita el funcionamiento de! coprocesador, unico que entiende
binario que codifica punto flotante.
s a
2d. Una subrutina traductora preparada para "REALES" traducira cada valor de variable decimal escrita en ASCII en el
este
numero en punto flotante de 32 bits equivalente. Asi, el valor decimal -I 305 de la variable P que en memoria esta en
ales
ASCII quedara traducida en punto flotante I 1000011000000101000000000000000 = C3028000 = -130,50 que ocupara
en
las 4 posiciones asignadas a la variable P. El valor decimal -4103,75 de Q que el compilador encuentra en binario ASCII
en las traducira como el numero en binario punto flotante como 1100010100000000011111000000000 = C5803EOO =
-4103. 75 0 , que ocupara las cuatro posiciones asignadas a la variable Q. Del mismo modo, el valor 4 de T que al
14, compilador Ilega co mo 00 I 1Ol00 en ASCII. ocupando un byte, pasara a ser 010000001 OOOOOOOOOOOOOOOOOOOOOOOs =
ags 40800000 = 4 0 que el compilador escribira en las cuatro direcciones asignadas a T. Para la variable R cuyo valor recien
se conocera c~ando se ejecute el programa que se esta traduciendo. cl compilador le reserva las 4 posiciones indicadas.
-
r
CUI-36 M.Ginzburg M.<
3. Cuando se ordene ejecutar el programa que el compilador dej6 en c6digo de maquina en memoria, y la UC ejecute las
-----~m-s-,-tru--,,-cc,_10
.nes-Itai4:Iffego-de-cadaunade ellas, la cima de la pila quedara como se indica a corttinuaci6fi. Ei coprbcesador
operara las instrucciones 12 e 13, que ordenan sumar y restar, respectivamente, de la forma que se indica mas abajo.

Dc15-=}
Zona de datos
Memoria
Principal Memoria
Figura A 1.26 Principal
Despues de ejecutar 11:
Cima= 1100001100000010 I 000000000000000 = C3028000 = -130,5 0
Despues de ejecutar 12 :
Cima= 1100010110000100010100 I000000000 = C5845200, que es P + Q = -4234,25 0
Este valor es el resultado de sumar en el coprocesador como sigue, conforme se vio en la secci6n N8, para sumar numeros en FP
(punto c) se debe igualar (desplazando la coma) el exponente menor al mayor:
P = 11000011000000101000000000000000 = 1,00000101x10 111 = 0,0000100000101 x10 1100
Q = 1100010 l 100000000011111000000000 = + I, 00000000011111 X lQ I I OO
1, 00001000101001 X 10 I I OO

P + Q = 1,00001000101001x10 1100 =11000101100001000101001000000000 = C5845200

o 15~] Despues de ejecutar 13


0~16 -R Cima= l 1000101100001000111001000000000 = C5847200, que es P + Q-T=-4238,25 0
Dc17 84 El coprocesador procede para la resta, de manera semejante a Ia suma, primero igualando los
Dc18 . 5 exponentes y luego restando mediante el complemento del sustraendo. Despues de ejecutar 14 el valor
Figura A 1.27 de la cima no cambiar3., pues 14 ordena que una copia de la cima pase a memoria.
Cima= 11000101100001000111001000000000 = C5847200
7100 52 ( R) 4. 14 ordena queen la direcci6n 0015 yen las tres siguiente (asignadas a R) copiar el valor de la cima,
1 ~~ ~ ~ J por lo que luego de ejecutarse 14, en memoria se tendra como indica la figura 1.27
3 34 (4) 5. En modo texto, Ia subrutina de impresi6n dejara en posiciones sucesivas de memoria los caracteres a
t Ul
6 ( 8)
imprimir, codificados en ASCII. Previamente di cha subrutina interpretara la orden de impresi6n (en este
caso R = valor de R), siendo que el valor de R que esta en DO 15 y siguientes debera pasarlo a digitos decimates

~ {~\
codificados en ASCII. Esto es, determinara que el valor de R, que es 11000101100001000111001000000000
es el -4238,25, el cual en ASCII resultara como se indica en la figura Al .28. Antes de estos c6digos
FiguraAl.28 aparecen los c6digos de R y de = , corno se indica en dicha figura.
nzburg M.Ginzburg
CUl-37
ute las
6. Como en las un!dades I y 3 indicaremos en Ietra italica Ios simbolos que se tipean. v con .J la acci6n de pulsar la
esador tAc]::i Fnter Fn nt>ar1t~ ~nuPllr. ,,",,. int,,_ ..,,.,.., ""'~ 1~ r r~n ~ • - - ~- -- - ---- --~ ---,-, ---
-
-.'"1--:-··-
-"'~----'""' · =··---'·- ··~c::--·- ........ . . .,. . '"'
'"1~- ~
Q-

yen menor tamafio de numero o letra.


"u ia v'-'r a.10s rmes <lei eJerc1c10.
el valor que puede ser d1stmto de una PC a otra.
C:\> DEBUG .J
-E 2003 .J
3090:2003 IF.~O. 26.80 7B.02 IF.CJ .J Asf se h~ escrito P = C3028000 en las direcciones 2003 a 2006
En 2003 se supuso que ex1stia IF, 26 en 2004, etc.El valor 309D 1mplica una direcci6n de referen ·ia queen crene I a XXXX
- E A200 .J "' ' "' ra ser _, · , _,
309D:A200 3F.OO E6.3E AB.80 FF.C5 .J Asf se ha escrito Q = C5803EOO en las direcciones A200 a A203
-EBC08 .J
309D:BC08 33.00 EF.00 AA.80 22.40 .J Asi se ha escrito T = C5803EOO en las direcciones BC08 a BCOB

Escritura en memoria de las 5 instrucciones a ejecutar


-E20Dl .J
309D:20Dl 35.DB 00.£3 OO.D9 AF.06 35.03 00.20 OO.D8
309D:20D8 FF.06 DE.00 68.A2 AA.D8 95.26 EE.08 38.BC 40.D9
309D:20EO 67.16 35.15 E7.DO .J
-R IP.J
IP 0100 En general en IP puede haber XXXX
: 20DJ .J Asf se ha escrito 20Dl en el registro IP para que cambie el valor 0100 que teuia por 20Dl, que es donde se ha
escrito la instrucci6n DBE3 en el paso anterior, coma se indica en la unidad 1.
-R.J
AX=OOOO BX=OOOO CX=OOOS DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=20Dl NV UP EI PL NZ NA PO NC
309D:20Dl DBEJ FIN IT
Este paso tiene coma fin verificar que todo esta en orden antes de ejecutar la instrucci6n. Como ser, que la pr6xima instrucci6n a
ejecutar es DBE3
- T .J (Orden de ejecuci6n de la instrucci6n DBE3 )
AX=OOOO BX=OOOO CX=0005 DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=20D3 NV UP EI PL NZ NA PO NC
309D:20D3 D9060320 FLD DWORD PTR 120031

- T .J (Orden de ejecuci6n de la instrucci6n 09060320)


AX=OOOO BX=OOOO CX=OOOS DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=20D7 NV UP EI PL NZ NA PO NC
309D:20D7 D80600A2 FADD DWORD PTR lA2001

- T .J (Orden de ejecuci6n de la instrucci6n D800600A2)


AX=OOOO BX=OOOO CX=OOOS DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES=309D SS=309D CS=309D IP=20DB NV UP EI PL NZ NA PO NC
309D:20DB D82608BC FSUB DWORD PTR (BC08)
- T .J (Orden de ejecuci6n de la instrucci6n D82608BC)
AX=OOOO BX=OOOO CX=OOOS DX=OOOO SP=FFEE BP=OOOO SI=OOOO DI=OOOO
DS=309D ES,;309D SS=309D CS=309D IP=20DF NV UP EI PL NZ NA PO NC
s en FP 309D:20DF D91615DC FST DWORD PTR (DC151

- T .J (Orden de ejecuci6n de la instrucci6n D91615DO)


AX=OOOO BX=OOOO CX=0005 DX=OOOO SP=FFEE BP=OOOO SI=OOOO DJ=OOOO
DS=309D ES=309D SS=309D CS=309D IP=20E3 NV UP EI PL NZ NA PO NC
Este tercer rengl6n no interesa

Siendo que el Debug solo muestra los registros vinculados a la UAL (que para estas instruccivnes no se usan) ya la UC, y que Ios
registros ligados al coprocesador son "invisibles" para todas las instrucciones ejecutadas el (mico registro visible que ha cambiado es el
IP, pem1aneciendo sin variar los restantes, incluyendo los flags.

-E DC15 .J (Examinar las posiciones DCI5 a DCI8 correspondientes a la variable R)


ndo los 309D:DCI5 .72 .84 .40
el valor 309D:DCI8 .C5

C5847200 = I I 0001011000010001I1001000000000=-I,OOOOlOOOI1 IOOl OOOOOOOOOxI0 1100 = -1000010001110,01 = -4238,25 Se


verifica que el valor de R que esta en FP es el esperado.
a cima,
Dado que el registro de la cima de! coprocesador es "invisible'' para el Debug, si se quiere conocer su contenido, se debe
copiar el mismo a la memoria, mediante la instrucci6n 14 de c6digo D91615DC y luego examinar la memoria mediante E DOJ5
cteres a como se hizo mas arriba. Por Io tanto, si luego de! c6digo de 11 e 12 se intercala el c6digo de 14 (D91615DC), o sea si la sucesi6n de
(en este instrucciones en memoria es DBE3 (1 0 ) D9060320 (1 1) D91615DC (14) D80600A2 (1 2 ) D91615DC (1 4) D82608BC (13 )
cimales D91615DC (14 ) se podra conocer -examinando la memoria Ios sucesivos contenidos de la cima mediante E DC15- si en la
000000 cima esta P; si iuego esta P + Q; y por ultimo, coma ya esta planeado en Ia secuencia de la fig AI .26, si en R esta P + Q- T.
6digos
~--··--C.9_1J~1iill9i9_n__.9_0i!_~Q.g edad.:_. Qgj_9-tQ_'._J113~s;r.i12.~i.9.P.-.:.. ../~. 9..9l.9._Tii~1~~---·fun9.§:QQI~-~~-QfilQ
ingresaron Williams y Mercado. Red Cell / WPP/ \Villiams v Mercado: re1aci6n
y fonci6n que cada uno cumplfa v cumple.

• El 31 de mayo de 2004, Dylan William y Martin Mercado ("Williams" y


"Mercado", respectivamente) remitieron una carta a WPP Group USA ("WPP")
en la que comunicaron su disposici6n a suscribir un Joint Venture Agreement y
se establece el pago de una multa por el monto de AR$900.000 para el supuesto
que ocurran determinados supuestos especialmente previstos. Dicha carta fue
consentida por WPP (Anexo I). Entre quien v quien era el contrato? Finalidad
del mismo? Se finn6? Que relacion tienen Red Cell SA. WPP y el Joint Venture
:~gI9.?.JTI.~D17.

• Williams y Mercado comenzaron a trabajar en relaci6n de dependencia con Red


Cell S.A. (la "Sociedad"). Williams tenia a su cargo el puesto de Gerente
General y Mercado el de Gerente General Creativo, conforme fuera ratificado en
1a el acta de asamblea No. 3 de la Sociedad celebrada el del-30 de octubre de
2007 (la "Asamblea") (Anexo II). Como estaba fonnado el brgano de
.§:4.mini§.1I~Gi9n. .4..9.. . B:.9..d. . c~n7.!.

• Al considerarse Eft-el punto 7 del Orden del Dia de la Asamblea, se resolvi6


destinar parte de los aportes realizados por el accionista Berkeley Square
Holding B.V. ("Berkeley") a aumentar el capital de la Sociedad segtin el
siguiente detalle: (i) Berkeley: 80%; (ii) Mercado: 10%; y (iii) Williams: 10%.
Los aportes eran todos de Berkeley? 0 tambien aportaron Mercado y \Villiams?
.C.Q.fil.Q. . . fiJ:?.. . ..9J::l?.. . . ~P.:.~.Gri1li9.IQH. . .9.. ..iP1?.fil~IQ.!L.?..L.~P.:.m.~Pt9. . .4..~. . .9..~P.it.£!17... . :t.~.~L. fu.~. . .9..QnJ:Q
pasaron a ser accionistas'? Por que se 1es ofreci6 ser accionistas? Fue como
"premio" por su desempefio o recompensa por algo?

• El aumento de capital resuelto en la Asamblea fue inscripto ante IGJ el con


lo que queda evidenciado que es falsa la afirmaci6n contenida en la denuncia
respecto a ........ ("Si bien dicha inscripci6n tiene fecha de diciembre de 2007 es
claro y se nota a simple vista que Jue hecha el mismo dia que la inscripci6n
anterior dado que se trata de la misma letra" ?? no se entiende. Cua! es la
inscripci6n anterior? )

• l::.~. . . ct.~.9..i§i.9.n. . .~~11JQ1.~.?.n.~. -9..~. . . Q.QHg~t9.Ii~:. . .P.~rn_J9.§. . . ~9.9.iQ.ni~..t.§:.§. . .Y. . . Q.irn9..t9rn§. . . 4..~~.9..?.
que se la adopta salvo impugnaci6n art. 251 o derecho de receso. La meneionada
inscripci6n ante IGJ del aumento de capital no solo da fecha cierta a la
suscripci6n, sino que da a esta publicidad y oponibilidad. . .~. .J.9.I~~~IQ.~. __}.Y.il!i~TIJ.o~
conociendo dicha decisi6n no hizo nada. Notese que no solo revestfa e1 caracter
de accionista sino que ademas era Presidente y como tal se encontraba no solo
facultado sino que hasta oblfa:ado a impugnar.

• Por otra parte, la reforida suscripci6n e integraci6n del aumento en los terminos
indicados fue consentida por Williams quien no impugnb la decisibn y suscribi6
actas posteriores (Anexo III) lo que impliea que tuvo eonocimiento de la
Asa.mblea en cuesti6n. Williams no puede invocar su propia torpeza para
continuar sosteniendo sus argumentos. Debe recordarse al respecto la teoria de
los actos propios ...... (PONER LETR_A DE TELECOM)
• "'Haber inc1uido al Sr. Williams como accionista en un 10 % de Red Cell SA.
recien para el tiempo de su disoluci6n (lo cual lleva afrontar un eventual quiebre
de 1a sociedad en su porci6n accionaria)": No fue asi. 30/10/07 ingresa como
I:!:f.9.i-9...ni~1?.__y_gj~QJJJ.g_i.9J)_y_1.ig"!:!.id~ci_9...n__es r_Q§.ll~1.~_.9L~~?;25.~2~;..'...__ p_QL.-91I~J?.~11~-ni 1§:
Sociedad ni sus accionistas estan obligados a no disolverla o liquidarla, es una
posibilidad y derecho gue otorga la ley v nada dice en contrario el estatuto de
Red Cell.

• El 25/6/08) se realiz6 una auditorfa extema por pa1ie del estudio Jorge Andres
Thomas y Asociados gue no menciona al Sr. \Villiams como accionista, sino
_f$._q11?I9...1IQ.lQ.iDgJ~_y__rn_Q_ _~:_Q)__y_~L.S..r:__M.9.IG.~.Q.Q__.(Z_Q_ _~q.)__3_71.
1!n.if_~!}).,?.Ht..9...J!. .~.9.Ik~l~y_

• Para concretar ta] situaci6n, expuso gue se habria concretado una emisi6n de
5!.9..~.iQH9..~. . . . .~.n. . . .-9.QD.trn. . . . . Q.9.. . . .J~. . . . I9.gl~m~D.J.§:9-.iQJ.1.. .JJ?.. . _...1?.. . . . .~Q.fi9..QI:!:.Qj_______rn_~QJ.t. ._PQ.L..JS!
cual tambien los sucesos podrfan encuadrarse dentro del art. 301 del C6digo
Penal, (actos contrarios a 1a ley y el estatuto consentidos por el director, gerente.
administrador, liquidador de una sociedad): Diria por que no se emitieron
.§:f.9.i.Q.TI~~---····9.D.. . . 9.:Q.D.trn. . .4.9.. .J.~. . ..I9.gl?m.9.!.;!.!.~9.i(nL. Q.9.. . .1?. . . .~Q_Qi9.4..?:~L. (fuP.:.Q.§:D.~. . . 9-.Q:D.:.. J9.Y. . .d9.
sociedades y estatuto de Red Cell). Po:r otra parte v aun cuando supusieramos
gue las decisiones eran contrarias a la ley, estatuto o reglamento, el remedio esta
establecido en la LSC: acci6n de impugnac.i6n, que no solo la podia iniciar como
g_Q_9..iQni~l§:. . . . $.iHQ. . . . .t~.ml.?.i¢.n.. .-..GQmQ_. . . . P.rn$i4..9.D.!9..~. . . . H.~Y. . .JJ.H§:. . . . Y.i~. . j.Q_Q_D.~~---··-·gJ!.9.. . . . .9..~. .-J.~
societaria. Se trata de un conflicto societario que escapa a la justicia penal.

e Asimismo relat6 que los administradores de la sociedad -titu1ares del paquete


mavoritario que representaba cl estudio Brons & Salas- derivaron las principales
cuentas de la finna a otra sociedad de eHos (Young & Rub:icam), donde
comenzaron a desempefiarse los creativos de Red Cell (administraci6n
.frng_Q.1!1.9.Dt~.--·········=-~tl.:. . . . . . ..17J. .-.. . . im;i§.Q. . . . . . .1~~-. . . . . .4.9.1.. . . . . .C..r..::1;._ _ _ _ _ _S..R. . . . . . .QJ~.Y.IQl\. . . . . . .Q1J..E._. . . . . EJ:'.
ADMINISTRABA?! ! ! Se rcfiere a administradores de la Sociedad y el
Presidente era el.

• En el intercambio de emails que se acompafian como Anexo IV, surge que


Williams no solo tenia conocimiento de que las actividades de la Sociedad
serian asumidas por otra empresa del Grupo WPP, sino que estaba a cargo de su
negociaci6n. ~.Q.. . . . . . S..R. . . . . . S.I.. ._.J::.Q. . . _._ PQNI?..R.L~---. . ._Il~J.:~L. . . ..h2.5..L. . . . J:~2. . . . . . .9..§!m:fmn.Q.§
Hrcconociendo" lo gue el invoca.

• Es falso que Williams no tuviese conocimiento respecto de la decision de


Berkeley de disolver la Sociedad conforme surge de la CD que se adjunta como
Anexo V, en la que se le solicita convocar a asamblea para considerar, entre
otros, dicho punto. Precisamente a dichos fines y en SU caracter de Presidente
fµe __qg_~--..i.~J.9.....§QJi ci!Q.nLQ_Q_~_d~__g__ 9...Q..D..Y....Q2S!I__~g_§.~mQJ.~g_..PfilJ.L.£QJ1§.id9-:rnI.1~u;;.11~~ti.Qn .

• Ante la ausencia del Presidente de la Sociedad (ausencia o negativa?}, Berkeleys


Q[Q_~~gi6 a_ solicita:r la c01~vo9._~tori§: aQt~Ja IGJ~_m::gm1if?1no qg_~ hizo lugar al
pedido de convocatoria a asamblea efectuado por Berkeley (Anexo VI) en tanto
los requisitos de admisibilidad de dicha medida se encontraban por demas
reunidos. y-.Lla asamblea fue celebrada el 31 de marzo de 2009 (Anexo VII). Del
~~----------~A~

INDJCEALFA-TEMATICO DE LA VNIDAD 1
A
CISC
AID Vease conversion ND 48. 123
Acceso Directo a Memoria clock drives Vease Unidades de disquete y U2
13.70, 72 codigo de 39, 45
acumulador Vease Registro acumulador DRQ 101 y U2
ADM (Detalles en Un~dad 2) 13,72,88 instruccion Ver codigo de maquina Dual Core (procesadores) 168
interrupci6n de finalizaci6i1 93 maquina E
30 EEPROM
operacion 22,68
AIM Ver Acceso indirecto .memoria 89 31
comparacion de dos numeros electronica
algoritmo 28,158
almacenamiento masivo Vease memoria mediante su resta en Ia UAL 50 del periferico 67 y U2
extern a compilador 32 intermediaria (interfaz) 67 y U2
ALU Ver Unidad Aritmetico Logica complemento al modulo CU 1-4 Enteros binarios (numeros) CUl-5
AND a la base Ver comp!. al modulo Entrada definicion 13
49 computador Entradas/salidas (EIS) 12,58,67
ancho de banda
96,104 anal6gico
antememoria Vease cache detalles para mouse, impresora,
62
Archivos resumen funcionamiento teclado,m6dem y monitor 68 y U2
13 14
de codigo digital Acceso indirecto a/ memoria 89 y U2
30 61
ejecutables contador de programa (CP) I4
fase de transferencia 88 y U2
30 contenidode memoria EPROM 21, 22
arranque de PC (booteo) VerUnidad2 16,67
ASCII (codigo) controlador/a escalar (procesador) J 14
145 78
B de video excepciones vease interrupciones
72
Assembler Ver Unidad 3 37 inteligente F
70 FAT Vease U2
Babbage 160 de bus
104 fetch
bandwidth Vease ancho de banda Conversion 43
analogica digital (ND) 65 firmware
base o raiz de un sistema numerico 133 flags SZVC 29
BCD CUI~! binaria a hexa 7,142
flash ROM
15,50,CUl-17
BIOS 21 binario a decimal 7,140 22
de cualquier base a decimal 140 floating point (FP) Ver punto flotante
binario natural (sist numerico) 137
de decimal a cualquier base 141,142 formateo fisico 16gico Vease U2
binario con bit de signo CUl-5
binarios fraccionarios CU 1-25 digital/anal6gica (D/A) 66 G
Gigabyte (GB)
binario BCD CUl-31 hexa a binario y viceversa 142 24
paralelo a serie 86 H
bit 7,137
serie a paralelo 72-65-66 handshaking 84-104
de comiezo y final 85 Hardware
de paridad 85 coprocesador matematico funciones 51
esquema en ejercicio integrador CU-37 soporte material de! software 28
de signo CUl-5
CPU Vease UCP Htper-Threading 130
de start-stop 85
boot sector Ver U2 D I
DIA IIO channel
buffer 66 89
76 data paths IDE
memoria cache 67
96 IN (instrucci6n)
burst transfer camino de datos en la UCP 46 y Ap. 4 85,89,92
96 indicadores Ver flags
bus ~m 2
68-103 informacion
ancho como materia prima 12 2
103 analogica
ancho de banda DBMS software administraci6n base 63
104 digital
ciclo de datos 155 61
Debug versus datos
controlador l 03-68 2
Instrucciones
ISA 14, 68, 104 como carnbiar registro AX u otro 36 4,30
como cambiar IP 36 c6mo localiza la UC la pr6xima 35
lineas de datos direccion control 13
como conocer todos los comandos 36 c6mo las encuentra la UC 35
local 14-68 de salto
master l 03-68 como ejecutar una secuencia de instr 38 35,36
como ejecutar una instrucci6n 37 de salto condicionado
PCI 105 53
c6mo entrar 33 de salto y los indicadores SZVC 50
SCSI 107 definicion
sincronico l 04 como examinar registros de UCP 36 31
c6mo salir 34 en memoria
USB 109 35
escritura de datos en memoria 34 en progr. de usuario y SO 152
bus AT Vease bus ISA
buteo (booteo) Ver arranque escritura de instr. en memoria 34 escritura en mem usando el Debug 34
IN yOUT
byte como escribir en memoria 33 80
7 pasos en la ejecuci6n de c/u
almacenado ejecuci6n instrucciones de salto 53 39
16 que ejecuta una UCP
c visualizaci6n de flags 54, CUl-34
en CJSC y RISC
28
C (flag) decodificaci6n 41, l 16 124
CUI-19 instrucciones y datos
cache device driver Yease driver 12,30
96 dipositivos INT xx (instr. para interrumpir)
como funciona 93
96 inteligencia de la UC
controlador de de almacenamiento masivo Ver U2 13 48
97 direccion absoluta inteligencia de un computador
de disco rigido (Ver U2) 33 48
direccion-direccionaamiento Interfaz (plural: interfaces) 67
level l (LI 102
caJculadora de memoria 18 como pequefia RAM con ports 78
5 controladora de video
ordenes que ejecuta de ports 80 88
5 de unidad de disquete
canal es directorio raiz Ver Unidad 2 88
89 division de binarios 144 de disco rigido
cefdas 88
interrupciones 79, 91, 94 y U3
dememoria DMA (Direct Memory Acces) Ver ADM
16 arbitro de
Centronics 81 DRAM 21, 22, 77 79
drive 78 y U2 enmascarables
chip de memoria 18 93
por hardware
Cicio de una instruccion programa manejador perifco 78, 79 y U2 92
43 por hardware externas
versus drive 78 y U2 92
por software
93
texto de esta ultima surge que es incorrecta la objeci6n de Williams respecto a
que es una situaci6n extrafia que se haya consignado que la disoluci6n fue
aprobada por la totalidad de los accionistas presentes. Esto fue asi ya que
Williams no notific6 asistencia a la asamblea y su presencia fue en el acto se
debi6 a su caracter de Presidente de la Sociedad (no como accionista)._J~0_§.9
entiende bien. Que sostiene Williams? Por gue dice gue es extrafio que se haya
consignado gue fue aprobada por la totalidad de accionistas presentes?

• En cuanto al supuesto perjuicio patrimonial derivado de la calidad de accionista


de Williams, es evidente que este ultimo no tiene claro que su responsabilidad
patrimonial se limita al monto integrado para la suscripci6n de las acciones (que
ni siquiera fue desembolsado por el conforme surge de la asamblea del 30 de
octubre de 2007. Nose silo diria tan asi porque no es precisamente por ello que
el niega su canicter de accionista?. Otra prueba de que no debera hacerse cargo
de ninguna deuda es el nuevo aumento de capital dispuesto mediante asamblea
del 19 de mayo de 2009 en la cual Berkeley asume la obligaci6n de integrar el
monto necesario para hacer frente a las obligaciones de la Sociedad (Anexo
VIII)::

-~·-·-······-··JI.IL. .I9.l?.:.9.i9.J1. . . J!. . _._9..~1.9. _. . h.9.9h9. . .J:H:!Qii.~. . . ._.9,1J9._. . . .d.9.lirniJ.?.:r.J?.:. . . _9.Q.!l.9.E:~.t?.:. _g!::?.n4.1J..9.l~. . . . .9JIQ
habria llevado a cabo el Sr. Mercado en dicha inscripci6n. la cual no fue
puntua1izada en la denuncia: MEI<.CADO no inc1uv6 o dej6 de incluir a
Williams como accionista. Ello fue producto de lo resuelto en la Asamblea
.9.1!-.Y..?.:~. .d.9.P..i~i.Qn9..§. ..1.Q_~1Q.~_J9§. J19.9.i.9ni~1.?.:.§___gQ_D.:.~i.ntis:?.rnn.'..

• Finalmente tambien indic6 que la "nueva sociedad" Young & Rubicam, atendia
.9.HY.nJ9_~. . . . . 9..IL. _. 9.QJ,})_P.9.t9-n9.i~L. . . 9.QIL.. . .Qlr.9.~---·····P.9.IID_m1.~~mt9§. . . . . .d..9. . ...J.:f:!:. _. . .fin:n.?.:_ . _. .:R9..9:. . . _. C.9.U~.
generando entonces un supuesto quebranto v desviando 1a clientela de
esta ultima empresa a favor de Young & Rubi cam (concurrencia desleal -art.
159 del CP.-): HABRIA QUE DECIR ALGO. VER QUE VA A DECIR
Il.RQ~.S.. . :f:!:Lr..9-..~.P.9..9.tQ.!.
tP Ver regisrro puutcro dchbtral,;.... 3S--------multiplicaci6n de binarios i44 R
actualizaci6n 41 multiprocesamiento 116 raiz Vease base
c6mo cambia 35 versus multiprogramaci6n 116 RAMyROM 20
IRQ 68. 79,84, 88, 92, 93 multiprogramaci6n Vease multitarea random acces i 7.18
K multitarea 154 RDA Vease registro de daios 40
Kilobyte (KB) 24 multitasking Vease multitarea RDI Vease registro direcciones 4059 sun
L nanosegundo (nseg) 17 RE Vease Regisrro de Estado
lectura-escritura nivel de maquina 32 recursos de un sistema 154
de memoria 18 n(1meros enteros Vease enteros Registro l l,15.76
lenguaje 28 numeros reales Vease reales acumulador II
absoluto 32 0 AX II
Assembler (ver U3)/ 93 operando 40 concepto general 11,18
LIFO 95 obtenci6n de memoria 40 CS (code segment register) 16 targ
ineas de direcci6n, datos y control 13 OUT (instrucci6n) 80,82, 86, 91 de datos (RDA) 40 Ten
local bus Vease bus local 26.105 p de direcciones (RDI) 40 ti en
logical 28 Packet CUl-31 de Estado (RE) 50 ti1m
LPT 82 P6 125 de instrucci6n (RI) 40 tr an
LRU 101 paridad 25 de pr6xima instrucci6n 35,41
LSB 86 en nsmisi6n serie 85 port vease port 68 UAI
M PCI Vease bus PCI registros de la UCP; una pequefia RAM 26 cc
maquina virtual 153 Pentium I, II, III, IV 114 relaj 3~45 fr
master Vwe bus master 103 predicci6n de bifurcaci6n 129 resta de binarios naturales 143 fl
Megabyte (MB) 24 perifericos 65,67 y U2 sin pedir prestado 144,CUl-2
Memoria conversion DIA 67 de binarios con bit de signo CU I-12
acceso al azar (random acces) 20 definici6n 13 RI Ver registro de instrucci6n
auxiliar Vease memoria externa electr6nica de 67,68 RISC 26, 48, 111, 121
buffer 77 pila (stack) 94yU3 RMM 22,23
cache 78,96 pipe line 114 ROM
capacidad (KB, MB, GB, TB) 23 plaqueta BIOS 21,78, 91. 92, 122
central Vease Memoria principal de video 72 de Control ode microc6digo 48,112
dinamica (DRAM) 21 interfaz 68 de control vs. ROM de MP y SO 48
direcci6n relativa y absoluta 33 multifunci6n 88 RS232C 81, 84, 85
DRAM, SRAM, VRAM, PROM, principal (motherboard) 8 s
EPROM, Flash ROM 22 polling 84 S (flag) CUI-18
electr6nica 12, 13 Porci6n Central Salida definici6n 13
EPROM 21 de un computador 13,67 SCSI Vease bus SCSI
escritura 43 port 76 segmentaci6n Vease pipe line.
externa (discos) 12, U2 como frontera 81 sefiales digitales binarias
intenia Vease Memoria principal de control 77,80 propagaci6n y almacenamiento 59
interna electr6nica 12 de datos 82 sefiales
interna en modelo de Von Neumann 114 de status 78,83 en el interior de un computador 65
jerarquia 102 direccionamiento de 78 telef6nicas 65
lectura 40 funci6n buffer 77 anal6gicas 64
lectura y escritura con el Debug 34 lectura/escritura 80 simbolos 2
lectura-escritura 18 para comandos 77, 78,80 SWM n
m6dulos SIMM 21 para datos y comandos 78 sistema numerico
principal (MP) 12 port paralelo Ver interfaz port paralelo binario 7,137
RAMy ROM 20 port serie Ver interfaz port serie hexadecimal (hexa) 7, 138
RMM 23 posici6n de memoria 16 posicional 133
tiempo de acceso 19 POST U2 Sistema Operative (SO) 154
volatil 20 PowerPC 124,125,168 como software de! sistema 154
MFLOPS (megaFLOPS) 52 pre-carga 117 funciones 154
MHz 46 de instrucciones 117 administrador de recursos 154
microc6digo 48 precision extendida 51, CUl-30 monotarea 154
microcomputadora 12 pre-fetch 'Vease pre-carga multitarea 154
microcontrolador 29 Primera generaci6n computador 163 siglas de Sistema Operativo 154
microinstrucci6n 49 procesador de "tiempo compartido" 154
microprocesador escafar 114 slots vease z6calos
de 8, 16 y 32 bits 26 superescalar 121 Software
dedicado 12, 29 primitivas de procesos de datos 4 alto y bajo nivel 32
UCP 12 procesadores clasificaci6n 153
microprogramas 49 PowerPC, Alpha y SuperSpark 168 como estado electrico de! hardware 28
MIPS 52 proceso de datos 1, 2 administraci6n de base datos 155
miss (en cache) 104 en paralelo 121 de aplicaciones ode! usuario 151
modelo de Von Neumann 114 proceso fabril 5 de control comunicaciones 155
modem 66,72 programas y algoritmos 30 del sistema 153
modulacion 6 PROM 22 fijo en el hardware (firmware) 29
intert'az RS232C 84 protocolo 84 su esencia 28
modulacion y demodulaci6n 65 port paralelo 84 software y datos, diferencias 38-156
monitor 72yU2 port parelelo (Centronics) 83 SRAM 22
motherboard 8 pulsos reloj 46 versus DRAM 22
MP Vease memoria principal punto tlotante 51,CUl-27 stack Vease pila
MSB 86 subrutina
1!5 va n:gistfopIT11Rrn·-cte lnstmcc:--35------ multiplicaci6n de binai--ios i 44 R
actualizaci6n 41 multiprocesamiento 1l6 raiz Viiase base
c6mo cambia 35 versus multiprogramaci6n l 16 RAMyROM
IRQ 68. 79.84, 88, 92, 93 multiprogramaci6n Vease multitarea 20
random acces 17.i&
K multitarea 154 RDA Vease registro de datos
Kilobyte (KB) 24 multitasking Vease multitarea 40
ROI Vease registro direcciones 40,59 sun
L nanosegundo (nseg) 17 RE Vease Registro de Estado
lectura-escritura nivel de maquina 32 recursos de un sistema
de memoria l8 154
numeros enteros Vease enteros Registro
lenguaje 28 lUS.76
11(1meros reales Vease reales acumulador
absoluto 32 11
0 AX sup1
Assembler (ver U3)1 93 11
operando 40 concepto general 11,18
LIFO 95 obtenci6n de memoria 40 CS (code segment register) 16 targ
ineas de direcci6n, datos y control 13 OUT (instrucci6n) 80,82, 86, 91 de datos (RDA) 40 Ten
local bus vease bus local 26.105 p de direcciones (ROI) 40 ti en
logical 28 Packet CUl-31 de Estado (RE) 50 ti1rn
LPT 82 P6 125 de instrucci6n (RI) 40 tran
LRU 101 paridad 25 de pr6xima instrucci6n 35,4!
LSB 86 en nsmisi6n serie 85 port Vease port 68 UAI
M PCI Vease bus PCI registros de la UCP; una pequeiia RAM26 CC
maquina virtual 153 Pentium I, II, III, IV 114 reloj 39, 45 tl:
master Vwe bus master 103 predicci6n de bifurcaci6n 129 resta de binarios naturales 143 tl:
Megabyte (MB) 24 perifericos 65,67 y U2 sin pedir prestado 144,CU 1-2
Mernoria conversion DIA 67 de binarios con bit de signo CU I- 12
acceso al azar (random acces) 20 definici6n 13 RI Ver registro de instrucci6n
auxiliar Vease memoria externa electr6nica de 67,68 RISC 26, 48, 111, 121
buffer 77 pila (stack) 94yU3 RMM 22, 23
cache 78,96 pipe line 114 ROM
capacidad (KB, MB, GB, TB) 23 plaqueta BIOS 21,78. 91, 92, 122
central Vease Memoria principal de video 72 de Control o de microc6digo 48, 112
dinamica (DRAM) 21 interfaz 68 de control vs. ROM de MP y SO 48
direcci6n relativa y absoluta 33 multifunci6n 88 RS232C 81, 84, 85
DRAM, SRAM, VRAM, PROM, principal (motherboard) 8 s
EPROM, Flash ROM 22 polling 84 S (tlag) CUl-18
electr6nica 12, 13 Porci6n Central Salida definici6n 13
EPROM 21 de un computador 13,67 SCSI Vease bus SCSI
escritura 43 port 76 segmentaci6n Vease pipe line.
externa (discos) 12, U2 como frontera 81 senates digitales binarias
interim Vease Memoria principal de control 77, 80 propagaci6n y almacenamiento 59
interna electr6nica 12 de datos 82 sefiales
intema en modelo de Von Neumann I 14 de status 78, 83 en el interior de un computador 65
jerarquia 102 direccionamiento de 78 telefonicas 65
lectura 40 funci6n buffer 77 ~~~~as M
lectura y escritura con el Debug 34 Iectura/escritura 80 simbolos 2
lectura-escritura 18 para comandos 77, 78,80 SIMM 22
m6dulos SIMM 21 para datos y comandos 78 sistema numerico
principal (MP) l2 port paralelo Ver interfaz port paralelo binario 7,137
RAMyROM 20 port serie Ver interfaz port serie hexadecimal (hexa) 7, 138
RMM 23 posici6n de memoria 16 posicional 133
tiempo de acceso 19 POST U2 Sistema Operativo (SO) 154
volatil 20 PowerPC 124,125,168 como software del sistema 154
MFLOPS (megaFLOPS) 52 pre-carga 117 funciones 154
MHz 46 de instrucciones 117 administrador de recursos 154
microc6digo 48 precision extendida 51, CUl-30 monotarea 154
microcomputadora 12 pre-fetch 'Vease pre-carga multitarea 154
microcontrolador 29 Primera generaci6n computador 163 siglas de Sistema Operativo 154
microinstrucci6n 49 procesador de "tiempo compartido" 154
microprocesador escalar 114 slots vease z6calos
de 8, 16 y 32 bits 26 superescalar 121 Sottware
dedicado 12,29 primitivas de procesos de datos 4 alto y bajo nivel 32
UCP 12 procesadores clasificaci6n 153
microprogramas 49 PowerPC, Alpha y SuperSpark 168 como estado electrico de! hardware 28
MIPS 52 proceso de datos 1, 2 administraci6n de base datos 155
miss (en cache) 104 en paralelo 121 de aplicaciones o de! usuario 151
modelo de Von Neumann 114 proceso fabril 5 de control comunicaciones 155
modem 66,72 programas y algoritmos 30 del sistema 153
modulaci6n 6 PROM 22 fijo en el hardware (firmware) 29
interfaz RS232C 84 protocolo 84 su esencia 28
modulaci6n y demodulaci6n 65 port paralelo 84 software y datos, diferencias 38-156
monitor 72yU2 port parelelo (Centronics) 83 SRAM 22
motherboard 8 pulsos reloj 46 versus DRAM 22
MP Vease memoria principal punto tlotante 51,CUI-27 stack Vease pila
MSB 86 subrutina
de servicio de interrupci6n 91. U3 operaci6n AND 49 Unidades de EIS Vease Pentericos
de! BIOS 92.94 . operaciones l6gicas que reaiiza 49 uniprocesamiemo i 16
20
de[ Sistema operativo . 92.94 so!O opera entefos 0 naturaies 51 miiirnrios como software del ststema 151
i7J& funci6n de la pila 94.U3 UART 84 utilitarios, programas
40 Ilamado mediante INT xx 93, U3 UC Vease Unidad de Control v
40,59 sum a UCP Vease Unidad Central de Proceso V (flag) CUI-31
de binarios naturales 143 usa ports para 6rdenes a perifericos 78 virus 153
154 de binarios con bit de signo CUl-10 Unidad Aritmetico L6gica Vease UAL Von Neumann modelo de 114
U5.76 de binarios en punto flotante CUI-31 Unidad Central de Proceso VRAM 22, 72. 88
Ii de binario BCD CUl-31 UCP (CPU en ingles) 12 w
11 superescalar 121 Unidad de Control wait state
11,18 T distingue datos de instrucciones 43 estado de espera (en cache)
16 target 103 d6nde reside su inte!igencia 48 write back
40 Terabyte (TB) 24 funci6n primordial 40 write through (escrituras en cache)
40 tiempo de acceso a memoria 17 juridicci6n hasta los ports 80 x
50 time sharing Ver SO tiempo compartido lineas de control 47 Xcon 130, 168
40 transmisi6n de sefiales e!ectricas bin. 59 manejo de interrupciones 93 yU3 z
35,4! u no controla datos 45 Z (flag) CUl-31
68 UAL (Unidad Aritmetico Logic que controla 40 z6calo 8
AM26 compara numeros mediante resta 50 ROM de Control 48
39, 45 funciones 11, 12,50 UC 8
143 flags SZVC que genera 50, CUl-17 y los perifericos 13 y U2
,CUl-2
CUI-12

11, 121
22, 23

92, 122
48,112
O 48
84, 85

UI-18
13

59

65
65
64
2
22

7,137
7,138
133
154
154
154
154
154
154
154
154

32
153
re 28
155
151
155
153
29
28
8-156
22
22

unidades de disquete (drive) 7, 73 y U2


BIBLIOGRAFIA PRINCIPAL
Angulo J., Funke E, 386 y 486 Microprocesadores avanzados de 32 bits . Ed. Paraninfo. 1992
Brey B. The Intel Microprocessors Fifth Edition Prentice Hall, Inc 2000
BYTE, The Magazine ofTechnology Integration. Colecciones 1990-1996
Ginzburg M Introditeci6n a las Tecnicas Digitales con Circuitos Integrados Biblioteca Tecnica Sup~rior ~ ed. 2005
Hennessy J., Patterson D. Arquitectura de Computadores. Un enfoque cuantitativo Mc Graw Hill I 993
Hennessy J., Patterson D Computer Organization & Design. Th~ Hardware/Software Interface tvlurgan Kaufmann Publishers, Inc
Intel Pentium Pro Family, Developers Manual I 997
Intel IA 32 Intel Architecture 2003 - (P6 Family to Pentium 4)
Intel: www.intel.com/technology/hvperthread//index.htm (Papers sobre hyperthreading)
Messmer Hans-Peter The Indispensable PC Hardware Book Second Edition-Addison-Wesley 1995
Norton P. Inside the PC Brady Publishing 1993
Stallings W. Computer Organization and Architectures. Fifth Edition Mc Millan Publishing Co. 2000
Tanenbaum A Structured Computer Organization Fourth Edition Prentice Hall International, Inc. 1999
Tischer M. PC Intern, System Programming Data Becker;..Abacus, 1995
Triebel W, The 80386DX Microprocessor, Hardware, Software & Interfacing E d. Prentice Hall 1992
_ INFORMACION
. ·····- ···-
-~--~----- ""•-·-=-·
·.-PAR.A
__:__:.::•-·---
---~:..;___.,:
EL
-
LECTOR ~ n .. :--=-=--.&.-
11111"11-'1a1 IL~

. .El exito afcanzado por las anteriores ediciones de esta Medio


obra, agotada en breve tiempo, confirma que sus
contenidos y su metodologfa didactica aseguran: Avanzado

• Una clara y s61ida comprensi6n en profundidad de .(" Todos los


las operaciones y flujos de informaci6n que perma- niveles
nentemente ocurren en el interior de cualquier c9m-
putador. Ellas se ejemplifican para una PC corriente.

0 El conoCimiento basico de la totalidad de los temas


esenciales necesarios para dominar el hardware.

• Que no sea necesario ningun saber previo sobre


computaci6n, dado que cualquier tema empieza
11
desde cero11 , con analogfas de la vida cotidrana.

Tonto el libro como coda tema parten de conceptos basi-


cos generales, para llegar gradualmente haste detalles
particulares. Esta concepci6n permite al lector decidir el
. ···<·-·· ...••...• nivel de pro·fundidad al que quiere llegar en coda caso.

Se don, paso a paso, ejercicios sencillos resueltos con el


programa Debug (presente en cualquier version del
Wlndowsj, para que el lector los realice en su PC, a fin de
que se capacite para visualizer c6mo opera un compu-
tador, y c6mo utiliza la memoria y los registros ..

También podría gustarte