(Libro) La PC Por Dentro
(Libro) La PC Por Dentro
(Libro) La PC Por Dentro
-~------- ···-""
LA PC POR DENIRO
ARQUITECTURA Y FUNCIONAMIENTO
DE COMPUTADORAS
M.C.Ginzburg
ISBN-10: 987-05-0916-9
ISBN-13: 978-987-05-0916-5
ISBN 987-05-0916-9
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.
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
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
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
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
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
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.
-
~.
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
-~,~ Unidad
de
Registros Control
Unidadde (UC)
disco
Unidadde
disquete
Tee/ado
Un/dad Central
de Proceso (UCP)
Perifericos
deentrada Fig. 1.6
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.
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:
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
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 '
____ ..,
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
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
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
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
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).
., =
~,~~~~~~~~~~~~-----,
~~··\~~·\
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~·
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
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)
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:
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
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
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
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
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.
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.
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'~~:.:;;-:;$;~~-:;:~;~.:::-::~
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
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
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.
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
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-'
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 )
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
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
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
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
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:
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:
-
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.
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
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
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·
.~
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.
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
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
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.
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
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''.·
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
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
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
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
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
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.
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 •
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
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
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.
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
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
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
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):
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
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.
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
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.
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
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 ~
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.
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 !
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.
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
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
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 • ·
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.
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.
......
S caches : !-::.-=-=--=-=---~ --- --- -- ---------- _1
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
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
~
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
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
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
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.
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.
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.
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.
1010001010
i hgfedcba
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
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;
Cuando se tipea Alt 64 para que aparezca @, dado que 64d = 0 I OOOOOOb este sera el c6digo ASCII de @.
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?
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).
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.
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)
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.
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
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).
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
Figura Al.3
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
(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
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
-- 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.
"3v durante Tr
Figura A4.6
''··.•.•.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 ·
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.
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
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 ._,
• 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
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 ·
'
',,~--- ''~-------- ~
=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
_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
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----:'--
...;..·~
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
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
~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==
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
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
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
-
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
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
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.
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
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
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)
a-ii) V=O S=l Z=O C=l Enteros: V=O S=l ~ R=ok y -R y min< sust (+8) < (+43)
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)
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)
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
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.
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
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=
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:
Un m1mero fraccionario positivo mas pequefio (+NFMIN) en FP se define para p+127 = 00000001, y con f = 0
na parte
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:
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.
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
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
~ {~\
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-
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.
• 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.
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?
-~·-·-······-··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