Escolar Documentos
Profissional Documentos
Cultura Documentos
-7 JTAL ,
ARQUITECTURA DE COMPUTADORAS
TERCERA EDTCI~N
TRADUCCI~N:
M&Argentina Brasil Colombia Costa &a Cbiie Ecuador Espaa Guatemala Panam PerG Puerto Rico Uniguay *Venezuela
*eE
.sherep C o o d m
editor: hrbnr'i
m
A
lisr d
i o
DEECH05 RESERVAWS
Atlacomuioo Nfim. 5 0 0 - 5 O Pisa Col. Zndustrial A m 53519, Naucalpan de J u h z , Edo. dc Mexiw ISBN M w 6 0 . 3 6 1 4 de la Nacional la Indushia Editorial, M. N a: MiembroEfiglish Language Edition P u b W by
Cgmara
h la' '4
'ItP
Original
ARQUITECTURA
DE COMPUTADORAS
Prefacio
1-2 Compuertas 16gicas 1-3 kgebra Booleana Complemento de u~ui furzci6n 11 1 4 Smplificaci6n por tnapas S i m p l t w n del producto de h s sumas Condiciones "m h p h " 17 1-5 Circuitos combinatorios Semisumadur 21 S u d w complefu (o total) 1-6 Flip flops f l i p w SR . 24 Flip pcip D 25 Flip flop JK 25 FipfZop T 26 26 Ffip jlqv dispnrado por -el glnnco
T a b l a s #d'W
28
1-7 Circuitos secuencialk Ecuacbnes de &a& de Ios jlip fropc Tabla de estado 31 Diagrama de estado 33 Ejemplo de -diseffo 34
"
30
2-1
2-2
2-3
2-5
2-6
2-7
I.u
&4
EX
63
65
I
!
1
CAP~TUD TRES
Representacihn de datos
3-1
72
76
RqmenWndecrnial
3-2
Rqmentach alfanurn&m Comp~tos CompktoI d 79
. -.
3-4 3-5
81 R e s b de n i I m sin signo Rp-tadh de'*piuitofijo ) i l P R e p r e s e n M de enteros 83 unhetia 84*-a34#9 Resfa arifmtica 85 ha--SobrgIt~jo 85 -~ Y L Rqmsmtacin del punto fijo den'nral Representacin con p.unto.flotante
Otros cdigos bina&
* 1
3-6
C6digo Gray 89 Okm d i g m decimales 90 Otros digas dfirnr~mdrh 92 Cbdigos de deteccin d emir - 1 Problemas mReferencias
w
m
C A P W CUATRO
Transferencia de r k g h t ~ y~ microoperaciones
mil
4-3 Transferencia de canal y de memoria Canal de bus de tres mtados 106 T r n n s m de memoria 108
S u d o r sustractm binario
21'1
44
4-7
C A P ~ W CINCO )
a*.
1
cogpu@doras
133
Direcchrntento indirecto 134 Regisb computadora d M Canal m d n del 6istema 137 itll E & Instrucciones de computadora Versatilidad del conjunto e i 7 i s f r u c E i o m .143 Temporhci6n y control
F r .
Ciclo de instrucci6n
B d s q u d y decdjficanff 248 A Determinncin del tipo de instruccibn 150 Iris-de r.fera?cia a r @ t m 153 ~trucciones de referencia a memoria Ejecucin de l a itzstruccin A N D n AC 255 Ejecucin de la imtrucdn ADD a AC 155 LDA: C a r p a AC 156 STA: ~ l m & r AC 156 BUN: Brinco irnondichal 156 BSA: Brimr y guardar Ea direccin de ~m 157 r s ESZ: Incrementa y b r i w si es c m 258 %grama 05flujo & mnfrol 159 a
b3
u!
M p c i n completa de computadora D k i b de una computadora Msica C m ~ l ~ k w n t 270 d C o n t r o l d e ~ t w a s y m d 170 Cmrtrol&j7ipflopsilimiorrs 171 Cmtrol de un canal comn 172 DiseAo de un +aundador 16gico Control &l regisha AC 174 Circuito s u & y Mgw 175 m r~ Problemas Referiencias
CAP~%EO SUS
63
n , 64
Intduccin 1 ALenguaje de mquina kmaje ensamblador Regias &l lenguaje 189 Un ejemplo 191 Tdu& nb i d 391
h . H . '
A
a ;
6-5
64
qwmentaci6n de un programa simb6lico en la memo& 1 M P r i m m pasa& 195 -44 Segunda pncnr3a 197 A q' Ciclos del programa Programaci6n de operaciones aritmeticas Prrrgnima & m u t i p l i ~ 205 1 Suma de &le precisidn 206 operaciones 1 6 g - k 207
W 4~&-*&-.-~ 2 9 8 6-7
Subditinas
6-8
Pardmtros de subrufina y enlace de datos Programacin de entrada-salida M n n i p u h h & aaracteres 215 ~nt&pc& del programa Problemas, 217 Referencias
.-*#m'
211
m ' . !
Ci
. .
7-3
7-4
246
wi
-a
!l
U P OCHO ~
Organizacibn general de los registros Palabra de control 258 ,, EjempZm de miciionperaciones 25'1 fi Organizad611de una pila Pila de registro 262 Pila de memoria 264 Notbicibn polaca irmersa 266 E d u a c i d n de las expresiones aritrndticm Fhnatos de las instrucciones Instruccioes de tres direccionq 273 Insfmc+nes de d ~ d siwahs 273 Instruccbes de u m di=& 274 Imtrumhes de wro direcciones 274 Instrucctones RISC 275 -0s de direccionamiento
258
Ejemplo numrico
280
Transferencia y manipulacin de los datos Instruccbnes de W f e r e n c i a de los htcs 283 Inshdones de mnnipulncin de los dafos 284 Instruccbms ariimticas 285 Instrucciones 16gims y oie mnnfpukzcih de bits 286
Inshucbm de m i m h t o
Control del programa
288
Bits de condicim de es& 291 Instrucciones de brinco condicionnl 293 295 Llamada y retomo de mbrutim Intemqckh &l p r v m a 297 Tipos de intnmpcbm 299 Computadora de conjun'b de instrucciones reducido WSC)
300
CarsicterEsticas CISC
Camterbtbs RISC
301
302 Ventanas & registros bslap& RlSC I de 8exkeIey 306 Problemas Reerencias .,t
m $ 33 ti--' k m !-
* .r*rr
w
w
9-7
cA~h"LzL0 DIEZ
Aritmttica de computadoras
10-1 10-2
xii
contenla0
10-3
357 Suma y resfa con &tos d~ mpititd Eon signo Implantacin de kardware 358 Algoritmo dev hardwm 359 &tos ds complemeittu a 2 Suma y resta con signo 361 Algoritmos de multiplicaci6n ImpIantadn de hardwre para datos de mgnitud m signo 363 Algaifme de hnrdwire 36# 366 ~ l & h t o & m t i f t i p W n ije .Bmth
m signo
Otros algoritmos
10-5
rfe
...
t
377
tt
Operaciones aritmdtieas de punto flatante Consiikrncidnes hfiiaas 378 Corofigumcibn de registros . 381 -m Suma y resta 382 m Multipl-n 384
106
Divish 386 Unidad aritmktica decimal Sumador BCD 389 Resta BCD 391
K"
e w?
4 aia?
----'7f
10-7
Operaciones aritmticas decirnies R. W! Suma y m t a 395 CL Multipliuwin 397 Diarisidn 399 Opacimres & punto flPtante 4~ Problemas Referencias &
, ,
mur'**
bdn!
CAP~~ULQ ONCE
Organizaci6n de entrada-salida
11-1
,
11-2
Dispositivos perifricm Caructers nlfanu&s ASCII Interface de entrada-salida Canal de E/S y rndulos de i nt* E/S versus canal de rnenrcirin
409
412
414'
~~ xiii
11-3
Transferencia a s h n a de daC o n t d de habilitacin 419 Remm'mimfo mutua 420 Trnmfeencia d l asfntnrro~ul 423 Int.rf.ce de comunkwibtt mfnrrwra 425 Buffer prUnero m enirar, primero en wlir M d u s de trmfemch Ejemplo & E/S p r o g r a d 431 /S iniciacta por interrupcin 434 Consider~ctonm & pmgramacidn 435 Prioridad de interrupci6n
428
114
11-5
Prioridad de m i h a de margaritas Interrupc$n de priotPdad paral& Cod~@dor de prioridad 440 Cich de intmpcidn 4-41 Rutinas de p ' q p m a d n 442 Operacions inicd y fuinl W
11-6
439
437
C o n M o r DMA 446 Tmnsf.eremh D2MA 448 11-7 h c e a d o r de entrada-salida (iOP) Comunhci6n CPU-IOP - 452 Cana2 de E/S IBM 370 454 IOP de Intel 8889 458 11-8 Comunicaci6n serial ProFocrofo orientado a caracteres 463 Ejemplo de t r a n s m W 465 Transpmcia de dalos 467 h W o &fado bits
Problemas Referencias
CAP~TULO DOCE
Organizacidn de la memoria
22-1 12-2
Jerarquia de Ia memoria Memoria principal CJ. de RAM y de ROM 481 483 Mapa de direcci6n & memoria
Memoria auxiliar 1 q. Discos mpflcos Cinta mugtdticn . 489 & i --' U4 Memoria asociativa 2 Organizacin de l u circitma 490 ~1-i ?.i Ugim dr c&ncLiniM 492 m ~ c i & nde t Ieclura 495 Operacin de esmmSura 495 ' ,, -..,
12-3
'6
m e
,--.=-=a
.
I
12-5
Memd&
ea&
~apeo'asociativo 498 ' M d p directo 499 ivbpeo de m j r m t o ' o i b Escritura en la .cnch 503 Inicklizacibn del.ca& 504
+
+'
"
'
1 '
:
I\
-, l .
126
12-7
Memoria virtual Espacio de direc.ciotzpmiento y espd5u de mm,min 505 Mnpeo % e ! direccih &ando pdgin& 507 Tabla de @@m de mwia'usociatim 509 Sustitucidn de @@M 510 Circuiteria de 'adminictracibn'de la memoria Mapeo de &+m segmentadn 5a
Ejemplo numkrico
9
13-1
*m CAP~TULQ TRECE 1
w,dm --+
1 . .
-4 Multipmcesadores
13-2
E528
531
~ernork rnultipuerto'
5 3 ' 0
3i j l n t n m i b n de hipercub
13-3
' ed
532
535
Arbitraje enfre procesadores Canal del sistemu 537 Procedimiento de arbitraje serhl 5Pr 5 3 9 ~ Ldgica de arbitraje paralelo Algoritmos de arbitraje dindrnim S2
7rn-w-
13-4
13-5
Comunicaci6n y sincronhcibn entre procesadores Sincronuandn entre -es 545 Exclus& mutiut m sm@m 545 Coherencia de cachd
Condkhnes p r a incoherencia
547
549
-.
'
,#
S :
'
f'
1
.,
N ' . ?
,,
11<
'?
&
' , I + l -
1.
P * ~ T! . ,
"
Hiy
Este libro trata de ia arquiwtura de5computadoras ?'de la organizacin y diseno de computadoras. La arquitedura de computadoras se interea por la e1 * l a 7 estructura y desempeo de los diferentes m 6 d h funcionales de la computadora y cmo interacthn para atender las necesidades de proeesamiaito del i~it: ' usuario, I a organizacin de las computadoras studia l a manera en que se 1 1 - . . cmectan los componentes de la circuipara formar un sistema computacb S a*-, = - b - w nal. El diseo de computadoras a n a k el desarrollo de la circuitwfa de ,a n / , 1 l computadoras, tomando en consideraddn un cierto conjunto de ~ c . I~UI a El libro proporciona e l conocimiento bsico necesario para comprender -. " la operacibn de h cimiitera de computadoras digitales y cubre los tres temas asociados con la circuiterfa de computadoras. Los captulos del 1 al 4 ' + presentan los diferentes componentes digitales que se usan en la organiza,,u YIL..! cibn y diseio de computadoras digitales. L m capitulas del 5 a l 7 muestran 1, en detalle los pasos que debe recorrer un d i i d o r para preparar las basea . *; * de una computadora elemental. Los captulos del 8 a l 10 examinan la l'l.'i . 1 r organizacibn y arquitectura de l a unidad de procesamiento centrd LQS captulos 11 y 12 estudian la organizacibn y la arquitectura de entradadda, * ? * * y de la memoria. E l capitulo 13 aclara el concepto de multiprmesamiento. *I = it ' . E l libro se h e r e primero al material ms sencillo y dapub aborda temas m s avanzados. Por lo tanto, los primeros siete capitulos cubren el Riaterial . i 1. 4 necesario para e l conmimiento bhsico de a organizacibn, disefo y progra1. - rirt* macibn de una computadora digitar simple. LQS ltimos seis captulos pre . a I 1 .-tan la org&ci&n y arquitectura de Ias unidades f u n c i o d qaradas 1 1 de la computadora di@, e n f a b d o loa kmas ms avanzados. * r 1* En esta tercera edici6n e l materiai est organizado como en la segunda y muchos de los temas no cambian. Sin embargo, la tercera d c i b n ofrece b. -huevos temas en relaci6n con fa segunda edieih Todos los captulos, . 1 excepto dos (el 6 y e l lo), se han revisado por completo para actualizar el . . , -a material y hacer mAs clara su presentaci6n. Se apegaron dos novedades: el w t I .' S . capitulo 9, acerca del procesamiento por arquitectura paralela y vedores, y - 3 .. - 4- e l capitulo 13, acerca de multipmdores. Dos mimes tratan acerca de 4.1 7 1 . la computadora que incluye un conjunto d u c i d o de inetnicciones m. , , E i captulo 5 se revi& par completo para simpWar y hacer ms chro e1
ll1
, 'i*-
,-
.'
1111
iI
f.
'i
3>
"r
M :-
'
v7
.
I
1-
19.
.1
.-
m).
# ,
iones y las mciones ae conrroi en fonna simb6lic.a mediante un lenguaje propio de la &m desarroliamos un lenguaje senciilo de transkrencia varias operaciones de computapor completo la relaci6n del i6n de la &tera y El libro no plantea un eonocirniento previo de la circuiterla de mmputadoras y el material puede entenderse sin nhgh requisito previo, sin embargo, alguna expiencia en la progromacin de lenguaje ensamblador con unn miuncomputadora facilitar&Ia comprwisi6n del material. Los capitulas del 1 al 3 pueden saltarse si el 1-r est familiarwdo con eI dis&o 1 6 e diitaL Las~ente~unahe~~&htemasqueaecubmeneada capitulo, d d e se esfablecen I ~ mviswne E que m hicieron a l a tercera ediE l capitulo l i n a u e e los condmimtos bsicos necesario^ para el diseAo de digitales construidw con base en compuertas y flip-flop d i . Cubre el Algebra booieana, los circuitos combinatonos y secuenciales. Proporciona los a n k e d e n b n-nm para comprender los c h i b a digitales que se van a presentar. El capitulo 2 explica en detalle la aperaci6n ipca de los componentes digitah ms m u n a incluye decudifndofes, multipiexomI regis~ u m f a d m s y ~ ~ ~ d i & & s s e u m a r m o ~ c o m h d 6 n para el d k k de unidades ms grandes en Im capitulo9 siguientes. . El capitulo 3 muestra cmo se repmmtan en forma binaria b s diversos tips de datos que se encuentran en las computadoras digitales, en los qistroe de l a computadora. S e enfatiza la repmentaci&nde los nmeros
que se emplean en operaciones aribdtieas y en la codificarihn binaria de slmbolos usados en d p m d e n t o de datos, E l captulo 4 introduce un lenguaje de transferencia de registros y mueskra cbrno se usa para expresar mierooperaciones en forma simb6lica. % ! definen SfmboIcxs paza microoperaeiones aritmticas, lbgicas y de corrimientu. Se dqmoila una unidad aritmtfica-lgii y de corrimiento compuesta para demostrar e l disefo de la circuitera de las mimooperaciones ms . m E 1 CapihSh 5 p m t a la organizacin y e l d i o de una computadora digital bsica. Aunque 3a computadora es aericilIa comparada m las mmputadoras comerciales, no obstante, abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispodtivo de propbsito v a l con programas almacenados. Se usa un lenguaje de transferencia de registros para describir la operaci6n interna de fa computadora y para especificar los rqbitae para su d M o . la computadora bhica utiliza el mismo conjunto
I
de instrucciones de la xgunda edicih, pero su o q p i z a c i h de circuiterla y d M o se han revisado por m m p k Al recorrer los pasos detallados del diseo que se prem~tan en este captulo, e l estudiante podr comprenda el
-1
:i1
id
-m
funeionarniento interno de las computadoras digikles. E l capitdo 6 utiliza las 25 inshmciones de la computadora bsica para mostrar tcnicas que se usan en la programacin con lenguaje ensamblador. Se presentan,ejemplos de programacin para varias tareas de p t o de datos. Se explica mediante ejemplos k reIacin entre programas binarios y d i g o simblico. Se analizan las operacionm bhsicas de un ensamblador de cbdigo simb6lico a un programa b i r i o equivalente. El capitulo 7 intduce el concepto de microprogramaci6~Ademdq desarrolla una unidad c a de control m ~ a r n a d o para , mostrar un ejemplo de cbmo escribir un micrw6digo para un conjunto de instrucciones tipico. Re* en detalle el diseo de la unidad de control, incluyendo h circuitsofa para el secuenciador de microprograma. El capitulo 8 trata acerca de la unidad de p-iento cmtral (CPU). Explica ia operaci6n de una pila de memoria y se muestran algunas de sus apiicaciones. Ilustra diferenb formatos de instrucciones,junto con diversos modos de dkccionamiento. Hace una relacidn de las instrucciones m8s comunes que se encuentran en las computadoras, junto con una explicacidn de su funci6n. La W . b seccih presenta. la computadora con conjunto reducido de instniccion- (m) y analiza sus caracterZsticas y ventajas. El capitulo 9, acerea de p-miento de F t o r y por arquitectura paralela, es nuevo en la tercera edicin (el material sobre operaciones aritmdticas 'de la segunda dici6n se pas6 al capihdo 10). Se explica el concepto de arquitectura paralela y se muestra con varios ejemplos cmo puede acelerar e l procesarnimto. Se considera Ia arqui-a paralela aritm4tica y de ihstrucciones. Se muesh cbmo los procesadures RISC pueden ejecutar instrucciones de ciclo 6nic0, a1 usar una conduccin de instrucciones eficiente junto con tcnicas de carga y transfewncia de control del programa propuestas. Se introduce el procesamiento de vedo= y se muestran ejemplos de operadones de punto flotante usando procedimientos paralelos. E l capitulo 10 p m t a los algorihos arihdticos para suma, resta, multiplicaci6n y divisi6n y muestra los procedimientos para implantarlos con circuiterla digital. Se desamoflan p&i&ntos pqa ndmeros de punto fijo de complemento a 2 con signo y de magnitud con signo, para nmeros binarios de punto flotante y para n6mem binarios codificados en dmimales (BCD). LDS algoritmos r e presentan m w t e diagramas de flujo que utilizan d lenguaje de transfemia de registros para especificar la secuencia de micmperaciones y decisiones de control requeridas para su implantacin. E l capitulo 11 analiza las tecnicas que usan !as computadoras para comunicarse m dispositivos de entrada y salida. Se presentan unidades de interface para mostrar cmo interachh el p-dm con los perif&kos extern a Se explica el pmdhiento para transferencia asincrona de d a b senales o paralel- A n a h cuatro modos de transhcia: E/S programada, transfe-
rmcia iniciada por intmmpcin, acceso dii.ecto a memoria y el uso de pnxemdores de entradadida. Con ejemplos espedaos, ilustra h e proeedimientos para trmmbibn de datos mides. El sapihdo 2 presenta el concepto de jerarquia de memoria, mmpuesta de memoria c a e , memoria principal y memoria auxiliar como d b magnticos. Explican en detalle la orgmizaci6n y la operaci6n de las meme rias asociativas. Por otra parteg introduce el concepto de administracibn de memoria, mediante la representacihn de los requisitos de circuitera para un sistema de una memoria cach y una memoria vithiat E i capitulo 13 demibe Ias caracte~ticasbsicas de los multiprocesadores. Asimismo, pzesenta varias estnictuqs de inbconexih. Analiza la neeesldad de arbitraje entre prmaadores, comunicaci6n y s h n i z a a b n . SE explica el problema de la coherencia de cachk, j u n t o con algunas posibles aolucione3, Cada capitulo incluye un conjunto de problemas y una lista de referencias.-Algunos de los pmbIerna8 sirven fomo ejercicios para el material cubierto en el capitulo. Otros son de naturaleza m4s compleja y pretenden ofrecer una manera de practicar en la-mlucidn de problemas asociados- con la arquitectura y e l dis&o de circ2uitera de computadoras. E l libro ea eanvdente para un c m de sistemas de circuitera de computadora, en las Areas de ingeniera elctria y mmputacional o ciencias de la informtica. Algunas partes del libro pueden usarse de diversas maneras: como un primer curso sobre ciGcuitera de computadoras al cubrir los capltuios del 1 ai 7; como un curso de organizacibn y diseo de computadoras, con conmimientos previos de d i o de l g i c a digital, al repasar el captulo 4 y +u& cubrir lo^ captulos del 5 al 13; como un curso en organbcin y arquikhira de computadoras, que cubm las cinco unidades funcionales de las computadoras digihles, al incluir el controI (capitulo 7), la unidad de procesamiento (capitulas 8 y 91, las opaciona aritm&tias (captulo lo), la entrada-salida {capitulo 11) y la memoria (capltulo 12). Este libm tambin es conveniente para e l autoaprendizaje, para ingen i e - y cientfms que necesitan adquirir conacimientos bsicos de la circuiteda de arquitectura de computadoras.
M i gratitud a aquellas personas que tevisaron el texto, en particular al p b i Thomas L Casavant, de la miversidad de lowa; al profesor Murray R BerWtz, de Ia universidad polit&ka de Brookly"; al profesor Cem Ersoy, de de lavensidad Gemge Mason; al profesor Upkar Varshney, de la
a 1
universidad de Missouri, en K a n w City; al profesor Karan Watson de la unirnidad de Texas ABrM, y al profesor Scott F. Midkiff, de1 Instituto Politmico de V i a .
M.Morris Muno
EN ESTE CAP~"~WO
1-1 1-2 Id
1 4
1-5
1-6 1-7
Computadoras digitales Compaertas 16gieas Algebra booleana Simplificacin por mapas Circuitos wmbinatorios Flip-flqs ~Circuitossecuenciales
bit
O NO
Circuitos de 16gici
tcnicas de codificaci611, se puede hacer que los grupos de bits representen no s61o los nmeros binarios, sino tambikn otros smbolos discretos, como los dgitos decimales o las letras del alfabeto. Usando juiciosamente los arreglos binanos y diversas tkcnicas de dificacin, l o s grupos de bits desarrollan conjuntos completos de instrucciones para ejecutar distintos tipos de cmputos. En contraste con los niimeros decimales comunes, que emplean el sistema en base 10, los nmeros binarios constituyen un sistema en base 2 con dos dgitos: O y 1. El equivalente decimal de un nmero binario se puede encontrar expandiendo ste en una serie de potencias en la base 2. Por ejemplo, el nmero binario lOO1011 representa una cantidad que puede convertirse a un nmero decimal multiplicando cada bit por la base 2 elevada a una potencia entera como sigue:
b s siete bits 101011 representan un nmero binario cuyo equivalente decimal ec 75. Sin embargo, este mismo grupo de siete bik representa la letra K cuando se usa junto con un c6digo binario para las letras del alfabeto. Tambih puede representar un cbdigo de control para especificar alguna decisi6n Mgica en cierta computadora digital. En otras palabras, los grupos de bits en una computadora digital sirven para representar muchas cosas diferentes. Esto es similar al concepto de que las mismas letras de un alfabeto se utilicen para construir diferentes lenguajes, como el inglk y el francs. Un sistema de computadora se subdivide a veces en dos entidades funcionales: hardware y software. El hardware de computadora consta de todos los componentes electrbnicos y dispositivos electromecnicos que comprenden la entidad fsica del dispositivo. El software consiste en as instrucciones y l o s datos que la computadora manipula para ejecutar las diversas tareas de procesamiento de datos. A una secuencia de instrucciones para computadora se le llama programa. Los datos que son manipulados por el programa constituyen la base de datos. Un sistema de computadora est compuesto por su hardware y el software del sistema disponible para su uso. El software del sistema de una computadora consiste en una colecci6n de programas cuyo propbito es hacer un uso m6s efectivo de la computadora. A los programas incluidos en un paquete de software de sistema se les c o n a como sistema operativo. Se distinguen de los programas de aplicacin escritos por el usuario con el prop6sito de resolver problemas particulares. Por ejemplo, un programa en un lenguaje de alto nivel escrito por un usuario para resolver necesidades de procesamiento de datos particulares es un programa de aplicacibn, pero el compilador que traduce el programa en lenguaje de alto nivel a lenguaje de mequina es un programa de sistema. El cliente que compra un sistema de computadora necesitara, ademis del hardware, cualquier software dispc-
S E C C ~ ~1 N 1 Computadores digitsles
orgaeizaci6n de la complrfadora
nible necesario para k operaci6n eficaz de la computadora. El softwam del sistema es una parte hdispe~l~able del sistema total de la computadora. Su funcibn es compensar las diferencias que existen entre las necesidad- del usuario y la &pacidad de1 hardware. El hardmre de la computadora se divide por lo general en tres grandes partes, como se muestca en Ia figura 1-1. La unidad central de procesamiento (CPU, central processing unit) contiene una unidad aritmdiica y 16giea para la manipulaci6n de datos, varios registros para almacenar los datos y cirmitos de control para leer de la memoria y ejecutar instrucciones. La memoria de la computadora almacena las instrucciones y los datos. Se le llama memoria de acceso aleatorio (RAM, randam access memory) por la CPU puede accesar cualquier parte de la memoria en forma aleatoria y recuperar la infonnaci6n binaria dentro de un intervalo fijo. E l procesador de entrada/salida (XOP, input output prcicessor) contiene circuitos e l d n i c o s para comunicarse y controlar la transferencia de informacin entre la computadora y el mundo exterior. Lcw dqositivos de entrada y salida conectados a la computadora incluyen teclados, impresoras, terminales, unidades de diseos magndticos y otros dispositivw de comurticaci6~ Este libro proporciona el conocimiento bsica para entender las opraciones del hardware de un ~istema de computadora. E l tema se considera a veces desde tres diversos puntos de vista, dependiendo del inters del investigador. Cuando se trata del hardware de la computadora, es costumbre distinguir entre lo que se refiere a la organizacihn de computadora, su diseo y arquitectura. La organizacidn de la c o m p u h d m w refiere a h manera en que los componentes operan y la forma en que se conectan para formar el sistema de la computadora. Se supone que los diversos componentes estn en su lugar y la tarea es investigar la estructura organhciond para verXcar que las partes de la computadora funcionen como se proponfaFigura 1-1 Diagrama de bloque de rina mmput%doradigital.
t i '
L
NO Circuitos
de -1
digital
E l d&& & la compufadma se ocupa del diseito del hardware de la computadora. Una vez que se formulan las especificaciones de la computadora, es tarea del disefiador desarrollar e l hardware para el sistema. El diseo de la computadora se ocupa de h determinaci611de qu hardware debe usarse y c6mo deben conectarse las partes, Este aspecto del hardware se conme a veces como impfantacin de la cimput&ra. ta arqtdtectitua de la computadova se ocupa de la estructura y comportamiento de la computadora desde el punto de vista del usuario. Incluye los formatos de i n f o M n , el conjunto de instrucciones y las M i c a s para kcionamiento de memoria. E l de la arquitectura de un sistema de computadora a ocupa de las especificaciones de los varios mbdulos funci* nales, tales como los procesadores y la memoria, y de estructurarlos conjuntamente en un sistema de computadora. Este libro trata de los tres temas asociados con el hardware de la domputadora. En los capitulas del 1 al 4 presentamos los distintos c o m p rientes digltales usados en la organizacin y disefio de los sistemas de eomputa'dora. En los capfhiIos del 5 al 7 se cubren los pesos que el disenador debe transitar para disear y7prograrnar una computadora digital elemental. Los capitula 8 y 9 tratan de la arquitechira de la unidad central de procesamiento. En los capftulos 12 y 12 presentamos la organhaci6n y a r q u k h r a del proeesador de entrada salida y la unidad de memoria.
circuito hversor
NAND
NOK
binarias para cada compuerta puede representarse en forma tabular por una tabiu de &d. tos nombres, 10s smbolos grAfieos, las funciones algebraicas y las tablas de verdad de las ocho compuertas 16gicas s e listan en la figura 1-2. Cada compuerta tiene una o dos variables de entrada binarias designadas con A y B y una variable binaria de salida designada por x. compuerta AND (Y) produce la funcin I6gica AND: esto es, la salida es 1 si la entrada A y la entrada B son ambas igual a 1; de otra manera, la salida es O. Estas condiciones tambih se especifican en la tabla de verdad para la compuerta AND. La tabla que muestra i a salida x es 1 6610 cuando la entrada A y la entrada B son ambas 1. El smbolo de operaci6n algebraica para la funci6n AND (Y) es el mlsmo que el simbolo de multiplicaci6n de la aritmtica ordinaria. Podemos usar un punto entre las variables o bien concatenar las variables s i n ningh smbolo de operaci6n entre ellas. Las compuertas AND (Y)pueden tener mas de dos entradas, y por definicihn, la salida es 1 si y s61o si todas las entradas son 1. Ia c~mpuertaOR {O) produce la funcibn 0 R (0) inclusivo; esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, k salida es O. El smbolo algebraico de h funcibn OR (O) es + , similar al de la suma aritm4tica. Las compuertas OR (O) pueden tener mbs de dos entradas, y por defmici6n, la salida es 1 si cualquier entrada es 1. E l circuito inversor invierte el sentido lbgico de la seal binatia. Produce la funcidn NOT o complemento. El simbolo a l e r a i c o que se utifua para el complemento 16gico es smbolo de prima ('1 o una barra sobre la variable. En este libro usamos el simbolo de prima ('1 para el complemento 16gico de una variable binaria, mientras que la barra &re la htra se resma para designar una micmoperaci6n complemento como se define en el capitulo 4. El circulo en la salida del smbolo grfim de un inversor designa un complemento 16gico. Un simbolo de kihgu10 por s mismo designa un acoplador o registro intermedio. Un acoplador no produce una funci6n 16gica particular, ya que el valor biario de su saiida es el. mismo que el valor binano de su entrada. Este circuito sirve nada m8s para la amplificacibn de h potencia. Por ejemplo, un acoplador que utiliza 3 voltios para el 1 biario producirii una salida de 3 voltios cuando la entrada sea de 3 voltios. Sin embargo, la cantidad de potencia elgctrica necesaria a l a entrada del acoplador es mucho menor que la potencia producida a la salida del mismo. El principal, prop6sito del aeoplador es manejar a otras compuerkas lo cual requiere una cantidad de potencia mayor. La funci6n NAND es el eomp~emento de la funcibn AND (Y),acomose indica con su simbolo grdfico, que consiste en un shbolo gr4fim AND (Y) seguido de un circulo. La designacih NAND se deriva de abreviar NOTAND. La compuerta MOR es el complemento de la compuerta OR (O) y lleva un simbolo grsifico OR seguido de un chulo. Tanto la compuerta NAND como la NOR pueden tener mas de dos entradas, y la salida es siempre el complemento de la funcin AND u OR,respectivamente.
m U
Nombre
@ !
Fuaci6a dgebrnb
Tabla tde
wrM
ANP
nx ".""
x a'AB
$.
OR
A B -
x=A+B
3
1 0
tnwm
Buhr
A+-.
#=A
NAND
0
B
= [AB)'
.* .* .Y
-m
1 1 1 0
NOR
* B
x xr(A+B)'
$
1 1 0
Mi ~ l t l s i w i
x=A@B
" 3 x
(xa)
x = A B0 +AB'
t
1 0 1 1
1 0
MOR exc1wim
w a
oequltnihk
B A
. . *
e",
?=(m+
P
xm
A'B'+AB
La compuerta OR exclusiva (XOR)tiene un smbolo gc6fieo similar aI de l a compuerta OR,excepto por una inea cuma adicional del lado de la entrada. La salida de esta compuerta es 1 , si cualquiera de Ias entradas es 3 pero excluye la combinacidn cuando ambas entradas son 1. La funcibn XOR tiene su propio sImbolo algebraico o puede expresarse en tCrminos de AND, OR y operaciones complemento como s e muestra en la figura 1-2.El NOR exclusivo es e l complemento del XOR, como lo indica el drculo en su smbolo gcfim. La salida de esta compuerta es 1 sblo si ambas entradas son igual a 1 o ambas entradas son igual a O. Un nombre mh apropiado para la operaci6n XOR sera la funci6n impar; esto es, su salida es 1 s i un nmero impar de entradas es 1 . Asi, en una funcibn XOR de tres entradas (impar), la salida es 1 si s610 una entrada es 1 o si ias tres entradas son 1. Las compuerbs OR (0) exclusivo y NOR exclusivo se encuentran comnmente disponible con dos entradas, y slo rara vez se encuentran con tres o m8s entradas.
E 1 AIgebra boohna
h d d n boolea~a
tabla de vedad
La funcin F es igual a 1 si x es 1 o si tanto y' como z son igual a 1; de otra manera, F es igual a O. Pero decir que y' = 1 es equivalente a decir que y = O ya que / t es el complemento de y. Por lo tanto, podemos decir que F es igual a 1 si x = o s i yz = 01. La relacib entre una funci6n y sus variables binarias se puede rep-tar en una tabla de verdad. Para representar una funci6n en una tabla de verdad necesitamos una lista de las 2" combinaciones de las n variables binarias. Como se muestra en la figura 1-3{a), hay ocho combinaciones distintas posibles para asignar los bits a las tres variables x, y y z. La funci6n F es igual a 1 para aquellas combinaciones
diagrama ldgtco
donde x = 1 o yz = 01; es igual a O para todas las dems combinaciones. Una hinci6n b o o l e m puede transformarse de una e x p m i h algebraica a un diagrama ldgico compuesto de AND, O R y compuertas inversas. E 1 diagrama ldgico para F se muestra en la figura 1-3(b).-Hay un inversor para i a entrada y para generar su complemento f. Hay una compuerta AND (Y) para el trmino y'z, una compuerta OR se usa para combinar los dos trminos. En un diagrama ldgico, las variables de la funci6n se toman como
3 Tabla de verdad
Fig~1 u4 @:;$-lm
-,A
16gim
+ fz.
las entradm del c h i t o y el smbolo de la variable de la funcibn se toma como la salida del circuito. E l propsito del Algebra booleana es facilitar el afi5lisis y el diseo de los circuitos digitale. Proporciona una herramienta pr6ctica para:
1 . Expresar en fonna'algebratca la relaci6n de la tabIa de verdad entre las variables binarias. 2. Expresar @n' f o m algebraica la relacibn de entrada/calida de los diagrams16gicos. m - A u 3. Encontrar circuitos m6s simples para ia misma funcin.
Una funei6n booleana especificada por una tabla de verdad puede expresarse algebraicamehte~de muchas imaneras diferentes. Manipulando una expresidn erpregibn booleatta bmleana de acuerdo con las reglas del dlgebra bmleana, se puede obtener una expresibn @ S simple que requiera menos compuertas. Para ver c6mo se hace esto, primero debemos estudiar las capacidades de manipulacin del Algebra booleana, La tabla' 1-1 enlista Ias identidades mAs biisicas del lgebra booleana. Todas las identidades de la tabla pueden probarse por medio de las tablas -de verdad. Las primeras d o identidada muestran la relacin besica entre una sola variable y si conjuneidn de las constantes binarias 1 v O.
cr
(1) x + o = x
(2) x - o
=9
(8j
f
X.X' = xy = Y
o
m ~ d
+ z)
Las siguientes cinco identidades (9 a 13) son similares a las del algebra ordinaria. La identidad 14 no s6 aplica en el 4igebra ordinaria, pero es muy ttil en la manipuhcin de expresiones hleanas, t a s identidades 15 y 16 se llaman teoremas de DeMorgan, que se tratan abajo. La ltima identidad afirma que si una variable se complementa dos veces, uno obtiene el valor origina1 de la variable. Las identidades eniktadas en k tabla se aplican a variables solas o a las funciones b l e a n a s expresadas en tdrminos de variables binarias. Por ejemplo, considere k siguiente expmidn algebraica hleana:
AB' 4- C'D
+ AB' + C'D
Si x = AB' CD,la expresi6n puede escribirse como x + x. De la identidad 5 de la tabla 1-1 encontramos que x + x = x. As la expresibn puede reducirse a slo dos t r m i n ~
M'
teorema de DeMorgait
tas
El teorema de DeMorgan es muy importante al tratar con las mpuerw Afirma que una compuerta NOR, que representa la funcibn (x + y)' ea equivalente a la funcih x'y'. Andlogamente, una funci6n NAND puede expmrse por o ($ + ?J).Por esta raz6n las compuertas NOR y NAND tienen dos distinb shbolos grS~cos,como se muestra en las *ra 14 y 1-5. En lugar de representar una compuerta NOR con un simbolo g r & OR (O)seguido de un circulo, podemos reprexatarlo por un simbofo grco AND precedido de clrculoa en todas sus entradas. El sfmbolo AND invertido para la compuerta NOR se sigue del teorema de DeMorgan y de la convenci6n de que los &culos pequeios denotan mpI&entaci6n. Anlogamente,
NOR y N
10
= ABC
+ ABC'
+ A'C
m,
Cada trmino corresponde a una compuerta yl a compuerta OR forma l a suma lgica de los tres tminos. Se necesitan dos inversores para complementar A' y C'. L a expresi6n puede simplificarse usando e l igebra
booleana.
= A13C
+ ABC'
Ntese que (C + C ' ) = 1 por la identidad 7 y AB 1 = AB por la identidad 4 en la tabla 1-1. El diagrama 16gico de Ia expresidn simpIiicada se dibuja en la figura l-6(b). Requiere slo cuatro compuertas en lugar de las seis del circuito de
n hleana.
la figura 19(a). Los dos circuitos son equivalentes y producen la misma relaci6n de tabla de verdad entre las entradas A, B, C y la salida F.
bl h
-iWI
'
complemento de una huicion El complemento de una funcin F cuando s expresa en una tabla de verdad se obtiene intercambiando unos y ceros en los valores de F en la tabla de verdad. Cuando la funci6n se expresa en forma algebraica, el complemento de una funcin puede derivarse por medio del teorema de DeMargan. La forma general del teorema de DeMorgan puede apresarse como sigue:
( x ~ X ~ X ~ . . . ~= , ) x; ' f x; + xj + x; m p * L . A h -&' A -Del teorema general de IkMorgan podemos derivar un prdimiento s h 1 mrtlmiple para obtener el complemento de una expresin algebraica. Esto se hace a ' cambiando todas Ias operaciones de OK a operaciones AND y todas las operaciones AND a operaciones O R y luego complementando cada variable literal individual. Como un ejemplo, considere la siguiente expresibn y su complemento 1 Y
- +
A-
*-a,,m
h expresibn complemento se obtiene intercambiando las operaciones AND y OR y complementando cada variable individual, Note que el complemento
de C ' es C .
1--
,T. f -1 h r u
--
PII
1-4
UlIni
y&
=S e
La complejidad del diagrama lgico que implanta una funcibn bmleana se relaciona directamente con la complejidad de la expresihn algebraica a partir de la cual se implanta tal funcibn. ta represen'tacibn de la tabla de verdad de una M 6 n es Cinica, p r o la funci6n puede aparecer en muchas formas difermtes cuando se expresa algebraicamente. La expresin puede simplificarse por medio de las relaciones bAsicas del Algebra booleana. Sin embargo, ese procedimiento es algunas veces difcil porque carece de -las especificas para p r e d d cada paso sucesivo en el proceso manipulativo. El mgtodo de WI . mapas proporciona un procedimiento sencillo y directo para simplificar las b expresiones h1eanas. Este m & d o puede considerarse como un arregio wfi? pict6rica de h tabla de vedad que permite una interpretacibn fkil para para expresar algebrah3 h escoger el nmero rnhimo de t4minos necesa~ios
12
cAPmno&O
t6rtnino mnimo
mente la funcih. E l mtodo de mapas se conoce tambin como mapa de Karnaugh o mapa K Cada combinacin de variables en la tabla de verdad se llama Mrmino mnimo. Por ejemplo, la tabla de verdad de la figura 1-3 contiene ocho trminos minimos. Cuando se expresa en una tabla de verdad una funcin de n variables tendri T tmiinos m i n h , equivalentes a los 2" nmeros b h r i m obtenidos de n bits. Una funcidn boofeana es igual a f. para algunos tminps mhimos y O para otros. La informaci6n de una tabla de verdad puede expresarse en forma compacta distando los equivalentes dechales de aquellos trniinos nnimos que pdueen un 1 para la funci6n. Por ejemplo, la tabla de verdad de la gura 1 3 puede expresarse como sigue:
Las letras en parntesis indican las variables binarias en el orden en que aparecen en la tabla de verdad. El sirribo10 sigma representa i a suma de los trminos minimos que siguen en parnmis. i m trminos mnimos que producen 1 para l a funcibn se enlistan en su equivalente decimal. Imi thninos mhimw ausentes de la lista s o n los que producen O para la funcibn. El mapa es un diagrama hecho de cuadros, y cada uno de stos representa un trmino minimo, b s cuadrados correspondientes a los trminos m h h o s que producen 1 para 1a funci6n se marcan con un 1 y lm otros se marcan con un O o se dejan vados. Reconociendo los diversos patrones y combinando los cuadradas marcados con unos en el mapa, es posible derivar expresiones algebraicas alternas para la funci6n, de las cuales se selecciona la ms conveniente. ios mapas de funciones de dos, tres o cuatro variables se muestran en la figura 1-7. El nmero de cuadros en el mapa de variables es 2". Los 2 ' tminos mnimos se listan con un nmero decimal equivalente para una referencia f d d . Los nmeros de trmino minimo se asignan en un arreglo ordenado tal que los cuadrados adyacentes representen tminos m h h o s que difieran por &lo una variable. Los nombres de las variables se enlistan a ambos lados de la lnea diagonal, en la esquina del mapa. Los ceros y los unos marcados a la largo de cada renglbn y cada columna designan el valor de las variables. Cada variable den- de las Uaves contiene la mitad de los cuadrados del mapa donde la variable aparece sin dmbolo de prima ('). La variable con smbolo de prima (complementada) aparece en i a mitad restante de l o s cuadrados. E l trmino mnimo representada por un cuadrado se determina por ias asignaciones b i n a h de las variables, a lo largo de las orillas izquierda y superior del mapa. Por ejemplo, el t6rmino mfnimo 5 en el mapa de tres variables es 101 en binario, que puede obtenerse del 1 en el segundo rengln concatenada m el 01 de la segunda columna. Este trmino mnimo r e p p senta un valor para las variables binarias A, B y C , con A y C sin primas y
A 1
a ~
1 4
S i m p l i f i d por mapas
v
C
b ) ,Mapa de hv & b h
y ,
c)
-a-
,m&igun
-
B con prima (eeb es, AB'C). Por otro lado, el trmino mnimo 5 en e l mapa de cuatro variables representa un tkrmino & o para cuatro variables. El nmero binario contiene los cuatro Wts O101 y el trmino correspondiente que reprewnta es A'BC'D.
los trminos m n i m o s de cuadrados adyacentes en el mapa son id&
adyacentes
ticos, excepto por una variable, que aparec'e compIementada en un cuadrado y sin complementar en e l cuadrado adyacente. De acuerdo c m esta definici6n de ser adyacente, los cuadrados de los exttemos del mismo rengln horizontal pueden tambin considerarse adyacentes. Lo mismo se aplica a
los cuadrados superior e inferior de una columna. Como multado, los cuadrados de las cuatro esquinas de un mapa tambih pueden considerarse
como adyacentes. Una funcibn booleana r e p m t a d a por una tabla de verdad se grafica en el mapa insertando unos en aquellos cuadrados donde la funcibn es 1. ios cuadrados que contengan unos se combinan en grupos de cuadrados adyacentes. Estos grupos deben contener un nmero de cuadrados que sea una potencia entera de 2. Los grupos de cuadrados adyacentes combinados pueden compartir uno o ms cuadrados con uno o ms grupos. Cada p p o de cuadrados representa un tnnino aigebraico y el OR de estas trminos da una expmin algebraica simplificada de Ia funcin. Los siguientes ejemplos muestran el uso de1 mapa para simplificar funciones boolearw.
uno, cada cual para los trminos n . Estos cuadradoe pertenecen a los os minimos 3, 4, 6 y 7 y se reconde la figura 1 7 @ ) . I h cuadrados adyacentes se combinan en la tercera columna. Esta columna pertenece tanto a B come a C y produce el trmino BC. Los dos cuadrados restantes con unos en las dos esquinas del segundo rengldn son adyacentes y pertenecen al mglbn A y a las dos columnas de C', asl que producen el trmino AC'. La expresin algebraica simplificada para l a M b n es el OR de los das trmin=
.
t v
Los cinco tminos mnimos estn marcados con wios en los cuadradcorrespondientes del mapa de tres variables que se muestra en la figura 1 9 . L m cuatro cuadrados en la primera y cuarta columnas son adyacentes y representan el tnnino C'. Los cuadrados wtantes marcados con 1 prbme~ ~
L
1
~
c . -
m** dul
. A
i ~ A , .
c
d
l
d
baww
SCUdN 1 4
15
.mnimo 4
cen al trmino mhhor5 y pueden combinarse con e k cuadrado del trmino para producir e l tnnino AB'. ta funci6n simpmcada es
9
El 4,
= C'
+ a''
Z (O.
1,2 6,8.9,10)
m el mapa cubierta por esta funcin de cuatro variables comiste de las madrados marcados con unos en la figura 1-10. La funci6n contiene unoe en las cuatro esquinas que, tomados como grupo, dan el t4rmUio B'D'. Esto ee rpodble porque esto8 cuatro cuadrados m adyiteentes cuando el mapa se consWera con las orillas superior e inferior, izquierdh y de& toedndose. t o s dos unos a la izquierda dei renglon supmibr 8e combinan con los dos unos a la izquierda de l a hileta hwiar para que den el t n i n o B ' C ' . El 1 *stanhen el cuadrado del tremitto minitn~ 6s e combina con el trmino mInimo 2 para dar el trmino A'CD'. ta funcidn simplificada es
e 4 i
1
F = BID'
~
+ B'C' + A'CD'
representan los t h h o s minios que prcdueen 1 para la funci6n. Los cuadrados no marcados con 1 representan los h r n o s mnimos que producen O para la funah. Si marcamos los cuadrados vacos con c e m ~ y lo^ combinamos en grupos de cuadrados adyacentes, obtenemos el complemento de la funcibn, F. Tornando el complemento de F ' produce una expresibn para F en la forma de producto de sumas, La mejor m e r a de mostrar mto es con un ejemplo. Queremos simplificar l a siguiente funcin booleana tanto en la forma de suma de productos como en la forma de produeto de sumas:
Los unos marcados en el mapa de h figura 1-11 representan los t4miinos mhimm que producen unos paza la funcibh Los cuadrados marcados con ceros repwentan ios trminos mnimos no incluidos en F y por l o tanto denotan el complemento de F. Combinando los cuadrados con unos nos da la M 6 n simplificada en la forma de suma de productos:
= B'D'
+ B'C' + A'C'D
Si los cuadrados marcados con ceros se combinan, como se muestra en el diagrama, obtenemos la funci6n complementada simplificada:
a4
.
t
"
F'
= AB
+ CD + BD'
= (A'
+ B1)(C'+ D1)(B' + DI
b . d i a g r a m 16@m de las dos expresiones simplificadas se muestran en la f i w a 1-12, expresin de suma de productos se implanta en la figura
17
a) Suma de 4 -
b) Roductm de suma
F = ( A ' + ~ '(C'+D')V'+D) )
c m compuertas AND y
OR
1-12(a) con un grupo de compuertas AND, una para cada uno de: ios trminos AND. Las salidas de las compuertas AND se conectan a las entradas de una compuerta OR iinica. La misma funci6n es implantada en la figura 1-220 en la forma de producto de sumas con un grupo de compuertas OR, una para cada uno de los b4miinos 0R. Las salidas de las compuertas OR se conectan a las entradas de una compuerta AND Suiica. En cada caso se supone que Ias variables de entrada estn directamente disponibles en su complemento, as que no s e incluyen inversores. E l patr6n establecido en la figura 1-12 es la forma general por la cual cualquier funci6n boofeana se implanta cuando se expresa en una de las fonnas estndar. h s compuertas AND se conectan a una compuerta OR nica cuando estn en la forma de la suma de productos; h s compuertas OR se conectan a uaa compuerta AND nica cuando esun en la forma de producto de sumas. Una expresin suma de productos puede implantarse con compuertas NAND como se muestra en la figura 1-13(a). N 6 k e que l a segunda compuerta NAND se dibuja con el smbolo grsfico de la figura 1-5(b}. Hay tres Ineas en e l diagrama con &culos en ambos extremm, Los dos dyulos en la misma lhea designan e l doble complemento, y puesto que (x')' = x, los dos crculos Pueden quitame y e l diagrama resultante es equivalente al que muestra en la figura 1-12(a), Anhlogamente, una expresidn de prcducta de sumas puede implantarse con compuertas NOR como se muestra en l a figura 1-13(b). La segunda compuerta NOR se dibuja con el sfmbolo @fim de k figura 1-4(b). Otra vez, los dos &culos a ambos ladm de cada h e a pueden quitarse, y el diagrama asi obtenido es equivalmte al que se muestra en la figura 1-12(b).
Condiciones "no importai' Los unos y ceros del mapa representan los tminos mnimos que h a m que la funci.6n sea igual a 1 o O. Hay ocasiones donde no importa s i la funci6n produce un O o un 1 para un M i n o mnimo dado.Ya que la funci6n puede ~r un O o un 1 , decimos que no nos importa cul pueda ser la gatida de la
-.,
funci6n para este t4rmino mnimo. ios t h i n o s mnimos que pueden p m ducy un O o un 1 para la funcibn se llaman condicianes "no U n p ~ k i " y se marcan con una X en e l mapa. Estas condiciones "no importanproporcionan una simpljficicin adicional de la expresihn algebraica. "cuandose e w o p cuadrados adyacentes para la funcibn en e l mapa, puede suponerse que las X sean O 0 1 , cualquiera que d la expresibn m s simple. Adems, la X no se necesita s i no contribuye a la simplificaci6n de la funcidn. En cada caso, la eleccin depende &lo de la simplifiacin que ejemplo, considerese la simiente funcidn b e a r i a importa":
F(A, B, C) =
(O,% 6 )
- L X L . . L L - -
3 La=--
.---
A-
m-&-
t m i n o s mnimos "no importa", enlistados con d prod&en un O o un 1 para la funcibn. Los dems tkrmintw mhimos, 4 y 7, producen O para la funcibn. El mapa se muestra en la figura 1-14. Las trminos minimae de F se marcan con unos, aquellos de d se marcan con X y los cuadrados restantes se marcan ceros. Los unos y las X se componen en cualquier manera prctica para incluir eI mayor nmero de cuadrados adyacentes. No es
Figura 1-14 Ejemp10 de mapa eon condicionen "no importam.
-,incluir
>
X, m q u e sf todos 1& m.Al los h r i i n o s mhimos "no-importa" 1 y 3 m los unos en el primer rengln obtenemos el trmino A'. E l 1 restante para el trmino mnimo 6 m combina con el trmino mnimo 2 para obtener el tdrmino BC'. La expresidn simplificada es
i 1 0 dbt m
= A'
+ BC'
N&se que el trmino mlnimo ''no importa" 5 no se induy6 porque no --m-contribuye a la simplificacin de la expresibn, Ntese tambin que si los -tenminos mnimos "no importa" 1 y 3 no hubiesen sido induidos con los % o s , la expresihn Bynplificada para F sido
F
c Q n
wL
i Y"
A'C'
+ BC'
, ,
, -.A
a
a
i d
b t a eonsiste de los t4rmintis mnimo9 originales 0,2 y 6 y de los trminos &irnos "no importa" 1 y 3. El ,Wmho mhimo 5 no se incluye en la M b n . Puesto que los t h n h o s m h h o s 1 , 3 y 5 se espeeifiearon oomo condiciones "no importa"!# hemos escogido ios trminos m h h o s 1 y 3 para producir un 1 y el trmino mCnima S para prcducic un O. Esto se escogi6 as porque esta a s i v i 6 n produce la exgmin booleana ms simple.
Adbqbut8!dtb&P
- 2 5
*""*-
'Un circuito combinatorio es un arreglo de compuertas lgicas con un conm - d u n t o de entradas y salidas. E n cualquier momento dado, los valores binarim de las salidas son una combinacin binaria de las entradas. En la figura 1-15, diagramu se muestra un diagrama de bloques de un circuito combinatorio. Las n de bloqaw variables de entrada W r i a s vienen de una fuente extema, las m variables 'W --'--" ~ ldr d e salida b i a s van a un destino externo, y entre stas hay una interm-exihn de compuertas lgicas. Un circuito mmbirrato~o transforma la infor-
m variables
de d d a
maci.h binaria de los datos de entrada dadm a los datos de salida requeridos. Los circuitos combinatorios se emplean en las computadoras digitaks pata generar decisiones de control bina* y para proporcionar los componentes digitales requeridos para el procesamiento de datos.
Uii circuito d i n a t o r i o puede desctlbirse mediante una tabla de verdad que muestre la relacin buiaria entre las n variables de entrada y las m variables de salida. La tabla de verdad enumera los valores biarios de salida correspondientes a cada una de las 2' combinaciones de entrada. Un circuito combinatorio puede-se tambh con m funciones booleav ~ G - M S ,una pot cada variable de salida. Cada funcin de salida se expresa en trminos de las n variables de entrada. adlisls El andlisis de un circuito combhatorio comienza con un diagrama de circuito lgico determinado y cuImina con un conjunto de funciones booleanas o una tabla de verdad. Si el circuito digitai va 'acompaiiado de una explicacibn verbal de su funQ6n, las funciones booleanas o la tabla de verdad es suficiente para la verificacibn. Si la funclbn del circuito eskl en hvetigaci6n, es necesario interpretar la operacin del hito a partir de las funciones booleanas derivadas o de la tabla de verdad. El dxioo de tai investigacin se realiza si uno tiene experiencia y familiaridad con circuitos digitales. L a capacidad para correhcionar una tabla de verdad o un conjunto d 4y A de funciones hleanas con una brea de pmxwniento de infonaci6n es d r a un arte que se adquiere con la experiencia. diseo El d k d o de &mito&combinatorios parte del planteamiento verbal del problema y termina con iin diagrama de cirruito lbgiro. El procedimiento comprende h a siguientes pasos:
C
1. Se establece e1 problema. 2 Se asignan smbolos literales (letras) a las variables de entrada y salida. 3. Se deriva la tabla de verdad que define la relacidn entre entradas y
d a s .
4. Se obtienen.las funciones booleanas simplificadas para cada salida. 5. Se traza el diagrama 16gico.
A
Para demostrar el M o de h c i m u b combinatorios presentarnos dos ejemplos de circuitos atitm&ticossimples. Estos circuitos sirven como b8sic~ de ~ construccin para ciscutos a r i t d b s ms complicados.
+misumador El circuito aritm6tico digital ms simple es el de la suma de dos dgitos binarios. Un circuito combinatorio que ejecuta la suma de dos bits s e llama un semisumadar. Uno que ejecuta la suma de tras bits (do6 b i b ~ignificativoo
y el acarreo previo) s e llama sumador completo o total. El nombre anterior proviene del hecho de que s e necesitan dos semk+ufnadorespara implantar un sumadoc completo. Lis variables de entrada de un semisumador se llaman bits sumando y c&umando. Las variables de salida se llaman suma y acarreo. Es necesario especificar dos variables de salida porque la suma de 1 + 1 es el binario 10, que tiene &S @tos. Asignamos los shbolos x y y a las dos variables de entrada y S (por suma) y C (para acarreo) a las dos variables de salida. La tabla de verdad para el sernisumador se muestra en la figura 1-16(a). La salida C es O, a menos que ambas entradas sean 1 . la salida S representa el bit menos significativo de la suma. Lns funciones booleanas para las dos salidas pueden obtenerse directamente de la tabla de verdad:
.
&
9 * * t
1 &
El)diagrama lgico se muestra la figura 1 1 6 @ ) . Consiste de una compuerta XOR y una compuerta AND.
aumaaor compiero io btau El sumador compieto ea m circuito combinatorio que forma la suma aritm& tiea de tres bits de entrada. Consiste de tres entradas y dos salidas. Dos de las variables de entrada, denotadas con x y y, representan los dos bits lid significativos a sumarse. ia tercera enkada, z, representa el acarreo de la -icibn menos significativa previa. Las dos salidas son necesarias porque la isuma aritmtica de tres dgitos bhrios fluctilia entre O y 3 y e l 2 o e l3 binario, necesitan dos dgitos. Las dos salidas se designan por los simbolos ' S (por suma) y C (por acarreo). L a variable binaria S da el valor del bit . menos sign&cativo de la suma. La variable binaria C da el acarreo de salida. La tabla de verdad para el sumador completo se muestra en Ia tabla 1-2.Los
-
..
---
--
a) Tabla de verdad
b)D+m+o
22
c&ITlLO
Entiadas
Salidas
d -
B:d
... & o
&1'
rrvn 9d I!
combinaciones que pueden tener las variables binarias. E l valor de ias vafiables $e aaiida s e determina de la suma aritmktiea de los bits de entrada. Cuando todos l o s bits de entrada son 0, la salida S es igual a 1 cuando sblo una entrada es igual a 1 o cuando las tres entradas son iguales a 1. Lasalida C tiene,un a de 3. si dos o tres entradas son igwles a 1. Los mapas de la figura 1-17 sirven para encontrar las expresiona algebraicas para las dos variables de salida. Zios unas en los cuadrados para 10s mapas de S y C se determinan dkedanwnte de los t&nninos mnimos en l a tabla de verdad. Los cuadrados con unos para la salida S no e combinan en grupos de cuadrados .adyacentes. Pero ya que la salida es 1 cuando un 4 -----nmero impar de entradas es 1 , S es una funcin impar y representa la Aci6n XOR de las,variabIes (vaae lo establecido al final de la s ~ d 6 n 1-21, Lns cuadrados comunos para la salida C pueden combinarse en una variedad de maneras. Una expresi6n posible para C
-a
C = Ay
+ (x'y + q ' ) z
6Y
DhQona cuenta de que x'y + xy' = x @ y o incluyendo la expresi6n para la saiida S, obhernus las expresiones holeanas para eI sumador c o m p k
El diagrama 16gico del sumador completo se muestra en la figura 1-18. N6tese que el circuito del sumador completo consta de dos semisumadores y una compuerta OR Cuando l o usemos ,en los rapltulos subdguientes, el sumador completo (FA) se designara por un diagrama de bloque como se muestra en la *figura 1-18@).
Los circuitos digitales eonsideradus hasta aqyi han sido combinatorios, donde las 'salidas para cualquier tiempo dado son enteramente dependientes de las entradas que estn presentes en ese tiempo. Aunque es probable que cada sistema digital tenga un circuito combinatoh, la mayor parte de los sistemas encontrados en la practica tambidn incluyen elementos de almacenamhto que requieren que e l sistema se describa en t&mhos de circuitos secuenciales. El tipo ms comn de circuitos secuenciales es el tipo snmno. Los circuitos secuenciales stncronos emplean seiiales que afectan las elementos de almacenamiento s610 en instantes discretas de tiempo. L a sincronizaci6n I d se logra con Un dispositivo de tiempo llamado generador de pulso de reloj, que produce un tren periodico de pulsos de reloj. Lus p u h de reloj a distribuyen i kavQ del sistema de manera P que los e1emenlor de alma= & cenamiento se afectan s6lo con la llegada del pulso de iincmniraci6n. La a-d ' circuitos -endales shcronos con reloj son de los que m6s se emplean en la prbctica, ya que raramente maieptan problemas de inntabilidad y i u LL - temporizaci6n le dexompone f4cihente en pisos dSsmetos independientes, cada iuio de los cuales puede considerarse separadamente. cimrttos secuedale6 Las elementos de -hacenamiento ernpkadas en los circuitas semenmluj ciales con reloj se llaman flip-flopp. Un flipflop es una celda binaria capaz
'*,
L
+,
almacenar un bit de informacin. Tiene dos salidas, una para el valor normal .y una para el valor complementario del bit almacenado en 41. Un flipflop mantiene un estado binario hasta que es dirigido por un pulso de reloj para que cambie de estado. La diferencia entre los diversos tipos de fiipflops est en e l nmero de entradas que posean y la manera en la cual las entradas afeetan el estado Finario. Abajo se presentan l o s tipos m k comunes de flipfbps.
de
m '
m Flipflop SR
a r z i m#
El smbolo grsfico del flipflob SR se muestra en la figura 1-19(a). Tiene tres entradas, S (de i n i c i o ) , R (reinicio o borrado) y C (para reloj). Tiene una
saIida Q , y a veces tambin tiene una salida compIernentada, la que se indica con uh crculo en la otra terminal de salida. Hay un pequeiio tringulo enfrente de la letra C , para designar una mtrada dimmica. El simbolo indicador dinmico denota el hecho de que el flipflop responde a una transid6n positiva (de O a 1) de la seal de reloj. , La operaci6n del flip-flop es como si'gue. S i no hay un seai en l a entrada de reloj C, la salida del circuito no puede cambiar independientemente de cules sean J w valores de las entradas S y R. S61a cuando la selial de reloj cambia de O a 1 puede la salida afectarse de acuerdo con los vabres de las entradas S y R. Si S = 1 y R = O cuando C cambia de O a 1 , la salida Q se inicia en 1 . Si S = 10 y R = 1 cwiido C cambia de O a 1, la salida Q s e "reinicia" o barra en O. Si tanto S como R son O durante la transicih de d o j , la salida no cambia. Cuando tanto S como R wm Iguak a 1 , la salida es impdecihle y puede ser O o 1, ,dependiendo de los retrasos de tiempo internos que ocurran dentro del circuito. La tibla caracterstica mostrada en Ia figura 1-190 resume la operacidn del flipflop SR en forma tabular. Las columnas de S y R dan los valores bimrios de las dos entradas. Q(t) es el estado binario de la d i d a Q en un tiempo dado (referido como el estado Q(t + 1) es el estado binario de la salida Q despus de la ocurrencia de una transicibn de reloj (referida como e1 estado siguiente). Si S = R = O, una transici6n de reloj no produce un cambio de estado Iesto es, Q{t $ 1) = Q@].Si S = O y R = 1, el flipflop va al estado O (rwiicio). Si S = 1 y R = O, e l flip-flop va d estado 1 {inicio}.
,d
Figura 3-19. mipfiop SR.
--
puhs de reloj--do S = R = 1 ya que produce un estado siguiente indekmimdo. Esta condicih indeterminada hace al flipflop SR diflc e manejar y por 10 tanto. se usa rara vez en la practica.
Flip-flop D El flip-flop D (datos) es una ligera modificaci6n del flipflop SR. Un flip-flop SR se convierte a un flip-flop D insertando un inversor entre S y R y
asignando el smbolo D a la entrada nica. La entrada D se muestra durante la ocurrencia de una transici6n de reloj de O a 1. Si D = 1, la salida del flipflop va a1 estado 1, pero si D = O, la salida del flip-flop va al estado O. El simbolo grfico y la tabla caracterstica del flip-flop D se muestran en la figura 1-20.De la tabla caracterstica notamos que el siguiente estado Q(t + 1) se determina de la entrada D. La relaci6n puede expresarse por una ecuacin caracterstica:
Esto significa que la kalida Q del flip-flop recibe su valor de la entrada D cada vez que la seal de r e l o j pasa a travs de una transicin de O a 1. Ntese que no existe una condicibn de entrada que deje el estado del flip-flop D sin cambio. Aunque el flip-flop D tiene la ventaja de tener slo una entrada (excluyendo a C), tiene Ia desventaja de que su tabla caracteristica no tiene una condicin Q(f + 1) = Q(t) "sin cambio". La condici6n "sin cambio" puede llevarse a cabo deshabilitando la seiial de reloj o retroalimentando la salida en Ia entrada, de manera que los pulsos de reloj conserven inalterado el estado del flip-flop.
Fiip-flop JK
Un flip-flop JK es un refinamiento del flip-flop SR en el sentido que la condicin indeterminada del tipo SR se define en el tipo JK.Las entradas J y K se comportan como las entradas S y R para iniciar y reiniciar el fiip-flop, respectivamente. Cuando las entradas J y K son ambas igual a 1, una transicin de r e l o j alterna las salidas del fliprfl~p a su estado complementario.
Figura 1-20 Flip-flop R.
Q ( t + 1)
Limpiar a O Establecer en 1
b) Tabla c n m c t d s t k
La figura 1-21 muestra el simbolo g r k y la tabla caracterlstica del flipfbp IK. La entrada J es equiv.ei1mte a Ia entrada S (inicio} del flipflop SR, y la entrada K es equivalente a la entrada 8 ( r e i n i c i o ) . En lugar de la mndicih indeterminada, el flipflop JK tiene una ccmdici6n complementaria Q(t 4- 1) = Q'(t) cuando tanto J como K s o n igual a 1.
np-flop T uentra en l* libros de texto es e l fiipflop otro tipo de f l i ~ b p que T (de complemento, foggle). Este @p-flop, que se muestra en la f p r a 1-22, se obtiene del tipo JK mando las entradas J y K se conectan para proporcionar una entrad'a $ica designada por T.El fiipfiop T,por lo tanto, tiene slo dos condicioms. Cuando T = O (/ = K = 0)una transicibn de reloj no cambii el &tado del flip-ficp. Cuando T = 1 U = K = 1) una transici6n de
reloj complementa el estado del flip-flop. Estas condiciones pueden expresarse por una ecuacibn caracterstica:
sirve
sin cambio
Limpiar en O Ekkablecer en 1 CwnplemPniar
b) Tabla de cuaclerbtiws
e l borde. E n este tipo de flip-flop, las transiciones de la salida m n a un nivel especfim del pulso de reloj. Cuando el nivel4 d d pulso de entrada excede este nivel de umbral, las entradas se -en de manera que el fiip-flop no responde a d i o s adicionales de las wtradas hasta que e l pulso de reloj regresa a O y m pulso. Algunos flipflop disparados por el fianco tienen una transici6n en el flanco de bajada (transici6n de borde positivo) y otras c a m una transici6n en el borde descendiente (transicibn de flan& negativo). La figura 1-23{al muestfa ia &tal del pulsa ae reloj en un flip-flop D disparado por e l borde positivo. i valor en la entrada D ae transfiere a la salida Q cuando d reloj hace una.tLansici6n positiva. La salida no puede cambiar cuando .eI reloj esta en el niwl 1, en el nivel O o en una transicin del nivel 1 d nivel O. La transieibn de reloj positiva efectiva incluye un tiempo mnimo llamado el tiempo de esfablecimimto, ,en el cual la entrada D debe permanecer en un valor constante antes de la transicin, y un tiempo definido llamado tiempo. de retencidn, en el cual la entrada D no debe cambiar despuCs de la transicin positiva. La transicibn positiva efectiva es pcir lo general una f r a d n muy pequeiIa del periodQ total del pulso de reloj. Ls figura 1-23@) muestra d shbolo gr6fm correspondiente y el diagrama de tiempos para un fiip-flop D disparado por el flanco negativo. E l smbolo grfico incluye un crculo de negaci6n e~rentede1 indicador dh8&o de La entrada C . Esbo denota comportamiento disparado por el borde neptivo. En &e caso el flip-flop -nde a la t r d b n de Ia seal dd reloj del n i v e l 1 al nivel O.
positiva
e) Fiiphp D activado por ibnoo positiva
de reloj
negativa
flfpflo~
~mo*w~lawo
*" a
Otro tipo de fiipflop que se usa en algunos sistemas es el fiipflop amessclavo. Este tipo de circuito consta de dos flip-&s. El p h e m es el amo y responde al nhel p i t i v o del re14 el segundo es el d a v o y responde . al nivel fiiegativo del re1.q. Ei mdhdo es que la saiida cambia durante la trmsiciian de la h l del r e l o j de 1 a O. La tendenaa es alejarse del uso del fiip-flop mo-esclavo y acercarse a los flipflops disparados por el flanco. i m fiipflops disponibles en c h i t c s integrados proporcionarh a veces terminales de entrada dca. Estas entradas por
para iniciar o borrat el fiipflop en forma asincrlo genaal se llaman preinicio (preset) y 'borrar [clear) y dedan al fip-flop en e l nivel negativo de la S-1 de entrada sin necesidad de un pulso de reloj. Estas entradas son tiles para llevar los fiipflops a un estado inicial antes de su operacin cronornetrada.
TabIas de excitacibn Las tablas caracteristicas de los flip-Aps especifican el estado siguiente cuando se conlas entradas y el estado presente. Durarrte el d M o de los h i t o s secuenciales conocemos por 10 general h transicin requerida dei estado presente al estado siguiente quisidramos encontrar las eondicie nes de entrada del flip-flop que causen la transicin requerida. Por esta
raz6n necesibmos una tabla que enliste bs combinaciones de entrada reque ridas para un cambio de estado dado: la tabla de excitaeih del flipflop. Fa tabla 1 3 enlista las tablas de excita& para lm cuatro tipos de flipflop Cada bbia consta de dos oolumnas, Q(t) y Q(k i- 1) y wia columna para cada entrada para mostrar cmo se alcanza la transici6n requerida. Hay cuatro transiciones posibles del estado presente Q(t) al estado siguiente Q(t + 1 ) .
TABLA 1-3 Tabla de excitacin para cuatro Eiip-flopc
*OOP
JK
Flip-fiop T
Las con'diciones de entrada regueridas para cada una de estas transiciones se derivan de la infonnaci6n disponible en las tablas caracteristias. E l shbolo X en las tablas representa una condicibn "no importa" esto es, no
tiene importancia si la entrada del flipflop es O o 1. La r a h de las m n d i c i m ' ' n o importa" de las tablas de excitad6n es que h y dos maneras de ilevar a cabo la trmicibn requerida. Por ejemplo, en un flipflop JK, la transicien del estado p m b de O a l i n estado siguiente de O puede Uevarse a cabo haciendo que h a entradas J y K sean iguales a O (para no obtener ningiln cambio) o dejando que J = O y K = 1 para barrar el flipflop (aunque ya a t hrrado). En ambos m J debe sw O, pera K S O en el primer caao y 1 en el segundo. Puesto que la transicin requerida -4 eri cuaiquier caso, marcamos la entrada K con una X "no imporh" y dejamos que el a d o r +a O o 1 para la entrada K, o ea lo d s conveniente.
especifica por una secuencia de tiempos de hs entradas extemas, salidas externas y estados b W o s de los flipflop intemm.
ni'm
E-cuacioneede entrada de los fiip-floppUn ejemplo de un circuito secuencia1 se muestra en la figura 1-25. Tiene una variable de entrada x, una variable de salida y y dos flipflops D cronometrados. Las compuertas AND,compuertas OR y el inversor forman la parte I&gicacombinatoria del circuito. tfts intemonexiones entre las compuertas del
circuito eombinatorio pueden especicam por un conjunto de expresiones bleanas, La p m del circuito combinatorio que genera las entradas a los fipflops ~e descrhn por medio de un conjunto de expresiones bmleanas -das ecuaciones de entrada del flipfiop. Adoptamos la n o m a de usar eI &bolo de entrada del fipflop para d,matar el nombre de la variable de la ecuacidn de entrada y un subndice para designar e l slmbolo escogido para la salida del flipflop. As, en la figura 1-25, tenemos dos ecuaciones de entrada) daignadas DAy ag. La primera letra de cada smbolo denota la
I I L t l + q a m
--
eeuaddn de entrada
entrada D de un fiipflop D.La letra del subndice es el nombre del smbolo del flipfl~p.las eamcions de entrada son funciones booleanas para Ias variables de entrada del flipflop y pueden deducirse por inspeeeidn del circuito. Puesto que la salida de la compuerta OR se conecta a la entrada D del flipflop A, escribimos la primera ecuacin de entrada como
donde A y B son laa salidas de los dos flipfiops y x es la entrada externa. La aegunda ecuaci6n de entrada se deriva de una compuerta AND tiniea cuya salida se conecta a la entrada D del flip-flop B:
El circuito secuencia1 tambin tiene una salida externa, que es una funcidn de la variable de entrada y el estado de los flipflops. Esta salida puede especificarse algeb'raicammte por la expresin
y = A%' + Bx'
De este ejemplo notamos que la ecuaci6n de entrada del fiip-flop e a .una expresibn booleana para un circuito combiitorio. L a variable con subndice es d nombm de una variable binaria para la salida de un circuito rombinatorio. E & salida siempre se coneda a la entrada de un flipflop.
Tabh de estado El comfiorhmiento de un ciEcuita secuencia1 se detemina por sus entradas, s p salidqs y el estado de los fiipfbps. Tanto las salidas como el estado msiguiente mn funciones de las entradas y del estado presente. Un &mito secuencia1 se espeeifica pw una tabla de estado que relaciona las salidas y i. los estados siguientes como una funci6n de las entradas y de los estados L u presentes. En circuitos menciales sincronizados por reloj, la transicidn del estado presente al estado siguiente se aetiva por la presencia de una &al de reloj. ia tabla de estado paxa el circuito de la figura 1-25 se muestra en la tabla 1-4. ta tabla consta de cuatro secciones, rotuladas estado presente, en-, esfado siguiente y salida, La secci6n del estado presente muestra los estados de los flip-flops A y B en cualquier tiempo t. La seccin de entrada da un valor de x para cada estado p m t e posible. L a seccibn de estado estadd peseti k siguiente muestra los estados de los qflip-flaps un periodo de reloj despuk edrido rigrrhte a un tiempo f + 1 . ta seccidn de salida da el valor de y para cada estado presente y condicin de entcada. h derivacibn de una tabla de e6tado consiste en listar primero todas las combinaciones b i i r i a s posiiles del ahdo presente y las entradas. En
'
TABLA
Esbdo
, h i &
- - - - Salida
A
Entrada siguitite'
x A B
este caso tenemos & combinadones binarias &l QOO al 111. Los valores del estado siguiente se deducen entonces del diagrama lgico o de las eeuacioqes de entrada. La ecuacin de entrada para e l flipfop A es
1 valor del ~ t a d o siguiente de cada flipflop es igual a su valor de entrada D en el estado presente, La transicin del estado presente al estado siguiente
..
ocurre despuh de la aplicacin de la sefial de reloj. Por l o tanto, el estado siguiente de A es igual a 1 cuando el estado presente y los valom de entrada satisfaen las condiciones Ax = 1 o Bx = 1, lo mal hace que DAsea igual a 1. Esto ee muestra en l h tabla de estado con tres unas bajo la columna para el estado siguiente de A. D e manera similar, la ecuacin de entrada para el sflip-flop 33 es /
f
Dg = A'x
E l estado siguiente de B en Ia tabla de estado es igual a 1 cuando el estado presente de A es O y la entrada x es igual a 1. ta columna de +didase deriva de la ecuacibn de salida
tabla
de fstado
La tabh de estado de cualquier circuitu 8ecuenciaI se obtiene por el prmecihimb seguido en <esteejemplo. En generai, un circuito aeruencial con m flip-fiops, n variables d e entrada y p .variables de salida conbendrg m
columnas para el estado p-te, n columnas para las entradas, m columnas para e 1 estado siguiente y p columnas para las salidas. Las columnas para el mtado preente y las entradas se combinan y bajo btas listamos las 2'-
- --
b *
combinaciones b i n d s de O a 2m" 1. h s columnas del estado siguiente y las salidas son funciones .del estado presente y de b s valores de entrada y se derivan directamente del circuito o de las ecuaciones booleanas que deal circuita.
Diagrama de estado
diaprna de estado
La uiformaci6n disponile en una tabla de estado se puede representar grgficaniente en un diagcama de estado. En esk tipo de diagrama, el estado se representa con un circulo y la transicibn entre estados se indica con lineas que conectan b s crculos. E l diagrama de estado del circuito secuencia1 de la figura 1-25 ae muestra en la figura 1-26.El. diagrama de etado proporciona la misma infonnacidn que la tabla de estado y se obtiene directamente de la tabla 1-4, EI nmero binario dentro de cada circulo identifica el estado de les Gp-flops. Las lneas de conexin s e rotulan con dos nmeros binarios separados por una diagonal. El valor de entrada durante e l estado presente se etiqueta primero y el nmero que s i p a la diagonal da la salida durante e l estado presente. Por ejemplo, la inea que conecta del estado 00 al 01 se rotula l/O, significando que cuando el circuito secuencia1 e s a en el estado presente 00 y la entrada es 1 , la seilida es O. Despuds de una transici6n de reloj, el circuito pasa al estado siguiente 01. La misma transicin de reloj puede cambiar el valor de entrada, Si la entrada cambia a O, la salida se vuelve 1, pero si I a entrada se queda en 1, l a salida permanece en O. Esta infoma&n se obtiene del diagrama de estado a l o largo de las dos lneas que salen del circulo que representa el estado 01. Una lnea que conecta a un crculo consigo mismo indica que qo ocurre n b g h cambio de estado. No hay diferencia entre la tabla de estado y el diagrama de estado, excepto por la manera de presentacin. La tabla de estado es mAs fcil de obtenerse de un diagrama lbgico dado, y e l diagrama de estado se deduce directamente de la tabla de esfado. El diagrama de estado da una vista grfica de las transiciones de estado y es la forma adecuada para l a interpretacin humana de1 funcionamiento de un circuito. Por ejemplo, el diagraFimra 1-26 Diagrama de estado de un circuito eecuendal.
m de estado de la figura 1-26 muestra claramente que, partiendo del estado M, la salida es O &tras la entrada perma-a en 1 . La primera entrada O despus de una cadena de unos da una salida de 1 y transfiere el circuito otra vez al estado inicial 00.
Ejemplo de diseo El procabiento para disear circuitos secuenciales se demostrar con un ejemplo especfico. El procedimiento de disefio consiste en traducir primero las especificaciones del ci~cuito a un diagrama de estado. El diagram a de estado se convierte entonces en una tabla de estado. D e la tabla de estado obtenemos la informacibn para conocer el diagrama del circuito
16gico. Queremos disehr un circuito secuencia1 sincronizado por reloj que pase a travds de una secuencia de estados binarioe repetidos 00, 0 1 ,1 0 , 11 cuando la entrada externa x sea igual a 1. E1 estado del circuito permanece sin s u d o x = O. Este tip de circuito se Urna contador binario de 2 bits porque la secuencia de estado es idntica a la secuencia de m e n t o de dos dgitrrs binarios. La entrada x es la variable de control que especifica cundo debe proceder el recuento. EI contador bbinario necesita dos flip-flops para representar los dos bits. El diagrama de estado para e l circuito secuencia1 se muestra en la figura 1.27. E 1 diagrama k dibuja para mostrar que los estados del circuito siguen el recuento binario con tal de que x = 1. E l estado siguiente de 11 es 00, el cual causa8que el recuento se repita. Si x = O, el estado del circuito permanece sin cambio. Este circuito wencial no tiene salidas externas y por lo tanto 6610 el valor de la entrada se etiqueta en el diagrama, El estado de los flip-flops se cbnsidera como la salida del contador.
Figura 1-27 Diagrama de estado para contador bimrio.
~olrtador &ario.
-,*F@
9
~4
. W 1 H , rYa
tabla de ewrritacidn
hemos asignado el simbolo x a la variable de entrada. Ahora asignamos los simbolos A y B a las salidas de los dos flip-flops. El estado siguiente de A y B, como funcin del &ado p m t e y de la entrada x, puede transferirse del diagrama de estado a la tabla de estado. Las primeras cinco columnas de la tabla 1-5 constituyen la tabla de estado. I;as entradas de asta tabla se obtienen directamente del diagrama de estada. La tabla de excitad611del circuito aecuencial ea una extensi6n de la tabla de estado. Esta extensin consta de una lista de excitaciones de entrada de los flipflops que causen las transiciones de estado requeridas. Las condiaones de entrada de los flipflops son funcin del tipo de flip-flop usado. 3 empleamos flip-flops JK, necesitarno5 columnas para las entradas J y K de cada flipflop. Las entradas de flip-flop A se designan por JA y KA y del flipflop B p r JB y Kg. La tabla de exeitaci6n para el flip- flop JK especificado en la tabla 1 3 s e usa ahora para obtener la tabla de excitacin del circuito secuencial. Por ejemplo, en e l primer rengin de Ia tabla 1-5 tenemos una Iransicibn del fiipflop A de O en el estado presente a O en el estado siguiente. En la tabla 1-3 encontramos que una transici6n de estados de Q(t) = O a Q(t 1) = O en un flipflop JK requiere contar con la entrada J = O y la entrada K = X. As O y X se copian en el primer rengl6n bajo JA y Kk respectivamente. Ya que el primer renglhn tambibn muestra una transici6n del flipfiop B de O en e l estado presente a O en el estado siguiente, s e copian O y X en la primera hilera bajo JB y Kg.El segundo renglbn de lajtabla 1-5 muestra una transicin para el f i i p fiop B de O en el estado presente a 1 en el estado siguiente. De la tabh 1-3 encontramos que una transicidn de Q(t) = O a Q(t 1) = 1 requiere contar con la entrada J = 1 y la entrada K = X. Asl 1 y X se copian en el segundo renglbn bajo JB y Kg,respectivamente. Este proceso s e cunhta para cada rengl6n de la tabla y para cada flip-flop, con las condiciones de entrada que se especifican en la tabla 1 3 copiadas en el renglbn apropiado del flipflop particdar que se considera.
- - A
Estado acaial
stado Entrada d m t e
Enlradas de fipfbp
JA
JB
KB
Analicemos ahora i a informach disponible en Ia tabla de excitaci6n como en Ia tabla 1-5. Sabemos que un circuito secuencial consiste en un nmero de fiipflops y un circuito combinatorio. Del diagrama de bloques de la figura 1-24, notamos que las salidas del circuito cqmbinatorio deben ir a ias cuatro entradas Jh Kh JB y &. las entradas al circuito combinatoriu son la entrada externa x y los valores de estado presente de los fiipflops A y B. Adems, la funcin booleana que especifm un circuito combinatoro se deriva de Ia tabla de verdad que muestra la reiacihn entre entrada y salida del' circuito. Lns partidas que enlistan ias entradas del circuito combinaborio se especEcan bajo h e alumnas de "estado8 presente" y "entrada" en la tabla de excitaci6n. Las salidas del circuito combinatorio se especifican bajo las columnas de "entrada del flip-flop".A& UM tabla de excitacibn transforma un diagrama de estado en una tabla de verdad necesaria para e1 disefo de la parte del circuito mbinatorio del circuito sxuencial. A s , pueden obtenerse ahora las funciones booleanas simplificadas para el circuito combinatoria. lias entradas son las variables A, B y x. Las salidas son las variables Jh Kk JB y &. La i n f o m c i h de la tabla de excitacin se transfiere a los mapas?de la figura 1-28,de donde se derivan las cuatro entradas de fiip-flop simplificadas:
E i diagrama l&&o se dibuja en la figura 1-29 y mmta de dos flipfhps JK (Y). Nbtese que las'entradas y K deteminan el y una compuerta
siguiente estado del contador cuando ocurre la &al de reloj. Si tanto J como K son igual a 0, una S-1 de reloj no tiene efecto, esto es, el estado del flip-flop no cambia. As, cuando x = O, las cuatro entradas de los fipflops son iguales a O y el estado de los flipflops permanece sin cambio aun cuando se apliquen continuamente los puisoei de reloj.
Procedimiento de disefio E l diseiilo de los circuitos secuenciales sigue el outline descrito en el ejemplo anterior. E i comportamiento del circuito se formula primero en un diagrama
de estado. El nmero de flipflops necesarias para el circuito se dete& por la cantidad de bits listados dentro de los &culos del diagrama de estado. H n h e r o de entradas para el circuito se especifica a l o largo de las h a s dirigidas entre los crculos. Asignamos entonces letras para d-ignar todos los flipflops y las variables de entrada y salida, y procedemos a obtener la tabla de estado. Para m flipaops y n entradas, la tabla de estado consistir en m columnas para e l -do p-k, n columnas para las entradas y m columnas para el estado siguiente. El nmero de renglones en la tabla ser& hasta de 2"+", un renglh para cada una de las combinaciones binarias del estado
m~".{; - eau
, -*
I
m'
md
i:w,
1 Y i
*amy
.
1
KB= x
bu
i r
i i i m rWm
% ' - ' Y
a
.-1
JL-
J
4->C
kw
.-
m
.
presente y las entradas. Para cada rengln Iistamos el siguiente estado como se espeeifrca por el diagrama de estado. En seguida, se m g e e l tipo de fip-flop que vaya a usarse en el circuito. L a tabla de estado se extiende entonces a l a tabla de excitaci6n incluyendo las columnas para cada entrada de cada flipflop. ta tabla de excitacidn para el tipo de flipffop en activo puede encontrarse en la tabla 1-3.De la informacin disponible en esta tabla e inspeccionando las transiciones del estado presente al estado siguiente en la tabla de estados, obtenemos la eminf~maci6n para h s condiciones de entrada de los flip-flops en la tabla de excitacin. La tabla de verdad para la parte del circuito combinatorio del circuito secuencia1 estA disponible en la tabh de excitacidn. Las columnas de estado presente y entrada constituyen las entradas de la tabla de verdad. Mediante la simplificacin por mapas obbern~s un conjunto de ecuaciones de entrada de los flipflops para e l circuito combinatono. Cada ecuaci6n de entrada de flip-flop especifica un diasama lgico cuya salida debe conectarse a una de k c entradas del flip-nop. El circuito combinatorio obtenida de esta manera, junto con los flip-flops, constituye el circuito secuencial. tas salidas de los flipflops se consideran a menudo como partes de las salidas del circuito secuenciaI. Sin embargo, el circuito combinatorio tambin puede contener salidas externas. En tal caso, las funciones booleanas para las salidas extemas s e obtienen de la tabla de estado mediante las tcnicas del disefo del circuito combinatorio. Un conjunto de maciones de entrada de los flip-flops especifica un circuito secuencid en forma algebraica. El procedimiento para obtener el diagrama Mgico del conjunto de ecuaciones de entrada de los flip-flops es un proceso directo. Primero dibuje los flip-flops y rotule todas sus entradas y salidas. Entonces dbuje el circuito combinatorio de las expresiones booleanas dadas en las ecuaciones de entrada de los flipflops. Finalmente, conlas salidas de los flip-flops a las entradas del circuito combinatorio y las salidas del c i d t o combinatorio a las entradas de los flipflops.
1-1. 1-2
1-3.
Determine por medio de una tabla de verdad l a validez del teorema de DeMorgompara tres variables: (ABC)' = A' + B ' + C'. Liste la tabla de verdad de una funcibn XOR (impar) de tres variables:
x=A6B@C.
c. A'BC
d. A'B
+ AC + ABC' + ABC
14
1-5.
14
Simplifique las siguientes expresiones usando &lgebra booleana: a. AB + A(CD CD') b. (BC' .t A'D) (AB' + CD') Siguiendo el teorema de DeMorpn, muestre que: a. (A + B)'(A' + 8')' = O b . A + A'B + A'B' = 1 Dada Ia expresibn booleana F = x'y + ryz': a Obtenga una expresin algebraica para el complemento F. b. M u e s b que F F' = 0. e. Muestre que F F' = 1 . Dada la funci6n booleana F = xy'z + x'y'z + xy a W t e la tabla de verdad para la W n . b . Dibuje un diagrama 16gico por medio de la expresi6n booleana original. C. Simplifique la expmsi6n al@raia mediante el hlgebra booleaila. d Enliste la tabla de verdad de la funci6n obtenida de la expresi6n simplificada y muwtre que es h misma que la tabla de verdad en la parte (al-
1-6.
~~undiagrama16gicodela~6n~plificadayeomparedn~~0 total de compuertas con el diagrama de la parte @). Simplifique las siguientes funciones h l e a n a s mediante mapas de tres
e.
variables.
a.
F(x,y,z) =
2 (0,1,5,7)
(1,2,3,6,7)
b . F(x, y, z) =
19.
c, F(x,y,z) = (3,5,6,7) d. F { A , B , C ) = S ( 0 , 2 , 3 , 4 . 6 ) Simplifique las siguientes funciones bleanas por medio de mapas de
cuatro variables.
1-10.
1-11.
a. F(A, B, C, D I = 2 (4,6,7,15) b. F(A,3,C, O ) = (3,7,11,13,1& 15) e. F(A, B , C , D)= (0,1,2,4,5,7,11,15) d. F(A,B,C,D)=~(O,2,4,5,6,7,8,10,13,15) Simplifique la~sigui&ntes exprwiones en (1) forma de suma de productos y en @) 0- de producto de sumas. s . x'z' + y'z' yz' + xy b . AC' B'D 1- A'CD + ABCD Simplifique las siguientes funciones booleanas en h n n a de suma de productos por medio de un mapa de cuatro variables. Dibuje el diagrama lbgiw con (a) compuerh ANDOR; @) compuertas NANX).
F(A, B, C,D) =
2 (0,2,8,9,10,11,14,15)
1-12.
Simplifique las siguientes funciones booleanas en l a forma de producto de sumas por medio de un mapa de cuatro variables. Dibuje el diagrama lgico con (a) compuertas OR-AND; @) compuwtas NOR.
a ----
- 3
4 &A F(w,x,y,z) = 2 (2,3,4,5,6,7,11,14,15) gimPG4ue M b n booleana F junto con las condiQones "no importa"d en (1) forma de suma de productos y en (2) forma de pioduch de sumas.
1-14.
Segn la tabla 1-2, deduzca la expresi6nh l e a n a para la salida S (suma) de un sumador completo en forma de suma de productos. Luego, por una
operacibn algebraica, muestre que S puede expresarse como el XOR de tres variables de enbada.
Una funcin de mayora se genera en un circuito combinatorio cuando la d i d a es igual a 1si las variables timen ms unos que ceros. De otra manera la salida es O. Disee una funY6n de mayorfa con tres entradas. 1-16. DiseAe un circuito combinatorio con tres entradas x, y y r y las tres salidas A, B y C. Cuando la entrada binaria sea 4,5,6 o 7 la salida binaria es uno menos que la entrada. 1-17. Muestre que un flip'flop JK puede eonve~rsea un flip-flop D con un inversor entre las entradaa 1y K. 1 1-18. Usando la informaci6n de la tabla caracterstica del flip-fiop JK enlistada en la figura 1-21(b), deduzca la tabla de exdtaa6n para el flipflop JKy compare su respuesta con la tabla 1-3. 1-19. Un circuito secuencial tiene dos flip-flop D: A y E; dos entradas: x y y, y una salida z. Las ecuaciones de entrada de los flip-flops y la salida del circuito son como sigue: S .M
1-15,
am
-iH
z=B
1-20.
D M e un cantador d-dente de-dosbits. Este e~ un circuito secuencia1 con dos flipflop y una enhada x. Cuando x = O, el estado de los fiip-flops no cambia. Cuando a = 1, L e n & de estado es 11, 10, 01, 00, 11 y
m ua
d m
fepetici6n. .I-n. oidm-db-~&dcmdosBipflopsJK:AyB;ydosentrridas:E -m m y X. Si E = O, el circuito permanece en el mismo estado a de1 valor de x. Cuando E = 1 y x = 1 , el circuito pasa a havk de transiciones de estado de M1a 01 a 10 a 11 y de vuelta a 00, y repeticin. Cuando E = I y x = O, el s l circuito pasa a havh de transicion,esde W a 11 s 10 a 01 y de vuelta a 00,y W -epetiC;6n.
Referencias
41
1 . Hiii, F. J., y G. R. Petermn, Intrwluction to Switdring Tkory nnd Logical D e s i . , terma edici6n. Nueva York: JohnWiley, 1981. 2. hilano, M.M,, DigitaI h i g n , s e p d a edici6n, Eriglewood Cliffs, NJ: Prentice Hall, 1991. 3. Roth, C. H.,FundamtaIc oJ Lo@ Design, tercera edid6n, St. Paul, MN: West Publishing. 1985. 4 . Sandige, R S,, Mdm Digifef Decign, Nueva Y o k MeGraw-Hill, 1990. 5. Shiva, S. G,, lntroduetim fo Logic Design, Glenview, k Scoft, Foresman, 1 9 8 8 . 6 . Wakerly, J. F . , Digitnl Design Principlec and P r a c t b , Englewood Cliffs, NJ: htice Hall, 1990. 7. Ward, S. A , y R.H. Haistead, Jr.,CmnpuiutOon Sttuctures. Cambridge, MA: M T h , 1 m .
EN ESTE cAP~TULO
2-1
2-2
2-3
C k c u h integrados
24 2-5
2-6
2-7
. -
- m
'
SSI
f'
MSZ
y l %
-: inte@aci6n a pequea, mediana y gran e s c h . b s dispositivos de infsgracidtt m e#& peque% (SSI, small-scale infegratiarr) contienen distintas compuertas independientes en un solo encapsulado. Las entraelas y salidas de las compuertas se conectan directamente a las terminales $el encapsulado. Por l o p e r a l , el nmero de compuertas es de tenninales dispo&les en el menor que ID y <se circuito integkddo. scala d i a n a (MSI, medium-sale los dispositivo integra&#) timen de 10 a 200 compuertas en un solo encapsulado. Suelen ejecutar funciones digitales elementales q d c a s como ocurre con los d e codificadores, los sumadores y los registros. Los dispositivs de integracm m escala gran& (LSI, large-sude infegratim) contienen entre 200 y unos cuantos d e s de compuertas en un solo encapsulado. Estos inciuyen sistemas digitales, como procesadores, circuitos de memoria y m6dd~s programables. Los dispositivos de integra& m escala muy grande (VLSI,my-largesale intepfion) contienen miles de compuertas en un sol^ encapsulado. Los ejempl? son las matrices de memoria grande6 y los circuitcs integrados para mici~~omputadma complejos. Debido a su pequeio W o y su baja costo, l o s dispositivos VLSI han revolucionado la tecnologa del diseno para s i s e mas de computadora, dando a los diseiiadores l a capacidad de crear estructuras que no eran tan econhicas anteriormente. tos circuitos integrados digitales se clasifican no &lo por su funcionamiento I6gic0, sino tambin por la tecnologfa de circuitos a la que pertere cen. La tecnoIoga de circuitos se conoce como fumilia Idgim digital. Cada familia lgica tiene su d i o circuito eleckriico bdsico sobre e l que se dXsean circuitos dietales y funciones m8s complejas. E l circuito bsico de cada tecnologa es una compuerta NAND, NOR o NOT. LQS componwites eleck6nicos que se emplean en la rmtmcei6n dd circuito b4sico sirven de o d h a d o para ciar nombre a l tecnologia: Muchas familias 16gicas diferentes de h i t o s integrados ' s e han introducido comercialmente. Las siguientes son las m s populares.
TTL
ECL
MOS.
CMOS
Ldgica de transistor 'transistor Aioml ' a BI Ldgica de emisor acoplado k d . Metal 6xido semiconductor metiico Metal &ido hiemiconductor complementario
k
h
M
P -d *.A La familia lgica 'iTL ai l a m b popular y Sr funcionado muchos a y se considera como norma; la fmh ECL tiene ventajas en sistemas que
.m-
LB'
requieren fumb~mientode aIta velocidad; la familia MOC es apropiada para circuitos que necesitan una alta densidad de componenb, y la familia CMOS es preferible en sistemas que r6qfiikren bajo consuma de e n e .
ECL
La familia 1 a tran~istor-transistor (7TL}fue una evulucibn de una bmmloga previa con base en diodos y transistores para, la compuerta bsica NAND.Esta tecnologa se llamaba IiTL (diodetransistor logic), o sea, "1-a de di&transiskir". Posteriormente los didos fueron =plaza& por hnsistors para mejorar el funhmdento del c h i t o , p r l o que el nombre de la familia Idgica se cambi6 a '1gica transistor-tmnsistoi'.Hay divems variaciones de la familia adems de la T T L ~~tndar, como la TTL de alta velocidad, la TTL de baja potencia, la TTL Schottky, l a TTL Schotkky de baja potencia, y la TT L Schorcky a v m & i . El voltaje de la fuente de alimentaci6n para los circuitos 'ITL es de 5 v o l t i o syT o s dos niveles I6ghs maproximadamente de O y 3.5 voltios. La familia ihgica de emisor acoplado (ECL) proporciona los h i t o s dital- de ms alta v e l d d en forma integrada. ta ECL se aplica en sistemas como supercomputadoras y procesadores de seiiales donde es esencial la alta velocidad. Los transistores de Ias compuertas ECL funcionan en un estado no saturado, condicibn que p d f e alcanzar retrasos de propagau611de 1 a 2 nanosegmdos. E1 trar.sistor metal dxido semiconductor (MOS) es unipolar ya que depende del flujo de un solo tipo de portador, como electrones (canal n) o huecos (canal p). Esto estA en contraste con el transistor bipolar de las compuertas TTL y ECL, donde ambos portadores existen durante el funcionamiento normal. Al MOS de canal p se le conoce como PMOS y al de canal n como NMOS. NMOS es el que se usa c o m h e n t e en circuitos con un solo tipo de transistor M . ta tecnologia del MOC complementario (CM06) tiene transistores PMOS y NMOC conectados de modo complementario en todos los circuitos. Las ventajas ms importantes de Ios CMOS sobre los bipolares son la alta densidad de integrad611de los circuitos, una tcnica de pmcesamien~ mas simple durante la fabricacidn y un funcionamiento m s econ6mico debido a su consumo de energa ms bajo. Por sus muehas ventajas, los circuitos integrados sirven exclusivamente para proporcionar los diversos componentes digitales necesarios en el diseiio de los sistemas de computadora. Para entender la organizaci6n y el diseino de las computadoras digitales, es muy importante familiarizarse con 1 m diversos componen- encontra& en los circuitos integrados. Por esta razbn, los componentes mas basicos se introducen en este capitulo con una explicacin de sus propiedades 16gicas. Fstos componenb proporcionan un cat41ogo de unidades funcionales, digitales y elementales empleadas comnmente como bloques bsicos de construcci6n en el diseo de computadoras digWes.
2-2
Decodif icadores
Las cantidades discretas de informaci6n se representan en las computadoras digitales con chdigm b i r i o s . Un d i g o binario de n bits es capaz de
46:
-. . .
m Componentes ditales
repmxnhr hasta 2 ' elementos distintos de informaci6n codificada. Un d e c e dificador de un circuito combinaborio que convierte la informaci6n b i a de las n entradas d ~ d a s a un mximo de 2 F salidas nicas Si la informaci6n codificada en n bits tiene combinaciones de bits no usada, el decodificador puede tener menas de 2' salidas. h decodificadores p~esentadmen esta secci6n se llaman d d i f i c a do= de n a m heas, donde m 5 T.Su pmpsitii es generar 2' (o menos) cumbinaciones binarha de las n variabIes deentrada. Un decodificador tiene n entradas y m salidas y tambi& se le denomina un dedifiador de n X m. En la figura 2.1 se muestra el diagrama 16gim de un d d i i c a d o r de 3 a 8 lneas. Las k s entradas de datos Aw Al y A2 se d e ~ o d ~ c a en n ocho saiiddas, 'enlas lque cada una repmsgta una de las combinaciones de las tres variables binarias de entrada. los tres inversores proporcionan el comple mento de h e entradas y cada una de las ocho compuwtas AND, genera una de las combinaciones binads. Una aplicari6n particular de este d d i f i c a do? & la conwrsidn de binario a mbl. LAS variables de entrada representan un nmero binario, y las saiidas, los &O digitos del sistema numhrico octal. Sin embargo, uii decodifimder de 3 a 8 lneas puede decdificar cuaIquier e6digo de 3 bits para proporcionar ocho salidas, una para cada combinaci6n A e l cdigo binano
entrada de habititacfin
Las decodificadores comerciales inc1uyen una o m2is entradas de habilitaci6n para controlar el funcionamiento del circuito. El decodificador de la figura 2-1 tiene una entrada de habilitacihn, E. E i dedficador se activa o se habilita cuando E es i d a 1 y s e desactiva cuando E es igual a O. El funcionamiento del decodificador puede aclararse por medio de la tabla de verdad listada en la tabla 2-1. Cuando la entrada de habilitad611E es igud a O, todas las salidas son iguales a 0, a pesar de los valores de las otras tres entradas de datos. Las X de la tabla designan las condiciones "no importatt. Cuando la entrada de habilitaci6n es igual a 1, el decdicador funciona en forma normal. Para cada c o m b i c i h de entradas p i b I e , hay siete salidas que s o n igual a O y &lo una igual a 1. La variable de salida cuyo valor es igual a 1 representa al nmero octal equivalente al nmero binatio que est disponible en las lheas de datos de entrada.
TABLA 2-1 Tabla de verdad para el d d i f i c e d o r 3 a 8 lneas
. .
- -
- . .. .-- .
Uabifitaan
Fmtradas
Salidas
_.
-1
.,
.
(8
'
AN'D. Ya que una compuerta NAND produce la operad611 AND con una salida invertida, resulta ms econmico generar las salidas del decodificador en su forma complementada. En la figura 2-2 se muestra un decodificador de 2 a 4 lneas con una entrada de habilitacin construida con compuertas UAND.El circuito funciona con salidas complementadas y una entrada de habiiitacibn E complementada. El ddificador se habilita o activa cuando E B igual a O. Como se indica en la tabla de verdad, d o una salida es igual a O en cualquier momento; las otras tres saIidas son iguales a 1. In salida cuyo valor es igual a O representa el niimero binario equivalente en las entradas Al y A& E 1 circuito se desactiva cuando E es igual a 1, a pesar de las valores de las otras dos entradas. Cuando el circuito se desactiva, ningu-
b) Tabla de verdad
na de las salidas se selecciona y todas las salidas son iguales a 1 . l3n general un decodificador puede funcionar con salidas complementadas o s i n complementar. La entrada de habilitaci6n puede activarse can un nivel de seal O o con 1. Algunos d d c a d o r e s tienen dos o m s entradas de habilitaci6n que deben miisfacer una condicin 16gica dada para habilitar el circuito.
Expansin del decodificador Hay ocasiones en que se necesita un decodificador de cierto tamao, pero d o estn disponibles los ms pequeiios. Cuando esto ocurre es posible combinar dos o ms decodificadores con entradas de habilitaci6n para formar un decodificador mayor. As, si se necesita un decodificador de 6 a 64 heas, es posible construirlo con cuatro decodificadores de 4 a 16 lneas. La figura 2-3 muestra cmo los decodificadores con entradas de habilitacibn pueden conectarse para formar un decodificador mayor. Dos demdificadores de 2 a 4 lneas se combinan para Iograr un decodificador de 3 a 8 heas. Los dos bits menos significativos se conectan a ambos decodificadores. El bit mEis significativo se conecta a la entra& de habilitaci6n de un decodificador y a travs de un inversor a la entrada de habilitacidn del otro decodificador. Se supone que cada dmdificador se habilita cuando su entrada E es igual a 1. Cuando E es @ a i aO , el decodiicador se deshabilita y todas sus salidas atdn en d nivel 0 . Cuando A2 = O, el deeodicador superior se habilita y e l inferior se desactiva. Las salidas del decodificador inferior se vuelven inactivas con todas las salidas en O. Las salidas del decodificador superior generan las salidas de la Doa la Dy dependiendo de los valores de Al y A. (cuandoAa = O). Cuando Ap = 1, el decodificador inferior se habilita y el s u se d&abilita. La salida del dedcador inferior genera los equivalentes birios D4al D7, ya que estos nmeros binarios tienen un 1 en la posicin AZ. ~d
Figura 2.3
E l ejemplo demuestra la utilidad de i a entrada de habilitaci6n de los decodificadares o de cualquier otro componente lgico combinatario. Las entradas de habilitacin w n una caracterlstica prctica para intemnedar dos o m8s circuitos con el propsito de ampiiar e l componente digital para una funci6n similar, pero con m6s entradas y salidas.
Codificadores Un codlficador es un c h i t o &@tal
que ejecuta Ia operacidn inversa de un demdificador. Un codificador tiene 2" (o menos) heas de entrada y n Iheas de salida. Las heas de salida gmeran un c6digo binario correspondiente al valor de entrada binario. Un ejemplo de un codificador es e l eodificador de octal a binario, cuya tabla de verdad se da en la tabla 2-2. T i e n e ocho erttradas, una para cada digito &al, y tres salidas que generan el nmero binario comspondienk Se supone que slo una entrada tiene un valor de 1 en cualquier momento; de otra m e r a , el circuito no tiene significado. El codificado? puede implantarse con compuertas O R (O) cuyas entradas s e determinan directamente de l a tabla de verdad. h salida es A. = 1 ' el dfgito oml de entrada es 1 o 3 o 5 o 7. Condiciones similares se aplican las otras dos salidas. Estas condiciones pueden expresarse por las siguientes funciones booleanas:
i s r& ~
- .r e
A,= A,=
TABLA 2-2
Entradas
Salidas
n7
D e
D s
D 4
D z
Di
Do
A 2
Ai
AO
muitipkor
Un multiplexor es un circuito combinatorio 'que recibe informaci6n binaria de una de 2" lneas de da- de entrada y la dirige a una h a de saiida Cinica. La selecci6n de una lnea de datos de entrada particular para la
salida s e determina por un conjunto de entradas de &ccidn. Un muitiplexor de 2" a 1 tiene 2" h s e datos de entrada y n lneas seleccin de entrada cuyas combinaciones de bits determinan qu datos de entrada se seleccionan
para la dida. Un muitiplexor de 4 a 1 h e a s se muestra en la figura 2-4. Cada una de las cuatro entradas de datos de Io a 1% se aplica a una entrada de la compuerta AND. Las dos entradas de selmi6n SIy So se decodifican para seleccionar una compuerta AND particular. Las salidas de las compuertas AND, se aplican a una compuerta QR nica para proporcionar la salida iinica. Para demostrar e l funcionamiento de1 circuito, considere el caso cuando S1S2 = 1 0 . La compuerta AND (Y) asociada con la entrada I2 tiene dos de sus entradas iguales a 1 . La tercera entrada de la compuerta se conecta m 1; Las otras tres compuerbs AND (Y) tienen por lo -08 una entrada igual a O, lo que hace sus salidas iguales a O. La salida de la compuerta OR (O) es ahora igual al valor de proporcionando asl un camino desde la entrada seleccionada a h salida. EI multiplemr de 4 a 1 lneas de figura 2 4 tiene seis entradas y una salida. U n a tabla de verdad que describa al circuito necesitar 64 renglon~, ya que seis variables de entrada pueden tener Z6 combinaciones binarias. Esta es una tabla excesivamente larga y no se mostrar aquf. Una manera ms practica de describir el funcionamiento de los multiplexores es por
Figura 2-4
selector Be datos
A@&* dm medio de wia tabla de funci6n. La tabla de funcibn para el multiplexor se muestra en la tabh 2-3- ta tabla demuestra la -relaci6n entre las cuatro entradas de datos y la salida h i c a como fumi6n de las entradas de 8eleccin SI y S& Cuando las entradas de selecci6n son iguales a 00, la salida Y es igual a la entrada Ion Cuando las entradas de se1ecci6n son iguales a 01, la entrada Il tiene un camino a la salida Y, y de modo similar para las otras dos combinaciones. BT multiplexor tambih se llama selector de datos, ya que selecciona una de muchas entradas de datos y conduce la infomci6n binaria a Ia salida. Las comptiertas AND y las inversoras del multiplexor semejan un circuito demdificador, y en verdad d d i f i c a n las iheas de seleccibn de entrada. En general, un multiplexor de 2* a 1 lineas se construye con un M i f i c a d o r de TI a Zn agregando a ste lneas de entrada y una salida tinica. Esto Unplica que tambih contiene n Ieas de =leccin de entrada. h abreviatura comrin del multiplexor es MUX
4
--
Multiplexor 4 a 1 Uneas
1 *L
VFIIA
-4
.A
SeIeccibn
S1
Salida
so
As como sucede en los decodificadom, los multiplexores pueden tener una entrada de habilitacihn para controlar el funcionamiento de l a unidad. Cuando la entrada de habiilitaci6n est en el estado inactivo, las salidas se deshabilitan, y cuando est en el estado activo, el circuito funciona como un
nli
m
3 4 h
R*
4-
multiplaor nomial. La entra& de habilitaci6n es iitil para ampiiar dos o ms mdtiplexores a un m u i t i p k ron un nmero mayor de entradas. En algunos casos dos o mis multiplexores se encuentran en un solo circuito integrado. Las entradas de seleccidn y de habilitacin en una conatruccibn de unidades mltiples suelen ser comunes a todos los multiplexores. Como una ilustracidn, el &cama de bloques de un multiplexor cu4dniple de 2 a 1 heas se muestra en la figura 2 5 . El circuito tiene cuatro multiple xores, cada uno capaz de seleccionar una de dos beas de entrada. La salida Yo puede seleccionarse para que venga de las entradas A. o BI De modo simjiar, la salida Y, puede tener el valor de Al o Bu y as sucesivamente. Una h e a de d d 6 n de entrada S selecciona una de las ineas en cada uno de los cuatro muItiplexores. La entrada de habilitadbn E debe estar activa para el funcionamiento normaL A pesar de que el circuito contiene cuatro multiplexofes, tambikn podemos pensar en 61 como en un circuito que selecciona una de dos h e a s de datos de 4 bits. Como s e muestra en la tabla de funci613,la unidad se habilita cuand&E = 1. Entonces, si S = O, las cuatro mtradas A tienen camino para las cuatro salidas. Por otro lado, si S = 1, las cuatro entradas B se aplican a las salidas. Las d d a s tienen tcdas cero a F cuando E = O, a pesar de los valores de S.
q ~ n * ~ i L - i , ~ ~ * ~ < d l m a ~ p
Figura 2 4 Multiplexom Mit8druples 2 a 1 lneas,
.-
---
--
- 7
b) Tabla de functwies
Un registro es un grupo de fip-flops, donde cada flip-flop es capaz de .,Amacenar un bit de informaci6n. Un registro de n bits es un grupo de n
m a Aip-flops y es capaz de almacenar cualquier informacin biiaria de n bits. l l r d-Adems de los fiip- flops, un registro puede tener compuertas combinatorias &que ejecuten ciertas tareas de prwaamiento de datos. En su definici6n ms amplia, un registro consta de un grupo de flip-flops y compuertas que efectan su transieibn. Los flipflops retienen la infonnacibn binaria y las compuertas controlan cundo y cmo se transfiere la nueva informaci6n ai registro. Divmw tipos de registros estn disponible6 en el comercio. El registro ms simple es aquel que a compone slo de flip-flops, sin compuertas m x k m a s . La figura 2 4 muestca tal registro construido con cuatro flip-flops *e ---D. ia entrada c o m h de reloj dispara todus los fipflops en el flanco de' subida de cada pulso y los d a b binarios disponibles en las cuatro entradas
Figura 2 6 Registro de 4 bits.
miga
di? registro
s e transfieren al registro de 4 bits. Las cuatro salidas pueden mostrarse en cualquier momento para obtener la informaci6n binaria alrnaeenada en e l registro. La entrada para borrar va a una terminal especial en cada flipflop. Cuando esta entrada va a O, todos los flipfiops se borran en forma ashcrona. 1 La entrada para borrar es til para borrar e1 registro a ceros antes del funcionamiento sinmaizado por reloj."la entrada para borrar debe m t e nerse en 1 Igco durante la operaci6n sincronizada por reloj normal. Ntese que la sefia1 de reloj habilita (activa) la entrada D pero la entrada borrar es independiente del reloj. La transferencia de nueva inhmacl6n a un registro se llama carga del regkfro. Si t d o s los bits del registro ae cargan simultAneamente con una transici6n de pulsa de d o j comn, decimos que l a carga se hizo en paralelo. Una k'ansiel6n de rebj aplicada a las entradas C del registro de la figura 2-4 cargar4 las cuatro entradas de 1, a 1, en paralelo. En esta confguradn el reloj debe -se en el h i t o s i el contenido del registro debe pmanecer sin cambio.
m t d a de carga
13
M o f
de informacin de las entradas a los registros se hace simul&eamente con los cuatro bits durante una finita transicidn de pulso.
2-5
Registros de corrimiento
Un registro capaz de desplazar su informacin binaria en una o en ambas direcciones se llama registro de corrimiento. La configuracidn 16gica de un registro de corrimiento consta de una cadena de flip-flops en cascada, con
entrada sedal
la salida de un flipflop conectada a la entrada del siguiente flip-flop. Cada flipflop recibe pulsos de r e l o j comunes que inician e l desplazamiento de una etapa a la siguiente. E l registro de corrimiento ms simple posible es aquel que usa s61o flip-flops, como se muestra en la figura 2-8. La salida de un fiip-flop dado se conecta a la entrada D del flip-flop que esta a su derecha. El reloj es comn a todos los flip-flops. La m W swiaI determina qu4 va en la posicin de la extrema izquierda durante el corrimiento. La calida w r k l se toma de la salida del fiipflop de la extrema derecha. A veces es necesario controlar el corrimiento para que ocurra en ciertos pulsos de reloj pero no en otros. Esto puede hacerse inhibiendo el reloj de la entrada del registro si no -queremos el corrimiento. Cuando se usa e1 regism de corrkni~to de la figura 2-8, el corrimiento puede controlarse conectando el reloj a la entrada de una compuerta AND y una segunda entrada de la compuerta AND puede cunkrolr entonces el corrimiento inhibiendo el reloj. S i n embargo, es tambin posible proporcionar circuitos extra para controlar la operacibn de corrimiento a travs de las entradas D de los flip-flops mhs bien que la entrada del reloj.
Regiskm de corrimiento 'bidireccional con carga paralela Un registro capaz d&temr amimienbe en una sula d i 6 1 1 se llama +tro
de corrhiento unidireccional. Un registro que puede tener corrirnientos en
ambas direcciones se llama registro de corrimiento bidirecciomh Algwnos registros de corrimiento proporcionan las entradas necesarias y las terminales de salida para la transferencia en paralelo. El registro de corrimiento mas
geheral tiene todas las capacidades litadas abajo. Otros pueden tener algunas de stas capacidades, con cuando menos alguna opexacibn de co&ento.
1 . Una entrada para pulsos de reloj para sincronizar todas las operaciones. 2 Una. operacidn de corrimiento a la derecha y un linea de entrada serial asociada con el corrimiento a la derecha. 3. Una operacidn de corrimiento a la izquierda y una lnea de entrada serial asociada con el corrimiento a la izquierda.
i L 2
-' c.
i u i
-D
Q-r,
e
e-D
$
QC
->
>
->
->
Salida serial
M**q$m
Reloj
4. Una opera& de carga en paralelo y n h e a s de entrada asociadas con la transferencia en paralelo. 5; n keas de salida en paralelo. 6. Un estado de control que deje la informacibn en d registro sin cambio aun cuando los pulsos de reloj se apliquen continuamente.
-,
ascmdente.
Los registros de corrimiento se utilizan comnmente para la interfaz de sistemas digitales situados remotamente unos de otros. Por ejemplo, supongase que ea necesario transmitir una cantidad de n bits entre dos puntos. Si la distancia enhe la fuente y el destina es muy grande, resultar
TABLA 2 4 Tabla de funciom para los registros de la figura 2 9
Control de modo
1
O
1 1
usar n 1 para, tra&&tir n bits en paralelo. Puede ser ms ,, w . r n 4 ~u o h una d d h e a .y transmitir la informaci6n en forma serial un bit cada vez. E k a n s m b r carga %el dato de n bits en paralelo en un x~bp(ymc do e m i m h t ~ ,tansmite ,~ mbces e I dato desde la &ea de salida 'acep'bard datO en f m a serial en e l registro de desplazaI d., E l miento a trav&d& su:Inea de entrad; serial. Cuando la totaiidad de los n -- * -. - costo
..,r
bits se acumula pueden tomarse de las salidas del registro .enparalelo. As, el transmisor ejecuta una conversibn de paralelo a serial en los datos y el receptor convierte los datos wriales que Uegan de vuelta a la transferencia de datos en parallo.
2-6
Contadores binarios
A un registro que al aplicarse pulsos de entrada pasa a trav6 de una m e n c i a de estados predeterminada SE l e llama contador. tos p u h s de entrada pueden ser pulsos de d'oj o pueden originarse de una fuente externa. Pueden ocurrir a intervalos regulares o akatoriamente. Los contadores se encuentran en casi todos 10s equipos que contengan 16gica digital. Se usan para contar el rimero de ocurrencias de un evento y son tiles para generar seales de tiempo al controlar la secuencia de operaciones en las computadoras
digitales. De las diversas secuencias que puede seguir un contador, la secuencia binara directa ks ia ms simple y Ia ms directa. U n contador que sigue la secuencia de niuneros binarios se llama contador binario. Un contador binario de n bits es un registro de n flip-flops y de compuertas asociadas que sigue una secuencia de estados de acuerdo con la cuenta binaria de n bits, de O a T - 1. E l diseo de 10s contadores binarios puede llwarse a cabo por el procedimiento esbozado en la secci6n 1-7 para los circuitos secuenciales. Un pmedidento de diseo alterno ms simple puede llevarce a cabo por una inspeccin directa de Ia secuencia de estados que debe experimentar para alcanzar yna cuenta binaria directa. Pasando a travs de una secuencia de nmeros binarios, como 0000, M301, 0010, 0011, y as, sucesivamente, notamos que el bit de menor orden se complementa despuds de cada cuenta y todos los demas bits se complementan de una cuenta a la siguiente s i y s6Io si los bts de menor orden son iguales a 1. Por ejemplo, la cuenta binaria de O111 (7)a 1000 (8) se obtiene (a) complementando el bit de menor orden; @) complementando el bit de segundo orden porque e l primer bit de O111 es 1 ; (c) complemaitando el bit de tercer orden porque los primeros dos bits de O111 son unos, y (d) compIementando el bit de cuarto orden porque los tres primeros bits de O111 son todos .unos. Un circuito 'contador emplear usualmente flip-flops con capacidades complementarias. Tanto los fiip-flops T como JK tienen esta propiedad, Recuerde que un flip-flop JK se complementa si sus entradas J y >K son ambas iguales a 1 y el reloj pasa a travCs de una transicidn positiva. La salida de un flip-flop no cambia si J = K = O. Adems, el contador puede controlarse con una entrada de habiiitacin que pi ia o apague al contador s i n quitar la sehl de reioj de los flip-flops. Los contadores binarios shcronos tienen un pamn regular, como pue'de verse en l a figura 2-10.Lis entradas C de todos los flip-flops reciben el
Relol
y K se mantienen en O y la salida del contador no cambia. La primera etapa A. se complementa cuando su contador se habilita y d reloj pasa a travs de una transici6n positiva. Cada uno de los otros flip-flops se complementa cuando todos los flip-flops previos menos sigi~ifica tivos son iguales a 1 y e1 contm se habilita. La cadena de compuertas AND (Y)generan la 16gica requerida
reloj comiin. Si la habilitacibn de contea es 0, todas las entradas
para las entradas 1 y K. El acarreo de salida sirve para extender el contador mis etapas, teniendo cada etapa un flip-flop adicional y una compuerta
AND.
Contador binano con carga en paraIelo Los contadores que se emplean en los sistemas digitales muy a menudo requieren capacidades de carga en paralelo para transferir el nmero binario inicial previo a la operaci6n de conteo. La figura 2-11 muestra el diagrama
16gico de un contador binario que tiene una capacidad de carga en paralelo y que tambikn.puede borrarse a ceros en-sincronacon e l reloj. Cuando es igual a 1 la entrada de borrado lleva todas las entradas K a 1 , borrando as todos los flipflops con la siguiente transicibn de reloj. El control de carga de entrada, cuando es igud a 1 , deshabilita la operaci6n de contao y causa una transferencia de datos de ias cuatro entradas en paralelo a los cuatro flipflops (con tal de que la entrada de borrado sea O). Si las entradas de carga y de borrado son ambas O y la entrada de incremento es 1, el circuito funciona como un contador binario. B1 funcionamiento del circuito se resume en la tabla 2-5. Con ias entradas de borrad?, carga e incremento todas en O, las salidas no cambian, aun cuando se apliquen pulsos a las terminales C . Si las entradas de borrado y carga se mantienen en O 16gie0, i a entrada de incremento controla la operaci6n del contador y las salidas cambian a la siguiente cuenta bharia para cada tradcibn positiva del r e l o j . tos datos de entrada se cargan en los flipflops =do la entrada de control de drga es igual a 1, con tal de que el borrado se deshabilite, pero la entrada de incremento puede ser O o 1 .E i registra se borra a O sin que el control de borrado considere los valores de las entradas de carga e incremento.
TABLA 2-5 Tabla de fuiiciones para el regktm de Ia figura 2-11
-
p p
Rdoj
Limpieza Carp
O O O
O O
Incremento
O
Opwacin
-
? 7 ? i
1 x x
incremento
Los contadores con carga en paralelo son muy tiIes en el d i s e o de computadoras digitales. En captulos subsiguientes nos referimos a ellos como registros con operaciones de carga e incremento. La operacin de inmmmfo suma uno a l contenido de un registro. Habilitando la entrada de condurante un periodo de reloj, el contenido de un registro pude incremhtarse en uno.
SECU~N 2-7
Unidad de memoria
6Q
2-7
Unidad de memoria
Una unidad de memoria es un conjunto de celdas de almacenamiento junto con los circuitos asociados que se necesitan para meter y sacar la infomaci6n del ahacenamiento. b memoria almacena infomacibn binaria en grupos de bits que se denominan palabras. Una palabra en la memoria es una entidad de bits que se introducen o sacan de1 almacenamiento como una unidad. Una palabra de memoria es un grupo de nmeros 1 y O que puede representar un nmero, un cdigo de imtrucci6r1, uno o mds caracteres #Y ,malfanumricos o cualquier otra infomci6n en ddigo binario. Un p p o de ocho bits se denomina byte. La mayor parte de las memorias de las compu. & tadora~utiiizan palabras cuyo nmero de bits es un mItiplo de 8, por l o tanto, una palabra de 16 bits contiene dos bytes, y una palabra de 32 bit5 est fomada de cuatro bytes. La capacidad de las memarias en las computadora~ comerciaIes por lo general se define como la cantidad totaI de bytes que pueden almacenarse. La estructura interna de una unidad de memoria estA especificada por el nmero de palabras que contiene y la cantidad de bits en cada palabra. Unas h e a s especiales de entrada, llamadas Uneas de direccionamiento, seleccionan una palabra particular. A cada palabra en la memoria se le asigna un nmero de identificacibn, llamado una direccibn, que comienza en cero y contina con 1 , 2, 3, hasta 2' - 1 donde k es la cantidad de lneas de direccin. Se seI'ecciona una palabra especfica en la memoria, al aplicar la T direccibn binaria de k bits a las ineas de direcci6n. Un decodificador dentro de la memoria acepta esta diraibn y abre las trayectorias necesarias para seleccionar los bits de la pahbra lespecificada. Las memorias de las computadora~ pueden tener desde 1024 palabras, l o cual requiere una direcci6n de 10 bits, hasta Z 3 ' palabras, donde se hecesitan 32 bits de direccionamiento. Se acostumbra denominar la cantidad de palabras (o bytes) de una memoria can una letra K (kilo), M (mega) o G (giga). K es igual a 2 1 , M es igual a 2m y G es igual a y;por l o tanto, 64 K es igual a Z16, 2M es igual a 221y 4G: es igual a 232. Se utilizan dos tipos principales de memoria en los sistemas de computadoras: memoria de acceso aleatorio RAM (random-access memory), y memoria de s61o lectura ROM cread-only memory).
Memoria de acceso aleatorio En la memoria de acceso aleatorio (RAM), las celdas de la memoria pueden
accesame para la transferencia de informacih en cualquier p i c i d n aleatoria deseada. Esto es, el proceso de ubicar una palabra en la memoria es igual y requiere la misma cantidad de tiempo, sin importar la ubicaci6n fsica de las celdas en la memoria: de ah el nombre de "acceso aleatorio". La comunicaci6n entre una memoria y su ambiente se logra mediante ineas de entrada y salida de datos, lneas de selecci6n de direccin y lheas
Componentes digitales
de control que especifican la direccin de la transferencia. Un diagrama de bloque de una unidad RAM se muestra en la figura 2-12. Las n h e a s de entrada de datos proporcionan l a infonnaci6n que se va a almacenar en la memoria, y las n lineas de datos de d d a proporcionan la informaci6n que sale de la memoria. Las k lineas de direccionamiento proporcionan un n b e r o binario de k bits que ~peeifica una palabra particular elegida entre las palabras disponibles dentro de la memoria. Las dos entradas de control especifican la direcci6n de transferencia que se desea. Las dos operadmes que puede ejecutar una memoria de acceso aleatorio son la lectura y la escritura. la efial de escritura especifica una operacibn de transferenda de entrada. Y la &al de lectura e6pedica una opexacibn de transferencia de salida. Al aceptar una de estas seales de control, l o s circuitos internos de la memoria proporcionan la funcibn deseada. Los pasos que deben seguirse para que una nueva palabra se almacene en la memoria son los siguientes: 1. Aplicar la direccibn binaria de la palabra deseada a las Uneas de direccionamiento. 2 . Aplicar los bits de los datos que deben almacenarse en la memoria
a las lheas
de entrada de datos.
A. Activar la entrada de ,escritura. iriiw La unidad de memoria tomarZi los bits que se e n & & & disponibles en las
heas de datos de entrada y los almacenarA en la palabra que especifica las l s de direccionamiento. Los pasos que deben realizarse para sacar una palabra almacenada en la memoria son los siguientes
~ ~ 3 ; ~ '
.*
ti 1
deent~ada ae datos
k Uneas de d l w m Esnitula
Unidad de memoria
de 2k prilabras y H bits por pdabra
ii
~ de salida B de datas
65
M m,
1
d ,
Memoria de s6l0 lectura
Como su nombre l o indica, una memoria de slo lectura (ROM) es una unidad de memoria que slo ejecuta la operacibn de lectura; no tiene la posibilidad de escritura. Esto implica que la informacibn binaria almacenada en una ROM se hace permanente durante la producci6n del hardwam de la d a d y no puede alterarse escribiendo diferentes palabras en dh. En tanto una RAM es un dispositivo de propdsito general cuyo contenido puede alterarse durante e1 proeeso computacional, una ROM est limitada a leer palabras que estn ahcenadas de manera permanente dentro de la unidad. La informacibn binaria que s e va a almacenar, la cual es especificada por el diseador, m? integra en la unidad para formar el patrbn de interconexi6n requerido. Las unidades de s61o Iectura vienen con fusibles electrnicos internos es-les, que se pueden programar para una configuracin especifica. Una vez que s e estabiece el pakn, permanece dentro de la unidad, aun cuando la corriente se apague y se encienda de nuevo. Una ROM m x n es un arreglo de celdas binarias organizadas en m palabras de n bits cada una. Corno se muestra en el diagrama de bloque de la figura 2-13, una ROM tiene k h e a s de entrada de direcci6n para seleccionar una de zk = m palabras de memoria, y lneas de salida, una para cada bit de la palabra. Una ROM en circuito integrado tambibn puede tener una o ms entradas de habilitacidn para ampliar la capacidad de la ROM en varios encapsu1ados. La ROM no necesita una h a de control de lectura, porque - - en cualquier momento las lneas de salida proporcionan en forma autorptjca los n ROM
='
&o
ledura.
ri
bits de la palabra seleccionada par el valor de direcci6n. Como las salidas son s61o una funcin de las sadas presentes (las lineas de direccionamiento) una ROM se clasifica como un circuito combinacional. De hecho, una ROM se construye en forma interna con decodificadores y un conjunto de compuertas OR No hay necesidad de proporcionar posibilidades de almacenamiento como en una RAM porque los vaIores de las bits en la ROM = qan de m e r a permanente. Las ROM tienen un amplio campo de aplicaciones en el diio de sistemas digitales. De manera basica, una ROM genera una relacin entradasalida especificada por una tabla de verdad. Como tal, puede complementar cualquier circuito combinacional con k entradas y n salidas. Cuando se emplea en un sistema de computadora como una unidad de memoria, la ROM se utiliza para almacenar prsgramas f i j o s que no van a alterarse y para tabhs de constantes que no estan sujetas a cambia. Una ROM tambin se emplea en el diseo de unidades de control para computadoras digitales. Como tal, se utiliza para almacenar inforrnacidn codificada que representa la secuencia de las variables de contra1 interno necesarias para hacer posibles las diferentes operaciones en la computadora. Una unidad de control que utiliza una ROM para almacenar informacin de control binario se llama una unidad de control rnicroprogramada. Este tema se analiia con mayor detalle en el capitulo 7.
Tipos de ROM tos programas o datos que se requieren en una ROM pueden programarse de tres diferentes maneras. La primera, programacidn por mascnrilla, se realiza
por la compafia que produce el semiconductor durante la parte final del proceso de fabricacin de h unidad. El procedimiento para fabricar una ROM requiere que el cliente llene la tabla de verdad que desea que satisfaga la ROM. La tabla de verdad puede sujetarse a un formato especial que proporciona el fabricante o a un formato especificado en un medio de salida de computadora. El fabricante.hace la mascarilla correspondiente, con el fin de producir un grupo de unos y ceros, de acuerdo con la tabla de verdad del cliente. Este procedimiento es costoso porque el vendedor le cobra al cliente una tarifa especial para' cubrir las gastos que origina el fabricar una ROM particular. Por esta radn, la programacibn por mascarilla s61o es econ6mka s i se hace un pedido de una gran cantidad de ROM de la misma configuracibn Para pequeiias cantidades es d s econ6mico utilizar un segundo tipo de ROM,llamada memoria de slo lectura programble o PROM. Cuando se hace un pedrdo con estas condiciones, las unidades PROM tienen todos sus fusibles intactos, lo cual hace que aparezca un grupo de nmeros 1 en todos los bits de las palabras almacenadas. Los fusibles de las PROM se funden al aplicar pulsos de corriente por Ias terminales de salida de cada direcci6n. Un fusible fundido define un estado O binario y un fusible intacto da un
PROM
EEPROM
1 binario. Esto permite que los usuarios de las PROM obtengan en sus propios Iabomtorios la relaci6n dewada entre direcri~nesde W a y @abras almacenadas. En el comercio hay disponibles instrumentos especiales llamados programadmes de PROM para facilitar este prmeso. En cualquier caso, todos l o s pmesos para programar PROM son de hardware, aunque se utilice la palabra programar. El procedimiento de hardware para programar las ROM y las PROM es irreversible y, una vez programado, eI patr6n que se fija es permanente y no puede alterarse. Una vez que se ha establecido un patr6n de bits, la unidad debe desecharse s i se va a cambiar e patr6n de bits. Un tercer tipo de ROM disponible se llama PROM bombk (erasable PROM o EPROM). tas EPROM pueden reestructurarse hasta su valor inicial aunque antes se hayan fundido sus fusibles. Cuando una EPROM s e coloca bajo una luz ultravioleta especial durante un cierto periodo, la radiacibn de onda corta descarga las compuertas internas que sirven como fusibles. Despus de borrarse, las EPROM regresan a su estado inicial y pueden reprogramarse con un nuevo conjunto de palabras. Ciertas PROM pueden borrarse con seales elctricas en lugar de luz ultravioleta. Estas se llaman PROM borrables elctriuznzente (eiectricdly erasubfe PROM o EEPROM).
estado
2 1 .
2-3*
Construya un dacodificador de 5 a 32 lneas, con cuatro decodificadores de 3 a 8 lneas, con habilitacidn y un ddificador de 2 a 4 lineas. Utilice diagramas de bloque similares a la figura 2-3.
Dibuje el diagrama lbgico de un derodikador de 2 a 4 lneas, d i o con compuertas NOR.Incluya una enhda de habilitacin. Modifique el d d i f i c a d w de la figura 2-2 para que el circuito se active 2-5. cuando E = 1 y s e dmctive 'cuando E = 0; Haga una tabla de verdad difirada. Dibuje e l diagrama 16$0 de un deccdScador de 8 entradas y tres salidas cuya tabla de verdad es como la que proporciona Ia tabla 2-2 Cul es fa salida cuando todas las entradas son iguales a O? GuAl il ia lasalida cuando fa entrada Does igual a M Establezca un p d i m i e n t o que distinga estos dos casos. Construya un rnultip1exor"de16 a 1 lneas can das multiplexors de 8 a 1 7 lneas y uno de 2 a 1 Jfneas. Utilice d i a g m a s de bloque para los tres multiplexares. Dibuje el d2agrama de control de unos multiplexores duales de 4 a 1 llneas y explique su aperaci6n mediante una tabla de funciones. Induya una compuerta AND de dos entradas con el registro de l a figura 2-6 y conecte la salida de la compuerta a las entradas de reloj de todos los flip-flops. Una\ enhada de la cornpub AND recibe los pul- de reloj de un generador.La otra entrada de la compuerta AND proporciona un control de carga paralela. Explique la operaci6n del registro mdicado. 2-10, Cual es la funci6n de la compuerta de acoplamiento en la entrada de reloj del regis@ de -lafigura 2-71 2-11. Incluya una opci6n de un borrado sincrono en el registro con carga paralela de la figura 2-7. 2-12. El contenido de un registro de cuatro bits a a1 principio 1101. El registro se desplaza seis veces a la derecha con una entradaserial que es de 101101.CuM es el contenido de registro dspu& de cada desplamniento? 2-33. Cul es l a diferencia entre transferencia serial y paralela? Usando un registro de desplazamiento con carga paralela explique d m o convertir datos de entradas seriales en salidas paralelas y datos de entrada paralelos en salidas
4.
senalec.
2-14.
2-15.
2-16.
El registro de desplazamienta bidireccionai de cuatro bits eon carga paralela que se m m k a en la figura 2-9 se incluye en un encapsuladoCI. a. Dibuje un diagrama de bloque de CI que muestre todas las entradas y salidas. Incluya dos terminales para proporcionar alimentaci6n. b. Dibuje un diagrama de blque utilizando 2 C I para producir un registro de desplazamiento bidirecclonal de d o bits w n carga paralda. ~Cudntosfiipflops se complementarn en un contador binario de 10 bits para' alcanzar la siguiente cuenta despues de: a) 1001100111; b) 0011111111F
2-17.
2-18.
Muestxe las conexiones entre cuatro contadores binzwios $e cuatro b i t s wn carga paralela (figura 2-11) para producir un contador b i i o de 16 bits con carga paralela. Utilice un diagrama de blque para cada contador de cuatro bits. Muestre cbmo el contador binarin con carga paralela de la figura 2-11 puede usarse para que funcione como un contador de divisi6n por N, por qmplo, un contador que cuente de 0000 a N y de regmo a MXW]. Muestre de manera especifica el circuito para un contador que divida entre 10 u t i h d o e l contador de la figura 2-11 y una compuerta AND
externa.
2-19.
2-20.
2-21.
2-22.
2-23.
Las siguientes unidades de memoria son especificadas mediante la cantidad de palabras por e l n h e m de b i t s por palabra. ~Cuintas lneas de direccionamiento y b a s de datos entrada-salida se necesitan en cada caso? a) 2K X 16; b) 64K X 8; c) 16M X 32;d) 4G X 64. Especifique la cantidad de bytes que pueden aimaccnarse en las memorias que se enlistan en e l problema 2-19. cuntos CI de memoria de 128 X 8 se nemsitan para proporcionar una capacidad de memoria de 4096 X 141 Dado un CI de ROM de 32 x 8 con una entrada de habilitacin, muestre las conexiones externas necesarias para construir una ROM de 128 X 8 con cuatro C I y un decodificador. Una ROM de 4096 X 8 bits tiene dos entradas de habilitacibn y opera con una alimentaci6n de 5 volts. ~Cu61itas terminales se necesitan para e l encapsulado del circuito integrado? Dibuje un diagrama de bloque y asigne un nombre a todas las terminales de cntrada y salida en la ROM.
1. Hill, F.J. y G.R. Peterson, lnlroductim to Switching Thwry and Loglcal Decip, 3a. ed. Nueva York JohnWiley, 2981. 2. Mano, M .M., Dkital D e s i . , 2 . .ed. Engle-wmd Cliffs, NJ: Prentice Hall, 1 9 9 1 . 3. Roth, C. H . , Fumhmkil of Logic D e s e ,3a.ed. S t Paul, MN:West Publishing, 1985. 4. Sandige, R.S . ,Uodern Digital Bsign. Nueva York: McGraw Hill, 1990. 5 . Shiva, S. G., tnfroduction to L q i c Desip. Glenview, 8: Scott, Foresman, 1988. 6. Wakerly, J. F . , Digital Design Principia md Practices. Englewwd Cliffs, NJ:Prentice Hau, 1990. 7. Ward, S .A., y R. H. Halstead, Jr.,Computatimr Struclwra. Carnbridge, MA:MiT Preas,
1990.
EN ESTE CAP~TULO
3-1
3-2
3-3 3-4
3-5
36
3-1
Tipos de datos
En las computadoras digitales la informaci6n binaria se almacena en la memoria o en los registros del pmsador. Los registros contienen datos o infomaci6n de control. La infomcibn de control es un bit o un grupo de bits que se utilizan para especificar la secuencia de seirales de comando necesarias para manipular los datos en otros qistm. Lios datos son n h e ros y otra infannaci6n en &digo biriario sobre los que se realizan operaciones para conseguir los resultados computacionales requeridos. En este capitulo presentamos los tipos de. datos M& comunes que se encuentran en las computadoras digitales y mostramos c6mo los diversos tipos de datos se representan en forma de cdigo binario en los registros de computadoras. Los tipos de datos que se encuentran en los registros de las computadoras digitales pueden clasificarse en algunas de ls siguientes categoras: 1) nmem que se utilizan en cai1culcs aritmticos; 2) letras del alfabeto que se utilizan en el procesamiento de datos, y 3) otros smbolos discretos que se utilizan con pr~phitos especficos. Todos los tipos de datos, excepto los nmeros binarios, se r e p m t a n en los registros de la computadora en forma de c6digo binario. Esto es porque los registros estn formados de
flip-flops y Ios flipflops son dispositivos de-dos estados que pueden almacenar solamente grupos de nmeros 1 y O. El sistema de nilimeros binarios es el sistema ms-na#d para utilizar en una computadora digital. Pero en ocasiones es conveniente emplear diferentes sistemas numricos, en especial el sistema,decJmalm u e .se .utiliq para realizar clnilos aritmCticos. '
> ,
decimal
Sistemas numricosi Un sistema numrico de h e , o rak r, es un sistema que utiliza diferentes simbolos para los digibos r. Las n b e r o s se representan con una serie de smbolos de digito. Para determinar la cantidad que representa el niunero es necesario multiplicar cada dgito por u n a potencia entera de r y despub formar l a suma de todos los dfgitos ponderados. Por ejemplo, e1 sistema de nmeros decimales que se usa en forma cotidiana emplea el sistema de base lo. tos diez smbolos son 0, 1 , 2 3,4, 5, 6, 7, 8 y 9. La serk de dgitos 724.5
se interpreta para representar la cantidad
..
unidades, m s 5 dkimm. En foma similar cada nihne~o decimal puede interpretarse para encontrar la cantidad que representa. El sistema numgrico bimrio utiliaa la base 2 . Los dos smbolos de dgito que se utilizan son O y 1. La interpretacin de la serie de digitos 101101 que representa la cantidad
octaf
hexadecimal
Para apreciar la diferencia entre nmeros de base diferente, los digitos se encerrarh entre par&ds y la ba6e del nfimero se insertar cbma subndice. Por ejemplo, para mostrar la igualdad entre el n~hefa 4 ! 5 decimal y binario escribiremos (10110fh = (45)i0 qiap i nadCii Ademiis de los sistemas numricos trinar10 y decimal, los s i s m s octaI (raz 8) y k u d e c i m ~ (tah f 16) son -importantes en el trabajo de las computadora~digitalk Loo ocho simbolos del sistema &tal son 0, 1, 2, 3, 4, 5, 6 y 7. Las- 16 shbotos del sisiema hexadecimal sbn O, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C; D , E y F. Desafortunadamente, los ltimas seis smbolos son idnticos a las letras de1 alfabeto y en ocasiones pueden causar ' conlusibn. Sin embargo, es la forma que se ha adoptado. Cuando se acostumbra representar digitos hexadecimales, los bimboXos A, B, C, D ,E , F corresponden a los nmeros decimales 10, 11, 12, 13, 14, 15, respec'hvamente. Un nmem de base r puede cnveal sistema decimal w n el que estamos farrdiiarizados al obtener la suma de los digitos ponderados de acuerdo a su posicihn. Por eiem~lo.736.4 en notacin mtal se convierte a decimal como sigue:
73
(7364= 7 X B2 + 3 X 8' + 6 X 80 + 4 X 8-' = 7 x M + 3 X 8 + 6 x 1 + 448 = ( 4 7 8 . 5 ) i o E l nmero decimal equivalente al F3 hexagesimal se obtiene con d siguiente
clculo:
wnuelersidn
a convedbn de decimal a su representad& equivalente en el sistema de base r, se tealiza separando e l n h e r o en sus partes enteras y fra&les y convirtiendo cada una de ellas por separado. La conversibn de un entero decimal en una repmtacin de base r se maliza mediante divisiones sucesivas entre r y la acumuiaci6n de los residuos. ta conversin de una fracci6n decimal a una reprsentacin de base r se consigue niediante multipliciciones sucesivas por r y la acurnulacidn de los dgitos enteros que se obtienen. La W r a 3-1 muestra estos prdimientos. ia conversibe del decimal 41.6875 en binario se realiza al se paca^ el ntimero en su parte entera 41 y su parte fracdonal ,6875. La parte entera se convierte al dividir 41 entre r = 2 y obtener un cociente entero de u] y un residuo de 1. e nuwo eI cociente s e divide entre 2 para obtener un nuwo d e n t e y un residuo. Este proceso se repite hasta que d cociente enteni sea O. Los coeficientes de b s niimem binarlos se obtienen de los residuos y es el primer residuo el que da el bit de orden W o r del nmero binario que se conyIr6. La parte fracciona1 se cpnvierte al multiplicarla par r = 2 para obtener un entero y una fraccin. La nueva fraccidn (sin el entero) se multiplica de nuwo por 2 para obtener un nuwo entero y una nueva fraccibn. Esto se repite hasta que la parte fraccional es O o hasta que el nmero de digitos obtenido da una apmximaci6n conveniente. tos coedicientes de la fracci6n binaria se obtienen de los dgitos enteros y el primer entero que se calcula es el dgito que se coloca junto al punto , b Por dItimo, las dos partes se combinan para proporcionar l a conversi6n total requerida.
Figura 3-1 Conwrsi6n del d&cima141.B75; a binario. F m d h = 0.6875
Eniero = 4 1
1 0 5 o 2 1 1 O o 1
mi o
0.6875 2
0.7200
x 2
m x 2
1.5000
x 2 1.0000
(4lllO ~(10IM1l2
(41.6875)10 = (101001-1011)*
74
~ h u L . TRES 0 Rep-taQh
de datos
NUMeros octales y hexadecimales Las conversiones desde y hacia representaciones binaria, octal y hexadecimal juegan una parte importante en las computadoras digitales. Como =8y 9 = 16, cada digito octal corresponde a tres dgitos biarios y cada digita hexadechal corresponde a cuatro dgitos binarios. la conversi6n de binario a octal se consigue con faciiidad al dividir el n h e r o binario en grupos de tres bits cada uno. Despuh, e l dlgito octal que le corresponde se asigna a cada grupo de bits y la serie de dgitos que se obtiene proporciona el equivalente al octal del nmero binariu, Por qemplo, consideremos un registro de 16 bits. Fsicamente se puede decir queh el registro est formado de 16 celdas de almacenamiento binario y que cada celda puede cantener un nmero 1 o un O. Supongamos que la configuracih de bit que se almacena en el registro es como la que se muestra en la figura 3-2.Como un nmero binario est formado por series de nmeros 1 y O, el registro de 1 6 bib puede utilizarse para almacmar cualquier nlmeiro binario de O a 2 1 6- 1 . En el ejemplo particular que se muestra, el nmero binario almacenado en el registro es el equivalente del nmero decimal W99. Comenzando con el bit de orden inferior, dividimos el registro en grupos de tres bits cada uno (el decirnosexto bit, por s solo, forma un grupo). A cada grupo de tres bits se le asigna su equivalehte a octal y se coloca en la parte superior de1 registro. La serie de dgitos octales que se obtiene representa el equivalente octal del nmero binario. L a conversi611de binario a hexadecimal es similar, excepto que los bits se dividen en grupos de cuatro. El digito hexadecimal que corresponde a cada grupo de cuatro bits se escribe debajo el registro, segn se muestra en la figura 3-2. La serie de digitos hexadecimales que se obtiene representa el equivalente hexadecimal del nmero Enario. El digito octal que corresponde a cada grupo de tres bits se recuerda con facilidad despus de estudiar las primeras who entradas que se listan en la tabla 3-1. La compondencia entre un dgito hexadecimal y su caigo de 4 bits equivalente puede hallarse en las primeras 16 entradas de la tabla 3-2. I a tabla 3-1 representa una lista de unos cuantos nmeros actales y su representacidn en registros en forma de ddigo Liario. El cdigo binario se obtiene mediante el procedimiento que s e expiic6. A cada digito octaI se le asigna un c6digo de 3 bits, wgdn 1 0 especifican las entradas de los primeros ocho dgitos en la tabla. D e igual manera, i a tabla 3-2 lista unos cuantos nCimeros hexadecimales y su representaci6n en registros en forma de c6digo binaria. Aqu, el &digo binario se obtiene al asignar a cada digito hexade
& N
s i Tipos de datos
75
1 2 3 4' 5
o
1
2
3
Cbdigo para un
d igilo octal
1 0 0 101
110
4 5
6 7
111
6 7
cima1 el cdigo de cuatro bits que se lista en LIS primeras 16 entradas de la tabla. Al comparar los nmeros wtales y hexadecimales codificados en b i i rio con su equivalente en nmero binario, encontramos que la combinacihn de bits en las tres representaciones es exactamente la misma. Por ejemplo, el n h e r o 99 decimal cuartdur.se conviertev en binario da como resultado 1100011. El equivalente wtal en cdigo binario de 99 decimal es 001 100 011 ye l hexadecimal en cdigo binariu del 99 decimal es O110 0011. Si dejamos de considerar los ceros a la izquierda cn estas tres representaciones binarias, encontramos que Ia combinaci611 de sus bits es idgntica. Esto debe ser as por la conversidn directa que existe entre 10s nSimeras binarios y los =tales o hexadwhales. i m importank de tudo esto es que una serie de nmeros 1 y O almacenados en un registro puede representar un nmero binario, pero esta misma serie de bits puede interprehrue: como la represenL=~ci&n de un nmero octal en forma de cdigo binario (si dividimos los bits en grupos de tres) o como la rep-ntacim de un ndmero hexadecimal en forma de cdigo binario (si dividimos -los bits en grupos de 'cuatro). Los registros en una computadora digital coiitienen muchos bits. Para especificar e l contenido de registros rn&ante sus valo- binarios ser6 necesaria una larga serie de digitos binarios. Es mbs convenienk especificar el co~itcnido de dos registros por su equivaleiik =tal o hexadechal. La cantidad de &gitm se reduce a un tercio de b i t s en la deii0minaci6n octal y en un cuarto en la den0minaci6n hmcadeciml. Por ejemplo, el nmero binario 1111 1111 1111 tiene 12 digitos. Puede expresarse en nmero octal como 7777
5 6 7 8 9 10
hexadecimal
(cuatro dlgitos) o en h w d b a l como FFF (tres dlgitos). Lw manuales de computadora siempre seleccionan la dcnominacidn octol o hexadecimal para -pacificar e i contenido de l o s mgistros.
es el ms natural para una computadora pero las personas estan acostumbradas al sistema decimal. Una manera de ame giar este conflicto es convertir en nmeros biniirios todos los nmeros decimales de entrada, permitir que la computadora efecte todas las operaciones aritmticas en binario y despus convierta b s resultados binarios a decimales para que el usuario los comprenda. S i n embargo, tambin es posible que la computadora realice operaciones aritmeticas directamente con nmeros decimales siempre y cuando estn en forma codificada. b s nmews decimales, por lo pneral, se introducen a la computadora como caracte xes alfanum6rims en cdigo binarh. Estas cdigos, de los que se hablad m s tarde, pueden contener de seis a ocho hits para cada dgito decimal. Cuando los nmeros decimales se usan para clculos aritmkticos internos se convierten en cdigos binarios con cuatro bita por dlgito.
cbdip binario
Un cdigo bhario es un grupo de n bits que adopta hasta 2" combinaciones distintas de nmeros 1 y O y donde cada combinacin representa un
elemento del conjunto que se codifica. Por ejemplo, un conjunto de cuatro elementos puede representarse mediante un cdigo de 2 bits, donde a cada elemento se le asigna una de las siguientes combinaciones de bits 00, 01,lO u 1 1 . Un conjunto de d i o elementos requiere un cdigo de 3 bits, un conjunto de 16 elementos requiere un cdigo de 4 bits y as sucesivamente. Un c6digo binario ten&&algunas combinaciones de bits no asignadas si el nmero de elementos en el conjunto no es una potencia m6Itiplo de 2. Los 20 &@toa decimahs constituyen un conjunto de esa naturaleza. Un cdigo binario que distingue entre 10 eIement08 debe contener d menos cuatro bib, pero seis de sus combinaciones no se asignarh. Pueden obtenerse muchos c6digos diferates al arreglar cuatro bits en 10 combinaciones distintas. La asigrwin de bits que se usa con mayor frecuencia para los dgitos decimales es la que se Lista en las primeras 10 entradas de le tabla 3.3. Este c6digo particular se llama decimal codificado en binario (binary-coded decimal) y por 10 general se representa con su abreviatura BCD. En ocasiones se usan otros c6didos decimales. y unos cuantos de ellos se muestran en la secci6n 3.5. Es muy importante comprender la diferencia entre la conversi611 de nmeros decimales biiarios y la cud@uci6ir biilarin de ndmeros decimales. Por ejemplo, cuando se convierte ahnimero bharioi el nmero decimal 99 se representa con la serie de bits 1100013, pero cuando se representa en BCD, se vuelve 1001 1001. La h diferencia entre un n h e r o decimal que se
'
(a)
Niimm
m 1 D O 1 0
78
m m RepresentBcih de datos
representa por los sirnbolos de dgitos con b s que estamos familiarizadm. 0, 1 ,2 . ' .. ,9 y los simbblos BCD 0001, 0010, . , 1001 estA en los smbolos que se utilizan para representar los dfgitos; el nmero por si mismo es igual. En la tabh 3.3 se Listan unos cuantos n h e m s decimales y su representaci6n en BCD.
..
ASCII
Represenracion airanumetica Muchas aplicaciones de computadoras digitales requieren d manejo de datos que no 6610 estan formadas por nmeros sino tambih por letras del alfabeto y por ciertos caracteres especiales. Un conjunto de camcteres a!fianumricos es un conjunto de elementos que induye 106 10 dfgitos decimales, las 26 letras del alfabeto y cierta cantidad de caracteres especiales, como $ , +, e = . Tal conjunto contiene entre 32 y M elementos (si s610 se incluyen ias letras maySisculas) o entre 64 y 128 (si se incluyen tanb las maysculas como las rnhkuhs).En el primer caso, e l c6digo binario necesitar4 seis bits y en el &gunda caso, siete bits. El cdigo binario alfaiiumdrico estAndar es el ASCII (American Standard Code for Informa tibn Iiiterchange), el cual utiliza siete bits para codificar 128 caracteres. Los cdigos binarios para las letras maysculas, los digitos decimales y unos cuantos caracteres especiales se listan en la tabla 3-4. Obserw que ls dlgitos decimales en ASCTI pueden convertirse a BCD al quikar los tres bits de orden superior, 011. Una lista completa de los caracteres ACCTT se proporciona en la tabla 11-1. tos cdigos binarios desempean un papel importante en las operaciones de las computadoras digitales. tos cddigos deben estar en binario porque los registros s61o pueden contener informaci61i binaria. Es necesario comprender que las cddigos binarios $610 cambian los slmbolos, no el significado de cuaIquier elemento que representen. Lis operaciones especificadas para computadoras digitaks deben considerar cl significado de los bits ahacenados en el reghtro para que las oyeracioiies se efecten en operadores del mismo tipo, Al realizar una inspmi6n aleatoria de los bits de un registro de computadora, es probable que se descubra que representa cierto tipo de informacibn cudificada en lugar de un iimero binario. Pueden formularse a discrecin c6digos binarios para cualquier conjunto de elementos, como las notas musicales y las piezas de ajedrez en sus posiciones sobre un tablero. Los cdigos binsrios tambien se usan para formular instrucciones que especifican iiiformacin de control para la computadora. l 3te captulo -se relciona con la representaci6ii de <os datos. Los cdigos de instrucciones se analizan en el capitulo 5.
3-2
Complementos
Los complementos se utilizan eii las computadorns digitales para especificar h operaci6n de resta y para Ia manipulaciii 16gica. Existen dos tipos de
w
-
Complementos
79
Cdigo Carcter
binano
Cariicter
Cddigo binario
100 oioa 100 0110 100 Qlll 190 lo00 100 1001 1 0 lOlQ 100 1011 100 1100 100 1101 100 1110
100 1111 101 0000
101 Do01 101 0010 101 O011 la1 0100 101 O101 101 0110
101 O111
complementos para cada sistema de base r: el complemento a r y el complem t o a (r l ) , Cuando e1 valor de h base r se sustituye en e l nombre, los dos tipos se denominan complemento a 2 y a 1 para los nmeros binarios ye l complemento a nmeros 10 y a 9 para los niuneros decimales.
colnplenfettto a 9
El wmplemento (r -1) Woun~Nenbsserque~ndfgibos,elcwn~btoa(r-1)&N se dehe como (r" - 1) - N.Para los n h a m dezimak r = 10 y r - 1 = 9, por Io que el comphehto a n w m 9 de N es (10" - 1) - N. Ahora, lO" rep-ta un nmero que est formado por un 1 nico seguido de n ame. 10" - 1 e un nnCunerri r e p m t a d o por n nueva Por e+nplo, con n = 4 tenemos lo4 = 1000 y le - 1 = 9999 En coiisecuencia el complemrriito a nnQrneros 9 de un nmero decimal x obtiene al restar cada digito de 9. Por ejemplo,
80
compbmento a 1
= 453299 y e1 complemento a 9 de 12389 es 99999 - 12389 = 87610. Para los nmeros binarios, r = 2 y r - 1 = 1, por l o que e l comple mento a 1 de N es (2" - 1) - N. De nuevo, 2" este representado por un nmero binario que est formado por 1 seguido por n ceros. 2 ' - 1 es un nmero binario represwntado por 1 . Por ejempIo, con n = 4, tenemos z4 = (10000)~ y z4 - 1 = (1111)2. Por lo tanto, el complemento a 1 de un nmero binari; se obtiene restando cada dgito de 1. Sin embargo, la resta de un digito binario de 1 provoca que d 'bit cambie de O a 1 o de 1 a O. Por l o hnto, e l complemento a 1 de un nfimero binario se forma al cambiar los 1 a O y los O a 1. Por ejemplo, e l complemento a 1 de 1011OO1 es OlOOllO y e l complemento a 1 de 0001111 es lllOMH3, El complemento a niheros (r - 1) de los nmeros octales y hexade cimales se obtiene restando cada digito de 7 o de F (el nmero decimal 151, respectivamente.
corpiplemmto a 10
complemmto a 2
Complemento a (r) El complemento a r de un nifmero N de n digitos en base r se define como In - N cuando N # O y O cuando N = O. Al compararlo con el complemento a (r - 1) notamos que el complemento a r se obtiene agregando 1 al compIementa a (Y - 1) porque rn - N = [r" - 1) - N j 1 - 1. Por I o tanto, e l complemento a 10 del n h e r o decimal 2389 es 7610 4- 1 = 7611 se obtiene al agregar 1 al valor del complemento a 9. El complemei-itoa nmeros 2 del n h e r o binario 101100 es O10011 + 1 = 010100 y se obtiene al a m a r 1 al valor del complemento a 1. Como 10" es un nmero representado por un 1 al que le siguen n ceros entonces 10" - N, e l cual es e l complemento a 10 de N, tambidn puede formarse al no alterar los O a lii derecha, resta? a 1 0 el primcr digito significativo diferente de O, y despub m t a r de 9 las digitos significativos mayores. El complemento a 10 de 246700 es 753300 y se obtiene al no alterar los dos ceros, al restar 7 de 10, y al restar los otros tres digitos de 9. De igual manera, el complemento a 2 puede formarse 01 no alterar los O ni el primer 1, y despus al susttuir los 1 con O y los O con 1 en los demds bits con mayor valor. E 1 complemento a 2 de 1101100 es 0010100 y se obtiene A l no mdificar los dos O de orden menor ni ei primer 1 y, despus, al sustituir con 1 los O y con O los 1 en los otros cuatro bits con mayor valor. En las ddinicianes anteriares se condder6 que los nmeros no tienen un punto de base. Si el nmero N original contiene un punto de base, debe quita= de m e r a teniparal para que forme los compiementos a r o a (r - 1). Despus se restaura e I punto de base en el ndrnero cnmplementado y en la misma posicin relativa. Tambibn vale la pena mencionar que el complemento del complementa nos devuelve el nilmero con su valor original. El complemento a r de N es r" - N. El complemento del complemento es P - (f' - N ) = N l o cual proporciona e l n h e m original.
mal Resta de nbrneros sin signo El m W o directa de recta que se ensea en las escuelas primarias utiliza el EAl .- . concepto de prstamo. En este mtodo tomamos prestada una unidad de una posiciBn con mayor valor cuando el dgito del minuendo es menor que el
resta
digito correspondiente del sustraendo. Esto parece ser m8s sencillo cuando las personas ejecutan restas con lpiz y papel. Cuando la resta s e realiza con equipo de mmputaci6n digital este mdtodo parece ser menos eficiente que el mtodo que utiliza compIementos. La xesta de dos nmeros M sin signo de pn dgitos - N (N # O) en base r pude r e d i r s e de la siguiente manera:
acarreo final
1 . Sumar el minuendo M al complemento a r del sustraendo N. Esto daM+(r"-lV)=M-N+?. 2. Si M 2 N, la suma producir un acarreo final r" que se descarta y lo que queda es e l resultado M - N. 3. Si M < N, la suma no puede tener un acarreo final y es igual a tn - (N - M), lo cual es el complemento a r de (N - M). Para obtener la respuesta en una forma familiar, es necesario tomar el complemento a r de la suma y colocarle un signo negativo.
Por ejemplo, consideremos la resta 72532 - 13250 = 59282. El complementa a nmem 10 de 13250 es 86750. Por lo tanto:
~3gpjo
M
Suma
el complemento a nmeros 10 de N
.-w
='
+ 86750 = 159282
72532
? , L -h
U1) 4 3
acarreo final de que se descarta = -100000 Respuesta = 59282 jit4uprtrbain#mf4edl** d Ahora consideremos un ejemplo con M < N. La resta 13250 - 72532 produce e l nmero negativo 59282. Al utdizar el prcrcediiento con comple m t o s , tenemos
.-.ay
lo5 -- ----
M
m
-m
ri
+ 27468
40718
13250
Como estamos manejando nbmems sin signo, no hay manera de A obtener un nSimero sin signo en el segundo ejemplo. Cuando trabajamos con I Pl m papel y lpiz, reconocemos que i a respuesta debe cambiarse a un nCimero m6i J a P i ) . negativo m n signo. Cuando restamos con mmplementos, La respuesta negaac# ' tiva se reconoce por la ausencia de acarreo final y de resultado comple
'
mentado.
L a resta por complemento se realha can nmeros binarios de una manera simiiar, utilizando el mismo procedimiento que se acaba de detallar. Al usar los dos n b m s binarios X = lOlOIOO y Y = 1000011, efectuamos l a resta X - Y y Y - X utilizando el compIemento a 2:
= 10101OO = O111101 suma = 10010001 daechando el acarreo final de 2' = -1000Mfa7 Respuesta: X - Y = o(310001
el complemento a 2 de Y
+ 0101100
llOllll
1m11
de nmeros 2
punto haina
pt&# o
&,
SEEU~NM Representaa6n de
punto fijo
83
presente en realidad pero su presencia se supone porque el nmero almacenado en e l registro se trata como una .fracci6n o como un entero. La representacsn del punto flotante utiliza un segundo registro para almacenar un nmero que designa la posici6n de1 punto decimal en eI primer registro. L a representacin de punto flotante se analiza en Ia siguiente secci6n.
Representacidn de enteros Cuando un ndmem,bhario es positivo, el signo se representa con O y la magnitud por un n h e i o , hinario positivo. Cuando el ndmero es negativo, el signo se representa con 1 pera el resto del nmero puede representarse en cualquiera de las tres siguientes maneras:
1 . Rqesentacin de magnitud de signo. 2 Representaci6n e complemento a nmeros 1 con signo. 3. Representacibn de complemento a 2 con sieno.
h 1
La representacih,de magnitud de signo de un nmero negativa esta formada por la magnitud y un signo negativo, En las otras dos wresentaciones, el ndrnero negativo sie representa con el complemento a 1 o 2 de su valor positivo. Como ejemplo, consideremos el nmero 14 con signo que se almacena en un registro de 8 bits. 14 se r e p b wri un bit de signo de O en la posicidn de la extrema izquierda =pido por el equivalente binario de 1 4 ~ 0 1 1 1 0Debe . notarse que cada uno de los ocho bits del registro debe tener un valor y, por lo tanto, debe inserta@@O m las posiciones ms significativas del bit de signo,Aunque slo existe una manera de representar + 14, xiskn tres diferentes maneras de representar - 14 con d o bita.
En representacibn de magnitud de signo En representaci6n de mmpiemento de nmeros 1 de signo En repfesentacihn de complemento de nmeros 2 de signo
1 OOQlllO
1 1110001
1 1110010
't"
La repmntaci6n de magnitud de sipo de - 14 se obtiene de + 14 al complementar s61o e l bit de sipo. La q m t a c i 6 n de complemato a 1 ; 4 del signo de - 14 se obtiene al complementar todos los bits de + 14, incluido ,el bit de sipo. La r e ) ) m b c i n de cornphent~a 2 con signo se obtiene al tomar el complemento a 2 del nQmera positivo, incluyendo su bit de hsigno. El sistema de magnitud con signo se utiliza en i a aritmtica simple pero es temible cuando se emplea en la arihnktica mputacional. Por lo tanto, en gmeral se utiliza el complemento con signo. E l complemento de 1 implica dificultades porque t i m e dos xspresentaciones del O (+ O y - O). Se utiliza m u y rara vez para operaci~nes aritmdticas excepto en algunas computadoras antiguas. El conyihmmto de 1 es til como una opaci6n 16gica parque el cambii de 1 a O o O a 1 es equivalente a una operad611de complemento
84
-O
Representacin de datos
se refiere
La suma de
suma de
eompleme~toa 2
%n 2ada uno de 10k cuatro casos, la uperaci6n que se realiza es siempre una suma, inc1uyendo los b i b de signo. Cualquier acarreo de la posicin de bit con signo s e descarta y los, resultados negativos estn de manera automtica en su Forma de complemento a 2. La forma de complemento de la repmsentacibn de nmeros negativos resulta extraa a las personas acostumbradas al sistema de magnitud con signo. Para determinar el valor de un nmero n ~ a t i v o cuando est en forma de eompIernento de 2 con signo, es necesario convertirlo a un niimero positivo para colocarlo en una forma ms familiar. Por ejemplo, e l niimero binario con signo 1 1 1 1 1 O O 1 es negativo porque el bit de la izquierda es 1. Su complemento a 2 es 00000121, el cual es el equivalente binario de -t. 7. Por lo tanto, reconocemos que el nmero negativo original es igual a - 7.
33
Repm*
de punto fijo
85
resta de complmmto u 2
Resta dbnhtica La resta de dos nmeros binarios con signo cuando los niimeros negativos estan en su forma de complemento a 2 es muy simple y puede explicarse como sigue: se toma e l complemento a 2 del sustraendo (incluyendo el bit de signb) y se suma al minuendo (incluyendo el bit de signo). Se elimina el acarreo de la posicin del bit de signo. Este procedimiento surge del hecho de que una operaci6n de resta puede cambiarse a una operaci6n de suma s i se cambia e l signo del
sustraendo.
Pero el cambio de un nmero positivo a negativo se consigue con facilidad al tomar su complemento a 2. Lo opuesto tambiCn es cierto porque el complemento de un nmero negativo en su forma de complemento produce el nmero positivo equivalente. Considere la resta de (- 6) - (- 13) = + 7. En binario con ocho bits esto se escribe 11113010 - 11110011. La resta se cambia a suma al tomar e l complemento a 2 del sustraendo (- 13) para que d&(+ 13). En f o m binaria esto es 11111010 + OM301101 = 100000111. Al eliminar el acarreo final obtenemos b respuesta correcta O O O O O 1 1 1 (+ 7). Vale la pena anbbr que los nmeros binarios en e l sistema de complemento a 2 con signo se suman y restan mediante las mismas reglas baisicas de suma y resta sin signo. Por lo tanto, las computadoras slo necesitan un circuito comn para manejar ambos tipos de aritmdtica. El usario o programador debe interpretar los resultados de tal suma o resta en f o m diferente, ya sea que se considere que los nmeros son con signo o sin signo.
Sobrefluja
Cuando dos nmeros de n digitos cada uno se suman y el recultado ocupa n + 1 dlgitos, decimos que ha ocurrido un sobreflujo. Cuando la suma se ejecuta con papel y lpiz esto no es un problema porque no hay un lmite en el ancho de la -pAgina para anotar e l resultado. El sobreflujo es un problema en las computadoras digitales porque eI ancho de los registros es finito, Un resultado que contenga n + 1 bits no puede acomodarse en un registro con una longitud estndar d n bits. Por esta razbn, muchas computadoras detectan cuando sucede un sobreflujo y se establece un flip-flop correspondiente para que la sittiacidn pueda ser verificada por el usuario. La detecci6n de un sobreflujo despuk de la suma de dos nmeros binarios depende de si los nmeros se consideran con signo o sin signo. Cuando se suman dos ndmeros sin signo, se detecta un sobreflujo del acarreo final en la posicidn nias significativa. En el caco de nmeros con signo, el bit a la extrema izquierda siempre representa el signo y los nfimeros negativos estn en forma de complemento a nmeros 2. Cuando se suman dos
86
CAP~TULO TRES
Repremtaci6si de datos
n h e r o s con sipo, el bit del signo se trata como parte del nmero y el
+70
O lOOO110
-7Q 1 0111010
dekccion as
sobreflujo
Debe considerarse que el resultado de 8 bits que de& haber sido positivo tiene un bit de signo negativo y que el resultado de 8 bits que deba haber sido negativo tiene un bit de signo positivo. Sin embargo, si el acarreo de la posicibn de bit de signo se toma como el bit de signo del resultado, la respuesta de 9 bits que se obtenga ser& correcta. Como la respuesta no puede acomodarse dentro de 8 bits, decimos que ocurri un sobrefluja. Puede detectarse una condicin de sobxefhjo al observar e l acarreo hacia la posicibn de bit de signo y el acarreo de la posicin de bit de signo. Si estos dos acarreos no son iguales se produce una condici6n de sobreflujo. Esto se indica en Ios ejemplos en los cuales los dos acarreos se muestran de manera expllcita. Si los dos acarreos se aplican a una compuerta OR exclusiva, se deMrA un sobreflujo cuando la salida de la compuerta = igual. a 1.
Representacidn de1 punto fijo dechal i a rapremtacidn de nmenw decimales en mgistrw es una funcibn del cdigo binario utilizada para representar un digito decimal. Un cdigo decima1 de 4 bits necesita cuatro flip-flops para cada dgito decimal. La
representaci6n de 4385 en BCD necesita 16 fpflops, cuatro para cada digito. El nmero se representar4 en un registro con 16 flip-flops de la siguiente manera:
Al representar nmeros en decimal estamos gastando una considerable cantidad de espacio de almacenamiento porque d nmero de bits que se
87
L &
necesita para almacenar un nlmero decimaa en cdigo binario es mayor que el nfimero de bitc que se n e c e s i t a para su representaci6n binaria equivalente. A d d s , los circuitos requeridos para ejecutar arihktica decimal son &S complejos. S i n embargo, existen algunas ventajas en la utilizacin de la repiresenhcibn decimal porque la entrada y salida de datos de la computadora son generadm por personas que utiSin el sistema decimal. Algunas aplicaciones, romo las de procesamiento de datos de negocios necesitan pequeas cantidades,de dl& aritmgtieos en comparacidn con la cantidad que se necesita para la entrada y salida de datos decimales. Por esta razn, algunas computadoras y todas las calculadoras electrnicas realizan operaciones aritm@icas directamente con los dato? decimales (en un &digo binario) y, por tanto, eliminan la necesidad de convertir a binario y de vudta a decimal. Algunos sistemas de computadora tienen hardware para cAlculos arih4ticos con datas tanto binarios como decimales. La repreentacin de nmeros decimales con signo en BCD es similar a la repmwntaeibn de nmeros con signo en binario. Podemos utilizar el. sistema de magnitud con signo con el que estamos familiarizados o el sistema de complementa con signo. Por lo general, el signo de un nmero decimal se reprmmta con cuatro bits para que sea congruente con el c6d0io de 4 bits de los digitos decimales. Tambih se acostumbra designar un signo mAs con cuatro ceros y -unsigno menos con d equivalente de BCD del 9,el cual es 1001, E i sistema de magnitud con signo es dificil de utilizar en computadoras. E l sistema de complemento con-signo puedemr el de complemento a 9 o a 10, pero este ltimo es el que ss utiliza con mayor frecuencia. Para obtener el complemento a 1 0 de un nmero BCD, tomamos primero e l complemgnto a 9 y despus un uno al digito menos significativo. E l complemento a 9 se calcula de la resta de cada digito de 9. El procedimiento desarrollado para el sistema de complemento a 2 con signo se aplica tambin al sistema de complemento a 10 con signo para nmeros decimales. La suma w realiza al agregar todos los digitos, incluyendo el digito de signo y descartando el acarreo final. Obviamente, esto supone que todos los nmeros negativos estn en su forma de complemento a 10. Consideremos Ia suma (+ 375) + (- 240) = 1- 135 realizada en el sistema de complemento a 10 con signo.
nmero indica que es negativo. 9760 es el complemento a 10 de 0240. Se suman b s dos nmeros y e lacam final se dacarta para obtener 135. Por supuesto, los nmeros decimales dentro de la computadora deben estar en BCD, incluyendo ios cgitos de signo, La suma se realiza con sumadores 8CD (vase la figura 10-18).
b m Q
#d J $
p.M'-'
d h
i.rr
fi
L 1
2 L a resta de nmeros decimales en el sistema de complemento a 10 con igual que en d caso de las' nmeros binarios. Hay que tomar 4 el complementa a 10 del sustraendo y agregarlo al minuendo. Muchas computadoras tienen hardware especial para ejecutar cAlculos aritmticos en forma &ta con los nmeros dedtnales en BCD. El usuario de la computadora pude apecifica~ mediante instrucciones programadas que las operaciones aritmticas se ejecuten ron nmeros decimales en forma directa, s i n m r que mnvertir1os a bhrios.
os i n signo es
#*!Y yd
'
m
w
3-4
La
maiitisa
eqvotimte
primera parte representa un ntimero del punta fijo con signo llamado mantisa. La segunda parte representa la posici6n del 'punto decimal (o binario) y se llama exponente. La rnantisa de punto fijo puede ser una fraccibn o un entero. Por ejemplo, el nmero decimd $. 6132.789 ce rep-ta en punto flotante con una fraccibn y un exponente como sigue:
* WWWp $ rJ1 -* C
-,>-
m '
*+
El valor del exponente indica que la posicin real del punto decimal est cuatro posiciones a la depecha del punto de~imaI~indicado en la fraccin. Esta repmtacin es equivalente a la notaci6n cientfica + 0.6132789 X 10*q El punto flotante sihpre s e interpreta m o una representacibn de un ndmero en la siguiente forma:
S610 la mantisa m y erexponen& e s e xepresnh3Z manera fisica en el registro (incluyendo sus signos). L a base r y la posicl6n del punto de la base de Ia mantisa se asumen siempre: Las circuitos que manipulan los nmeros de punto flotante en registros se apegan a estas dos consideraciones para proporcionar los tesdtados de cmputo correctos. Un nmero binario de punto flotante se representa de manera similar excepto que utiliza la base 2 para el exponente. Por ejemplo, el nmero bLnario + 16jll.11 se representa con una fraccin de 8 bits y un exponente de 6 bits de la manera siguiente:
~1*h&a;t~ m r
-Ld. 2
d-4
r C i
abrega
a ~
A~racci6n
I
01001110
~
Expomte
~ ~
W d n
no aparece en el registro. El exponente tiene e l nGmero binario equivalente + 4. nmero de punto flotante es equivalente a
m x F = +(.1001110)2 x Z + '
nomaftzacibn
Se dice que un nmer~ de punto flotante e s a n m l i u i d o si el dgito ms sipifmtivo de h mantisa es diferente de cero, Par ejemplo, el niimero decimal 350 est nomaiizado p r o 000% no lo est. Sin considerar la posicidn en la que se asume e l punto de base en la mantisa, el nmero estA nomializado d o si su dgito de la extrema izquierda es diferente de cero. Por ejemplo, el nmero binario de 8 bits .00011010 no estd normalizado por
los tres primeros dgitos O que contiene. El nmero puede normalizarse al cambiarlo tres posiciones hacia l a izquierda y descartar los primeros O para obtener 11010000. h tres cambios multiplican el nmero por 2 = B. Para mantener e l mismo valor para el nmero de punto flotante, al exponente debe r e s m e 3. Los nmeros normalizados proporcionan la mxima precisi6n posible para los n h m s de punto flotante. Un O no puede normalizarse porque no tiene un digito diferente de cero. Por 10 peral, se representa el punto flotante por nicamente Q en la mantisa y en e l exponente. las operadones aritmkticas con nmeros de punto flotante con mhs complicadas que las que se ejecutan con punto fijo y su ejecucidn requiere ms tiempo y hardware m 6 9 complejos. Sin embargo, la representacin de punto flotante es esencial para los c~lculoscientficos por los problemas relacionados con l a escala que aparecen con 10s dlculos de punto f i j o . Muchas computadoras y todas las calculadoras electrnicas timen implcita la capacidad de ejecutar operaciones aritm&ticasde punto flotante. Las computadoras que no tienen hardware para ciculos de punto flotante tienen un conjunto de subrutinas para ayudar al usuario a programar problemas cientificos con nmeros de punto flotante. Las operaciones aritm6ticas con nmeros de punto flotante se analizan en l a secci6n 10-5.
C&digoGray Los sistemas digitales pueden procesar datos s6lo de manera discreta. Muchos sistemas fsicos proporcionan salida continua de datos. ius datos
m
c6digo p y
deben conve* a su forma djgital antes de que puedan ser utilizados por una computadota digital, La infonnacih continua o ansloga se convierte a su forma binaria mediante un convertidor and&@co/digital. E i cdigo binan o reflejado D d i g o Gray que se muestra en la tabla 3-5, se utiliza en ocasion~ para los datos convertidos a digitaies. I a ventaja del cdigo Gray sobre los nheros biiariw directos es que slo cambia un bit conforme avanza de un nmero al siguiente. En otras palabras, el cambio de cualquier n h e m al siguiente en una secuencia se reconoce mediante un cambio de solamente un bit de O a 1 a de 1 a O. Una aplicacibn tlpica del &ligo Gray se presenta cuando los datos anlogos se representan mediante un cambio continuo de m pmicibn relevnte. La parte relevante se divide en sepentos y a cada segmento se l e asigna un nmero. Si se hace que segmentos adyacentes correspondan a n h e r m en &digo Grag adyacentes, s e reduce la ambifledad cuando la posici6n relevante est en la lnea que separa dos segmentos cualquiera. En ocasiones se utilizan contadores en cdigo Gray para proporcionar las w e n c i a s de temporizaci6n que controlan las operaciones en un sistema digital. Un contador en c a g o Gray es aquel cuyos flip-flops recorren una secuencia de estada segn se especifica en la tabla 3-5. Los contadores de c6digo.Gray eliminan la ambigedad durante el cambio de un estado del contador al siguiente porque s61o cambia un bit durante la transicin de
estado.
Otros chdigos decimales Los cdigos binarios para digitos decinials necesitan un mnimo de cuatro bits. Pueden formularse muchos ddigos difermtes a'l arreglar cuatro a m8s bits en 10 posibles combinaciones diferentes. En la tabla 3-6 se muestran unas cuantas posibilidades. Ya se ha visto b que es un .BCD (decimal codificado en bhario). UtiIia una asignacibn directa del equivalente binario del digito. Las seis combina-
Cdigo binado
Equivalente decimal
Digito decimal
BCD 8421
Gray con
2421
D e exceso 3 exceso 3
1010
Combim dones de bit sinusal.
1011 1100
1101 1110
1111
0000
0000
O001 0010
1101 1110
O001 0011
1 M ) I ) 1 0 0 1
1111
1011
autocomphtaria
c6digo ponerado
ciones listadas de bits que no se usan no tienen ningn valor cuando se utiliza BCD, igual que la letra H no representa nada cuando se anotan simbolos de dfgitos decimales. Por ejemplo, decir que 1001 1110 es un n b e r o decimal en BCD es como decir que 9H es un ndmero decimal en la denominaai6n de signos conv&cional. Ambos casas tienen un signo invdiido y por lo tanto repmsentan un nmero sin significado. Una desventaja de utilizar BCD es i a dificultad que s e encuentra cuando se va a capturar el complemento a 9 del nhmero. Por otra parte, el complemento a 9 se obtiene fcilmente con los cdigos 2421 y de 3 en exceso que se listan ea la tabla 3-6. Estos dos cdigos tienen una propiedad autbmmplementaEia que, significa que todos los complementos a 9 de un niimero dechal, cuando se representan en una de estos cbdigos, se obtienen con facilidad al cambiar Lm 1 a O y los O a 1. Esta propiedad es til cuando se realizan operadone arihnCticas en rep-tacin del complemento con signo. E 1 2421 es un ejemplo de un c6digo ponderado. En el que los bits se multiplican por las posiciones indicadas y la suma de los bits proporciona el dfgito decimaI. Por ejemplo, una combiiaci6n de bits 1101, cuando se posiciona con los digitos 2421 respectivos, praporciona el equivalente decimal de 2 X 1 + 4 X 1 + 2 X O + 1 + 1 = 7. Pueden asignarse al c6digo BCD las ponderaciones 8421 y por esta razBn en ocasiones se les llama c6digo Mil. El cdigo de exceso 3 es un cdigo decimal que se ha utilizado en computadoras anteriores. Este es un c6digo sin ponderacidn. Su asignacin
pueden corregirse pero se seala su p-cia. E l p d i m i e n t o usual es observar l a frecuencia de los errores. Si &tos ocurren al azar, h informacin err6nea particular se transmite de nuevo; si ocurre w n demasiada frecuencia, w verifica el sistema para encontrar la faila. El c a p de detehcibn.de error que se utiliza con mayor fkuencia es bit & paridad el bit de pridad. ' l l n bit de paridad es un bit extra que se incluye con un mensaje binario que hace h cantidad total de unos par o impar. En la tabla 3-7 se muestra un mensaje de tres bits.y dos bits de paridad posible. El bit 'l? P (impar) se ege de m e r a que haga la suma de todos los 1 (entodos los cuatro bits) un n h o impar. E l bit P (par) ,se elige para que haga la suma de todw los 1 un nmero par. En cualquier caso la suma se realiza de acuerdo al mensaje y al bit P. En cualquier aplicacin particular, se adoptar4 uno u otro tipo de paridad. El esquema de paridad par tiene Ia desventaja de contar con una combinacin de bits en que todos son O, mientras que en la paridad impar siempre hay un bit de 1 {de los cuatro que conforman e l mensaje y P). h b e recordarse que P [impar) es el complemento de P (par). Durante la transferencia de infonnaci6n de una posici6n a otra e l bit de paridad se maneja como sigue. En el extremo desde donde se envh el gmrrrrfor de prrntdad mensaje (en este caso tres bits) se aplica a un generadm de pridad, donde se genera el bit de paridad querido. El mensaje, incluyendo el bit de paridad, se transmite a su destino. En el extremo donde se reciben, todos l o s bits que comprobador llegan (en este caso cuatro) se aplican a un comprobndur de pridnd, que de patlfdd v d c a la paridad adecuada adoptada (impar o par). Se detecta un error si la paridad comprobada no se apega a l a paridad adoptada. El &todo de paridad detecta la presencia de uno, tres, o cualquier cantidad impar de errores. N o se detecta un numero par de errores. Las redes generadoras y comprobadoras de paridad son circuitos 16gicm que se construyen con funciones OR exclusivas. Esto se debe a que, como se mencion6 en la seccibn 1-2, la funci6n OR exclusiva de tres o ms +idn impar variables es por defrnicidn una funcin impar. Una funci6n impar es una M n 16gica cuyo valor es un binario s i , y 5610 si, un nmero impar de
TABLA 3-7 G e n d 6 n de un bit de paridad
Mensaje
XYz
P (impr) P (par)
94
variables es igual a 1. De acuerdo con esta definicin la funcin P (par) es la OR exclusiva de x, y, y z porque es igual a 1 cuando cualquiera o las tres variables son iguales a 1 (tabla 3-7). La funcin P (impar) es el complemento de la funcin P (par). Como ejemplo, consideremos un mensaje de 3 bits que se va a transmitir con un bit de paridad impar. En el extremo desde donde se enva, el bit de paridad impar se genera mediante un circuito generador de paridad. Como se muestra en la figura 3-3, este circuito est formado por una compuerta OR exclusiva y una compuerta NOR exclusiva. Como P (par) es la OR exclusiva de x, y, z y P (impar) es el complemento de P (par), es necesario emplear una compuerta NOR exclusiva para la complementacin necesaria. El mensaje y el bit de paridad se transmiten a su destino, donde se aplican a un comprobador de paridad. Ha' ocurrido un error durante la transmisinosi la paridad de los cuatro bits recibidos es par, porque la informacin binaria transmitida era impar origliialmente. La salida del comprobador de paridad debe ser 1 cuando ocurre un error, esto es,, cuando el nmero d e 1 en las cuatro entradas es par. Como la funcin OR exclusiva de las cuatro entradas es una funcin impar, de nuevo necesitamos complementar la salida mediante el uso de una compuerta NOR exclusiva. Vale la pena hacer natar que el generador de paridad puede utilizar el mismo circuito .que el comprobador de paridad si la cuarta entrada se mantiene en forma permanente en un valor O lgico. La ventaja de esto es que puede usarse el mismo circuito para la comprobacin y generacin de la paridad.
Destino
X
Indicacin de error
, ( P I i Y
Generador de paridad
Comprobador de paridad
Problemas
95
En el ejemplo anterior es evidente que pueden implantarse generadores y comprobadores de paridad par con funciones 0 R exclusivas. Las redes de paridad iml necesitan una NOR excIusiva en la salida para complementar la funcin.
3-3
3-2
A3-3. 34.
Convierta los siguientes n h e r o s binarios a decimales: 101110; 1110101 y 110110100. Convierta los siguientes niltmems con las bases indicadas a decimales: (12121k (431015; (501, y (198),,. Convierta los siguientes nmeros decimales a bimrios: 1231; 673 y 1998. Convierta las siguientes nCuneros decimales a las bases indicadas.
a. 7562 a octd.
b . 1 9 3 8 a hexadecimal.
C,
1 % a binario.
Convierta el. n h e m hexadecirnal F3A7C2 a binario y &l. Cul es la raz de 10s nheros s i la solucibn a la eeuacihn cuadrstica ~c, -Ti--- 1 0 ~ + 3 1= O ~ S X = ~ Y X = ~ ?
J .
3 6 ,
r d v m 3-7icU
dblF
3-8.
-+m
Muwtre el valor de todos los bits de un registro de 12 bits que contiene la cantidad equivdente a 215 decimal m: a) bina'rio; b) octal edificado en binario; e) hexadecimal codificado en binario; d) decimal codificado en bina50 (BCD). Muestre k conf@raEi6n de bits de un registro de 24 bits cuando su conte nido w t a e l decimal equivalente de 295: a) en binario; b) en BCD;c) en A utilizando ocho bits con paridad par.
Escriba su propio nombre en ACCII utilizandoun d i g o de odio bits en que el bit de la extrema izquierda siempre 0. Incluya un espacio entre los nombres y un punto despuh de su segundo apellido. Descifre el siguiente cdigo A S C E lMllOl0 1OO1111 1001000 1OO1110 0 1 0 m 1OOO1OO 1OO1111 lOOOlOl Obtenga el eomplem~to a 9 de ios siguientes nfimeroc decimales de ocho &@tos: 12349876; 00980100;90009951; y 0 0 0 0 0 0 0 1 0 .
3-10.
3-11.
- -12,
3 l 3 .
3-14.
Obtenga el complementa a 10 de 1 - siguientes nmeros decimales de seis dgitos: 123900; 090657; 100000; y Q00000.
Obtenga los c o m p h e n b a 1 y 2 de los siguienenkm ndmerasbinarios de ocho di@- 10101110: 10000001; l N M N W ; 00000001; y 00000000. Ejecute la resh con I w siguientes n h e r o s decimal= sin signo tomando el complemento a Id) del siisbaendo. a. 5250 - 132 b . 1753 - 8640 c 20-100 d. 1200 - 250
96
3-15.
Realice la resta con los siguientes nmeros binarios sin signo tomando el complemento a 12 del sustraendo. a. 11010 - 10000 b. 11010 - 1101 C. 100 - 110000 d. 1010100 - 1010100 Realice las operaciones aritmticas (+42) + (-13) y (-42) - (-13), en binario utilizando la representacin de complemento a 2 con signo para nmeros negativos. Realice las operaciones aritmticas (+ 70) + (+ 80) y (- 70) +(- 80) con nmeros binarios en representacin de complemento a 2 con signo. Utilice ocho bits para acomodar cada nmero junto con su signo. Muestre el sobreflujo que ocurre en ambos casos, que los dos ltimos acarreos son diferentes y que hay un signo inverso. Realice las siguientes operaciones aritmticas con los nmeros decimales utilizando representacin de complemento a 10 con signo para nmeros negativos. a. (- 638) + (- 785) b. (- 638) - (+ 185) Un nmero binario de punto flotante de 36 bits tiene ocho bits para el signo del exponente y 26 bits ms el signo para la mantisa. La mantisa es una fraccin normalizada. Los nmeros en la mantisa y el exponente estn en representacin de una magnitud con signo. Cules son las cantidades positivas ms grande y pequea que se pueden representar excluyendo el cero? Represente el nmero (+ 46.5),, como un nmero binario de punto flotante con 24 bits. La mantisa de fraccin normalizada tiene 16 bits y el exponente 8. En ocasiones el cdigo Gray se llama cdigo reflejado porque los valores de los bits se reflejan en ambos lados de cualquier valor 2". Por ejemplo, como se muestra en la tabla 3-5, los yalores de los 3 bits de orden menor se reflejan sobre una lnea dibujada entre el 7 y el 8. Usando esta propiedad del cdigo Gray obtenga: a. Los nmeros del cdigo Gray para 16 hasta el 31 como una continuacin de la tabla 3-5. b. El cdigo Gray en exceso de 3 para los decimales de 10 a 19 como una continuacin de la lista en la tabla 3-6. Represente el nmero decimal 8620 en: a) BCD; b) cdigo de exceso 3; c) cdigo 2421; d) como un nmero binario. Liste los 10 dgitos BCD con una paridad par en la posicin a la extrema izquierda (un total de cinco bits por dgito). Repita con el bit de paridad impar. Represente el nmero decimal 3984 en el cdigo 2421 de la tabla 3-6. Complemente todos los bits del nmero codificado y muestre que el resultado es complemento a 9 de 3984 en el cdigo 2421. Muestre que la funcin OR exclusiva x = A @ B @ C @ D es una funcin impar. Una manera de demostrar esto es obtener la tabla de verdad para y = A @ B y para z.= C @ D y despus formular la tabla de verdad para x
3-16.
3-17.
3-18.
3-19.
3-20.
3-21.
3-22. 3-23.
3-24.
3-25.
y D es impar. Derive los circuib para un generador de paridad de 3 bits y para un comprobador de paridad de 4 bits utilizando un bit de paridad par. (tos circuitos de la figura 3-3 utilizan paridad impar.}
1. Hill, F.J. y G. R.Petercon, ItitrPduction tu Switching Theoty and Logical Dssign, 3a. Ed. Nueva York: JohnWiley, 1981. 2. iaqholz, G., J. Francioni,y A. Kandel, Elemmts aJComputer Organimtwn. Englewaad Cliffs, NJ:Prentice Hall, 1989. 3. Lewin, M. H . , Logical Design nnd Computer Urguniui tion. Readiig, MA: Addison-We ley, 1983. 4. Mano, M. M., DigM D e ,2a M. E n g l e w d Cliffs, NJ:Prentice Hall, 1991. 5. Ro* C.H. Futndametttals ofi@ &S@, 3a. Ed.St. Paul, MN:West Publishing, 1985. 6 . Sandige, R S., Mhfern Digifal Design. Nuwa York: McGraw-Ha, 1990. 7 . Chipa, S. G., Intlvrduction fo Logic h i g n . Glenview, II: b i t , Foresman, 1988. 8. Tomek, I., intmduction to Computer Orgnniurtton. Rockville, M D Computa Scienee Press, 1981. 9. Wakerly, J. F . , Micmmptrter Architecture and Prrrgraitrniing. Nuwa York JohnWdey,
1 9 8 1 . 1 0 . Ward, S. A., y R.H. Halstead, Jr., Computation Structtires. Carnbridge, MA:MlT Press,
1890.
EN ESTE CAP~TULO
Lenguaje de transferencia de registros Transferencia de registros Transferencias de bus y de memoria Microoperacioncsaritmticas Microoperacioneslgicas Microoperaciones de corrimiento Unidad de corrimiento lgico aritmetico
nricrooperacin
100
C A P ~ ~ JCUATRO M
presentaron en d ~apitulo -2 sun registros que sirven para realizar microoperaciones. Por ejemplo, un mnhdor con carga paralela puede realizar las mirrooperaciones de incremento y carga; un registro de desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la izquierda. La organizad611 interna del hardware de una computadora digital se define m+r, al e$p&ificak. + .
m
l. B conjunto de igistros que contiene y sus funciones. 2. La secuencia de rnicrooperaciones que se realizan sobre la informaci6n binaria almacenada en los registros. 3. E l control que inicia l a secuencia de microoperaciones.
lenguaje de
transferencia
de rsgistros
*m
M
-a
5;
da&
-
Es posible ~ p i f i c a r la secuencia de microoperaciones en una computadora, al explicar cada qeracibn en palabras, pero este procedimiento por l o general representa una extensa explicaci6n descriptiva. E s m6s conveniente adoptar una simboIoga conveniente para describir la secuencia de transb rencias entre registros y las diferentes microoperaciones aritdticas y lbgicas asociadas con las transferencias. E l uso de smbolos en lugar de una expiic d n narrativa proporciona una manera organizada y concisa para enlistar las secuencias de microoperaciones en los registros y las funciones de control que las inician. IA notacidn simb6lica que se utiliza para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencia de regictros. El t b i n o "transferencia de registros" implica ia disponibilidad de circhitos 16gikos de hardware que puedan efectuar una micmperaci6n definida y transferir el resultado de la operaci6n al mismo o a otro registro. L a palabra "lenguaje"se toma prestada de 1- programadores, quienes aplican este t6nnho a los lengaajes de programacibn. Un lenguaje de programaci6n es un p d i m i e n t o para escribir smbolos con el fin de especificar cierto p m computacional. D e igual manera, un lenguaje natural, como el ingk, es un sistema para escribir simbolw y combinarlos en palabras y enunciados para la comunicacin entre personas. Un lenguaje de transferenlcia de registros es un sistema para expresar en forma simb6lica, las semencias de microoperaciones entre los registros de un m6dulo digital. Es una herramienta conveniente para describir la organizaci6n interna de las computadora~ digitales de una manera precisa y concisa. Tambih puede usarse para facilitar el proceso de disear sistemas digitales. EL lenguaje de transferencia de registros que se adopta aqu se considera lo m8s sencillo posible, para que no sea dificil de memorizar. En seguida d ~ m ol o ss smbolos para diferentes tipos de microoperaciones y al mismo tiempo dwribiremos el hardware asotiado con el que se pueden llevar a cabo, las micrmperaciones planteadas. La denominaci6n sirnbdlica que se presenta en este capitulo w optimizeirii en capltulos posteriores para
SECCIm 42 Transferencia
de registros
101
especificar las transferencias de registros, las microoperacianes y las funciones de control que describen la organizacin interna del hardware de las computadorras digitales. Se puede apmder con facilidad otra sirnbologa una vez que se familiariza uno con este lenguaje, porque la mayora de las diferencias entre b s lenguaje de transferencia de registros, consisten en variaciones de b s detalles ms que en el propsito general
4-2
~rnitsjhnda de regisfrss
Los registros de computadora e s & representados por letras maysculas (en ocasiones seguidas de niimems), para denotar la funci6n del registro. Por ejemplo, el registro que contiene una direcci6n para la unidad de memoria, por lo .general se llama un registro de direccionamiento de memoria y se designan las letras MAR por sus siglas en ingls (rnemoy address register). Otros nombres para registros son PC (contador de programa), IR (registro de instruccibn) y R1 (registro de pmesador). Los flip-flops individuales en un registro de n bits estn numerados en una secuencia de O hasta n - 1, comenzando desde O eii la p i c i 6 n de Ia extrema derecha y aumentando los nmeros hacia la izquierda. La figura 4-1 muestra la repxesentacihn de registros en forma de diagrama de bloque. La manera mbs comn de representar un registro es mediante una caja rectangular con e l nombre del registro dentro, como en la figura 4l(a). tos bits individuaIes pueden distinguirse como en e l ejlnp10 ( b ) . La numeraci6n de bits en un registro de 16 bit, puede sealarse en la parte superior de la caja, como se muestra en el ejemplo (c). Un registro-de 16 b i t s se divide .en 2 partes en e l ejemplo (d). Los blts dd O al 7 reciben el simboIo L (byte bajo) y los bib del 8 al 15 reciben el simbolo H (byte alto). E l nombre del registro de 16 bits es PC. El simbolo PC (0-7)o PC (L)denomina el byte de orden menor y PC (-15) a PC (H) designa al byte de orden mayor. La transferencia de informacin de uii registra a otro se representa en forma simblica mediante un operador de sustituci6n El enunciado
Figura 4-1 Diagrama de bloque de un regish.
R1
a) Registra R
7 6 5 4 3 2 1 0
c) Numeracin de bita
102
denota una transferencia del contenido del registro R1 al registro R2. Designa la sustituci6n del contenido de R2 por el contenido de R1. Por defini-
1 )
Fmdh de control
donde P es una &al de control que se genera en la seceibn de control. En ocasiones es conveniente separar las variables de control de la operaci6n de transfemcia de registros al especificar una funcin de cmfrol. Una funcibn de control es una variable holeana, que es igual a O o a 1. L a funcin de control se incluye en e1 enunciado como sigue:
La condicin de control se termina con un signo de dos puntos. Representa l a necesidad de que la operaci6n de transferencia sea ejecutada s61i por el hardware si P = 1. Cada enunciado escrito en notacin de transferencia de registros implica una estnictura de hardware para realizar la transferencia. La figura 4-2 muestra el diagrama de bloque de la transferencia de R1 a R2. Las n salidas del registro R1 estn conectadas a las n entradas del registro R2. La letra n se usar4 para indicar cualquier cantidad de bits para e l registro. Se sustituir por un n h e m real cuando se conozca eI tamao del rrgistro. El registro R2 tiene una entrada de carga que activa la variable de control P. Se considera que la variable de control esta sincronizada con el mismo reloj que se aplica al regish. Como se muestra en el diagrama de ternporizacin, P se activa m la secci6n de control mediante el flanco ascendente de un p u b de reloj en el tiempo t. La siguiente transicidn positiva de1 reloj en el tiempo t + 1 encuentra activa la entrada de carga y las. entradas de datos de I D se cargan a su vez en el registro en paralelo. P puede regresar a O en e l tiempo t + i; de otra manera, la transferencia ocurrird con cada transicidn de pulso de reloj mientras P permanece activa. Debe notarse que el reloj no se incluye como una variable en los enunciados de transferencia de registros. Se considera que todas las transferencias ocurren durante una transicibn de flanco de reloj. Aunque la condicin de control P se activa hediatamente despus del tiempo t, la
SBCCI~N
T r a n s f e d a de canal y de memoria
103
transferencia real no ocurre hasta que se activa el registro mediante la siguiente transicin positiva del reloj en el tiempo t 1. LQS smbolos bAsicos de la notaci6n de transferencia de registros se listan en la tabla 41. Los registros es& representados por letras mayCisculas y los nCimems pueden estar despub de las letras. Se usan parhtesis para &alar una parte de un registro al "pecicar el rango de los bits o al otorgar un nombre simblica a una parte de un registro. La flecha significa una transferencia de informacibn y su direccibn. Se usa una coma para -arar dos o m& operaciones que se ejecutan al mismo tiempo. El enunciado
representa una operacibn que intercambia d contenido de dos registros durante un pulso de reloj comn, siempre y cuando T = 1. Esta operacin simultinea siempre es posible con registros que tienen flip-flops activados con flancos.
4-3
Una computadora digital tpica tiene muchos regiskm, y se deben proporcionar trayectorias para transferir infomacibn de un registro a otro. La
cantidad de alambres ser4 excesiva si se usan lneas separadas entre cada
m# A R ~
- TABU
Sfmbd~
4 1 S 1 -
Descripcin
-
Ejemplos
MAR, R2
tetras
& iiumerales)
Parntesis ( ) flecha Cama,
. bus comn . '
1
' 1'
-'
.'
selecidtl de bus
registro y >todos los qtros que wnforman el sistema. Un esquema mAs eficiente paka transkerif la infopani6n entre los registros, en una configura"ci6h de registros rniiltip6; es un sistema de canal (bus)comn. Una estFuctura de bus mnsb-de un conjunto de lneas comunes, una para cada bit de un . . reeistwi, mediante las cuales se transfiere hformaci6n binaria una a la vez. U ~ 'seilales S de c0%01 determinan cu4l registro selecciona el bus durante cada transferencia d e registro particular. U n a manera de consmir un sistema de bus comn es con muItiplexe res. Los rnultiplexo~e6 seleccionan el q i s t r o fuente, cuya informaci6n biaria se col6ka d'espuks en el bus. 'L construcci6n de un sistema de bus para cuatro registros se muestra en la figura 43.Cada registro tiene cuatro bits, numerados del O al 3. El bus est formado de 4 multipIexores 4 X 1, en el qu@ cada uno tiene cuatro mtradas de datos, de1 O al 3, y dos entradas de detci8sr S i y Para no cohplicar el &@ama c m 16 lneas que se cruzan mtfe S I , utilizamos,etiquetas para mohhar 'las conexiones de las salidas de los registros a .la4 entradas -de los multiple~&.Por qernplo, la salida 1 del registro A est conectada a la entrada O del MUX 1 porque esta entrada se etiqueta Ai. 81 bits & la d s m a posicin significativa m cada a las dtradas de datos de un rnulkiplemr para formar tina lhed eii. el Bils. Por lo tanto, el MUX O hace funcibrlar d multiplexor sobre 'los cuatro bits 17 de los'registms, el MUX 1 hace funcionar el multiplexor sobre 10s cuatro bits 1 de los registros y sucede igtial para tlos otros dos bits. Las dos b e a s de dmci6n SIy So estdn conectadas a las entradas de seldi6n de los cuavfo mrlltiplexo&. Las' aiatto lheas de seleccidn escogen lm'ntatro bits de bn registro y los -transfieren eri el bus comdn de cuatro heas. Caarido &So = 00,h s nfradas de datos O de los cuatro multiplexores se seleccionan y se aplian a las salidas que forman el bus. Esto hace que las lneas del bus reciban el contenido del registro A dado que las salidas de este regiptro 5 t h con~tadas a lps entradas, de $atas O, de l o s multipIexores. be i&$l danera se &cciona el registro B si SISO = 01 y asf sucesivamente La tabla 4-2 muestra e l registro que decciona el bus para cada uno de los cuatro valores-binaribs po6ibTes de las heas 'de seletci6n. Eh genetal, 'un s i s t m de bus har fncihnai el multipiexm sobre k ieghtros de n 6its cada uno, para producir un bus comn de n lneas. La
'
s m b f i r 4-3
Transferencia de 4y de memoria
105
S1
s o-
= lbeas +
Buscom6n de cuatro
.
*
3
4x1
-+
0
4X 1
1-1
A2
;.;
D2
C 2
82
Di CI BI A I
LXi 1- ;
4
A2
4X 1
4x1
CO BD AO
DZ Di Do
ttt
3
2 1
c z
CI
ftt
2 1
c o
BZ BI Bo
A i Ao
t t -t.
' 3 2 1 0
3
ttt
2 1 0
O .
Figura 9-3
cantidad de multiplexom que se necesitan para construir el bus es igual a n, l a cantidad de bits en cada registro. E 1 tamafo de cada multiplexw debe ser k X 1 dado que hace funcionar d mdtiplexor sobre k ineas de datos. Por ejemplo, un bus comdn para 8 registros de 16 bits cada uno, necesita 16 muitiplexoms, uno para cada hea en el bus. Cada mdtiplexor debe tener &o neas de entrada de datos y tres heas de selwci6n para hacer funcionar el mdtipIaor sobre un bit significativo en los mho registros.
SO Registro seleccionado
h transferencia de infamacin de un bus dentro de uno de muchos registros de destino se puede lograr al conectar las lineas de bus a las entradas de todos lo registros de dstino y activar e l control de carga del registro de destino particular que- s e ha selecQonado. El enunciado 6imb6lico para una transferencia de bus puede mencianar el bus o su presencia puede estar impicih en el enundada. Cuando se incluye e1 bus en e l enunciado, h transferencia de registros se representa de la siguiente manera:
El cohtenido del registro C se coloca en e l bus, y el contenido del bus se carga en d e t r u RI, al activar su entrada de control de carga. S i sabe que el bus existe .q el sidterna puedg ser conveniente m o s m &lo la. gansfecencia directa.
A partir de este enunciado, el disefiador sabe cuales seildes de control deben activa- para producir la transferencia por el bus.
a"
'mpedancin
acoplador
Canal de bus de tres estados Puede construirse un sistema de bus con compuertas de tres estados en lugar de mtiltiplexoreg. Una compuerta de tres estados es un circuito digftal que exhibe tres estados. Dos de los estados son sefiales equivalentes a los nmeros 1 y O 16gicos, como en una compuerta convencional. El tercero es un estado de alta impednncia. E l estado de alta impedancia acNa como un circuito abierto, lo que significa que la salida est dmnectada y no tiene importancia 16gica. Las compuertas de tres estados pueden realizar cualquier procedimiento ldgica convencional, como una AND o NAND. Sin embergoi b que se usa con mayor k u e n c i a en e l disefio de un sistema de bus es la compuerta de acoplamiento. El,slmbala gdfics de una compuerta de acoplamiento de tres estados se muestra en la figura 44, Se distingue de una de acoplamiento normal porque tiene . w a entrada namd y una entrada de conbL, La entrada de control determina el estado de la salida. Cuando la entrada de control es igual a 1, se habita la salida y la compuerta acta como cualquier acoplador convencionaL donde la salida es igual a la entrada normal. Cuando la entrada de control es O, la salida se deshabilita y la compuerta va a un
Figura 4 4 S n b o l ~ grfiw para un amplador de tres estados.
Entrada normalA
Enhada de control C
107
sistema de
bus
de alta imipdatxia de una compueFta de t w estados pmparciona una caractedstica especial de-.la que no disponh otras compueiitas. Debido a ella, se pueden conectar, medite alambm, una mayor cantidad de salidas de compuerta de tres estados, s i n peligrosos efectos de carga. ta mnstmcci6n de un sistema de bus con acopladores de tres estados se muestra en la figura 4-5. Las salidas de cuatro acopladores s e conectan juntas para fonnar una h a &e bus h k a . (Est tipo de conexin no puede realizarse con compuertas que no tienen salidas de tres estados,) Las entradas de control a los acopladores deteminan cu&lde las cuatro entradas normales se cainunicard con la Unea del bus. En cualquier momento dado no puede estar activo ms de un acciplador. Los acopladores conectados deben controlarse para que slo un acoplador de tres estados tenga acceso a la linea del bus, mientras loe demg se mantienen en estado de alta impedancia. Una manera de asegurar que no est activa ms de una entrada de control en cualquier mommto dado, es mediante el uso de un decdificador corno se muestra en el diagrama. Cuando la entrada habilitada del decodificador B O, todas sus cuatro salidas son O, y la lnea del bus se halia en estado de alta impedancia, porque los cuatro acopladores estn inhabili&dos. Cuando l a lnea habilitada est activa, uno de l o s acopladores de tres estados estar4 activo; dependiendo del valor binario en las entradas de selecci6n de1 decodificador. Una cuidadosa iiivestigacibn revelar6 que la figura 4 5 es otra manera de construir un multiplexor 4 x 1 , porque el circuito puede sustituir el multiplexor en la figura 4-3. Para construir un bu9 comGn para cuatro registros de n bits cada uno, utiiizando acopladores de tres estados, 8necedtams n circuitos con cuatro
Figuta 4-5 Lfnea de bus con acoplado? de tres estados.
Ltnea de bis para al bit O
A0
B o
Do
-'{WjIltar
4w i i
q , mdor 2x4 1 2
.
3
108
C M ~ I L O CUATRO Transferencia de
registro y miuooperaciones
acopladores en cada uno, como se muestra en la figura 4-5. Cada p p de cuatro acopladores recibe un bit si'@cativo de los cuatro registros, cada salida comn produce una de las h a s para e l bus comtn para un total de n lneas. Slo se necesita un decodificadm para s e k i o n a r entre los cuatro
~gistros.
leer memoria
d b i r monta
Esto provoca una transferencia de informacibn dentro de DR, desde la palabra de memoria M seleccionada m e d i t e la direccibn en AR. La operaci6n de escritura transfiere e l contenido de un registro de datw a una palabra de memoria M,seleccionada por la direcci61~ Ahora conside que los datos de enbada esir~en el registro R1 y que la dkmihn est en AR. La operaci6n de escritura puede derlararse en forma simMlica como eigue:
Esto provtiea una transferencia de informaci6n de R1, dentro de la palabra de memoria M seleccionada por la direccin en AR.
4-4
Microoperaciones aritmticas
Una microoperacibn es una operacidn elemental efectuada con 10s datos almacenados en los registros. Las microoperaciones que se encuentran con mayor frecuencia en las computadoras didtales se clasifican en cuatro c a t e
goras:
1 . Micrmperaciones de transferencia de registros que transfieren Mor-' maci6n binaria de un W t r o a otro. 2. Microoperaciones aritmticas que ejhtan operaciones aritmCticas 1 sobre datos num&ricosalmacenados en los registros. 3. Micmperaciones 16gicas que ejecutan operaciones de manipulacibn de bits sobre,datos no numricos ahnacenados en registros. 4 Microoperaciones de corrimiento que ejecutan operaciones de corrimiento sobre los datos almacenados en los registros.
La mimooperacin de transferencia de registros se analiz en la seccin 4-2. Este tipo de m i c ~ a c i 6 n no cambia el contenido de la infomci6n
cuando la infomiacibn b h r i a pasa del registro fuente al registro destino. Los otros tres tipos de micmoperaciones cambian el contenido de la informaci6n durante la transferencia. En esta seccidn presentamos un conjunto de microoperadiones aritmkticas. En las dos siguientes secciones presentamos las microoperaciones l6gicas y de corrimiento. Las micmoperaciones aritmticas bdsicas son suma, resta, incremento, decremento y corrimiento. Los corrimientos arith+ticos se explican m 6 9 tarde junto con la&rnicmperaciones de corrimiento. La microoperaci6n aritmtica definida por el enunciada
especifica una microoperaci6n de suma. Dedara que el contenido del. registro Rl se suma al contenido del registro R2 y que la suma se transfiere al registro R3. Para implantar este- enunciado con hardware n-itamos tres registros y el componente diital que ejecuta la operacibn de suma. Las otras miraciones aritmdticas bAsicas s e listan en la tabla 43. La resta se lleva a cabo con mayor frecuencia, mediante la compIementaci6n y la suma. En lugar de usar el operador menos, podemos especificar la resta mediante el siguiente
enunciado:
R2 es el simbolo para el compIemento a 1 de R2. Sumar 1 al complemento a 1, produce e1 complemento a 2. Sumar el contenido de R1 a l complemento a 2 de R2) es equivalente a R1 - KL Las microoperaciones de incremento y decremento se representan m e diante las operaciones ms-uno y menos-uno, respectivamente. Estas microoperaciones se implantan con un circuito combinacional o con un contador binario descendente. Las operaciones aritm&tkasde multiplicar y dividir, no se Estan en la tabla 43. Estas dos son operaciones aritm4ticas vhlidas, pero no se incluyen en el conjunto bsico de rnicmperaciones. El nico lugar donde estas operaciones pueden considerarse como hicrooperaciones ea en un sistema
Descripcibn
El antMdo de 21 m t s R2 transferido a R3 El contenido de R l menm R2 transferido a 83. Camplemmard contenido de R2 (complemento a 1) Complementar n 9.d emic?nidode R2 (negar) RI ms el complemento a 2 de R2 (resta) Imcmentar el eonienido de R1 en uno Dcmmaniar d contenido.de Rl en uno
' ..
figital, donde se ejsutan pediante un circuito ~mbinatorio. En tal caso, las *=,que realizan estas operaciones se propagan por las compuertas y e l resultado de h operacibn se transferir a un registro destino mediante un pulso de reloj, tan pronto. camo k semal de salida se propaga por el circuito combinatsrio. En :la, mayora de Ias computadoras, la operaci6n de multipliea$n se efectqa con una secumcia de microoperaciones de suma y de conimiento. L a dichibn se ejeqta .con secuencia de miemperaciones de resta y de corrin+nto. Para ~pec2icarel hardware en un caso as, se necesita una lista de enunciados que utilicen las microoperaciones bdsicas de suma, reiita y corrimiento (vCase el capfhilo 1 0 ) .
Sumador b-o
Para efectuar 'la microperaci&n de suma con hardware, necesitamos los regisbrw que contengqn loi datos y el componente diqital que efecte la si-&a ari'h&ticA. El c+Uito Gital que forma la suma aritmbtica de dos bits y un acarreo' previo se 1 1 sumador completo (vbase la figura 1-17). El Cireuito digital que genera la suma aribnetica de d& niimeros binarios de cualquier longitud w h a sumador binario. B sumador binario se construye con circuitos sumadoy completos conectados en cascada, con el acarreo de salida de un gumador compIeto conectado aI acarreo de entrada del sipiente sumador completo. La figura 4-6 muestra la interconexi6n de cuatro sumadores compl&os o FA por sus siglas n ingls para proporcionar uri sumador binario de cuatro bits. L a s bits sumandos de A y los bits sumandas de B se den&can mediante niimeros suscritos de derecha a izquierda, co'n gl O suscrito denotanao el bit de menor orden. Los acarreos &tn mrectados en una cadena que fecorre los sumadores completos. El acarreo de entrada al sumador biharb es Cpy el acarreo de salida es Ca. Las salidas S de los sumadores completos, los bits de suma requeridw. " Un suma* biqasio de n bib necesita n sumadores completos. E31 acarreo de salida d@e -da sumador ,wmple.toest conectado al acarreo de entrada del siguknte sumadur completo de nivel superior. Los n bits de
m a d o r binrrario
.
suniador chplefo
,
-
(po~ ejemp10 Rl), y los n bib de datos para las B entradas provienen de broregistro (por ejemplo R2). ia suma pude transferirse a un tercer Wistro o a alguno de los registros fuente (R1 o R2), sustituyendo su coiiknido previo.
datos para h s entradas A provienen (de,un registro
Sumador sustractor binario La resta de nmeros bhanos +puederealizarse en forma m6s conveniente por
medio de mmp1ementos, s e g h se anaiiib en la swri6n 3-2.Recuerde que la resta A - B puede realizarse al tdmar el complemento a 2 de B y sumarlo a A. El complemento a 2 puede obtenerse al tomar el ct>mptementoa 1 9 agregar 1 al par de bits menos significativo. E 1 complemento a 1 se puede obtener con invemres y se puede agregar 1 a la suma mediante el acarreo de entrada. Las operaciones de suma y resta se pueden combinar en un circuito corrifin al incluir una compuerta OR exclusiva con cada sumador completo. Un circuito amador sustractor de 4 bits se mueitra en la figura 47. La entrada de modo controla la operacin. Cuando M = O e1 circuito es un
Figura 4-7
Sumador surttractor de 4 bite.
A2
swmadw -tMctor
Bt
A3
Bz
81
AI
C A P -
sumador y cuando M = 1 el circuito se convierte en un sustractor. Cada compuerta OR exclusiva recibe una entrada M y una de las entradas de B. Cuari'do M = O, tenemos B @ = B. Las sumadores completos r e c M el valor de B, el acarreo de entrada es O y e l circuito ejecuta A mAs B. Cuando . Todas las entradas B s e compleM = 1, tenemos B @ 1 = B ' y C, = 1 mentan y se suma un 1 mediante el acarreo de entrada. El circuito ejecuta la operacin A m8s el complemento a 2 de 0. Para ndmeros sin signo esto da A - B si A r B o el complemento a 2 (B - A) si A < B. Para nmeros con signo el resultado es A - E, siempre y cuando no exista sobreflujo.
Incrementador binario
inerementadm
un registro en particular. Esto puede Iograrse mediante semisumadores (vhse la figura 1-16)conectados en cascada. En la figura 4-8 se muestra el diagrama de un incrementador de circuito combinacionaI de 4 bits. Una de las entradas al semisumador, HA por sus siglas en inglh, menos significativo, est conectada al I 16gico y la otra entrada esta conectada al bit menos significativo del nmero que se va a incrementar. El acarreo de salida de un semisumador estb conectado a una de las entradas del semisumador del siguiente orden ms alto. E l circuito recibe los cuatro bits de A. a A, les agrega 1 y genera la salida iricrementada en So a S3 El acarreo de salida C4 ser s610 1 despus de incrementar el n h e r o binario 1111. b i o tambin hace que !as salidas de So a S3 vayan a O.
Figu-ra4-8 Imrernentador binario de 8 bits.
A 2
Al
El circuito del diagrama 4 8 puede ampliarse a un incrernentador binario de n bits, al extender el diagrama para que incluya n sernisumadores. E l
bit ,menos signifkativo debe tener una entrada conectada a1 1 16gicu. Las otras entradas reciben el nmero que se va a incrementar por acarreo de l a etapa anterior.
Circuito aritmtico
circuito adtmdtico
acarreo de entrada
Las microop;eracionesaritmkticas listadas en la tabla 4 3 pueden implantarse en un circuito aritmbtico compuesto. E l componente bAsico de un circuito aritmtico es el sumador paralelo. Al controlar las entradas de datos al sumador, es posible obtener diferentes tipos de operaciones aritmgticas. El diagrama de un circuito aritmtico de 4 bits se muestra en la figura 4 9 .Tiene cuatro circuitos sumadores completos que constituyen el sumador de 4 bits y cuatro multipIexores para elegir diferentes operaciones. Existen dos entradas de cuatro bits A y B y una salida de cuatro bits D.Las cuatro entradas de A van directamente a las entradas X del sumador binario. Cada una de las cuatro entradas de B est conectada a las entradas de datos de los multiplexores. Las entradas de datos de los multiplexores tambign reciben e l complemento de B . Las otras dos qntradas de datos estAn conectadas al O 16gico y al 1 Igico. E l O 16gico es un valor de voltaje f i j o (O volts para circuitos integrados, TI'L) y la seal del 1 16gicw puede generarse a travs de un inversor cuya entrada sea 0. Los cuatro muItiplexores se controlan mediante dos entradas de selecci6n SIy So, E l acarreo de entrada Cm va al acarreo de entrada del FA en la posicin menos significativa. Los otros acarreos se conectan de una etapa a la siguiente. La salida del sumador binario se calcula en la siguiente suma a r i h &
tia
Entrada
Salida . D=A+Y+C,
-
Siimar Sumar con acarreo k t a r con pr&tnmo Restar Transferir A Incremcntnr A Dcxrcmentar A Transfmir A
S14
M P f i U D CUATRO
Figura #
Circuitoaritmgtim de 4 b i b .
suma
resta
immentar
deerementar
donde A es e l nmero binario de 4 bits en las entradas X y Y es el nmero binario de 4 bits en k s entradas Y del sumador binario. Cm es el acarreo de entrada, e l cual puede ser igual a O O 1. Ntese que el smbolo + en la ecuaci6n anterior -menta un ms gritmktico. Al controlar el valor de Y . con las dos entradas de selecci6rt SIy So y hacer a , C i y a l a O o 1, es posible generar las oeho mlcrooperaciones arihticas que se lrstan en la tabla 4-4. Cuando SISO= 00,e l valor de B se aplica a las entradas Y del sumador. Si Cm= O, Ia d i d a D = A + B. $i Cm = 1 , la salida D = A + B + 1 . Ambm casos ejecutan la microoperacibn de suma con o sin el acarreo de entrada. &ando Si$ = 0 1 ,d ciompl-to B x aplica a ias mtraas Y del sumador. Si Cm = 1 , entonces D = A + B + 1. &to prduce A + el complemento a 2 de B, l o c g l es equivalente a una resta de A - B. Cuando Cm = O, entonces D = A 4- B. Esto ea +valente a una rwta con petarno, ecto es, A - B - 1. Cuando SISO= 10, las entradas de B ya no se toman en cuenta, y en . su.lugar todos los grupos de O se h s e q t a n en las entradas Y. La salida se ~0nvi~enD=A+O+C,ktodaD=Acuand0C,=OyD=A+1 cuando C, = 1, En e l primer caso tenemas una transferencia directa de la entrada A a la salida D.E n el segundo caso el valor de A, se incmnenta en 1 . Cuando SISO= 11, todos los grupos de 1 e insertan en las entradas Y del sunaador para produe la operaci6n de decremento D = A - 1 cuando Cm = O. Esto es porque un numero con s61o digitas 1 es igual al complemento a 2 de 1 (el complemento a 2 del biiiario E001 es 1111). Sumar un niimiero A al complemento a 2 de 1 produce F = A -t. complemento a 2 de 1 = A - 1. Cuando Cm = 1 , entonces D = A - 1 +' 1 = A, l o mal p d u c e una transfemck directa de la entrada A a la salida D. Nbtese que l a microopracin D = A se genera dos veces, porque d o hay siete rnicrooperacioes disthbs en el circuito aritmtico.
& &
"-
1100 O110
1010
E i contenido de R1, despuds de la ejecucin de la microoperaci6n, es igual a la operacidn OR-exclusiva bit a bit sobre pares de bits en R2 y valores
previos de R1. Las micrmperacion~I6gicas se usan rara vez en chputos cienWieos, pero son muy iitiles para manipulacibn de bits de datos binanos y para tbmar decisiones 16gicas. Se adoptarn simbolos especiales para las micrqeraciones 16gicas.OR, AND y complementar, para diferenciarlas de l a smbolos correspondientes que se utilizan para expresar funciones bmleanas. Se usar e l smbolo v para denotar una rnicrooperaci6n OR y el shbolo A para denotar una micrmperaci-6n AND. L a miaooperacf6n complementar es k i misma que el complemento a 1 y utiliza una barra en la parte superior del slmbolo que defibta el nombre del registro. Al usar smbolos diferentes, ser posible diferenciar una operaci6n lgica y una funri6n de control (o booleana). Otra tazn para adoptar dos conjuntos de smbolos es la posibilidad de distinguir el slmbolo + , cuando se usa para r e p m t a r un mAs aritmbtico, de una y a c i 6 n OR l&gka.Aunque el smbolo 4- tiene dos si@hdoB, pibk disth@los al identifirar dbnde murre el sfmbo10. Cuando a p a m a en una mhmpaci6n signifiar un d e a r i t d i c o . Cuando duma en una funcih de control (o booleana)i denoM una operaci6n OR Nunca la usaremos paca repmtar una miampmaci6n OR Por ejemplo, en el enunciado
e l snitalo + entre P y Q es una operaci6n OR entre dos variables binarias de una funcibn de control. El smbolo entre R2 y R 3 especifica una microoperacin de suma. La miaoopexacin OR estd representada por ei
sfmbolos especiales
Lista de daooperaciones 16gcas Existen 16 operaciones 16gkas diferentes que pueden ejecutarse con dos variables bharhs. Pueden dekrminatise de addas las tablas de verdad p i TABLA 4-5 Tablas de v d a d para las 16 funciones de dos variables
bles que se obtienen c m dos variables binarias segn se muestra en i a tabla 4-5.En esta tabla, cada una de las 16 columnas que van de la F, a la F15 representa una tabla de verdad de una funcin booleana posible para las dos variables x y y. N6tese que las funciones estn determinadas a partir de las 16 combinaciones binarias que pueden asignarse a F. ias 16 funciones booIeanas de dos variables x y y w expresan en forma abebraica en la primera columna de la tabla 4-6. Las 16 microoperaciones 16gicas se derivan de estas funciones al sustituir la variable x por el contenido binario del registro A y la variable y por el contenido binario del registro B. Es importante comprender que las Funciones bmleanas listadas en la primera columna de la tabla 4-6 representan una reiaci6n entre dos variables binarias x y y. ias microoperaciones ldgicas listadas en la segunda columna representan una relaci6n entre el contenido binario de dos registros A y B. Cada bit del +tro s e trata como una variable b i r i a y la microoperacidn se ejecuta en Ia serie de bits almacenados en el registro.
implantacidn de hardware
L a implantacibn de microoperaciones 16gicas por medio de hardware requier e que se inserten compuertas lbgicas para cada bit o par de bits en el registro para ejecutar las funciones 16gicas requeridas. Aunque existen 16 microoperaciones lhgicas, la mayoria de ,ias computadoras utiiizan 6610 cuatro, AND, OR,XOR (OR-exclusiva) y complementar, de las cuafes se pueden derivar d a s las dern6s.
TABLA 4-6 IX~CMI? mkwperaciones 16gicas
Funci6n boolmna
Microopacin
Nombre
Limpiar
FO = O Fa = xu K =XY'
F a =x
Fe0
F+AAB
AND
'
F+AAB F+A
F, = X ' Y
&=Y Fb=x$y F,=x+y
F+XAB
FtB
F+A@B F+AvB
TrnsfmirA
Transferir B
OR exclusiva
F& = (X
+ y)'
F+A NOR
F +AFtB
NOR exclusiva
Complementar B
OR
FS = {x @y)'
Fa =y' F*r x + Y' FU = x'
E
F U = X ' + ~
F ~ A F-XVB
F 4 - m
Fttodos
F ~ A V F
Complementar A
N Establk t d o s a dgitos 1
dlgitos 1
T m
C U A ~ Tm&mda
de registra y mimperaciom
S 1
S o
O
m
Salida
&=AA3
Operaclbn
- Ei
O O
AND
OR
XOR
E=AvB
E=A@B
1
1
E=A
Complemento
b) Tabla de funcin
a) Diagrama lbgiro
Figura M V
Una etapa
un dmiito,l6gico,
c i m i ' t aI @ o
La figura 4-10 muestra una etapa de un circuito que genera las cuatro microoperaciones 16gicas bsica8 E s t fofrriado de cuatro compuertas y un
multiplemr. Cada una de las mafm operaciones lgicas se genera por una compuerta que ejecuta la 'lbgica q d e r l d a . Las salidas de las compuertas s e aplican a las entradas de datos del multiplexor. Las dos entradas de seleccibn SI y So seleccionan una de las entradas de datos del multiplexor y dirigen su valor a la salida. El diagrama muestra una etapa tpica con subindices i. -Para un circuito lgico con pt bits, el diagrama debe repetirse n veces donde i =: 0,1,2 ...,n - 1. tas variables de selecci6n se aplican a todas las etapas. La tabk de funcibn en Ia figura 41O(b) lista 4s rnicrmperaciones lgicas que se obtienen para cada mmbinaci6n de las variables de aeIeccidn,
Algunas aplicaciones
Las micmperaciones 16gkas son muy tiles para manipular bits individuales con una parte de una palabra almacenada en un registro, Pueden usarse para cambiar valores de bit, borrar un grupo de bits, o insertar nuevos valores de bits en un'registro. Los siguientes ejemplos muestran c6mo se manipulan los bits de un registro {representado por A) mediante rnimoop raciones 16gicas como una funcibn de los bits de otro registro (representados por B). En una aplicacibn tipica, el registro en A es un registro de un pmwdor y los bits del registro B constituyen un operando lgico extrado de la memoria y colocado en el registro B. La operaci6n & inicio selecb'w lleva a 1 lm bits del registro A donde hay uno^' mr&pdiaiks en d mgistm B. E s t o no afecia a las pasidone. de bit que tienen O en B. El siguiente qemplo numrico hace m6s clara esta opacibn:
inicio selectivo
1100 1110
1010
compiemento
selectivo
Lns dos bits de B del extremo izquierdo w n unos, por lo tanto los bits correspondientes de A se llevan a 1. Uno de estos dos bits ya estaba en 1 y el otro se cambi6 de O a 1. b s dos bits de A con sus ceros correspondientes en B permanexn sin alteraciones. El ejemplo anterior siwe como una tabla de verdad porque tiene las cuatro combinacion~s posibles de dos variables b m a r i a s . A pariir de la tabla de v e e d notarnos que los biis de A despus de la operacih se obtienen de la operacibn OR 16gica de los bits en B y de los valores anteriores en A. Por l o tanto, la microoperacibn OR puede para lievar a 1 o iniciar los biis de un registro de manera selectiva. La operacin de wmplemenlo selebtivo afmta a los biks en A donde estn los unos mrsespondientes en B. No afecta las posiciones de bits que tienen ' O en B. Por ejemplo:
1010
E
O110
A antes B (operando.lgico)
A despds
limpieza selectiva
Asimismo, .los dos bits del extremo de B son unos, con lo cual se complementan los bits correspondientes de A. Este ejemplo puede servir tambin corno tabla de verdad de la mal se puede deducir que la operacin de complemento selectivo es simplemente una micruoperacibn exclusiva-OR En consecuencia, la micmperacibn exclusiva-OR se puede utilizar para complementar selectivamente los bits de un registrador. IA operacihn l i m p i a selecfiw (selectiw-cfeur) despeja a O los bits en A 6610 donde b y a unos correspondientes en B. Por ejemplo:
1010
0010
Nuwamente, los dos bits de la extrema izquierda de 3 son unos, por l o que los bits correspondientes de A se borran hcia 0. Uno puede deducir que la operacin booleana ejecutada en los bits individuales es AB'. La r n i c m p raci6n 16giea correspondiente es
La operari6n mtrnas~~arar es ssimar a l a aperacidn de limpieza selectiva, excepto que h s bits de A se borran slo hay O correspondientes en
120
CAP~IULO CUATRO
T m f e m i a de registro y microoperaciones
B. La operacin enmascarar es una microoperaci6n AND, como se aprecia en el siguiente ejemplo num4rko:
Los dos bits de A del extremo derecho se barran despus de que los bits correcpondienks de B son 0. Los dos bits de la extrema izquierda pemaneeeh halteradas porque los bits conkspondienfes de B son unos, La operacin enmascarar es rn&'&nveniente para u s a que la operacibn de limpieza selectiva porqiie la mayoria de las computadoras proporcionan una instrueci6n AND, y pbcas proporcionan una instrucci6n que ejecute la miaooperacl6n para limpieza selectiva. La operacidn insertar introduce un nuevo valor en un grupo de bits. Esto se realiza al enmascarar primero los bits y desputs aplica una h t k c cin OR sobre ellos con el valor requerido. Por ejemplo, supongamos que un registro A contiene mho bits, O110 1010. Para sustituir los cuatro bits del extremo izquierdo por el valor 1001 primero enmascaramos los cuatro bits que no deseamos:
O110 1010 0000 1111 0000 1010
La operacihn enmascarar es una microoperacidn AND y la operaci6n insertar es una micrwperaci6n OR La operaci611 limpiar compara las palabras en A y B y produce un resultado de slo dlgitos O si los dos nmeros s m iguales. La operaci6n se realiza rnyante una microoperacidn OR exclusiva segn se muestra en el siguiente ejemplo:
Cwnda A y B son @S, 1- dos bits corrqmndienb son ambos O o a m b 1. & cudyk caso la operacin QR exclusiva p d u c e un O. Despub se verifica el mdhdo de todo$ O para detennhar s i los dos n5meros eran iguales.
4-6
Microoperacibnes de corrimiento
comrrimiento ldglco
ia~ microoperaciones de corrimiento se usan para la transferencia serial de datos. Tambin se utilizan junto con operaciones aritmgticas, 16gicas y de procesamiento de datos. El contenido de un registro puede correrse a la izquierda o a la derecha. Al mismo tiempo que se recorren los bits, el primer flip-flop recibe su informaci6n binaria &e la entrada serial. Durante una operacin de corrimiento a fa izquierda la entrada serial recorre un bit a la posici6n de l a extrema derecha. Durante una operacidn de corrimiento a la d e r h la entrada serial transfiere un bit a 'la posid611de Ia extrema izquierda. la infomci6n transferida mediante la entrada serial determina el tipo de corrimiento. Existen tres tipos de &entos: 16gic0, circular y arihdtim. Un corrimiento 16gico es aquel que transfiere un O por la entrada serial. Adoptaremos los smbolos por sus sigIas en inglks, shl y shr para las microoperaciones de corrimiento 16gico a la izquierda y corrimiento lgico a la derecha. Par qjemplo: Rf t s h l R1 RZ+shr R2
son dos operaciones que especifican un corrimiento de un bit a la izquierda del contenido del registro Rl y un corrimiento de un bit a i a derecha del contenido del registro R2. El smbolo de registro debe ser igual en ambos lados de la flecha. El bit transferido a la posicin extrema por la entrada serial se considera que es O durante un corrimiento 16gico. El corrimiento circular (tambih conocido como operaci6n de rotacidn) hace circular los bits del registro por los dos extremos s i n prdida de infonnacidn. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada mial. U t d h m o s los smhlce di y cir para el corrimiento circular a la izquierda y para el corrimiento circular a la deredia, respectivamente. La notaci6n simblica para las mimperaciones de corrimiento se muestra en la tabla 4-7.
TABLA 4-7 Miaooperaciones de desplazamiento
codmiento
citrular
Rcprclsentt.aci6nsimb6lica
Descripcibn
Corrimiento a la izquierda del registro R Corrimiento a i a derecha del registro R Conimiento circular a la izquierda del registro R Comimiento cimilar a la derecha del registro R Corrimiento aritmktico a la izquierda de R Corrimiento aritmUico a la derecha de R
ci#hJW W T R O
T r a n s f e d a de registro y m i c r o o p e r a ~
codmiento
aritmtico
Un co~rqirnienta m$tdtico p u q micrqqxracibn que recorre un n h e r o binarh con signo a la d e h a o a la izquierda. Un corrimiento aritmtico a la izquierda multiplica uri ndmero binario con signo por 2 Un corrimiento arihdtico a l a derecha divide el nmero entre 2. Las corrimientos aritm&ticos deben dejar el bit del s i p sin modifmciones porque el signo del nmero sigue siendo e l & 6 m cuando se multiplica o divide por 2. El bit de la extrema izquierda en al W t t o contime 4 bit de signo y los bits retantes contienen el nmero. E31 bit de signo es O para Iws nmeros positivos y 1 para los negativos.,b s ni'imens ne~ativos estirt en su forma de complemento a 2. i~ @ m 4-11 muestra un registro tlpiw de n bik E i bit R,, -I de la p k % ne x mntiene el bit de signo. R,, es el bit maS si@ afivo del n h m y 4 ea e l bit menos sip%eakiva. Ei corrimiento aritmtico a fa derecha no m&ca d signo y recorre el n h m {incluyendo el bit de signo) al a derecha. Por b tante Ri-2 queda igual, &, &be el bit de R,,-,y as suceivarmente para las otms bits en e1 re@m E i bit en & se pierde. El corrimiento arihnktico a la iquierda inserta un O en Ro y recorre todos los otros bits a la izquierda. El bit inicial & -l se pierde y se sustituye con el bit de R, , E 1 signo se invierte si el bit en R, - cambia su valor despus del c~rrimiento. Esto sucede s i la multiplicaci6n por 2 provoca un sobreflujo. Ocurre un sobreflujo despus de un corrimiento aritmktico a la izquierda si, al %do, antes del corrimiento, R, -1 no es igual a R, -2 Puede usasse un ftipfiop V, de sobreflujo para detectar un sobreflujo en un corrimiento a la izquierda arihtica,
~~
, ,
Si V, = O, no hay sobreflyjo, pero si V, = 1, hay un sobrefiujo y una inversibn de signo despuh del corrimiento. V, debe transferirse dentro del flip-fi~p de sobreflujo con e! mismo pulso de reloj que ejecuta el corrimiento del registro.
1-
R "~ -2
R 1
Ro
Bit de signo
cimrito de
corrimimto
el corrimiento. En una unidad procesadora con muchos registros es ms eficiente impl@ar la operaqihn.de cmimiento un circuito combinacionaL D e &a mnera el c o n w d o de un mgbtm el que tiene que ejecutar el mmmiento se colma primepa en un b w comn cuya>salida esti5 conectada al circuito & corrimiento ~ombinatoqioy despus el nmero can el corrimiento se carga otra vez en sl. mgifitro. Esto necesita &lo un pulso de reloj para cargar el valor con corrimiento dentro de un registro. Puede construirse un circuito combinatorio para corrimiento con multip1mxa e n ,sic muestra:enk figura. 4-U, El circufto de 4 bits tiene cuakro , entradas de datos, de A. a As y cuatro saiidas de datos, de H,, a H3. Hay dos entradas serides, unatrpara el corrimiento a la izquierda (iL ) y la otra para elLcrgmhimtoa la , d m h a '@d. Cuando la en*ada de selemi611es S = O, las datas de enbada se desplazan a la demha (abajo en el diagrama).
S
I
O I
MLX
A0
-4 1
A1
3
Q :
MUX
A2--A3
-ffs
I I
Tabla de funci6n
Seleccionar
..
Salida H o
Hi Ao
A2
-1
Hz
H3
.
S O MIJx
IR
Al
AI
A3
A2
-S
\
kr-
-H2
i
IL
' -
..
H3
Entrada
/ serial (lb)
124
C U A ~ Transferencia
de registro y mi-peraciori~
Cuando S = 1 , los datos de entrada se desplazan a la izquierda (arriba en el d3agrama). La tabla de h c i 6 n en la figura 4-12 muestra cuAl entrada va a cada salida despugs del corrimiento. Un circuito por corrimiento con n entradas de datos .y salidas necesita n rnulfiplexores. Las dos entradas seriales pukden controlase mediante otro multiplexor para proporcionar los tres tipm de desplazamiwto posibles.
4-7
En lugar de tener registros individuales ejecutando Ias microaperaciones en forma directa, los sis,tem computacionales emplean cierta cantidad de = gisiros de almacenamiento conectados a todas las unidades operacionales
comunes, la cual se denomina unidad arihn4tica-l6gica, y se abrevia ALU
F:igura 4-U Una etapa de la unidad de corrimiento aritrdtica-16gica.
S3
shl
125
'
(arifhrnefic logie unit). Para ejecutar una micmoperaci6n, el contenido de 10s qistm especificados se colma en ]mhs enbdas de la ALU m hLa ALU ejecuta una operaci6n y el resulbdo se transfiere d .registro destino. La ALU es un circuito combinabrio, por lb que toda Ia operacin de transferencia de regisdesde los fuente por la ALU y hasta dentro del registro destino, puede ejecutarse durante un .perodo de un pulso de reloJ. Las mi,crqmaciones de c o ~ m t con o frecuencia se ejmtan en una unidad separada, pera en ocasiones h unidad de corriwenta forma parte de Ia ALU general. tos circuitos aritmticos, 16gicos y de corrimiento que se presentaron en las secciones anteriow pueden combinarse en una ALU con variables de selecci6n comunes. Una etapa de una unidad de corrimiento aritmti-lbgico se muestra en la figura 4-13. E l subhdice i repmenta una etapa tlpica. Las entradas Al y BI se aplican a las unidades aritmkticas y lgicas. Se selecciona una micrwperacibn parkicular con las entradas S, y So, Un muItiplexor 4 X 1 en la salida selecciona entre una salida aritmbtiea Eiy una salida 16gica en Hi. Los datos en el multiplexor s e seleccionan con entradas S, y S, Las otras dos entradas de datos d multiplexor Feciben entradas Ai,* para la operacin de corruniento a la derecha y Al, para la operacin de corrimiento a la izquierda. N6kse que el diagrama muestra s61o una etapa tlpica. El circuito de la figura 4-13 debe repetirse n veces para una ALU de n bits. El a c a m de salida Ci,l de una etapa aribnbtica dada debe .conectarse al acarreo de entrada Ci de l a siguiente etapa en secuencia. El acarreo de entrada a la primera etapa es el acarreo de entrada C , el cual proporciona una variable de ~Ieceihn para las operaciones aritm&ticas.
~~
TABLA 4-8 Tabla de fur1ci6n para una unidad de mrrimiento Igica aritmdtica
Selecci6n de la operacin
0 O O O O O O O O O
0 O O O
O
0 O O O
0 O
1 1
O O 1
1
1
O O O 1
1
1 1 O 1
O
O
1 1 O O 1
1
O
1
O
1
X X
1 1
1 x x
O F = A Transferir A 1 F=A+l Incrementar A O F=A+B Sumar 1 F=A+B+lSumarconacarreo O F =A + Restarconmtamo 1 F=A+B+lRestar O F=A-1 h m e n t a rA 1 F=A Transferir A x F=AAB AND x F=AVB OR X . F=A@B XOR x F=A Complementar A x F=shrA Conhiento a la derecha A den& de F x F=sbiA C d m k n b a la izquierdoA dentro de F
126
cAPtnno CUATRO
El circuito cuya iuiica etapa est6 especificada en la figura 4-13 proporciona ocho opwaciones aritmhticas, cuatro operaciones 36gicas, y dos operaciones de despbmiento. Cada operacin se selecciona con las cinco variables S, S* S, So.y Cm E l acarreo de entrada Cmse utiliza para seleccionar slo una aperaci6n aritmtica. La tabla 4-8lista las 14 operaciones de la ALU. Las primeras mho son operaciones aritmtiras (v6ase tabla 4)y se seleccionan con SS2= OQ. ias siguientes cuatro son operaciones ldgicas (vase figura 410) y se seleccionan con S3Sz = 0 1 .E 1 acarreo de entrada no a k t a durante las operaciones 16gicas y se marca con letras X que representan ' ' n o importa" Las dos altimas son operaciones de corrimiento y se selecciomztci con S3SI = 10 y 11. Las otras tres entradas de sekcibn no afectan al corrimiento.
&l.
Muestre el diagrama de blque del h a r d w a ~ (similar a la figura 4-2a) que Implsrnta.elsiguiente mmciabo de bansfeeticia demgisim:
2 .
RO,R1,R2 y R3,es,& conectadas mediante multiplex<res de 4 a 1 lneas a las entiadag de un quinto registro, R5. cada r e g i h tiene um'lon@hidde ocho bits: las transferencias requeridas sbn dietadbs p r hahm Vardblizs de demprizaa6n Toa Tgde l a manera siguiente
4 3 .
Las variables de temporizacin san mutuamente exclusivas, lo que sipifia que &lo una variable es.igual a 1en cualquiermomento.dado,rnienbas que las otras km son iguales a O. Dibuje un diagrama de bloque que muestre la implantaci6n de hrdware de las tra~fcrencias de registros. incluya las d o n e s necesarias de las cuatro variablesde temporizaci6n a ias entradas de selecci6n de los rnultiplexores y a la entrada de carga del registro R5. Represente el siguiente enunciado de control condicional por medio de dos enunciados de transferencia de registros con funciones de control.
*- R2)adems si
(Q=
qu tiene que hacerse al sistema de bus de la figura 4-3 para que pueda trsinsferir inbmaci5n de un registro a cualquier otro?En forma especfica, muestre las c o ~ o n e que s deben induirse para proporcionar una t r a a de las salidas del regisb C a las-entradasdel registro A.
4-5.
44.
Dibuje un diagrama de sistema de bus similar al que se muestra en la figura 4-5, y utilice acopladores de tres estados y un d d f i c a d o r en lugar de los multiplexores. Una computadora digitai tiene un sistema de bus comn para 1 6 registros de 32bits cada uno. E l bus est construido con multiplexores. a. iCuntas entradas de selecci6n hay en cada multiplexor? b. ~ Q u k tamafio de multiplexores se necesita? c Cuntosmultiplexores hay en el bus?
Los siguientes enunciados de transferencia especifican una memoria. Explique la operad6n de memoria en cada caso. a. R 2 t M [ A R ] b. MIAR] +R3 c. R5 t M [ R S j Dibuje el diagrama de bloque de hardware que implanta los siguienb
enunciadas:
4-7.
4-8.
donde AR y BR son dos registros de n bits y X, y, y z son variables de control. Incluya las compuertas ldgicas para la funci6n de control. [Recuerde que ei sfmbola +representa una operacidn O R en una funci6n de control o booleana perosepresenta un mas aritmCtim en una microoperacin.)
4-9.
Muestre el hardware que implqnQ el siguiente enunciado.Inciuya las compuertas 16gi~s para la W i b n de control y un diagrama de bloque para e l contador binario coq una entrada de habilitaeibn de cuenta.
4 1 0 ,
Considere los siguientes enunciados de transferencia de registros para dos registros de 4 bib RI y R2.
Cada v a que la vaiable T = 1 , el contenido de M se agrega al contenido RI si x = 1, o el contenido R2 se transfiere a Rl s i x = O. Dibuje un diagrama
4-11.
que muestre la implantad6n de hardware de los dos enunciados. Utilice diagramas de bloque para los dos registros de 4 bits, un sumador de 4 bits, y un multiplator cuidruple de 2 a 1 lneas que seleccione las entradas a R l . En el diagrama, muestre cmo las variables de control x y T deccionan ,las entradas del multiplexor y la entrada de carga del registro R1. Utilizando un contador de 4 bits con carga paralela como el de la figura 2-11 y un sumador de 4bits m o el de la figura dibuje un diagrama de bloque que muestre cmo implantar los siguiente enunciad=
micmoperaciones
X:
x'y:
A1 + R l + A2 'Suma RZ a R l X l c R I +. 1 Incremmte R l
4-12.
El circuito curnador-sustractor d e > hfigura 4-7 tiene los siguientes valores para el modo de entrada M y las entradas de datos A y B. En cada caso, determinelos valores de las salidas: S, ,S , S,, S , y C,.
4-13 414
Diseie un circuito combinatmio de 4 bits que decremente, utilizando cuatro circuitos sumadores completas.
4-15.
Considere que e l circuito aritrnktim, de 4 bits de Ia figura 4 9 ect8 en un emapsuiado Q. Mussbe las ronexiorres entre dos CI tales para formar un circuito ariimitico de 8 bits, Dke'ie un circuito aritmhtico con una variabIe de seIecci6n S y dos entradas de d a 6 de n bib A y B. E 1 circuito genera las cuatro operaciom aritm6tim ~igtienles junto con el acireo de entra-daC, Dibuje e l diagrama 16gico para b dw primeras ehpas.
O
1
D =A D =A
- 1(dmentar)
+ B (sumar)
416,
4-37.
&ve
4 1 8 ,
.uncircuito combinacional que seleccione y genere cualquiera de las 16 funciones lbgicas que se listan en la tabla 4-5. m un circuito digitai que realid las cuatro operaciones igicas de OR exclusiva, NOX exclusiva, NOR y NAND. Utilice d a variables de seIeaci6n. Muestre el diagrama lgico de una etapa tipica. E l registro A contiene e l binario de 8 bits 11011001.Determine el operando B 'y la microopwacibn IIgiea que se va a ejecutar para cambiar el valor enA a: a. tll1OllOl b . 11111101
&i9.
Referencias
129
Determine los vdores de 8 bits en cada registro despuks de la ejecucin de la siguiente semencia de microoperaciones.
AR+AR
+ BR
+1
4Zl.
rl-22.
423.
Un registro de 8 bits contiene el valor binario 10011100. Cul es el valor del registro despus de un corrimienta aritmgtico a la derecha? Comenzando can e l nmero inicial 10011100,determine el valor del registro despud de un corrimiento aritm&tieo a la izquierda, y dete& si existe un sobreflujo. Comenzando de un valor de R = 11011101, determine la secuencia de valores binarios en R despub de un corrimiento lbgico a la izquierda seguido de un corrimiento circular a la derecha y a continuacion un corrimiento lbgico de la derecha y un corrimiento circular a la izquierda. CuM H el valor de la salida H en la figura 412 si l a entrada A es 1001,S = 1,IR=1,eIL=O? tQu6 error contienen los siguientes enunciados de transferencia de registros7
1984.
3. Haya, J. F . , Compiiter Architecture attd Orgunhtion, 2a Ed. Nueva Yark: MeGrawHiU, 1988. 4 l-iiil,F. J., y G.R Pekrwn, Digitrrl Spkns: Hardmre OrganUathm and Design, 3a. Ed. Nuwa York: John W i , 1 9 8 7 . 5 . Mano, M.M,Computer E q i m r i n g : htnrduwre D e s i p . nglewood Cliffs, Ptentice Hall, 1988. 6. Patterson, D. A,, y J. L.Hennessy,CmnputerArchiQcture: A Quantitative Appn>ach. San M a b , CA: Morgan Kaufmann Publishers, 1990.
7 . koasw, F. P., y D .E. Winkcl, The Art oJDigitnl Design, 2a M. EngIewod Cliffs, N: Prefite Hall, 1987. 8. Sandige, R . C., Modern Digital Desip. Nueva York: Maraw-HiU, 1990. 9. Shiva, S. G . ,Cwnputer Design m d Archikture, 2a Ed. Nueva York: HarperCollins
Publishers. 1991. 10. Tomek, 1, rjtfrodflction lo Computer Organiuitim. Rockville, M I 2 Computer Science P r s , 1981. 1 1 . Wad, S .A,, y R.H. Halstead, Jr., Computatbn Structures.Cambridge,MA:MiT h , 1990.
EN ESTE CAP~TULO
5-1
--
5-2
5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10
J Wb Cdigos de instruccin Registros de computadora Instrucciones de computadora Temporizacin y control Ciclo de instruccin Instrucciones de referencia a memoria Entrada-salida e interrupcin Descripcin completa de una computadora Diseo de una computadora bsica Diseo de un acumulador lgico
5-1
Cdigos de instruccin
En este captulo presentamos una computadora bsica y mostramos cmo puede especificarse su operacin con enunciados de transferencia de registros. La organizacin de la computadora se define mediante sus registros internos, la estructura de temporizacin y control, y el conjunto de instrucciones que utiliza. Despus se lleva a cabo, en detalle, el diseo de la computadora. Aunque la computadora bsica que se presenta en este captulo es muy pequea en comparacin con las computadoras comerciales, tiene la ventaja de ser lo suficientemente simple para mostrar el proceso de diseo sin demasiadas complicaciones. La organizacin interna de un sistema digital est definida por la secuencia de microoperaciones que ejecuta sobre los datos almacenados en sus registros. La computadora digital de propsito general puede ejecutar varias microoperaciones y, adems, puede recibir instrucciones acerca de la secuencia especfica de operaciones que debe realizar. El usuario de unq computadora puede controlar el proceso mediante un programa. Un programa es un conjunto de instrucciones que especifican las operaciones, operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento.
132
QNCO
OxganIzadOn y d i i de aompuhdcirrps
almacenar el sesultado. Pueden es@carse palabras de memoria en los c6digas de insttuccin mediante sus direcciones. Pueden especificarse regishas del pmerador al wi$ar a k instnicci6n otro cdigo binario de k bit. que e s w i q u e uno de 2 r e g i s k m Exkten muchas variaciones para "componer" el ckdip binario de instrucciones, y cada computadora tiene su propia formato de c6digo de instniceiones particular, Los disefiadores de
computadoras .formulan los formatos de cdigo de instrucciones y especifican la arquitectura de la computadora. En este capitulo elegimos un cddigo de instniccih particular para explicar la organizacih y el d k f i o bisico de
las computadoras diitales.
Memoria 496x 16
F m t o de instmin
134
C A M O CINCO Organizacin y
di*
de computadoras
una d k c i & n , dado que 212 = 4096. Si almacenamos cada c6digo de instnicci6n en una palabra de memoria de 16 bits, tenemos disponibles cuatro bits para el cdigo de operacidn para especificar una de 16 operaciones pmible8,
acumdd~r (AQ
y 12 bik para especificar la dirccibn de un operando. E i control lee una instrucci6n de 16 bits de la parte de programa de la memoria. Utiliza la parte de direcci6n de 12 bits de la instrucci6n para leer un operando de 16 bits de la porci6n de datos de la memoria. Despus ejecuta la operacin especificada por e l ckligo de operaci6n. L a s computadoras que tienen un registro de procesador nico por lo general l o nombran acumulador y lo etiquetan AC. L a operaci6n se ejecuta con el operando de la memoria y el contenido de1 AC. S i una operacibn de un cdigo de instnicci6n no necesita un operando de la memona, puede usarse el resto de los bits de -iiMstrucci6n para otros propbsitos. Por ejemplo, las operaciones como borrar {limpiar) AC, complementar AC e imrernentar AC' operan sobre l o s datos almacenados en el registro AC. No,necesitan un operando de la memoria. Para =tos tipos de operaciones, no se necesita la segunda parte del d i g o de instruccin (del bit O al 11) para especificaruna d k i i i de memoria y puede utilizarse para especificar otras operaciones para la computadora.
Direccionamiento indirecto
es conveniente utilizar Ios bits de direccionamienta de un cddigo de instruccin no como direccibn s*o como el operando real. Cuando la segunda parte de un c6digo de inshucci6n especifica un operando, se dice que la instmccin tiene un operando inmediato. Cuando la segunda parte especifica la d k c i 6 n de un operando se dice que la instniecibn tiene un direccionamiento directo. Esto contrasta con una tercera posibilidad ilamada dimionarniento indirecto, en el cual los bis de l a seffuida parte de la instmcci6n representan la direccin de una palabra de memoria, en la cual se encuentra la direccibn del operando, Se puede utilizar un bit del d i g o de instrucci6n para diferenciar entre un direccionamiento directa y uno
En ocasiones
instrucctdn inmediir tu
indirecto.
Como ejemplo de s t a configuracin, consideremos el formato de d i go de instrucci6n que se muestra en la figura S-2(a). Est formado de un cdigo de aperacibn de 3 bits, una dimci6n de 12 bits, y un bit de modo de direccionamiento indimto representado por 1. El bit de modo es O para un direccionamiento directo y 1 para un direccionamiento indirecto. Una instruccibn de direccionamiento directo se muestra en la figura S-m). Est colocada en la direccibn 22 en la memoria. E l bit I es 0, por lo que la instnicci6n se reconme como una instmccibn de direccionamiento directo. El caigo de operacihn especifica una instrucci6n de suma ADD, y la parte de direccin es el equivalente biario de 457. El control encuentra la operaci6n en la memoria en Ia direccihn 4 7 y la suma al contenido del AC. La instruccibn en la direccidn 35 que se muestra en la figura 5-2(c) tiene un bit
Memoria
Memoria
Operando
w
Operando
d i m i d a efecfba
de modo 1 = 1. Por lo tanto, s e reconoce como una instruccin de diteccie namiento indirecto. La parte de direccibn ec el equivalente binario de 3 0 0 . El control va a la direccihn 300 para encontrar la direcci6n de1 qxrando. L a direccibn del operando en este caso es 1350. El operando encontrado en la direcci6n 1350 se suma despub al contenido de AC. La instnicci6n de direccionamiento indirecto necesita dos referencias a la memoria para buscar un operando. La primera referencia se necesita para leer la direccibn del operando; la segunda es para el operanda mismo. Definimos la d i r m ' h e f i c f b como la creccibn del operando en una instrucci6n del tipo de computaci6n 0 la direccibn objetivo en una instruccibn de tipo transferencia del programa. Por 10 tanto, la d M 6 n efectiva en i a instruccin de la figura S-2(b) es 457 y en Ia instruccin de la figura 5-2(c) es 1350. En la computadora que se presenta en este capitulo se utizan los modos de direccionamiento directo e indirecto. palabra de memoria que contiene la direccin de un operando en una instruccin de d i ~ n a m i e n t o
indirecto se utiliza como un apuntador a un arreglo de d a k El apuntador pu.& colocarse kn un regiStra .del procesador y no en la memoria, como se hace en las computadoxas cmerciales.
5-2
Registros de computadora
-. -
de registra de bits
DR
AR AC
.IR PC
TR
INP. OUTR
S E M ~ Registros de computadora
137
Figura 5-3
contador de
programa IPC)
E i registro de direcGonamiento {M) de la memoria tiene 12 bits porque dste es el ancho de.unad i d 6 n de memoria. El contador de programa (PC) tambih tiene 12 bits y contiene la direccin de la siguiente instntccin que se va a Ieer de la memoria despus de que se ejecute la instruccin presente. El PC recore una secuencia de conteo y hace que la computadora lea instruccbnes 6ecuenhles almacenadas previamente en la memoria. Las palabxas de instruccibn se leen y se ejecutan en secuencia, a menos que se encuentre una 'instniccin de transferencia del programa. Una instrueei6n de
transferencia del programa =licita una transferencia a una instruccih no consecutiva en >elprograma. La parte de dkcci6n de una instrucci6n de tiansferencia dei programa se transfiere al PC para convertirse en la direeci6n de la siguiente instruccin. Para leer una instrucci611, se toma el contenido del PC eomala direcci6n para la m e m o r i a y se inicia un ciclo de lectura de memoria. Despub el PC se incremmta en uno, para que contenga la dipcci6n de h sipiente instrucci6n e n & Se usan dos registros para entrada y salida E l registro de entrada ( W R ) mi& un carcter de 8 bits de un dispitivo de entrada. El e s t r o de salida (OUTR]contiene un carade 8 bits para un dispositivo de salida.
.J
138
CINCO
Organizacin y d i d o de computadoras
c a w r ILD)
'
dime&&
de memorfa
conexiones entre la salida de cada registro y las entradas de los o * Un esquema mas eficiente para transferir infomci6n en un sistema con muchos registros es usar un bus com6n. Hemos mostrado en la secci6n 4-3 c6mo construir un sisde bus comn utilizando multiplexoreso compuertas de buffer de tres estados. La conexidn de l o s registros y de i a memoria de la computadora bdsica a un sistema de bus comn se muestra en la figura M . Las salidas de siete registros y de la memoria estn conectadas al bus c m n . La salida especifica que se seIecciona para las lneas del bus en cualquier momento dado, est determinada por el valor.biiario de las variables de seleccidn S, S , y So. EI n h e r o que se encuentre adelante de cada salida muestra el equivalente decimal de la seleceibn binaria requerida. Por ejemplo, el nimero que est adelante de la salida de DR es 3. Las salidas de 16 bit9 de DR se colocan en Ias Uneas de1 bus cuando SaSISo = 011 parque este e s el valor binario de1 decimal 3. Las lheas del bus comn estn conectadas a las entradas de cada registro y las entradas de datos de l a memoria. El registro particular cuya entrada LD (cargar) est habilitada recibe los datos del bus durante la siguiente transici6n del pulso de reloj. la memoria recibe el contenido del bus cuando se activa su entrada de escritura. La memoria coloca su salida de 16 bits en el bus cuando se activa la entrada de lectura y Sfi,So = 111. C u a b regisiros tienen 16 bits DR,AC, I R y TR.Dos registros, AR y PC, tienen 12 bits cada uno porque coniienen direcciones de memoria. Cuando el contenido de AR o PC se aplica al bus comtin de 16 bits, tos cuatiro biQ mfis significativos se establecen en O. Cuando AR o PC reciben informacibn del bus, sdlo E transfieren al registro los 12 tiits menos significativos. El registro de entrada I W R y el registro de salida OUTR tienen 8 bits cada uno y comunican con las 8 bits menes significativas del bus. INPR est mnectado para proporcionar infomacibn al bus pero OUTR slo puede recibir informacibn desde el bus. Hsto'se debe a que TNPR recibe un car4cter desde un disposiDivo de entrada que despugs se transfiere a AC. OUTR m i b e un carcter de AC y 16 enva* a un dispositivo de salida. No hay transferencia de OZfTR a cualqiiiera de 10s"gtros regktrw. Las 16 llrieas $ e l bus c o m h reciben informacin de seis registros y de la unidad de memda. Las lkeas del bus esth conectadas a las entradas de seis registros y a la memoria. Cinco registros tienen tres entradas de control: LD (cargar), INR (inckrnentar) y CLR (borrar). Este tipo de registro es equivalente a un contador binario con carga paralela y borrado sincrnico similar al que se muestra en la figura 2-11. La operacih incrementar se consigue al habilitar la entrada de cuenta en e l contador. Dos registros tienen una sola entrada LD.Este tipo de registro se muestra en la figura 2-7. Los datos de entrada y de salida de Ia memoria estn condados al bus comdn, pero la d i k h de memoria est conectada a AR. Por lo tanto, siempre debe utiliizarse AR para especificar una direecibn de memoria. Al utilizar un regbtro iinico para direccionamiento se elimina la necesidad de
~~.
- -. . .-
140
C A P ~ CINCO O Organizacin
y diseo de computadoras
un bus de direcciones, que de otra manera sera necesario. Puede especificarse el contenido de cualquier registr~para la entrada de datos de la memoria durante una operacin. De igual manera, cualquier registro puede recibir. los datos de la memoria despus de una aperaci6n de lectura, excepto AC. Las 16 entradas de AC provienen de un circuito lgico y sumador. Este Circuito tiene tres conjuntos de entradas. Un conjunto de entradas de 16 bits viene de las salidas de AC. Se utiliza para efectuar microoperaciones de registro como el complemento AC y el corrimiento ,AC. Otro conjunto de entradas de 16 bits viene del registro de datos DR. Las entradas de DR y AC se utilizan para microoperaciones aritmticas y lgicas, como sumar DR a AC o aplicar AND de DR a AC. El resultado de una suma se transfiere a AC y el acarreo final de una suma se transfiere al flip-flop E (el bit de extensin de AC). Un tercer conjunto de entradas de 8 bits viene del registro de entrada INPR. La operacin de INPR y OUTR se explica en la seccin 5-7. Ntese que el contenida de cualquier registro puede aplicarse al bus y piiede ejecutarse una operacin en el sumador y en el circuito lgico durante el mismo ciclo de reloj. La transicin de reloj al final del ciclo transfiere el contenido del bus al registro destino designado y la salida del sumador y circuito lgico a AC. Por ejemplo, las dos microoperaciones
pueden ejecutarse al mismo tiempo. Esto puede hacerse al colocar el contenido de AC en el bus (con S2S$o = 100), habilitando la entrada LD (cargar) de DR, transfiriendo el contenido de DR a travs del contenido del sumador y circuito lgico hacia AC y habilitando la entrada LD (cargar) de AC, todo durante este mismo ciclo de reloj. Las dos transferencias ocurren durante la llegada de la transicin de pulso de reloj al final del ciclo de reloj.
5-3
formato de insfruccin
Instrucciones de computadora
La computadora bsica tiene tres formatos de cdigos de instruccin, segn se muestra en la figura 5-5. Cada formato tiene 16 bits. La parte del cdigo de operacin de la instruccin contiene tres bits y el significado de los 13 bits restantes depende del cdigo de operacin que se encuentre. Una instruccin de referencia a memoria utiliza 12 bits para especificar una direccin y 1bit para especificar el modo de direccionamiento I. I es igual a O para una direccin directa y a 1 para una direccin indirecta (vase la figura 5-2). Las instrucciones de referencia a registros se reconocen mediante el cdigo de operacin 1 1 1 con un O en el bit de la extrema izquierda (bit 15) de la instruccin. Una instruccin de referencia al registro especifica una operacin o una prueba del registro AC. No se necesita un operando de la
s E c a h M I n s t n i c c h de computadora
141
15
12 11
Q 1 1 I
+imUndeqim
(CWigodeopr~b=l11,1-0)
memoria, por lo tanto las otros 12 bits se-utilizan para especifmr la operaci6n o prueba que se.va a ejecutar. De igual forma, una instmcci6n de entrada-salida no necesita una referencia a memoria y se m n o c e por el &digo de operaci6n 111 con 1 en el bit de Ia extrema izquierda de la instnicci6n. tos 12 bits restantes w utiIizan para espedfiear el tipo de operacidn de entrada-salida o la prueba ejecutada. E l tipo de instrucci6n se reconoce mediante el control de computadora de los cuatro bits en las posiciones de la 12 a la 15 de 1 s instnrccibn. Si los tres bit^ del cdigo de operacibn en Ias posicioaes de Ia 12 a la 14 no m iguales a 111, la instrucci6n es del tipo de referencia a memoria y el bit de la posici6n 15 se bma como el modo de direccionamiento 1. Si el cdigo de operacibn de 3 bita es igual a 111, el control revisa el bit en I a posicin 15. Si este bit es O, la instrucci6n ea del tipo de referencia a registro. Si el bit es 1, la referencia es del tipo de entcada-salida. Nbtese que el bit de la posicibn 15 del cdigo de instrucci6n esta representado mediante el slmbolo 1, pero no se utiliza como un bit de modo cuando el d i g o de operacibn es igual
a
111.
cddip hexadedrnal
S510 se utilizan tres bits de la instruccibn para el &dig6 de operacibn. Puede parecer que la computadora est6 limitada a un mximo de odio operaciones distintas. Sin embaxgo, como las inskuccionws con mfereneia a registro y de entrada-salida u t i h n loa 12 bits restantes como parte del d i g o de aperiicidn, la cantidad total de instrucciones puede exceder de ocho. l k hecho, el ndmero total de inqtnicciones escogidas para l a computadora bsica es igual a 25. Las instnzcciones para la computadora se listan en la tabla 5-2. La representacin simblica es una palabra de tres letras y signifika una abre viahira destinada a los programadores p los usuarios. 61 cdigo hexadecimal es igual al nhero hexadeciial del c6digo binario utizado para la instnrc-
142
mmmmco
y diseu de computadoras
TABLA 5-2 I n s ~ n e de s la computadora bsica
I= 1
Descripcibn
AND
ADD
LDA
STA
Oxxx lm
BUN
BSA
&ux Apiicar la h c i b n AND de la palabm de memoria a AC %m Sumar la palabra dememoria a AC Axxx Cargar la palabra de memoria a AC Biatx AImacenar el contenido de AC en la memoria
5 m
6~xx
ISZ
CtA
CLE
CMA
CME
cm a n u c
SPA SNA
SZA
SZE
HLT
,&ii
rmh*folllar
*
&
~ I ' & Y ~ h.
SKO
ION
IOF
Introducir un canleter en AC Sacar qn cadcter d e d e AC Brincar hndera de entrada Brincar s i hay bandera de salida Intempcibn encendida Inkwpci6n apagada
cih. A1 mar el equivalente hexadeciml reducihia los 16 bits de un cddigo de instrucci6n a cuatro dlgitos, donde cada digito h-decima1 es equivalente a cuatro bits. Una instrueci6n con referencia a memoria tiene una parte de direcci6n de 12 bits. La parte de dkccionamiento est representada por tres x y tiene validez para los ~ k e s digitos hexadecirnales que corresponden a la direccin de 12 bits. El Bltimo bit de la instruccin estzi representado por el smbolo 1. Cuando I = O, las iiltimm cuatro bits de una instnicci6n tienen un digito Irexadecimal equivalente de O a 6, dddo que e l dtimo bit es O. Cuando I = 1 , el dgito hexadeeimal equivalente de los altimos cuatro bits de la uistrud6n vhda de 8 a E, porque e l dltimo bit ea 1 . Las instruceibnes con referencia a registro utilizan 16 bits para especificar una ope~aci6n.Lee cuatro bits de la extrema izquierda son siempre 0111, lo mal es el equivalente al hexadecimal7. Los otms digitos hexadeci-
mal& proporcionan e l equivahnk binario de los 1i2 bits restan&. Las instmcciones de entradasalida tambfi utiliqn todos los 16 bits para espe~ificaauna operacidn. L m ltimos cuatro bi& son siempre 1111, el equivalente al hexadecimal P.
el tipo de .instrucciones que deben incluirse en una computadora. Una computadora debe t e ~ e r un conjunto de instrucciones para que el usuario pueda conatmir programas de lenguaje de compubdora con el fin de evaluar cualquier funcin que se sepa que puede romputarse. Se dice que el conjunto de instrucciones est completo si la computadora incluye la suciente cantidad de imtrucciones e n cada una de las siguien'tes categorlas:
1 . instrucciones aritmticas, 16gicas y de corrimiento. 2 Instruacianes par3 mover informacin hacia y desde la memoria y las registros del prwesador. 3. hstmcciones de control del programa, junto con instrucciones que verifiquen las condiciones de estado. .4. Instrucciones de entrada y saiida.
,
Las instrucciones aritmdticas, 16gieas y de corrimiento proporcionan capacidad compuZacion~1 para procesar el t i p de datos que el usuario puede emplear. La mayor parte Be la informacin binaria en una computadora *tal est aImamda en la mernorh pem todos los clculos se realizan en los registros del procesadar. Por l o tanto, el usuario podrA mover la infoimari6n entre estas dos unidades. L a posibilidad de tomar deeisionw es i u i hportante a de las computadoras digitaies. Por ejemplo, pueden compararse dos nmeros y, si el primero es mayor que el segundo, puede ser necesario proceder en forma diferente de si el segundo es mayor que eI primero. Las instrucciones de control de programa, tales como las instrucciones de transferencia del programa, se u t i h para cambiar la secuencia en la cual se ejecuta el programa. Las instrucciones de entrada y salida se necesitan para la comunicacin entre la computadora y el usuario. Los programas y los datos deben transferirse a la memoria, y los d t a d o s de los c4lculos dehn transferirse de vuelta a3 usuario. Las instrucciones ktadae en la tabla 5 4 constituyen un conjunto mhim a que propomiona todas las posibilidades ya mencionadas. Hay una instruccidn aritmtica, ADD, y dos instrucciones relacionadas, complementar AC (CMA) e incrementar AC (INC)).Con estas tres instrucciones podemos sumar y restar nmeros binarioe cuando existen nmeros negativos en repre$mtaei@ del complemento a 2 con signo. Las instrucciones para circular, CIR y C I L , pueden usarse para corrhimtos aritmticos, al igual que para cualquier otro tipo de mdmierito deseado. La multiplicaci6n y la
divisibn puedm ejecutarse usando la e w , la resta y el corrimiento. Existen tres o p e r a c i m ~ k;icas: N , mqlementm AC (CMA) y borrar o limpiar AC (CLA). Las nperaciones AMD y complementar proporcionan una operacin NAND. Puede demostrarse que con k aperacibn NAND es' pmible efectuar todas las otras operaciones 16gicas con dos variables (las cuales s e lictan en la tabla 4-6).Mover informaci6n de la memoria a AC se consigue con la inshci6n aargar AC (LBA). Pasar. hfomacin de AC a la memoria se hace en la instrucci6n de almacenar AC (STA), Las instrucciones de transferencia BUN, BSA e TS2, junto con las cuatro instrucciones de salto, proporcionan posibilidades para transferir el control del programa y la verScaci6n de las condiciones de astado. Las instm&ne de entrada (iNF') y d i d a (OUT) hacen que se transfiera infonnari6n entre la computadora y l o s dispositivos externos. Aunque el conjunto de instnidmes para la mputadora bsica est completo, no es eficiente porque con frecuencia las operaciones utilizadas no se ejecutan con rapidez. Un conjunto de instnicciones eficiente incIuir4 hstn,icciones como restar, multiplicar, 0 R y OR exclusiva. Estas operaciones deben programarse en la computadora bsica. Las programas se presentan en el. capitula 6 junta con otros ejemplos de programaci6n para la computadora basica. A l usar una cantidad hitada de instrucciones es posible mostrar eI diseo lgico de la computadora, en detaue. Un conjunto de instrucciones ms completo hubiera hecho el diseo demasiado complejo. De esta manera es posible mostrar 1 - principios Msicm de la organizacf6n y d i d o de la computadaza s i n liegar a detalles complejos en ex-. En el capftulo 8 ae v t a una lista completa, de instrucciones de computadora que se incluyen en la mayorla de las cornputad~ras codales. la f u n & r n de cada imtruccih que w lista m k tabla 5 2 y las microoperaciones necesarias para su ejecuci6n se presentan m las seccionei de la 5-5 a 1 s 5-7. Se propuso este a d l i i s porque se debe considerar primero la unidad de control y comprender su mgmhcin interna.
pulsos
control por
cnbleado
todos(1 - registros de l a computadora bsica estA controlada por un generador de *laj maestro; Los piilsos de reloj se aplican a todos :lw fiipfiop~ y registros.de1sistema, incluymdo los de la unidad de cront~01.Los pubos de reioj no cambian .el estado de un qistro, a menos que el regiska t habxlitada mediante una seaal de control. Las seiIa1e.s de conha1 se en la midad de mtrol y proporcionan entradas de control para los multiplexores deI bus comn, entradad de &ntrol en los registros del v d m , y mimaperaciofles para d acumulador. Existen dos. tipos principales de organizadmes de controk control por cableado y control dcroprogramado. En la organhci6n por cableado la i6gica de conml ,selogra d i t e compuerta^, flip-ibps, deedificadores y
La tempriZaci6n de
controI
niimpmgmmah
~+tiad d~control
atros circuitos digirales. Esto tiene la ventaja de que puede utizarse para producir itn m 4 0 de operacib 26pid0, &la oq@zaci6n micrqprogramada, la inhftadbri d e m r o l est aImachacia * m uria memoria de mnkruL La memoria de control esta programada para iniciar la secuencia de m i a m p e raciones requerida. Un control pgr cablegdo, egmo indica su nombre, necesita .cambios en la instaiaci6n de cabi+de e n h , b diversos componentes, s i el d M 4 va a modificarse o ~ b b ;e c&trot microprogramado cualquier cambio o modificadaes puede hacerse actwzando el p m en h memoria de mn~rol.' Em &~=secciBn se presenta un control p r caljlmdo para la computadora Mstca. U J ~unidad de control micropm gmtm@f?'ara una cohputadora similar se presentir en el capitulo 7. 31 diagrama de bloque de Ia unidad de mtrol e muetra en la figura - W ,' B t & fopmado por dos decodificadaresi rin contador secuencia1 y cierta cantidad de compuertas lbgicas de control. Una instruccidn leida de la hiqoria se c~loca en el registro de la instnicci6n presente (IR). La posicibn /de %e& e s t r o en e l sistema de bus comtln se M i c a en la figura 5-4. E l e la , ~ t r u c c i 6 n presntei se muestra de nuevo en la figura 5-6, d. do&e estd dividido en tres partes: el bit 1, el e M i o de operacih, y los bitg de .O a 11. El cdigo de operacidn en los bits del 12 al 14 se d e c a c a con ~ ~ ~ i f i c a 3dXo8.rLas acho saIidas de este decodificador se representan d a * los smbolos & a 3l nmero .decimai en el suhfndice es equivalente al valor binado del c6digo de &&e$n correspondiente. E lb i t 15 de la instruecidn se transfiere a iy flipfloprepresentado por el sfmbolo 1. h s bis de O al 21 src ~ E C W en hr;wqpuektas ldgicas de control. El contador secuencial de 4 bk puede ';Conkai'@bhiario del O ai 15. Las didas dei contador se d e c o d f i n en 16 seales,de temporizacidn de To a TI5. Despus, ae derivara la lfigica aiteq.de las wqipuertas de control, cuando se considere en detalle e l diseiYs de ~~om~ubdora. El contador secuencial. SC mede( ingkrrtmtarse a l i m p h en forma sincrona (vbase el contador de a figura Zl.1). XA mayor parte del tiempo, e l contadar s e incrementa para pmpo&onar la secuencia de seilales de tempoW6n del decodificador 4 X 16. D e v a en cuando, el contador se borra a O, haciendo que la siguiente seial de temporizacidn activa sea To.Por ejemplo, consideremos e l caso en que SC se incrementa para proporcionar las Miales de temporizaci6n Ta, Tb T2, T3, y . Te en secuencia. En el tiempo T* SC se km a O si lesK activadi la salida Da del decodificador. Esto se expresa en foma simb6ca mediante el enuncido.
146
CA-O
Organizacin y d i -
de computadoras
1 1 1
.&ras entradas
Salidas de mnml
tttt
1 1 .~rif~emenb W) Bwrar (CLR)
bloj
h
m
.
1;
C..
r
Figufa 5-7
final de la s&aI de temporizadn T2 Cuando l a seal de temporimci6n T4 x activa, tambin lo hace la salida de la compueita AND que implanta la funcibn de control D3T4EBta &al se aplica a la entrada CLR de SC. En la siguiente transicin de reloj positiva (la marcada con Tpen el diagrama) el contador se pasa a O. Esto hace que ce active la M a l de ternprizacin Toen I lugar de Tg, que podria activarse si SC s e incrementara en lugar de borrarse. Un ciclo de lectura o de escritura se inic-iar6 con un flanco ascendente de una seia1 de temporizacibn. Se considerar que e l tiempo de un ciclo de memoria es menor que un tiempo de ciclo de reloj. De acuerdo con esta suposicin, un ciclo de lectura o de m i t u r a iniciado por una seal de temporizaci6n se temiinard cuand~el siguiente pulso de reloj llegue a su posici6n de transicin positivi. Despu&, se usar4 la transicibn de reloj para cargar Ia palabra de memoria en un registro. Esta relaci6n de temporizacin no es vilida en muchas computadoras porque el tiempo del ciclo de memoria, por lo general dura ms que el ciclo del reloj del prwesador, En tal caso es necesario proporcionar ciclos de espera en el procesador hasta que este disponible la palabra de memoria. Para facilikr la presentacih, consi-
deraranos que un periodo de espera no e a necesario en la computadora bdsica. Para comprender pof completo la operaeion de la computadora, es crucial entender la relacibn de temporizaci6n entre la transicin de reloj y las &ec de temporizacin. Por ejemplo, el enunciado de transferencia de
4 .
To; AR . + PC
especifica una transferencia del contenido de PC a AR, s i estA activa la sefial de temporizaci6n Toa Tpest activa durante todo un intervalo de ciclo de reloj. D u r a n t e este tiempo, el contenido de-PC se coloca dentro del bus (con S$,S, = 010) y &.habilita l a entrada LD (cargar) de AR. La transferencia real no murre hasta el final del ciclo de reloj, cuando el reloj Uega a una hansitidi positiva. Esta misma tansici6n -de reloj positiva inrrementa el contador secuencia1 SC de 0000 a 0001. E l siguiente ciclo de reloj tiene a TI activo y Toinactivo.
5-5
Ciclo de Instrucci6n
Un programa
residente en la unidad de memoria de l a computadora estA fomiad&por una secuencia de instrucciones. E l programa se ejecuta en la computa'$ora rebtrlendo un del0 para cada instmcci6n. A su vez, cada ciclo de instruccin se divide en UM SBZIE& de subciclos o fases. En la computadora bsica cada ciclo de instmcci6n consiste en las siguientes fases:
2. ~ e c a d i l i ~ laainstrueeibn, ~
3. k r l a direcci6n efectiva de la memoria si la instruccin tiene una dimci6n indirecta. 4. Ejecutar la insQ~cci6n.
Cuando se termina el paso 4, el control rqresa al. paso 1 para buxar, decodificar y ejecutar Ia siguiente instrucci6n. Este proceso contina en forma indefinida a menos que se encuentre una instniccihn HALT (alto).
Besqueda y decodificacihn AI principio, el contador de programa PC esti cargado can la d h c i 6 n de la primera instrucci6n del programa. El contador secuencia1 SC se borra a 0 , proporcionandb 'una seal de temporizaci6n codificada TD. Despuds dk cada pulso de reloj, SC se incrementa en uno, para que las d a l e s de t~empoporizaci6nrecorran una secuencia To, TI, T , y as1 sucesivamente. Las mkrooperaciones para las fases de bsqueda y decodificaci6n
registro.
Como 4 1 0AR estd conectada a las entradas de dkeccionamiento de la memoria, es necesario transferir la direcci6n del PC a AR durante la transicibn de reloj asociada con la sefial de temporlzaci6n To.Despuks, se coima la instruccin de leer de la memoria en el, registro de instniccibn presente IR, con la transicibn de reloj asociada a la s e h l de temporizacin Tp A i mismo tiempo, PC se incrementa en uno a fin de preparar para la dhixci6n de la siguiente instruccidn en el programa. En el tiempo Ta, se decodifica el cdigo de operaci6n en IR, el bit indirecto se transfiere al flip-fiop X y la parte de la d k a b n de b instnicci6n se transfiere a AR. N 6 b e que SC se herementa deapub de cada pulso de reloj para producir l a secuencia Tb TI Y TP La figura 5-8 muestra c6mo se implantan los primeros dos enunciados de transferencia de registro en el canal del sistema de bus. Con e lf u i de proporcionar l a trayectoria de datos para Ia transferencia de1 PC a AR, se debe aplicar ^a S-1 de temporizaci6n Topara obtener la siguiente conexi6n:
1. Colocar el contenido del PC dentro del bus al hacer que las entradas de selecci6n de bus S$lSD sean iguales a 010. 2. Transferir, el contenido del bw a AR al habilitar la entrada LD de
AR.
La siguiente transicibn de reloj inicia la transferendia de PC a AR porque T g = 1. Para cumplir el segundo enunciado
T,,con el fin de proporcionar las conexiones siguientes en el canal del sistema de bus.
es necesario usar la 4 de kmporizaci6n
1. Habilitar la entrada de lectura de la memoria. 2 Colocar e1 contenido de Ia memoria dentro del bus al hacer que S$,S, = 111. 3. Transferir el contenido del bus a IR al habilitar la entrada LD de IR. 4. Incrementar PC al habilitar la entrada INR de PC.
La siguiente transici6n de reloj inicia Ias operaciones de leer e incrementar porque TI= 1 .
TI
S2
To
SI Bus
Unldad de rnemdria
Direcdn
II
=
so
7
h r .
AR
E-
I
PC
:2
=
LD
m 0 1
h s coman
La figura 5-8 duplica una parte del canal del sistema de bus y muestra. TIa las entradas de control de los registros, la memoria y las entradas de seTecci5n del bus. En e l diagrama se incluyen mriltiple compuertas OK de entrada,porque hay otras funciones de control que iniciardn operaciones similares.
c6mo estn conectadas Toy
Determinadbn del tipo de instruccin La seal de temporizaci6n que est4 activa despus de la decodifkacidn es T3. Durante e l tiempo T3 la unidad de controI determina el tipo de instruc-
ci6n que se acaba de leer de la memoria. E l diagrama de flujo de la figura 5 9 presenta una configuracih inicial para el ciclo de insttucci6n y muestra cbm~ d control detemiina e l tipo de hstrueei6n despub de l a ddificaci6n. Los tres tipos de instniccibn p i b k de, que se dispone en la cornputadora bsica se especifican en la f i a 5-5. ta salida del decodificador D7es.igual a 1 si el cdigo de operacihn es igud a1 111 binario. Por l a figura 5 5 determinamos que s i 4 = 1 , la
Figura 5 9 Tabla de flujo para el ciclo de instrricci6n (configuracibn inicial).
AR t PC
f
IRc-MIAR], P C t P C + 1
11
T2
Ir
(Regiiiiro o ]/O) = 1
= 0 (Merenda a memorla)
1I
1I
@/O} = 1
(indlrwto) = 1
1r
T i
Ir
T3
L
T3
1
Ir
T3
AR t MARI
11
Nada
II
i$xutar la
iMnruccibn de referencia
a memoria
SC+O
1I
direccibfl fnd+ecta
Al principio AR cbntene la parte de duecci6n de h instrucci6n. Esta direcci6n se utiliza durante la instrucci6n de Iechira de meborla. I a palabra en la direccin proporcierrada por AR se lee de la memoria y se colma en el bus comn. b p u & s , se habita la entrada LD de AR, para recibir la d k c i 6 n indirecta que reside en los 12 bits menos significativos de la palabra de memoria. b s tres tip& de instrucciones se subdividen en cuatro hayectorias separadas. La o p r a c i h seleccionada se activa con l a transicibn de reloj asociada con l a sea1 de temporizaci6n T3 Esto puede representarse como sigue:
lT3: AR + M [ARJ Dj11T3: Nada .D711T3: Ejecutar una instrucci6n de referencia &%: Ejecutar una instruccin de entrada salida
--
Cuando se-encuenirauna instrucciin de referencia a mkoria con I = O no es necesario hacer nada porque la direccibn efectiva ya est6 en AR. Si ernharo, el contador secuencia1 SC debe incrementar& cuando D1?T3= 1, para que pueda continuarse la ejeeuai6m de-la instrucici6n de referencia a memotia con la variable de temporizacin 1 ; .Puede ejkutarse una instnicci6n &e referencia a registro o de entrada-salida mediante el reloj asociado con la seal de brnporbaci6n T3.Despus de ejecutarse la uistnicci6n, se horra SC a O y el control regresa a la fase de bFtsqueda con To= 1. N 6 k e que d contador secuencia1 SC se incremenb o se borra a O con cada i!kansicibn de reloj positiva. Adoptaremos la n o h a de que si SC s e incre&nta, no escribirembs el enunciado SC *SC f 1, pero estar6 implcito que el Antro1 pasa a ia siguiente seal de temporizaci6n en secuencia. Cuando se va a borrar SC, incluiremos el enynciado SC 0. Las transfemcias de registros necesarias para la ejecuci6n de las btrucciones de referencia a registros se presentan -enesta secci6n. En la siguiente e i 6 n se explican las instrucciones de refemcia a memoria. Las imtructiones de entrqda-salida se incluyen eri la Secci6n 5-7.
Insbcciones de referencia a registros El control reconoce las instrucciones de referencia a registros cuando D7 = 1 e' 1 O. Estas i n s ~ c c i ~ n e utflizan s los b i t s del O al 11 del caigo de instrucci6n para especificar una de las 12 instrucciones. Estos 12 bits estiin disponibles en IR(0-11). Tambibn s e transfirieron a AR durante e l tiempo ;r2. Las hnciones de csntrol y las micmperaciones para las instnicciones de referencia a registro se listan m la tabla 53. Estas instrucciones s e ejecutan con la transicin de reloj asociada con Ia variable de temporizaci6n T3 Cada funcin de control necesita la relaci6n bmleana D7i'T3 la cual, por conveniencia, representaremos con el smbalo r. La funcin de control s e disthgue.por uno de los bits en i R (0-11). A i asignar el smbolo Bl al bit i de IR, todas las fimcionea de control ce pueden representar con sencillez mediante rB,. Por ejemplo, la instruccibn CLA tiene l cddigo hexadecimal 7800 (vdase la tabla 5-Z), e l cual, da e l b M o equivalente O111 1OOO 0000 axio. El primer bit es un cero y es equivalente a P. Los siguienb tres bits constituyen el cdigo de operacin y s e reconocen de la salida del decodificador &. E l bit 11 en 1R es 1 y se reconoce de Blp La funci6n de control que inicia la rnicrooperaci6n para esta instrucci6n es D71rTJBll= rBIp I a ejecucih de una inshucci6n de rbferencia a registro se termina en el tiempo T3. E l contador mencial SC se borra a O y el control regresa a buscar la siguiente instniceibn con la seiial de temporizacibn Ta Las primeras siete instrucdanes de referencia a registro ejecutan las rnicrooperaciones de borrar, compiementa~,corrimiento circular e incrementar sobre los registros AC o E. Las siguientes cuatro instrucciones provocan un brinco de la siguiente instruccin en rmuencia cuando se satisface una condicin esbb1ec:ida. La Instrucci6n de brinco se ejecuta al
TABLA 5-3 Ejecucin de instuccionesde referencia a registro
D71rT3 = r (comrn a todas las instmcciones de referencia a registro) IR(i) = B, [el bit en IR (0-11) que especifica la operacidn]
r:
SC
CMA
CiL
CLA
Y&,:
rB,:
rB,:
Y&:
SZE
m i '
rB,:
Borrar AC E O Borrar E AC + A 7 CarnplementarAC E+E Complementar E AC t . shr AC,ACb5) E, E r- AC@)C h I a r a la deredia AC + shl AC, AC(0) E, E t . AC('i5) Cinnilar a la izquierda AC AC+1 incrementar AC S i (AC(15,) = O) entonces (PC PC + 1) Brincar si es positivo Si (AC(15) = 1)entonces (PC + PC + 1) Brincar si e s negativo Si (AC = O) entonces (PC PC + 1) Brincar s i AC es cero S i (E O) entonces (FC + PC t 1) Brincar s i E es cero S . - O (S es un flip-flop de inicioalto) Detener la computachm
t
AC
O
O
Borrar SC
incrementar PC una vez mAs (ailemZis, se .incrementa durante la fase de b b q e d a 'eir d tiempo Td. Las enunciados de con& de condicibn deben reconcomo pafte.de las cdlciones de control. AC es positivo cuando el bit de signo en AC(5) = O; es negativo cuando ACt15) = 1. El contenido ,deAC es cero (JC = 0) todos los flip-flops del registro son c m . La insfrucci6n FKT borra un flip-flop de inicioalto S y detiene e l funcionamiento de1 contador secuencial.Para restalilla opwacih de la computadora, el fiip-fiop itiicio-alto d e h iniciarse e forma manual.
5-6
d i m i d n eJectfata
Para especificar las micraapraciones que se requieren para la qecucibn de cada Instmcd&n, es necesario que la funci6n que se pretende ejecutar se defina con pmisi6n. Al revisar la tabb 5-2, e n la cual se Iistan las instrucciones, enconkamos que algunas tienen una d d p c i b n ambigua. Esto se debe a que, por i o generaI, la &plicaci&nde una insmcci6n con palabras es extensa y no hay espacio disponible en la tabla para su explicacidn. Ahora mostrammae; que la funcin de las instrucciones de referencia a memoria puede definirte m forma precisa mediante la notaci6n de transferencia a registros. La tabia 5-4 lista las siete instrucciones de referencia a memoria. La salida decodificada Di para i = 0 ,1 , 2, 3, 4, 5 y 6 del decodificador de operacibn que pertenece a cada instruccin se incluye en la tabla. La di=ci6n efectiva de I a instruccidn estd en e l registro de direccionamiento AR y se colocb ah durante la seal de Zemporkri6n TZcuando I = O o durante la serial de temporizacibn T3cuando I = 1. L a ejecucidn de las instrucciones de referencia a memoria comienza con la seal de temporizacihn T4 La descripci6n simblica de cada instrucci6n s e especifica en la tabla en M nos de notaci6n de transferencia de registros. ts ejecucin mal de la inatruccin en e l canal del sistema de bus requerir una secuencia de microoperaTABLA M Tnshucciories de referencia a memoria
Decodificad~r Shbolo de operacin Dpsc~ipci6n eW1ica
AND 4DD
LDA
STA
Do *'DI
Dz
D 3
BUN BSA
ISZ
D k D s
AC +AC A MIAR] AC*-AC + M[AR], E e C , , ACt@kIR] M[AR] tAC PC+AR M[Al?l+$T, PC+AR + 1 M[AR]c-'M[AR]+ 1 , Si MIAR] + 1 = O entonces PC c
5.6
ciones. Esto es porque los datos almamad= en l a memoria no pueden procesame en forma directa. los datos deben pasarse de l a memoria a un registm donde pueden ser operados sobre circuitos lbgiros. Ahora explicamos la operacih de cada instrueei6n y hacemos una h t a de las funciones de control y microaperaciones necesarias para su ejecucibn. Al final de esta seccibn se presenta un diagrama de flujo que resume todas las mimooperaciones.
Ejeaci6n de la instnieei6n AND a AC Esta es una instruccidn qkejecuta la operacibn l&gicaAND sobre pares de bits en AC y la palabra de memoria especificada mediante la direccin efectiva. El resultado de la operaci6n w transfiere a AC. Las micmperaciones que ejecuta e~ta~instmccibn son:
esta htrucci6n utiliza el demdificador de ope racibn Do porque la salida del decodificador estd activa cuando la instruccin tiene una operaci6n AND cuyo valor de cdigo binarib es 000. Se necesitan dos d e s de temporizaci6n para ejecutar la insfmrci6n. La transicibn de r e l o j asmiada con la seal de temporhci6n T4transfiere el operando de la -aria dentro de DR. La transicihi de reloj asrreiada con la siguiente seal de ternporkciibn &nsfiere a AC el resultado de la operacin lgica AND entre el contenido de DR y AC. L a misma transicidn de reloj pasa SC a O, a l transferir el cohtrol a l a seial de Wporizacibn To para comenzar un nuevo ciclo de instruccibn.
Ejecucihn &e la+instnrCnbn ADD a AC Esta instruccibn suma el contenido de la palabra de memoria especificada por la dked6n @fectivi al valor de AC. La suma se transfiere dentro de AC y el acarreo de> salida Cd se transfiere al flip-flop E [extenssn del acumulador). Las mictooperaciones para 'qsuhrla instrueddn son
DITi: DR + M[AR] 4%:AC + A C f DR, E * C M
SC + O
Se usan otra vez las mismas dos selales de temporizacibn, T4y Tg pero con el decodificadar de operacibn DIen lugar de Do el cual se utiliz para la inistrucmn AND. Despus de que se busea la instnioeidn en la memoria y se decodifica, sbln estar activa una salida del derodficador de operacin y esa salida determina La secuencia de micmperaciones que sigue el control durante la ejecucin de l a instruccin de referencia a memoria.
LIJA: Cargar a AC Esta instruccin transfiere la palabra de memoria especificada por h direccin efectiva a AC. Las microoperaciones necesarias para ejerutar esta instnicci6n son
Al revisar el canal del sistema de bus mostrado en la figura 5-4 notames que no hay una trayectoria directa d d e el bus h s t a AC. El circuito sumador y Igico m i b e informad6n de DK la cuaI puede transferirse a AC. Por lo tanto, primero a necesario llevar la palabra de memoria a DR y despus transferir el contenido de DR a AC. La raz&npara no conectar el bus a Ias entradas de AC es el retraso que se encuentra en el circuito sumador y 16gico. Se considera que d tiempo que toma leer en h memoria y transferir la palabra a travb del bus y el circuito sumador y 16gico es mayor que e l tiempo de un ciclo de reloj. Al no condar el bus a hs entradas de AC pakmos mantener un ciclo de reloj por micrmperaci6n.
STA: Almacenar AC
sta inskucci6n almacena el contenido de AC en la palabra de memoria especificada por la dhecu6n efectiva. Como la salida de AC se aplica al bus y la entrada de datos de la memoria estA conectada al bus, podemos ejecutar.
esta uistnicci6n con una micreeracibn:
QT4:
M[AR] t AC, SC
+O
de l a dimcibn que se va a leer de l a memoria en el siguiente ciclo de instFuccidn. PC se inere~enta en el tiempo TI para prepararlo para la dii.eeei6n de la siguiente instruccih en h secuencia del programa. La iristnicci6n BUN permite que el programador especifique una instruccin fuera de secuencia y se dice que el programa se brinca de manera incondicional. Esta instnzccibn se ejecuta con una ~ ~ e r a c i 6 n :
La d-ihn efectiva de AR se transfiere por el bus comiln al PC. Al mtableeer SC a Q se transfiere el control a To. Despus ce busea y se ejecuta la siguiente instruccin de la direccih de meinoria proporcionada por d nuevo valor en PC.
kfemwia a memoria
157
BSA: Brincar y guardar la direcci6n de retorno Esta instniccibn es tltd para brincar hacia una porci6n del programa llamada subrutina o procedimiento. Cuando se ejecuta, la instruccibn BSA almacena la di&& de b siguiente,insktuccibn en secuencia (la cual esta disponible en PC) dentro de una pmiei6n de la memoria especificada por la direcci6n efectiva. La dimci6n efectiva mAs uno se transfiere'despusa PC para seniir como la direccibri de la primera hstrucci6n en la subrutina. Esta operacin se especificb en la tabla 5-4 con la siguiente transferencia de registro:
M [ A R ] t PC, K
+ AR
+1
.
dimccidn d t ptnmo
Un ejemplo nurndrico que muestra cmo se usa esta instnicci6n con una subrutina aparece en la figura 55-10. Se considera que la instnicci6n BSA estd en la memoria en la direccin 20. El bit 1 es O y la parte de la direccin de la instnicci6n time el eq,uivalentebbrio de 135. Despus de las fases de biiaqiiaquda y dwdificacin, PC contiene 21, que es la direccidn de la siguiente inshzieci6n en el programa (demiminada direccin de refmo). AR contiene la direcci6n efectiva 1% Esta se muestra en la parte (a) de la figura. La
instmcci6n BSA ejecuta Ia siguiente operacihn numrica:
de esta operacidn se muestra en la parte @) de la figura. La d'wocibn de retorno 21 se almacena en la localidad de memoria 135 y e l control contina con d programa de subnitina que comienza desde la direeei6n 136. El regreso al programa original (y la di~eccibn 21) se consigue
Figura 510 Epplo de la ejecuci6n de la instruccidn BSA.
Memoria
O
BSA Memoda
E 1 resultado
135
BSA
135
Siguiente instruccin
Sigifente i ~ ~ ~ t r u m b
S~ibrutina
1
BUM
135
mediante una instruccin BUN mind-ta, colocada al h a 1 de la subrutina. Cuando se ejecuta esta btmcd6h d mnml regresa a l a fase indimta para leer la dire&& kktim en la lkalidad 135, donde encuentra la dimi6n 21 que se guardb antes. -15:ando se ejecuta .la instruccin BUN, la direcci6n efecti'va 21 se 'transfiere a PC. El siguiente cfcio de la instnrcci6n encuentra PC rion el valor 2 1 , por lo que el' control sigue ejecutando la instrucci6n en la direccibn de retorno. Por lo general, la imhxei6n BSPr ejecuta la hnci6n que se denomina llamada a subrutina. La inskucci6n BUN indirecta al final de la subrutina ejecuta la funcin que se denomina retomo de la subrutina. En la mayora de las mputadoras comerciales, la direccin de retorno asociada con una subrutina se dmaana. en un regstra de procesador o en una porcin de la memoria Ikrnada pila (stack). Esto se analiza ms adeiante con mayor detalle en la secci6n 8-7. No e~ posihle ejecutar lai operacibn de la Instmcci6n BSA en un ciclo de mloj m d o s e u t i l i el bus del sistema de la computadora bgsica. Para usar en h a adecuada, l a memoria y d bus, la inetniai6n BSA debe ejecutarse con una ~ e n c i de a dos microopraciones:
+1
La a e d de tmprhaci6n Tk inicia una operad611de escribir en memoria, colma el a t e n i d o del PC dentro del bus, y habilita la entrada iNR de AR. La operacidn de escribir e m e m o r i a $e tmpleb y AR se incrementa cuando ocurre la siguiente trawicin de reloj. E l bus se utiliza en T5para transferir eI contenido de AR a PC.
ISZ: Incrementa y brinca s i es cero Esta insinicci6n incrementa la palabra especificada por la direccihn efectiva y, si el valor incmnentado es igual a O , PC se incrementa en 1. El programador por lo general almacena un nmero negativo (en complemento a 2) en la palabra de memoria. Como =te valor negativo se incrementa una y otra vez en uno, eventualmente alcanza el valor de cero. 13n ese momento,PC se incrementa en uno para saltar la siguiente instnicci6n en el programa. Como no es posible incrementar una palabra dentro de la memoria, es necesario leer la palabra dentro de DR, incrementar DR y almacenar otra vez la palabra en la memoria, Esto se hace con la siguiente -uencia de micmoperaciones:
D6T4: DR D6T5:DR
t .MIAR]
+ 11,
SC t O
159
todas las micmperaciones para la ejecucidn de las siete instrucciones de referencia a memoria. Las funciones de control s e i d c a n eh la parte superior de cada bloque, Las microoperaciones que s e ejecutan durante los tiempos T4 T5 O T6 dependen del valor del &digo de la operacihn. Esto se indica en el diagrama de flujo mediante seis trayectorias diferentes, una de las males
Diagrama de flujo de control En la figura 5-11 se muestra un diagrama de flujo que muestra
AND
AaI3
11
LDA
STA
lf
Do4
ir
11134
Ir
D 2 T d
lr
4T.I
DR +MIAR]
tr
DR t M [MAR]
D0T5
r
DlT5
AC
'
DR
D2T5
M [AR] t AC SCtO
ACtACADR SCtO
i -
SCtO
BUN
85A
ISZ
nb7
r
D6T6
sc4-o
toma eI control despus de que se d e c d i c a la instrucci6n. En cada caso, el contador secuencia1 SC se barra a O can la Siltima seal de temporizacibn. Esto provoca una kransdel control a la seal de temporizaci6n To para q w qomience el siguiente ciclo de instruccibn. N6tese que d o necesibrnos siete h l e s de temporizacin para tar la instnicci6n m 4 9 larga @ Z ) . La computadora puede disefiarse con un contador secuencia1 de 3 bits. La razbn para utilizar un contador de 4 bits para SC es proporcionar seta1es de tempohci6n adicionales para otras instrucciones que se p m t a n en la seccin de problemas.
Una computadora no puede tener un propsito 6til a menos que 8e comunique con un ambiente externo. Las instrucciones y los datos almacenados en la memoria deben pmvenir de algn dispositivo de entrada. Los multados computacionales deben transmitirse al usuario mediante algn dispositivo de salida. h s computadoras comerciales incluyen muchos tipos de dispositivos de entrada y salida. Para mostrar la mayor park de b s reque bientos bdsicos para comunieacibn de entrada y salida, utilizaremos como
ejemplo una unidad tednal con un teclado e impresora. L a organizacibn de la entrada-salida se analiza ms adelante en el captulo 11.
Configuraci6n de entrada-salda
La terminal enva y recibe informacin serial. Cada cantidad de informacibn tiene ocho bits de un c6digo alfanumrico. La informacidn serial del teclado se cambi dentro del registro de entrada INPR. L a informacin serial para la impresora se almacena en el registro de salida OUTR. Estos dos registros comunican en forma serial con una interfaz de comunicaci6n y con el AC en paralelo. La configuracin de entrada-salida se muestra en Ia figura 5-12. La interfaz que transmite recibe informacin serial del teclado y la transmite a INPR. La interfaz que recibe acepta infomaci6n de OUTR y la enva en forma serial a la impresora. L a operacibn de la interfaz de comunicacin cena1 se explica en la secci6n 11-3. El registro de entrada INPR consta de ocho bits y contiene inforrnaci6n de entrada alfanum~rica. La bandera de entrada de 1 bit FGI es un flipflop de control. El bit de la bandera se activa en 1 cuando hay disponible informacidn nueva en el dispositivo de entrada y se desactiva a O cuando Ia computadora acepta la informacibn. La bandera es necesaria para sincronizar la diferencia de la velocidad de temporizacibn entre el dispositivo de entrada y la computadora. El p m s o de transferencia de informaci6n es como sigue. Al principio, Ia bandera de entrada FGI s e desactiva a O. Cuando se oprime una tecla en el teclado, s e ejecuta un corrimiento sobre un ckiigo alfanumrico de 8 bits dentro de INPR y la bandera de entrada FGI se inicia
regisiro de entrada
Registros de *computadora
Y fl~pnops
I m p m o r a
.=
Interfaz
OUTR
Teclado
Int& transmiswa
registm de salidri
en 1. Mientras la bandera estd en uno, no puede cambiarse la infonnacih en INPR al oprimir otra teda. La computadora comprueba el bit de la bandera; si es 1 , la infomci6n de INPR se t r d r e en paraielo dentro de AC y FGI se reinicia a O. Una vez que se desactiva la bandera, puede i n t r a d u b informacihn nuwa dentro de N P R al oprimir otra teda. E l registro de salida OUTR funciona en forma similar pero la d-bn del flujo de irdoma& est invertida. Ai principio l a bandera de salida
FGO se activa m 1. ta computadora comprueba el bit de la bandera; si es 1, la infonnaci6n de AC se transfiere en paralelo a OUTR y FGO se desactiv a O. El d i s p o s i t i v o de salida acepta la infomacibn codificada, imprime el carcter correspondienk, y cuando se S e i n a la operaci6n activa FGO en 1. h computadora no carga un nuevo car-r en OUTR cuando FGO es O porque esta condicin indica que el dispwitivo de salida s e encwntra en el pniceso de imprimir el carcter.
Instrucciones entradaealida Se necesitan irlstrucciones de ehtrada y salida para transferir informacin hacia y d d e el registro AC, para comprobar los bits de bandera, y para controlar la opci6n de interrupci6n. Las instrucciones de entrada-salida
Ciclo de instruccibn
ir
=I
Ciclo de intemipA6n
Almacenar
[O] +- PC
Ejecutar Instnicci6n
I
W f m r a la posicibn 1
PCc1
I
IEN t O R t O
=O
ir
7 1
R t l
I
f
1r
'
un registro de proceaador, una pila de memoria, o una posici6n de memoria Aqu la localidad de memoria en la direccibn O como l u w para almacenar la direccin de retorno. Despuk el control inserta l a localidad 1 dentro del PC y a b i l i t a IEN y R .para que no puedan murrir m& intermpciohes hasta que se haya atendida la solicitud de i n b mipcidn de la bandera. Un ejemplo que mwtra l o que sucede durante d ciclo de intenipci6n aparece en la figura 5-14. Supongamas que ocurre una interrupci6n y R se inicia en 1 mientras el control est ejecutando la instruccin en la direcci6n 255. En este momentu) la d k & n de retorno 256 est en PC. E i programador ha colocado previamente un programa de sewicio de entrada-salida en Ia memoria comenzando en la direccibn 1120, y. una instruccibn BUN 1120 m la direccin 1. Esto se muestra en la figura 514(a). Cuando el control danza la setal de temporhci6n Toy encuenha que R = 1 , prmede ewi el ciclo de hkmrpciibn. El contenido del PC(256)se ahnacaa en la localidad de memoria O, PC s e inicia en 1 , y R se rrinicia a O.
+ea.
Memoria
Al comienzo del siguiente cicIo de inshuccibn, la instrucci6n que se lee de la memoria esta. en l a direccin 1 porque &te es e l contenido de PC. La instrucci6n de brinco en Ia dkwibn 1 hate que el programa se transfiera al programa de servicio de entrada-mlida en ia dimcidn 1120. Este programa cornprueba las banderas, determina cual bandera est en uno y despus transfiere la informacin de entrada o salida requerida. Una vez que hace esto, 8e ejecuta la insEtucci6n ION para activar IEN en 1 (para habiiitar interrupciones posteriores), y e l programa regresa a la posici6n en la cual fue interrumpido. Esto se muestra en la figura 5-14(b). La Xnstrucci6n que regresa a h computadora al Iugar original en el proarama p b i p a l es una in$tnirni6n.de brinco indbzto, con una parte de dimi611de O. Esta instrucci6n se coloca al final del programa de servicio de entrada-&ida. Despub de que esta instrucciSn se lee de Ia memoria durante b fase de bsqueda, el control va a la fase indirecta (porque I = 1) para leer la direcci6n efectiva, La direccidn efectiva esta en la p i c i 6 n b y es la direccin de retorno que se almacm6 ahi durante el ciclo de interrup-
cibq previo, ta ejecuadn de h instrucci6n B N indirecta da como resultado l a colocaci6n dentro de FC de la dimi6n de retorno en h localidad 0.
Ciclo de int-pcibn
Ahora esbmos preparados para listar ks enunciados de tractshcia de registros para el ciclo de intmupci6n. E1 ciclo de interrupcidn se inicia d q u & de l a ltima fa= de ejecucibn s el fiip-flop R de interrupcin es igual a 1. &te flip-flop se activa en 1 si IEN = 1 y si FGI o FGO son iguales a1 . Esto puede suceder con cualquier transici6n de rdoj excepto cuando las
166
sefalesde temporizacibn Tw Tb o T2estZln activas. La condici6n para activar el fipflop R en 1 puede expresarse con el siguiente enunciado de transferencia de registro:
B i smbolo
modifiacidn de la frise de bsqueda
entre FGI y FGO en la huici6n de control representa una funcibn OR 16gica. A esto se a p k a la funci6n AND con IEN y r0','I'G. Ahora modificaremos las fases de bdsqueda y decodificacidn del ciclo de instniccibn. En lugar de d o usar las d a l e s de temporizaci6n To, Tp y T2(como se muestra en la figura 5-9) aplicaremos la hnci6n AND con R' a las tres seales de bemporizaci6n para que las fases de bsqueda y de decodificaci6n se reconozcan de las tres funciones de control R'T& R'Tl y R'T2. Za razbn para hacer esto es que el tiempo en que se ejecuta la instruccidn y SC se borra a O, el control recorre una fase de biisqueda s610 s i R = 0. D e otra manera s i R = 1, el control reromera un cicIo de instrucci6n. E1 ciclo de interrupcin almacena la di-n de retorno (disponible en PC) dentro de h posici6n de memoria O, modifica a la posicin de memoria 1, y desactiva IEN, R y SC a O . Esto puede hacerse con la siguiente secuencia de
micmpraciones:
Durante la primera M a l de temporizacin se borra AR a O, y el contenido de PC se transfiere al reghtro temporal TR. Con la segunda seiZEal de temporizaci6n, la direeeibn de retorno & almacena en la memoria en I a posicibn O y PC se carga a O. La kercera sefial de temporizacibn incrementa PC a 1 , desactiva IEN y R, y el'control regresa a Toa b n a r SC a O. El inicio del siguiente cielo de insItriccidn tiene la condicibn RT, y el contenido de PC es igual a 1. Despus el control recorre un ciclo de instrucci6n que busca y ejecuta l a instnickin BUN en la lacalidad 1.
5-8
diagrnma de flujo
En la figura 5-15 se muestra e l ltimo diagrama de flujo del ciclo de instruccin, incluyendo un ciclo de intermpci6n para la computadora bsica. E i flipflop de interrupcihn R puede iniciarse en cualquier momento durante las fases indirecta o de ejecucibn. El control regresa a la &al de temporizacin Todespuds de que SC se borra a O. Si R = 1 , la computadora qecuta un ciclo de intempci6n. Si R = O, la compubdora ejecuta un ciclo de instruccibn. Si la initrucci6n de referencia a memoria, la computadora comprueba primero si existe una direcci6n indirecta y despuk contina ejecutando la
SEC-
5 8 DeSajpih
167
Inicio
SCtO.IEN t 0 , R t O
I
(Ciclode lnstruccibn)
=O
= 1 (Ciclo de inwrrupcibn)
1r
RTo
RTD
AZP+PC
9 f
I
R ' TI M
R' TZ
AR+O.TR+PC
1
RTI
IRcM[ARJ,PCtPC+l
11
[AR] t TR, PC t O
1
P C t P C + 1, IEN+O RtO,SC+O
RT2
u
~istrooI/O)= 1
=O
( R e f e m a memorla)
I
9 f
Q/O)
=1
=O
(directo)
"
DflT3
" W'T3
Ejecutar
'
D'TI T3
lr
Db71*T3
Ejecutar
la instruccin de
A R t M[AR]
Nada 1
la instruccibn de:
eniradasalida
refereocia a regiritm
~(tabh 53)
i r
( t z i b h A 5 )
Ejmiar
Y
Figura 515 Tabla de flujo para la operacin de una mmputadora.
instruccin decodificada de acuerdo con la tabla de fIujo de la figura 5-11. Si Ia instrucci6n es de referencia a registro se ejecuta con una de las microopmaciones listadas en la tabla 5-3. Si es una uistniccibn de entradasalida, se ejecuta con una de las micrmperaciones listadas en la tabla 5-5. En lugar die utilizar un diagrama de flujo, podemos d d i r la operaci6n de Ia computadora con una lista de enunciados de transferencia de registro. Esto se realiza al a~umular todas las funciones de control y microoperaciones en una tabla. Las entradas se toman de las. figuras 5-11 y 515, y las tablas 5-3 y 5-5. Todas las funciones de control y micrmperaciones paka la computadora s m m e n en la tabla S-6. Bii la tabla, l o s enunciados de transferencia de registros describen de manera concisa la organizacin interna de la computadora basica. Tambibn proporcionan la informaci6n necesaria para el diMo de los circuitos 16gicos de l a computadora. ias funciones de control y los enunciados de control condicional que se listan en la tabla formuian las funciones booleanas para las compue- en la unidad de control. La lita de rnicrwperaciones especifica el tipo de entradas de control necesarias para los registros y la memoria. Un lenguaje de transferencia de registros es t i l no 5610 para d e i r la organizaci6n interna de un sistema digtal, sino tambin para especificar los circuitos 16gicos necesarios para su -o.
59
1 . Una unidad de memoria con 4096 palabras de 16 bits cada una 2. Nuwe registros: AR, PC, DRf AC, IR, TR,OUTR, lWPR y SC 3. Siete flip-fiops: 1, S, E, R, IEN, FGI y FGO 4. Dos decodificadores: un decodificador de operati611de 3 X 8 y un d d i c a d o r de temporizaci&nde 4 X 16 5. Un bus c o m h de 16 bits
ha
f -
Ia unidad de memoria es un componente estndar que puede obtener .secon facilidad en el mercado. L m registros son de1 tipo que aparecen en la figura 2-11 y m similares al circdto integrado 74163: Las flipflops pueden ser del tipo D o JK, como se describen en la seccin 1-6. tos dos decodificadores son componentes estandar sidlqres a los que se prexntan en la m i 6 n 2-2. El sistema de bus c o m h puede construirse con diecisii multiplexores de 8 X 1 en Luia conf~guracin similar a la que aparece en la figura 4-3. Ahora vamos a mostrar dmo dL&r las compuertas lgicas de control. La siguiente secciin se refiere al &fio del circuito sumador y 16gico d a d o c m AC.
+b
m 5-9
TABLA M Funcionts de $~ntroI - a c i w
U de una mnpuiadma
para la -putadora bsica
169
Reciipaar
Decodificar
intempei6n
R'To:
R'TI:
R'T2:
D;ITa:
ARcPC (RtMfAR], P C ~ P C +1 DO,. .. , D,t J h d & c a r IR(12-14) AR +aR[o-ll), 2 tfR(1S) AIP tM [AR]
indireda:
T8T;T;(IEN)(FCJ+FGO): R t l RFo: mto, TR+PC
RTi: RTz:
M [ A R ] t T , PC+O PC-PC+l, I E N t O , R t O , S C t O
R e f e a memoria.
AND
DpTd: &TJ:
ADD
IDA
STA BUN
& T . : 4T5: AC+AC+ DR, E t C d SCrO 4T4: DR +MIAR] 4T5: A C t D R , SC+O DaT,: M[AR]+AC, SC +O
D4T4:
:
PG-AA,
BSA
ISZ
~efefenda' de registro:
4Ts:
D 6 T . :
DsTs: &Te:
MIAR] +PC, AR *AR + 1 P C t A R , SCcO DR +MIAR] DR +DR + 1 M(AR] tDR , Si (DR = O) E ~ ~ ~ w (PC Ec s PC
1,2,
,111
SCtO
+ 11,
SC +U
CLA
CLE
CIR
m.4
CME
a qistros)
dC +E
ca
INC SPA SNA SZA
SZE
E+E ~ c t s h AC, r A C { l S ) c E , E +AC(O) AC +shl AC, AC(0)+ E , E cAC(15) AC+AC + 1 If (AC(15) = O ) entonces (PC+PC + 1) Ef (AC(l5) = 1) entonces (PC+PC f 1) If(AC =O) e n PC+PC + 1) if ( E = O) entonces ( P C t P C + 1)
S60
WLT
Entrada-saiida:
INP OUT
SW SKO ION IOF
Mj= p (oomh ida^ las instnikbrm de enbada-salida) IR@) = W (i= 6,7,8,9,10,11) p: SCtQ p i j i : AC(CL7)t l N P R * FGl t O pBio: OUTR +AC(&7), FGO +O ~ B P : If(PGT=l)entonces(PCtPZ:+l) n (PCtPC 1 ) pBa: If (FGO= 1) e pB,: IENtl
pB6:
@N+O
1 0' ii
C A -
UNW
Organhci6n y d
i de computadoras
Compuertas lbgiclas de control E I diagrama de 'bloque de Ias compuehs 16@;ica$de control se muestra en la figura 54. tas en-6 de este c h i t o provienen de los dos demdiiado-, e l f l i e p I y tos bita del O al 11 de IR. La5 otras entradas ldgicas de control son: AC del O al W para comprobar si AC = O y para detedar e l bit de signo en AC(15); los bits DR del O al 15 para ebrhprobar si DR = O; y
los valores de los siete flipflaps. Las salidas del circuito de l ~ i c ade control son:
l. Seales para controlar las entradas de los nueve registros. 2. Ceiales para cantrohr las entradas de lmtura y escritura de la
memoria. 3 . %fales para iniciar, borrar o complementar lm flip-flqs. 4. Wab para S , SI y S, con el n de seleccioi.iar un +bu para e l bus. 5. W l e s para controlar el circuito sumador y 16gh de AC.
Las es+cacwnes par8 las diversas d a l e s de control pueden obtenerse en forma directa de la lista de enunciados de transferencia de registros en Ia tabla 5 4 .
Los regis-
Control de registros y memoria de la computadora conectados a un sistema de bus comn se muestran en la figura 5-4. Las entradas del control de registro son LD (cargar), INR (incrementar) y CLR (borrar). Supongamos que queremos derivar l a estructura de compuerta asociada con las entradas de m n t d de AR. Revisamos la tabia 5-6 para encontrar todos los enunciados que no cambian
contenido de AR:
Los prberos tres enunciados specifican la transferencia de informaci6n de un registro o de la memoria a AR. E l contenido del registra fuente de la memoria se coloca en el bus y e l contenido del bus se transfiere a AR al habilitar la entrada de control LD.E l cuarto enunciado b r r a AR a O, El Ziltimo enunciado incrementa AR en f . Las funciones de control pueden combinarse en ,tres funciones booleanas como sigue:
de una computadora
1 n
donde LD(AR) es la entrada de carga de AR, CLR(AR) es la entrada de borrado de AR y iNR(AR) B la entrada de incrementar de AR. Las c m puertas 16gichs de m n b l asociadas con AR se muestran en la figura 5-16. En forma similar podemos derivar las compuerkas de control para los otros registros a1 igual que la lbgica necesaria para controlar Ias entradas de lectura y escritura de memoria. Las compuertas 16gicas amiadas con la entrada de lectura de memo& se infieren al revisat la tabla 5 4 para encMtrar 10s 'wnm:ciados que especifican una operacidn de lectura. ta operacirin de lectura se reconoce por el smbolo t MrAN.
La salida de las compuertas kgicas que implantan la expresi6n booleana deben conectarse a la entrada de Iechrra de la memoria.
donde p = D71T3> y Y7 y B6 son 10s bik 7 y 6 de IR, respectivamente. Por otra parte, al final del ciclo de interrupcidn IEN se tsorra a O.
Figura 5-16 Compuerta de m i r o l asdadas con AR.
12
M e 1 bus
' r
AR
12
r
Hacia el bus
S i utiihmas un ffipflop J.K para IEN, la compuerta de control I6gica ser& coma la que aparece en la figura 5-17.
l bus c o m h de.16 bita que aparece en la figura 5 4 se controla mediante las entradas de ssleccibn S= SI y So. El n h r o denmal que aparece con cada entrada de bus especifica el nfimero binario equivalente que debe aplicarse a la entrada de seleccibn para elegir el ~egistro correspondiente.La tabla 5-7 especifica los nmem binarios para S2S,So que seleccionan cada registro. Cada ndmero binario est asociado con una variable booleana x, hasta x7, que corresponde a l a estructura de compuerh que debe estar activa para wleccionar el registro o la memoria para e l bus. Por ejemplo, cuando x, = 1, el valor de S$iSo debe ser O1 y se seleccionara la salida de A R para el bus. La tabla 5-7 se reconme como la tabla de verdad de un codificador biario. La ubicaci6n del codificadar en las entradas de la lgica de selecei6n de bus ce muestra en la figura 5-18. Las funciones boolenas para el codificador son
Con el fin de determinar l a lgica para cada entrada de codifieador a necesario encontrar las funciones del control que colocan los registros correspondientes dentro del bus. Por ejemplo, para encontrar la 16gica que hace x1 = 1 , revisarnos todos l o s enunciados de transferencia de registros de la tabla 5-6 y tomamos aquellss que timen AR como fuente.
-IEN
de bus
Ninguno
AR
PC
DR AC IR
TR
Memoria
Se selecciona la salida de datus de Ia m o r i a para el bus cuando x7 = 1 y S#lSD = 111. ta compuerta lgica que genera xr tambin debe aplicarse a la entrada de lectura de la memoria. Por l o tanto, l a funci6n booleana para q es igual a la que se i n f w antes para la operad6n de lectura.
MulilpIexorde
Codifidor
L
$10 D h o
de un acumulador ihgico
175
de las funciones de contmI en la lista anterior. La funcin de control para la mkmopmaci6n de borrar es r Bit donde r = D71rT3y BI1 = IR(11). La aalida de la compuerta AND que genera e s b fund6n de control s t s l conectada a la entrada CLR del registro. D e igual manera, la salida de la compuerta que implanta la microoperacin de incrementar est conectada a la entrada iN del registro. Las otras siete operaciones se generan e n el circuito sumador y lgico y se cargan dentro de AC en el momento adecuado. Las salidas de Ias compuertas para cada funci6n de control estn marcadas con un nombre simboliea. Estas salidas ae utilizan en el -o del circuito sumados y lgico.
Circuito sumador y lgico El circuito w d o r y 16gco puede subdividirse en 16 etapas, donde cada una comesponde a un bit de AC. La construccin interna del registro es como
figui5-29 EPtrudum de ?puerta
-de
e l sumador
Y~W ' Do
'9
m
INR
CLR
t6 :hacia
el bus
Re101
AND
b
DI
4 Ts
P
Bll
DR
INPR
M M
SHR
SHL
INC
CLR
8 1I
aparece en la figura 2-11.A l tevisar esa figura notamos que cada etapa tiene un fipffop JK,dos compuertas O R ,y dos compuertas AND, La entrada de carga (LD) esti conectada a las entradas de las compuertas AND. La figura 5-21 muestra una de esas etapas de regisb AC (sin las compuertxts OR). La 'entrada esta etiquetada Ii p la salida AC(i). Cuando s e .habilita la entrada LD, las 16 entradas 1, para i = O, 1 , 2, ., 15 se transfiewn a AC (0-15).
dmft~ WmtlllfOr
y Idglco
DR (i) AC(i)
invertir e1 valor del bit en AC. La operaci6n de corrimiento a la derecha transfier el bit desde AC (i 1) y la operacin de desplazamienta a la izquierda transkie el bit desde AC (i - 1). El circuito sumador y 16gico consta de 16 etapas interconectadas.
5-2.
Una mmp~tadora utiIiza una unidad de memoria con 2S6K palabras de 32 bits cada una. Un d i g o de instruccibn binario se almacena en una palabra de memoria. La instnieci6n tiene cuatro un bit indirecto, un cdigo de operacin, tuta de d i g o de registro para eswficar uno de 6P regisirosy una parte de dired&
v.
a Cuntos bits hay en e l e 6 d i de operacin, la parte del d i g o de @stM y 1s parte de -dk&r? b . D i j e el formatode palabra & direccin e indique la cantidad de bits en
cada parte.
5-2
53:
cuntos bits hay en Ias entradas de datos y de direccibn de ia memoria? Cul ES i a diiewmh enbe wra instmicci6n de direcchamiento directo e h d k t o ? @ ~ h t a s referencias a memoria se nwesitan para cada tipo de ins~cci6n crin el fmde traer un operando al registro del procesador? las siguknh entradas de controI estrin activas &-I el sistema de bus que se m w t m en la fipra 5-4. Para cada caso,especifique la trmshencia de m@sttuque se ejtxutd durante la siguitransiQ6n de reloj.
c.
a . l
b .
1 E. J d O
1 O O
1 O O
IR
Ler
PC
DR AC
Escribir:
m
Sumar
S 4
Las siguientea h n s h c i a s de regkos se van a ejecutar en e sistema de b figura 54. Para cada transferencia e8peciEique:1)e1valor binario que debe apiimm a Ls enbidas de deecibui de bus Sz, Siy Sd 2) el registro cuya entrada de control LD debe estar activa (si es que hay alguna}; 3) una opmacn de w r a o d t u r a (sim nnecesita) y 4) la opemcibn en el circuito sumadar y 16gim { s i hay algtrml).
a a+FC
b. IR tM[AR]
r. M[AR)t-TR
d. AC t D R , DR c A C (mlzadas en forma simdtnea]
5-5.
Explique por qu no pude e j m cada una de las siguientes rniaoop raciones durante un soio p& de reloj en el gistema que se muestra en la figura 5 4 , Espefifique una secuencia de m i ~ o o ~ a c i o nque e s *ten la operaci6n
a. I R t M [ P C ]
5-6.
(AC no cambia) Considerelos formatos de Inclmcein de la mpu&dora bsia mostrados en la figura 5-5 y la lista de instruccionesproporcionada en la tabla 5-2. Para cada una de las siguientes idmcciorm de 1 6 bib, prop0rci.o~ el &digo hexadecimal de cuatro bits y explique msus propias palabras cui instnic ci6n va a ejectar. a. OOO1 0000 OOIQ 0309 b . 1011 W1O O1W
b. AC+ AC c. Di3 tD R
+ AC
+ TR
w 1
~Cuies son las doshtnicciones necesarias en la computadora W e a para iniciar e l flip-flop E en 12 Dibuje un diagrama de twnporizacih similar a la figura 5-7 considerando que SC se borra a O en el tiempo T3 s il a s e h l de eonbl CCp &A activada.
5%
C,se activa w n la transici6n de reloj positiva a h a d a c m T, E l contenido de AC e n la computadora bsica es el hexadecimal A937 y el valor wchl de E'es 1. Determine el contenido de AC, E, PC,AR, e IR en hexadeeimal d v u & de la ejmci6n de Ia instnicci6n CLA.Repiia 11 veces
ms, comenzando desde mida una de las instrucciones- de referwicia a regish. El valar inicial de PC B d hmadecimalO21.
5-10.
Una instnicci6n en la direcci6n 021 en la computadora bsica tiene I = O, un d i g a de operacin de la instru46n AND y la park de la direccin igual a 083 (todos los niirnema mtn en hexadechal). La fibra de memoria en la direcc6n E& contiene el operando B8F2 y el contenido de AC es A937. Analice el ciclo de instmccii5n y determine el contenido de los siguiente registros al fural de la fase de ejecuci6n: PC,AR, DR,AC e IR. Repita el problema seis v ms comenzando con un abdigo de opera& de o h instruccidn de referencia a memoria. Muestre el contenido en hexadecimal de los registm PC,AR, DR, IR y SC de la computadora basica cuando se bu= y qecuta una instruccin indirecta iSZ de la memoria. El antenido de PC es m.El contenido de la memoria e n la direccin 7FF es EA9FFE l contenido de la memoria en la direcci6n A9F es OC35. E i contenido de la memoria en la diieeci6n C35 es Pqofcione la -&a en una tabla con cinco columnas, una para cada r e @ h y un 91611 para cada eai de temporizan, Muestre el contenido de 10s registros dspus de l a transicin positiva de d a pulso de
M5-12.
El contenido de PC en la computador~Mcica es 3AF (todos los niirnerasestan en hexadechal). E i wtenidp de AC es 7EC3.El antenido de la memoria
M.
Explique por qu& no puede ejecutarse cada una de las siguientes microop raciones durante un solo pulso de reloj e ne l sistema que se muestra en la figura 5 4 . Especifique u~ secuencia de micrmperacioneei que ejeniten la operacin.
a. IR tM [PC] b . A C t AC + TR c. DR +DR + AC (AC no cambia)
5 6 .
Considere los formatos de imLnied6n de la'compubdoraM c 4 i mostrados en la figura 5-5 y h Esta de instruccione proporcionada en La tabla 5-2. Para cada una de las siguientes instrucciones de 1 6 bits, proporcione el cdigo hadecimal de cuatro bits y explique m n BUS propias palabras 4 instruc ci6n M a ejmtar.
5-7.
5-8.
para iniciar el flipflop E en l? Dibuje un diagrama de temporizaa6n similar a la figura 5-7 considerando que SC se borra a O en el tiempo Tas ii a seifal de control C7est activada. 1 2 , se activa con la transicin de reloj positiva &da con T1. El contenido de AC en la computadora bsica es e l hexadecimal A937 y d d o r inicial do E'# 1. W r m h e1 contenido de AC,E, PC,AR, e IR en hestadecimal despus de la ejecucin de la instnicci6n CLA. Repita 11 veces ms, comenzando desde cada una de laa instrucciones de referencia a r@b. El valor inicial de PC es el h a d e c i d 0 2 1 . Una instrucci6n en la direecidn O21 en b computadora bsica tiene I = O, un d i g o de operacih de la insbmin AND y la parte de la direm6n igual a 083 (todoslos niimeros d n en hexad&al). La palabra de memoria en la d i 6 n 003 contiene el operando BSF2 y el coniddo de AC ES A937. Ardite el delo de instnicci6n y detemine el contenido de los sieentes registros al final de la fase de ejeeuei6n: PC,M, DR,A C e IR. Repita e l problema &S veces ms comenzando m n un &digo de opaei6n de otra instniOn6n de reerencia a memoria. Muestre el contenido en hexadecimal de los registros PC,AR, DR,IR y SC de la computadora W i e a d o se busca y ejecuta una insbucdh i n d M E2 de la memoria. E l contenido de PC ES 7PF. El contenido de la memoria en la direcrtbn 7FF es EASF. E l conaenido de la memoria en la direcci6n A9F es QC35. El contenido de la memoria en la dhcci6n C35 m FSF Pmporcione la respuata en una tabla con &ICO columnas, una para d a y un rengln para =da seai de temporimei6n. Muestre el contenido de los registros despusde la transicih positiva de cada pulso de
5 9 .
5 1 0 ,
5-11.
M ] .
5-12
El contenidode PC en la computadoraW c a es 3AF (todus los nmerosestn en hexadecimal), El cantenido de AC es Q contddo de la memoria
513.
en l a direccidn 3AF es 932E.El contenido de la memoria en la d i 6 n 32E a 094C. E i contenido de la memoria en la d i d n 9AC es 8B9F. a. Cules la instnaccibn que se buscar y se ejecutara dspuh? b . Muestre la m a 6 n binaria que a d h r i en AC niando se *te k instmcci6n. c. Proporcione el contenido de los registros PC, AR, DR, AC, e X R en hexadecimai y l mvalores de E, 1, y el contador s e c u d CC en binario al h l del ciclo de instrucci6n Considere que ias primeras seis de rek, ' de la computadora W e a que se listan en la tabla S 4 se van a cambiar a las instrueeim especificadas m la tabla siguiate. EA es la direccin efectiva que reside en AR durante el tiempo TJ. Considere que el circuito sumador y 16gieo de l a figura 5-4 puede m k a r la operaci6n OR exclusiva AC + AC @ DR Considere a d d que e1 circuito 16grm y sumdor no pude efechrar wr forma dilecta la resta. k resta debe hacerse utilizando el complemento a nfimems 2 del susbaendb al complementar e incrementar AC. Proporcione la 6ecuencia necesaria de enunciados de hansfereneia de regispara decutar d a una de las inrshccioneslistadas c o d o con i a temporizaa6n T , . Ntese que e l valor de AC no debe modificarse, a menos que la instnidn especifique un cambio en su contenido.Ustd puede utilizar TR pam a i m a c e ~ el r contenidade AC en forma temporal o pude intemb'ir DR y AC.
SImbolo
-hcihdmMiia
IkcripPSn en palabras
000
001 010
XCH
SEQ
011
lOJ
BPA
5-14.
i0i
ACtAC@M[EA] M [ & I ] t M [ E A ] f AC AC+AC - M[EAJ AC tM [ E A ] , M [ M ] t A C If (M[4AJ = AC) e n [PC+PC + 1) If (AC > O) entonces
O R exclusiva a AC
Sumar AC a la memoria Restar en memoria de AC Intercambiar AC y la memoria 1 3 si hay s i p de igual
[PC+EA)
Haga los siguienb cambios a l a computadora Msica. l . A p p e un al sisbma de bus C i R (registro de mQ] que se seleccionar eon S$,S, = 000. 2 . Sustituya la instnieeibn TSZ con una instnicci6n que cargue un nilmero dentro de CTR.
Direccin LDC
CTR +M Illireccih]
cambio.
5-15;
5-3se va a m b i i a una memoria a, SX 1 6 , requirimdo una direeabn de 16 bits. E lf o m t o de i n s t r u c c i n de la refemnaa a memoria que se muaka en la figura 5 4 a ) no cambia para 1 = 1 (direcci6n indirecta) donde l a parte de d i d b n de la inshcdn se proporciona mediante los 16 bib de la palabra que sigue a la ~ ~ 6Modiqw n . las m i a m p m i o n e s durante los tiempos T% T3(y T,si es neceario) para apegame a esta con& guraabn.
$ 1 6 .
UM eomputa$ora utiliza una memoria de 65,536palabras con 8 bits en cada palabra. Tiene l o s siguientes *w: PC,AR, TR {de 16 bib cada uno) y AC,.DR, IR (de 8 Wis cada m). Una insmiccibn de reterencia a memoria
palabxas: un &digo de operaci6n de 8 bits (unapalabra) y una d i d b n dq 16 bits (en las sigiiiente~ dos palabras). Todos los operandos son de .8 bits. No hay un bit indirecto. \ a Dibuje un diagrama de bloque de la computadora que muestre la memoda y los registros como en la figura 5-3. (No utilice un bus
consta de
comh.)
b . Dibuje un diagrama que muestFe da posian en Ia memoria de una instrueciSn ifpica do tres palabras y el operando de 8 bits correspon-
diente. I c L i s t e l a ~ d e m i ~ p a r a m p e r a r u n a ~ n d e referencia a memoria y colocar despub el ope~ando en DR.Comience a partir de la seal de temprizaci6n TI
5-17.
5-18.
Una computadora d i t a l time una W a d de memoria con capacidad de 1 6 , 3 8 4palabras, 40 bits por palabra. E i formato dei d i g o de instruccibn consta de 6 bits para la parte de b operacinn y 14 bits para la parte de direcci6n (no hay bit de modo M i ] . Dris instruMone8 s e guardan en una palabra de memoria y hay dispuible un e t r o de inshmiones de 40 bits en la unidad de conkml. FonnuJe un p d r m i e n t o para recuperar y ejewiar ~iristniccioms para e i a computadora. Un programa de salida reside en la memoria comenzando en la direccin 2300. Se ejecuta despus de que l a computadora reconoceuna interrup56n mando FGO se convierte en 1 (mientras IEN = 1). a. Qu instnicci6n debe colocarse en la direcan 1? b . Culesd e h ser las das Glrimas instruacion& del programa de salida?
ios enunciad? de bahsEerencia de registro para un registro R en la memoria de una computadbra son los siguienb (las X son funciones de control que ocurren en forma aleaforia):
5-r9.
X &:
bloque. Muestre c6mo las frinciones de control X, a & seleccionan l a entrada de control de carga de R, las entradas de selemi611 de los multipleK O que ~ uste,d incluye en e l diagrama y las entradas de ledura y d i u r a
de memoria.
5-20.
h s .operacionesque van a ejecutarsemn un Gpflop F (el cual m se usa en la eompuadora Msicra) sewipifiean mdante las siguientes enunciados de tramferencia depgklxo:
:
flI:f + O
zT2: F tF
SS: F +G
D e &a manera, el contenidode F no debe cambiar. Dibuje el diagrama 16gico que muestre las conexiones de las compuertas que forman las funciones de control y las entradas del fiip-flop F. Utilice un fip-fiop ]K y minimice el
5-21.
5-22
5-23,
5-24.
5-25,
nmero de compuertas. Derive las compuertas de control asociadas con el contador de programa PC en l a eomputadora bAsica. Denve las compuertas de control para la entrada de escritura de la memoria en la computadora bsica. Muestre la Ibgica completa de los flipflops de interrupci6n R en la computadora bsica. Ufilice un Bipflop JK y minimice e l nmero de compuwb~. Derive la expresi6n h l e a n a para q (vase la tabh 5-7) M w h e que x, puede genmarse con una compuerta AND y una compuerta OR Derive la expresin booleana para la estructura de compuerta que borra e l contador secuencia1 CC a O. Dibuje el diagrama 16gico de la compuerta y muestre cmo se conecta la salida a as entradas I N R y CLR de SC (vQise la figura 54). Minimice el nGmero de compuertas.
1 . Be& C. G., J. C. Mudge y J. E. McNamara, Computer En@'-n8. Bedford, PIIA:Digital M,1980. 2. Booth, T .L . ,Intduction %oCompuler Enginwing, 3a M.Nueva York JohnWiley,
1884,
182
cAPrnno
6. Lewin, M. H .Logie mign and Camputer Orgmbtmn. Reading, MA:Addim Wesley, 1983.
7, Mano, M. M,Computer Enghming: Mmre Decign. Englewood C l i , NJ:Prentice Hall, 1988. 8. Patterson, D .A. y L.H m y , CmpW Archiiecture: A A n t i f n t k Appmch. ! % m Matm, CA:Morgan Kaufmann Ilublishm, 1990.
9. Prosser, P.P . ,y D.E.Winkel, Tke At3 qfigital Design, 2a Bd. Englewd Cliffs,
Prentice Hall, 1987 10. Chiva, S. G,, C m p t Design ~ atta Arclnit~hre, 2a. E. Nueva York: HarpeeCollins
Publishers, 1991.
InIrduEQbn Lenguaje de mquina ZRnguaje d B L d o r E 1 eqsqbiador C i c h del programa Pmpmaa6n & operaciones aritm&aw y lgicas
subnltiri;as
F'rogrd6n de entrada-sada
6-1 Introduccin
Un sistema de computadora total incluye tanto circuiteria (knrdwre] como progmw&n (sopzlMtre). El hardware consta de ios componentes fsicos y
tado el equipo asociado. El software se mfie~ea los programas que estn .&ritos para la: computadora. E s posible conocer difemnks aspectos de programacin de computadora s i n xelacienarse con los M e s de cmo opera h Tambin es posble diseiiar parb de Ia circuikrla sin conocer las pdbilida& de su softwarr, Sin embargo,quienes se i n m en la arquitec tma de la computadora d&n conocer tanto l a con10 el softwm, porque los das a ~ influye" b m o en d otro. Emibir un programa para una computadora consiste en ~ ~ c aenr , forma direda o i n d i t a , una secuencia de instrucciones de dquina. b instrucciones de miquina dentro de la computadora forman un patr6n binario con el que a lo$:usuariw les iesuEtrr difcil trabajar y entender, si no e~ que imposible. Es preferible escribir programas con los smbolos m s familbre3 del conjmto de caracteres alfandricos. Como consecuencia, existe la necesidad de traducir los programas simb6licos orientado8 al usuario, a programas binarioa que reconozca el hardware.
~~.
~~
184
b p m a n -,de
la computaba
co~jutito de insfrircciones
frIi pmgmma d t a por eI u s d o puede serhydqadienk o dependenqw corre su progama. Por ejemplo, un programa & de la wmputrdma &#o wr Fortran eatilndar es indepdfenk de la mquina porque la mayora de las mmputadwas un -ama traductor que convierte el programa Pbrkan & n % n d a T + & m c l i pKrrviri~de la computadora cbpmible en la instalacibn p d & , Pera d ~rdjprna traductor es dependiente de Ja msyuiha porque debe traducir el pmfpnw"Fortran a l c M i i binario recon* &o por la cirqdki de h mphtadorri particular que s e utih. ~ " ~ ~ ~ ~ * ~ n i n c e p ^ d e p r o g e a m a c i 6 n - ~ = ~ . mitstra su r$aci6n con la r e p m k i h de htrucciones de hardwara l a primera parte pmenta la operaabn y eSentura bsiis de un programa que traduce un p q m m Stnwlico de usuario a un programa I i W eguivaimte El anlisis enfatiza Ioe mncqbos i m p r h b del traducbor ms que los M e s de pducir en realidad el p q m m mismo. l a utilidad de las diversas imtmcciones de mquina se demuestran mediante v+mplos de pmpmaci6n bsica. El conjunto d e inshucciones de ia computadora bsica, cuya organizaci6n de hardwa~ se explor en e l capitulo 5, se utiliza en este captulo para ilustrar mu&s de las W c a s que se usan con reguiaridad para programar una computadora. t)e esta - m e r a , 'es posible explorar la relacin en& un programa y las operaciones de la circuikria que ejecutan las instrucciones. Las 26btrucciones de I a computadora bAsica se repiten en la tabla 6-1 para proporcionar una referencia &cil para los ejemplos de programaci6n que siguen. A cada uistnicci&n asigna un shbolo de tres letras para facilitar h egcritura de programas simblicos. Las primeras siete instnicciones son de referencia a memoria y las otras 18 son de referencia a registros y de entrada-salida. Una instnicci6n de referencia a memoria tiene tres partes: un bit de modo, un c 6 d i g ~ de o p r ~ de 9 ires Pits, y una direccin de 12 b i t s . El primerdigito hexndechal de ruia instrucci6n de referencia a memoria incluye el bit,de modo y el &ligo de opwacibn, ius otros tres digito~ espe5fi-n la direcci6.l.cEnuna instnicci6n de direccin indirecta el bit de mmiq es 1 y el valor del primer dgito k d e c i m a l flucth entre 8 y E. En el modo indirecto, la variacin es de O a 6. L ~ otras B 18 instniecione tienen un &digo de ope~aci6n de 16 bits. El c d i i pwa cada instrucci6n se lista como un nmero h d e c i m a l de cuatro d @ b . E l primer dgito de una instruccibfl de referencia a registro es siempre 7. E 1 primer dgito de una instruccin de entrada* es siempre F, El d d d o m que se usa en la columna de &mipci& denata la d h c b efectiva. La letra M hace refemcia a 4 palabra de memmia (operando) que se encuentra en la direcci6n efectiva.
~~
m m o
Un pwama
S iyia lista de instrucciones .o enunciados para dirigir a la computadora con el pmpbito de que ejecute ,una tarea de procesamiento de datos. Kiten varios tipos de b g i ~ a j e s de pmgra~nati6nque uno puede
SmboIo
AND ADD
Cdigo hexadecimal Aplitar AtJI3 M a A c Sumar M a AC, %arrear aE t k g m AC desdeM Almacenar AC en M Brincar en forma.inmdiciona1 a rn Salvark~dereiomoen m y ramificaram + 1 Jn~renaentar m y s.altar si hay un cero Bmrar AC h rE Complementar AC Complemehtar E Cimlar a la de&& E y AC Circular a la izquierda E y AC I m m e n t a r A, BrJncar si AC e s positivo Brincarsi AC esnegativo Brincar s i AC es cero Brincar s i E es cero Detener la computadora Introducir infomiacibn y borrar bandera Sacar infmmaci6n y barrar bandera Seilttu si la bandera de entrada esa activada Spltar si la bandera de salida est activada Hbilhr la inkmpcibn Deshabilitar fa intmmpci6n.
CLA
CLE
CMA CME
CIR CIL INC SPA
SNA
escribir para una computadora, pero sta &lo puede ejecutar programas mando esGn representados de manera @terna en f o m binaria, Los programas escritos en cualquier otro lenguaje deben traducirse a la representacin b i r i a de las instni&iones antes de que la computadora pued ejecutarlos. 'Los programas escrit~~ para una computadora pueden estar en una de las siguientes categorfas:
1 . Cdigo binario, Este es una secuencia de instrucciones y operandos m b w o que lista la representacin exacta de instrucciones conforme aparecen en la memoria de la computadora. 2 CMgo wtul o hexad~imal. Este es una traduccihn equivalente del cdigo binario en representacin octal cr hexad-l. 3. Cbdigo ci&lh.' El usuario emplea shboIos (letras, nfirneros o caracteres especiales) para la parte de opera*, la parte de direcci41i y las otras partes del de irwtniccibn. Cada instruccin
186
m-~~bsica de Ia cwrputadora
simblica pude ad~cim a una instniecibn codificada en binario. Esta traduccin se hace mediante un programa especial llamado ensarnbhhr. Como un d l a d o r traduce los los, este lipa de propmas simb6licas se denomina programa de lenguaje enmb*. 4. Lmtpjm I& p r q m r d h & dfo nivel. Esb son lenguajes v i a l e s ~ W para reflejar W los procedhient&sutilizados en la 80Iua6n
I q u a j e msamblador
deunprob~enlugardeh~endd~~odelacimiiteda de la computadora. Un ejemplo de un lenguaje de programacin de alto nivel w F#tran. Elfnplezl sImbo108 y formatos orientad= a un
problema. E l pfograma e s t d t o & una gecuencia de enunciados establecid& de manera m a a como las personas prefiemn pensar cuando r~uelvenun probl&. S i e d q p , cada enunciado d& traducirse a una secuencia de Manes b k u j s antes de que la computadora pueda ejecutarlo. E i programa,que traduce un programa de lenguaje de alto nivel ce Uama m n p i M r . .,
L w j e e mquina
Habhdo con rigor, un propma de lenguaje, de &quina es un programa binario de categorfa 1. Debido a l a equivalencia simple enentre las repreientacioms M a s y octal o hexadecimal, ea costumbre denominar a la categora 2 ccmio tienguaje de Mgquina. Debido a la pelacidn de uno a uno entre una instrucdn kibblica y su equivalente binario, un lenguaje ensamblador se considera como un lenguaje a nivel de rndquina. Ahori usarmios la computadora bhsica para ilustrar la relacihn entre los lenguajes b i r i o y ensamblador. Consideremos e l programa biiario listado en la tabla 6-2. La primera columna proporciona la posicin de memoria (en binari~)~ de cada instnzcci4n u operando. La segunda columna lista eI contenido binario de estas localidades de memoria. (La localidnd es la h c i 6 n de la palabra de memoria en que se almacena la instniccibn. E. importante establecer la diferencia con la parte de di~eccibn de la instruccibn misma.) El programa puede almacenarse en la porcin de la memoria india d a y la computados puede ejecutarlo despus -comenzando desde la direccibn O. i a ckaiterfa de la computadora ejecutar4 estas instrucciones y
TfiBLA 6 2 Piiograrna binario para sumar dos n h e m
Localidad
SECU~N6 2 j e
de mquina
187
Localidad
htrucci6n
~ddigo he*adedmal
realizar Ia t a r e a que se pretende. Sin embargo, una persona que observe este programa' tendrsi dificultades en comprender que se consigue cuando se ejecute e l programa. N o obstante, la circuiterfa de l a computadora slo reconoce este tipo de cdigo de instrucciones. Escriir 16 bita para cada instruccin es tedioso porque hay demasiados digitos. Podernos reducir k cantidad de digitcrs por instruccibn si escribimos el equivalente odal del c6digo binario. Esto requerirh seis digitos por instrucci6n. Por otra patte, podemos reducir cada instmcci6n a cuatro dgitas si ekribimbs el c6dQo hexadecirnal equivalente &mo se muestra en la tabla 6-3. Es conveniente usar la representacidn hexadecimal, sin embargo, e debe tener en menk que cada dgito hexadecimal deke convertirse a su n h e r o de cuatro bits equivalente cuando se introduce e l programa en I a computadora. ta ventaja de egcriiir prop;ramas binariqs en forma octal'ohexadecirnal equivaiente debe s e r evidente a partir de este ejemplo. E l programa de la tabla 6-4.utik los nombres de instrucciones simblicos (listados en la tabla 6 1 ) en lugar de su equivalente b h r i o o hexadecimalL Las partes de direccibn de las instrucciones de referencia a memoria, al @al que las operandos, conservan su valor hexadecimal. N 6 h que la
TABLA 6 4 Pmgiama con digas de operstcih simblichp
hlidad
OW 001
instniccibn
Comentarios
LDA 004
ADD
STA 006
002
1
004 005
HLT 0053
m 9 OlMO
006
Cargar el prinero operando dentro de AC Sumar el,segundosprando a AC h a c e n a r iamsuma en la posici6n 006 Detener la compufadora Primer operando d o operando {negativo) Almamnar la suma aqu
188
/Origen del programa en la posicibn O /Cargar operando de la posicidn A /Sumar operando de la posicibn B /Almacenar la suma en la p i c i b n C
/Detener la computadora
A,
B ,
DEC 03
DEC -23
DEClO
c,
/Operando decimal /Operando decimal /Suma almacenada en la posicidn C /Fin del programa simblico
IHTEGEW
IIi
DRTR
EWD
A , 8'3
Bi C Br-23
C=A+B
consistemssignartresW&desdemanoria,d~paralms~y~ para la stima, y d q u 6 derivar la -en& de instrucciones binarias que forman la 8uma. Por l o tanto, un p~ compilador b d u e 1 - sfmbolcm & l p r o g r a m a 1 F o ~ a l ~ v a h b ~ q u e s e l i s ~ e tabh&2 nla
63
Lenguaje ensamblador
Un lenguaje de programacin se define mediante un conjunto de reglas. Los usuarios deben apegarse a todas las reglas de fomiato del lenguaje si desean que sus programas se traduzcan en forma correcta. Casi cada computadora comercial tiene su propio lenguaje ensamblador. Las regb para escribir un programa en lenguaje ensambladar se documentan y publican en manualque, por b general, tiene disponib1es el fabricante de la com~ubdora. La unidad basica de irn programa de l m p j e mamblador es una lEnea de d g ~El. lenguaje ezpdfm E define mediante un conjunta de reglas que qxdm los $lmbolos que p d utllizame y &o pueden combame para formar una Unea de c 6 d i p . &ara fomulamnos las reglas de un lenguaje d l a d o r para & i r programas ~ U C O de S la computadora bsica.
en t m colum-
Mh ~ ~ a m p
dtmdbn iIjnbblJEa
o especificar una d i i b n simb6lica. 2 El campo de instrucci6n especifica una instruccin o una seudoinstrucci&nde mdquina. 3. El+campode c m t a r t o puede estar vaco o incluir un comentario. Una~~limcEaistadeuno,doso~,peronomaSde~ ~ & a n ~ Q p ~ ~ d e b e s e r u n a i e @ l o s d o s
puedenserletrason~lpmpmadorpuedeeiq$aifbrmaatbi~el
~ l o . U n a ~ ~ l i c a e n e l c a m p d e ~ s e ~ m e d h t e una~mnapara queeldldorpueda ~ l a e o m o e t i q u e t a E 1 campo de instruccin en un programa de lenguaje emamblador puede m a r algunas de las siguientes opciones:
190
m W m a d h bhica de la computadora
1, Una instrucci6n de referencia a memoria 0 . 2. Una instnid6n de refemwia a registro o de entradadida (no MRI): 3. Una seudoin8tru0~ibn con o s i n operando.
Una instni& de dmmcia a memoria m p a dm o t m s h b I o s -mdospor~d~Elptimerodebeserunsimbolodebesl~quedefiraaun ~deopergci6nMRIdehtabla~1.61segundaesuna~6n~lia. R trercw. stnbolo,quepuede estar p-teono, es la L Si I d a m k , la l h P a q ? l w e n ~ U M i h s ~t o dd e k~b L a p d $ e l s h h 1 0 1 eipiiicri una k i s h d n de ~ o n a m k n t h odkch Una no-MRX se define como una instruccin que no tiene una parte de d k i 6 n . Una no-MRI se reconoce en el campo de instniccibn de un p m p m a mediante alguno de los S-la de t m letras que x htan en i a tabla 6-1 para las instrucciones de referencia a registro y de entradadda. En seguida se muestran los simbolos que pueden colocarse en el campo de instrucci6n de un programa.
. .
l$plpi -
CLA
nwMRI
d W 6 n d i i t a M
sePrdoinsMh
,primer simba10 de tres letras en cada h e a d+ ser uno de los smbolos de instrucciones de la computadora y debe estar listado en la tabla &l. Una insheci6n da referencia a memoria, como ADD, d e b estar despus de la &recci6n &rMiica. ia letra 1 pude estar presente o m. Una direccin simb6lica en el campo de inatnicci6n +ea la k m lidad de memoria de un operando. Esta localidad debe definirse en alguna , parte del programa porque aparece de nuevo como una etiqueta m la' primera columna. Para poder traducir un pmpma de Ienguaje ensamblador a un programa binario es abso1ukmente necesario que cada direccibn simMica que se menciona en 4 campo de i n s h d 6 n deba ocurrir nuwamente en el campo de eweta. Una seudoinstrucclbn no es una irwwibn de dquina sino una instruccin para el ensamblador que proporcione informaci6n acerca de alguna parte de h traduccibxl En ia tabla 67 se listan cuatro seudoinstrucciones que reconace el ensamblador. (Otros programas de lenguaje ensam- ' bhdor recon-n muchas otras instrudeiones.) La seudoinstnieei6n ORG
(origen) informa al ensambladat que l a w a c i b n u operando en la siguiente h e a va a colocarse m la p i c i 6 n de la memoria espdicada por e l nmero que est desp.u& de O&. l 3 posible u a h r ORG ms de una vez en un de un q m e n t o de memoria. E l slmbolo END . programa para + m se,mloca al final del p-ama para informar al ensamblador que termina el prog~ama.Las otras doa seudoinstaicciones especifican la base del operando y le dicen al emambhdor cbgto m v & el nmero listado a bhario.
ORO N
END DEC N
HEX N
Denota el fin del ptgrama simbblico NGmm decimal con signo N para convertirse en binario Nfimero hexadecimal W para convertir= en biario
El tercer campo de un programa est reservado para comentarios. Una h e a de cdigo puede tener o no m comentario, pero s il o tiene debe estar precedido por una d a i m para que el d l a d o r reconozca el comiaizo de un campo de c ~ n e n h i o Los . son tk para explicar e l programa y para comprender el pmcdhiento detallado que realiza el programa. Los comentarios se insertan s61o para explicar y no se consideran durante el
~~
proceso de traduccin a b i r i o .
Un ejemplo
131 p r o p m de la tabla 6-8 es un ejemplo de un programa de lenguaje ensamblador. La primera lima tiene la seudoinstni.cci6n ORG para definir el origen del programa en la posicibn de memoria (1W)16. tas siguientes seis lneas definen instnieciones de mquina, y las tltimas cuatro tienen seudohs~ccones. Se han utilizado tres direcciones simb6Icas y cada una est htada en la columna I como una etiqueta y en la columna 2 como una dimcin o una inshmin de d e m ~ & a memoria. T m e las swdoinstrueel final del programa. ciones wpeGon operandos, y la ltima Cuando el programa s e traduce a cdigo binarb y la computadora l o qecuta, se d i z a r a una resta entre dos ndmems. La w t a se ejecuta al sumar el minuendo del compIwrrento a 2 del swtraendo. El sustraendo es un nmero negativo, Se convierte a n h e m binario en repmtau6n de m p l e mento a 2 con s i p o porque hemos &abkido que todos los niimeros negativos conserven su forma de complemento a Z C m d o s e toma e l complemento a 2 dei sustraed (al mmplementar e incrementar AC), - 2 3 se convierte en + 23 y la diferenQa es 83 + (complemento a 2 de - 23) = 83 + 23 = 106.
Traduccihn a binario
ensambtador
La traduccin del programa simb6Kco a biario se hace mediante un programa especial Iiamado mntblador. Las tareas que ejecuta el ensamblador se m p r e n d e r h mejor si realizamos primero la traduceihn en papel. La traducid& del programa simblico de la tabla 6-8 a su cdigo binario equivalente pude hacerse d examinar el programa y sustituir b smbol~s por su cdigo binano de rn5quh-mequivalerite. Comenzando desde la primera lnea, encontramos una seudoinstruccin ORG. Esta nos dice que co-
192
c&nm SEIS
Programa&
M i e a de l a computadom
mc
m,
SUB,
DE,
BND
rnencemos el programa b h r i o de la direccibn 1 O O hexadecimal. La -da lnea time dos stnbolos. Debe ser una instruccih de refmcia a memoria para estar colocada en la localidad 100. Como no tiene la Ietra I, el primer bit del cdigo de ingtniccin debe ser O. El nombre M l i c o de la opaci6n es LDA. Al venfiear la tabla 6 1 encontramos que el prirher digito h-decimal de la. instnrccin debe ser 2 E l valor biraario de l a parte de direccibn debe obtmem del snboio de dixeaci6n SUB. Examhmos la columna de etiqueta y encontramos este simbolo en h Unea 9. P a r a detmmhr su valor hexadecimal o h a mos que la ha 2 tiene una instrucd6n para la pdcibn 100 y las dems lneas una instmccibn de mquina con un o p a d o para piciones de mepnoria m e m h h Al cmtar lneas, meontramos que el ttulo SUB de la lfna 9 corrqmde a l a ~ i c de h la memorLa 107. Por 1 0 tanto, la d k x b - h e x a * de la iLIShZ1Cb6PL WiA debe ser 107. Cuando las dos partes de la instruccin se ensamblan obknemo~ el ckiigo hexadecimal 2107, Las otras ineas que qrewntan instruccionw de mquina se traducen de manera simiIar y su caigo hexadeQmal se b t a en la tabla 6-9. Dos ineas del programa simbblico espacifican operandos decimales con la seudo~trueci6n DBC Una tereera q e c i f t c a un cero mediante una swdoinstrucd6n HEX (tambin podA usarse DK).E l decimal 83 se convierte en binario y se d w a en i a p i c i b n 106 de su equiva!ente hewdeeimat El decimal - 23 es un nmem negativo y convertirse en bina50 en f o m de e o m p b t o a 2 con signo. El equivahte hexadechal del niunero binatio se coloca en l a posicidn 107, E ! simbolo END a i @ h el final dei programa shb6Zico y nos dice qw ya no hay limas por ,traducir. El prriceso de traduecidn puede simplificacse s i examinamos el progama s h M h completo dm veces. No se hace ninguna traducci6n durante el primer examen. S i h e n t e asipmm una posicin de memoria a cada instniccih de mquina y o p a d o . la asignad611 de p i c i o n e d&nir e l valor 'de direcci6i de las equetas y f a d i h el p m de traduccin durante el q u d o e~ameh Por k tanto, en la tabla 6-9, asigpmps la posicibai 1 M 3a l a primera hsbu& despuBe de ORG. Luego asignamos piciones m c i a i a
can
paraeadaUneade~quetmgaunainstnmindedquinau~perando
Codigo hexadecimal
Pdci6n
Contenida
Programa dmbdlico
mc
MIN,
SUB, DIF,
CMA
ADD M i N STA D E m T
DEC 83 DEC -23
HEX O END
hasta el final del programa. (A ORG y a END no se les asigna una posicin num6rica poque no reprwmtan una -instnreei:6n o un operando.) Cuando se owmina el primer examen - a m c h m cada vabr c o n su niimem de p i 8 6 n y fomatnos una tabla que defina el valor hmaddmal de cada direcci6n s h M i e a . Para este p p m , la tabla de stmbolo de d h c i 6 n es romo
s i g u e
m
SUB DIF
106
107 108
LDA Clls se traduce durante e l segundo examen al obtener e l valor hexadecimal, de LDA de la tabla 61 y el valor hexadecimal de SUB de la tabla de shbo1os de direccin que aparece arriba. Desp&, ensamblamos las dos partes en una instrucci6n hexadeeimal de cuatro dfgiim. El c6digo hexadecima1 puede convertirse con facilidad en binario si deseamos conocer exactamente d m o reside este programa en la memoria de la computadora. Cuando el programa enmbiador t m i n a la traduccibn de sfmbolos a binarios, el primer examen se llama primera pasada, y el segundo examen se Uama segun& pasada.
6-4 El ensamblador
Un ensambfador es un programa que acepta un programa de lenguaje simb6lico y produce su lenguaje de &quina bhario equivalente. El programa shnM~co de entrada se Uama prqgrattra fuente y el programa binario que resulta se llama programa objeto. El ensamblador es un programa que opera &re cadenas de caray produce una interpretaci5n biaria equivalente Representacibn de un programa simbbco en la memoria el p m de ensamblado, el programa simbbiiso dek almacenarse en memoria. El usuario telea el programa simb6lico en una terminal. Se utrliza un prcigrama cargador para introducir los caradel programa &Mlico en la memoria. Como el programa est formado por
Antes de comenzar
--
smbolos, su repmntacibn en la memoria debe utilizar un cdigo de caracteres alfanumricos. En la mputadora Msica cada carBcter se " p m t a mediante un cdigo de 8 bits. El bit de orden superior es siempre O y los otros siete bits se +an median& ASCII. El equivalente hexadecimal del conjunta e carase lista en Ia tabla 610. A cada carcter le asignan d a dlgitos hexad&Ies que pueden convertirse con facilidad a su &ligo de 8 bib equivalente. La fdtna entrada de l a tabla no imprime un carcter pero est asdada con el movimiento fSm del cursar en la temtinaL El &digo para CR se p d m cuando se oprime la teda de retorno. Esto hace que "elcarro"retome a su W 6 n inicial para comenzar a k c h r una nueva h . EI d i a d o r reconoce un d i g o CR como el final de una lnea de d i g o .
TABLA 6-10 Cdigo de carackes hexadecimah
- -
r r b r r i rcriih
Cadcter
Cdigo
Cadcter
C6digo
Cadcter
-
C6digo
7
8 9 espacio (
+ i1
CR
hexadecimal
Representacin binada
finea de cdigo
Una h e a de c6digo se aimacena en posiciones de memoria mnsecutivas con dos caracteres en cada posici6n. Pueden almacenarse dos caracteres en cada paiabra porque una palabra de memoria tiene una capacidad de 16 bits, Un smbolo de etiqueta se termina con una coma. Los slmboloa de opraci6n y direeci6n se terminan con un espacio y el final de la Unea se reconoce mediante e l cdigo CR. Por ejemplo, la siguiwite lnea de -0:
PL3,
LDA SUB 1
a t almamada en siete localidades de memoria consecutivas, segn se muestra en fa tabla 6-11. E l ttulo Pi3 ocupa dos palabras y t e & con el cdigo & coma (X). El campo de instniecibn en la lima de c6dJgo puede tener uno o mds shbolos. Cada smbolo termina con el c6digo para espacio excepto el iiltimo smbolo.quetermina con d c6digo de retorno de carro ( O D ) . S i la h e a de &diso tiene un comentario, el m b l a d o r lo reconoce mediante e l d i g o para una diagonal ( 2 F ) . El ensamblador no considera todos los caracteres del campo de comentarios y contnh la comprobaA6n en busca de un c6dip a Cuando encuentra este cddigo sustituye el c6digo de espacio despub del Q1timo s&lo m b S n m de d i g o , Zs entrada para el programa m b l a d o r es el programa de lenguaje siihb6lico en A X I i del usuado. E i ensamblador examina esta entrada dos vexs para producir el programa binario equivalente. El programa binario constituye la saIida generada por el eaisamblador. Ahora describknos de manera breve las b e a s principales que debe ejecutar e l ensambbdor durante e l proceso de traducci6n.
(m,
Un ensamblador de dos p a q examina todo el programa simblico dos veces. Durante 4 primera pasada, genera una tabla que relaciona todos los.
sImbo1a de dkecci6n definidos por el usuario con su valor binario equivalente. L a traduccibn a bhrios se hace durante 4 segunda pasada Para dar seguimiento a la direccin de las instrucciones, el ensmblador utiliza una
Primera pasada
196
de la computadora
Primera pasada
3.
No
u
Incrementar LC Figura 6-1 Diagrama de flujo para la primera pasada del emsamblador.
palabra de memoria llamada cont~dor de pcnsicibn (LC). El contenido de LC almacena el valor de la localidad de memoria asignada a la instruccin u operando que se procesa en este momento. La seudoinstruccin ORG inicializa el contador de posicin para el valor de la primera posicin. Como las instrucciones estn almacenadas en posiciones secuenciales, el contenido de LC se incrementa en 1 despus de procesar cada lnea de cdigo. Para evitar una ambigedad en el caso de que no estuviera ORG, el ensamblador establece el contador de posicin en O desde el principio. Las tareas que ejecuta el ensamblador durante la primera pasada se describen en el diagrama de flujo de la figura 6-1. LC se inicializa al principio en O. Se analiza una lnea de cdigo simblico para determinar si tiene una etiqueta @or la pmencia de una coma). Si la lnea de ckligo no tiene una etiqueta, el ensamblador comprueba el smbolo del campo de instrucci6n. Si contiene una seudoinstruccin ORG, el ensamblador inicializa al LC en el nmero que sigue a ORG y regresa a procesar la siguiente linea. Si la lnea tiene una seudoinstruccin END, el ensamblador termina la primera pasada y regresa para la segunda. (Nteeseque una lnea con ORG o END no debe tener un titulo.) Si la lnea de cdigo contiene un titulo, se almacena en la
TABLA M2 Tabla de 6 w
de
Palabra de mema
shblo
o &C)*
Wfgo hexadecimal
binaria
tabla de diredonea simblicas junto con su ntimero binario equivalente, esperifkado mediante el contenida de L. No se almacena nada en la tabla s i no se encuentra un ttulo. Despues tC se incrementa en 1 y se procesa una nueva lfnea de cdigo. Para el programa de la tabla 6-8, el ensarnblador genera la tabla de di&oneg simbblicas que se lista en la tabla 6.12. Cada shbolo de etiqueta s e almacena en dos posiciones de memoria y temina con una coma. Si la etiqueta contiene menos de tres caracteres, las localidades de la memoria se llenan con el &digo para espacia Se almacena en la siguiente posicin de memoria secuencia1 e l valor que se encuentra en LC mientras se p n b a la h e a . E 1 programa tiene tres &mimes simblicas; MM, SUB y DIF. Estos sirnbolos repmentan d W o n de ~ 12 bits equivalentes a las hexadecimales 106,107 y 108, m p d v a m m k ia tabla de d i i o n e s simbblicas ocupa t r e palabras para cada sfmbolo.deetiqueta -contrado y constituye l o s datos de saiida que genera el ensamblad~r durante la primera pasada.
Segunda pasaida
tbqwda en tabla
Las instrucciones de rndquina se traducen durante l a segunda pasada m e diante p d m i e n t o s de b s q d a en tabla. Un procedimiento de b&queda en tabla a una hque& de entradas de tabla para deteminar si una opcin e c a coincide con una de las que se encuentran en la tabla. E i ensamb M r uWia cuatro tablas. Cualquiex smbolo que se encuentre en el programa debe estar disponible como entrada en alguna de estas tablas; de otra manera, el simbolo no puede inberpretarse. Asignamos los siguientes nombres a las cuatro tablas:
diapdstim de
-r
Las entradas de l a tabla de seudoinstniccwnes son los cuatro sImbo1os ORG, END, DEC y HEX. Cada entrada guia al ensamblador a una subrutina que prmesa la seudoin6bruecin cuando se encuentra en el programa. La tabla MRI contiene los siete s ~ l o de s la instruccibn de referencia a memoria y s u cdigo de operaci6n de 3 bita equivalente. La tabla no-MRI contiene los simbolos para las 18 instruccione~ de referencia a registro y de entrada-salida y su c6digo binario de 16 bits equivalente. La tabla de smbolo de direcci6n se genera durante la p a pasada del proceso de ensamblado. E l ensamblador busca estas tablas para encontrar el smbolo que se procesa en ese momento con el fin de deteminar su valor biario. Ins tareas que ejecuta el ensamblador durante la segunda pasada se describen en d diagrama de flujo de la figura &-2 L se i n i c i a l i z a al principio en O. Despus se analizan las ineas de c6dig0, una por cada vez. No se consideran las etiquetas durante la segunda pasada, por lo que el ensamblador llega de inmediato al campo de instmcci6n y prwede a comprobar el primer &&al0 que se encuentra. Primero verifica la tablri de seudoinstniccin. Una coincidencia con ORG enva al ensamblador a una subnitina que establece L C en su valor inicial. Una coincidencia can END tennina el proceso de traduccin. Una mmdoinstnicci6n de operando produce urna conversi611del operando a b i n a r i o . Este operando se coloca en la posici6n de memoria especificada por el contenida de LC. El contador de posici6n se incrementa despus en 1 y el ensamhlador contina analizando Ia siguiente h e a de &ligo. Si el simbola que se encuentra no es una 9wdoinstrucci611, el ensamblador se dirige a la tabla MRI. S i no se encuenka el sZmbo10 en esta tabla, el emamblador s e dirige a la tabla n o . Un smbolo que se encuentra en la tala na-MRI corresponde a una instrueeidn de referencia a registro o de entrada-salida. E l ensamblador almacena el c6digo de instruccin de 16 bib dentro & la palabra de memoria especificada por LC. El contador de posicin s e inaementa y se analiza una nueva h e a . Cuando se encuentra un simbolo en la tabla M R I ,el ensambhdor extrae su caigo de 3 bits equivalenh y l o inserta en los bits del 2 al 4 de una palabra. Una instruccibn de referencia a memoria se espdfica mediante dos o tres smbolw. El q m d o smbolo es una direeci6n simblica y el tercero, que puede estar pmente o no, es la letra 1 . L a direeeih simblica se convierte en binario al buscar en la tabla de diiciones simblicas. El primer bit de la instmi&6n se inicia en O o 1 , dependiendo de si la letra I wt ausente o pmente. Se enaambhn las tres p a m de1 cdigo de instruccin binario y d"pu& se ahcenan en La localidad de memoria -cada por el contenido de L C .El contador de Localidades se incrementa y el ensamblador avanza a procesar la siguiente lnea. Una tarea importante del ensamblador es comprobar los posibles errores en el programa simblico. Esto se llama dingn&fko de m. Uno de tales errorea puede ser un simbolo no vaido de c6digo de mdquina que se detecta porque no estA presente en hs tabhs MRI y no-MRI. E 1 ensamblador
no puede traducir tal simbolo porque no conme su valor binario equivalente. En ese caso, el ensamblador imprime un mensaje de error para informar al programador que su programa simb6lico tiene un error en una lnea de
c6diga espe&&. Puede ocurrir otro error si e l programa tiene una direcci6n shrkdlica qUe+lamp;bCo apame como una etiqueta. El ensamblador no puede t m d d la lima de cddiw h r m a adema& poque e l equivaIente bina150del
smbolo ho ~e en@rar & I la tabla de M n e s &licas generada durante la p h e m -da. ' M e nacurrir otros errores y un ensamblador practico debe d-rh e imprimir un mensaje de emr para cada uno. Debe enfatizarse que un ensamblador practico es mucho m69 complicado que e l que e explid aqu. La mayorfa de las computadoras l e dan a l programador mapr flexibilidad para escribir programas en lenguaje ensamblador. Por ej-10, se le puede permitir al usuario utilizar un nmero o un simbolo para especificar una direccibn. Muchos ensambladores le permiten al usuario 4 c a r una d b x i 6 n mediante una expqesi6n acitmttica. Tambin pueden especificafse muchas otras 6eudoinstrucciones para facilitar J a tarea de programacibn. Conforme el lenguaje de ensamblador se vuelve ms sofisticade, e l ' w m a emadlador se hace ms complicado.
6-5
Un nclo de ptbgrama es una secuencia de instrucdones que se ejecutan m u b v~~ cada wasi6n con un conjunto diferente de datos. Los ciclos de programa se especifican en Fortran mediante un enunciado DO (hacer). E i siguiente es un ejemplo de un programa Fortran que forma la suma de ,100nhneros enteros.
cornpiiadw
El enuqdado nmero 3 se ejecuta 100 veces, en cada ocasin con un operando A@ diferente para cada J = 1 , 2, ... ,100. Un programa de &tema que traduce un programa escrito en un lenguaje de programacibn. alto nivel (corno el anterior) a un programa de lenguaje de mAquina s e llama wmpilndo~Un compilador es un programa ms mmplidado que un ensamblador y requiere d conocimiento de programaci6n de sistemas para comprender por cmpleto su operacin, No obstant e , podemos -mostrar las funciones U i e m de un compilador al analizar el proceso de traducir e l propama anterior a un programa de lenguaje ensamblador. Un compihdor puede utilizar un lenguaje ensarnblador como un paso ihkrmedio m l a traduccin o puede traducir el programa en forma directa a b b r h
r t e j
201.
H i primer enunciado del programa Fortran es un enuiciado DIMENSIUN. Este enunciado instruye al compilador para reservar 100 palabras de memoria para 100 operandos. E i valor de los opermdo~ est determinado a partir de un enunciado de entrada (no listado en d programa), El segundo enunciado infama al m p i h d o r que los nmeros son enteros. Si fueran del tipo real, el compihdor hubiera *tenidoque reservar posiciones para niuneros de punto flotante y generar insfrucciones que ejmtaran la aritmgtica resultante c m datoe de punto flotante. astos dos enunciados no son ejecutables y son similares a las swdoinstruaeiones de im lenguaje ensambiador, Supongamos que e f compilador resma localidades, las localidades de la (150)16 a la (1B3)16para los 100 operandos. Estas palabra$ de memoria reservadas se listan en b ineas de la 19 a la 118 en d programa traducido de la tabla 6-13. Esto se aealka mediante la seudoinstrueti6n ORG en la lnea 18, que eerpecifiea d or@m de ~ Q Soperanda El primer y el ltimo operando se listan con un nmero decimal especifico, aunque estos valores no se conocen durante la compilaci6n. E I compiladcm d o mserva el espacio de
TABLA 613 Programa simb61'ico &a
"I
Lnea
-
LUP*
ORG 100 D A ADS STA PTR LDA NBR STA CTR =A ADDPTRI I s z m
E2
ADS,
0uN LOP
STA HLT m 1 5 0 m 0 ' DEC-100
j ~ k c e n a suma r
m, m
SUM,
PTR,
=o
m 0 ORG 1 5 0 DEC 75
/Primera d i d n de operandm /Esta posicibn b t m a d a para un apuntador /Constanfe p a r i d a b d w inicializado /Esta psidbn ests e r v a d a para un contador /ta sumh a alnia-da aquf JE1 origen de tos operandos es HEX 150
/-
DEC 23 END
en la memoria y los valores se in~rtan despu&scuando se ejecuta un enunciado de entrada de datos. Los nmeros de iea del programa simblico son & l o para referencia y no forman parte del programa simb6lico traducido. Al indhr el enunciado DO se traduce en las instrucciones de las heas 2al a 5 y las constantes en h s heas de la 13 a la 16. La direccibn del: primer operando ( 1 8 0 5 0 )se almacena en l a localidad ADS ,enla Iinea 13. La cantidad de vece3 que el ehundado de Furtran deh ejecuta= es 100. Por l o tanto, se almacena - 100 en la posici6n NBR Despus el compilador genera las inslnicciones.en hs lneas de la 2 a b 5 para inichlhar el ciclo de programa. La direccin del primer operando se transfiere a la posicih M'R. Esto corresponde a establecer Am en A(1). Despus e l nCimero - 100 se transfiete a la posicibn CTR Esta pwicibn acbla como un contador y su contenido se incrementa en 1 rada vez que se ejecuta el ciclo de programa. Cuando d valor del contador Uega a cero,estai!&n compietadas las 100 operaciones y e l programa dejar&el ciclo. Algunos compiladores traducirin el enunciado SUM = O dentro una instrucci6n de mquina que inicialice l a posicin SUM a cero. Despus se hace una referencia de esta posicihn cada vez que se ejecuta el enunciado P o ndmero 3. Un mpilador ms inteligente comprender4 que la suma puede formarse en el acumulador y d o el resultado f m l puede almacenarse en la posici6n SUM. E l compilador producir una instnicci6n en la lnea 6 para borrar el AC. Tambin m a r 4 una posici6n de memoria representada por SUM {en la nea 17) para almacenar ei valor de esta variable cuando termine e ldo. EI ciclo de programa especificado mdiante el enunciado DO se traduce a la secuencia de instrucciones que se listan en las ffneas de la 7 a la 10. La inea 7 especrfica una instnrcci6n ADD hditecta parque tiene el simhlo 1. La d b i b n del operando actual se almacena en la localidad PTR. Cuando esta localidad se d b i o n a indirectamente l a computadora considera el contenido de FT'R como 14 cbcci6n del operando. Como resultado, el operando de la psici6n 150 se suma al acumulador. Despu6 la posici6n PTR e incrementa con la instnicci6n rSZ de la h a 8, por lo que su valor cambia al de la direccin dd siguiente operando secuencial. La posicibn CTR se irmementa en la h e a 9 y, si no es c m , la computadora no brinca a la siguiente instruM6n. La instrucci6n que viene a continuacin es una instnic&n de transferencia o brinca (BUN) al principio del ciclo, por lo que la computadora rieg~esa a repetir e l &do una vez ms. Cuando la posicin CTR alcarm cero (dapub de que e l ciclo m ejecuta 100 veces), se brinca a la siguiente insbucci6n y la computadora ejecuta Ias instrucciones de las llneas 11 y 12. La suma que se forma en e l acumuIador se almacena en SUM y la computadora se detiene. Por claridad, se inserta aquf la instruccin de detener; en realidad, e l programa s e ramificard a una localidad en la cual continuar ejecutando el resta del programa o brincar&al principio de otro programa. N b e que ISZ en la iea 8 se utiliza simplemente para sumar
datos
contador de
apuntador
1 al apuntador de direcadn PTR. Como la direccibn es un nmero positivo, nunca ocurrirg un b b . El programa de let tabla 6-13 introduce la idea de un apuntador y un contador que pueden usarse, junto con la operaci6n de direccionamiento indirecto, para formar un ciclo de programa. El apuntador sefiala la d k i b n del operando actual y ei contador controla la cantidad de veces que se ejecuta el ciclo del programa. En este ejemplo utilizamos dos posiciones de memoria para eshs funciones.En las computadoras cor~d s de un registro de praxsador, es posible utiihr un registro de procesador como apuntador, otro como contador, y un tercero como acumulador. Cuando los registros del procesador se utilizan como apuntadores y contadores reciben el nombre de registros fndice. Los registros ndice ae analizan en la secci6n &5.
66
La cantidad de inshucciones d i i i b l e s en una computadora puede ser de unos cuantos cientos en un sistema grande o de unas cuantas docenas en
pequeo. Algunas computadoras ejecutan una operaci6n dada con una instrucci6n de mdquina; otras pueden n-itar una gran cantidad de instrucciones de mequina para ejecutar la misma operacibn. Como ejemplo, consideremos ias cuatro operaciones aritmdticas bdsicas. Algunas compuutadoras tienen instrucciones de miquina para sumax, restar, multiplicar y dividir. Otras, como la computadora bsica, ,9610 tienen una instruccin aritmdticat ADD (sumar). Las operaciones que m se incluyen en el conjunto de instrucciones de mBquina deben implantarse mediante un programa. Hemos mostrado en la tabla 6-8 un programa para restar dos nberos. h programas para otras ~ c i o n e aritmticas s pueden desamIlarse de mane ra similar. Las operaciones que se efeckhn con una iqstrucci6n de mquina se dice que se realizan mediante la circuiterla. 'Las operaciones implantadas mediante un conjunto de instnicciones que constituyen un programa se dice que se implantan mediante pqamaci6n, Algunas computadoras proporcionan un conjunto amplio de instrucciones de hardware' diseadas para acelerar las tareas comunes. Otras contienen un conjunto m s pequeo de i n s ~ o n e s de hardware y s e apoyan mas en el trabajo del software para muchas ope'aciones. La implantacibn de hardware e a d s costosa por los circuib adicionales dos para efectuar l a operacin. La implantaci6n de software da como rsultado programas m& largos, tanto en cantidad de instrucciones como en tiempo de qecucin. Esta d n muestra la implaritacin de software para unas cuantas operaciones arinticas y lgicas. Pueden desarrollarse programas para cualquier opacin &mtica y no s6Io para datos binarios de punto fijo sino tambin para d a b decimales y de punto flotante. La implantacidn de hardware de operacima aritmkticas se estable en el capitulo 10,
uno
P forma el producto
Ejeniplo con cuatru digiiae si@flcativwi
Figura M
Programa de multipliacih Ahora desarrollemos un programa para multiplicar dos ndmera. Para simplifiear el programa, no consideramos el bit con signo y asumimos slo niheros positivas. Tambih suponemos que los dos ni5meros buiarios tienen no m8s de ocho, bits sqpicativus, para que su producto no exceda la capacidad de la palabra de 16 bits. Es posible modificar e l programa para que considere los signos o utilice nmeros de 16 bits. S i n embargo, el producto resultara de 31 bits de longitud y ocupara dos palabras de
memoria, E l programa para multiplicar das nberos se basa en el procedimiento que utilizamos para multiplicar nmeros con papeI y Ibpiz. Como se muestra en el ejemplo de la figura 6.3, el proceso de multiplicaci6n consiste en verificar los bits del multiplicador Y y sumar e l multiplicando X tantas veces como dlgikos 1 existan en Y, dado que el valor de X se ha recorrido a la izquierda de una lnea a la siguiente. Como la computadora d o puede agregar dos ndmems al mismo tiempo, reservamos una posici6n de memoria, representada por P, para almacenar la sumas intermedias. h s sumas intermedias se liaman productos parciales porque contienen un nmero parcial hasta que se suman todos los nmeros. Como se muestra en eI ejemplo numrico en P ,e l producto parcial comienza en cero. El multiplicando X se suma al contenido de P para cada bit del multiplicador Y que es 1. E l valor de X se recorre a la izquierda despuds de comprobar cada bit del multiplicador. El valor final de P forma el producto. El ejemplo num&rico tiene n h e r o s con cuatro bits significativos. Cuando se multiplican, el productb contiene ocho bits significativos. Ia computadora puede utilizar nmeroa c m ocho bits significativas para conseguir un producto de hasta 16 bits. El diagrama de flujo de k figura 6-3 muestra el procedimiento paso a paso para programar la operaci6n de multiplicaci6n. E l programa tiene un ciclo que se recorre ocho veces, una por cada bit significativo del multiplicador. Al principio la posicin X contiene el multiplicando y la posici6n Y contiene e l multiplicador. Se establece un contador CTR en - 8 y la localidad P ' se tioma a cero. El bit multiplicador puede verificarse si se transfiere al registro E. Esto se hace borrando E, cargando el valor de Y dentro de AC, haciendo circular a la dereeha E y AC y aImacenando el nmero dwplazado de regreso a su posici6n Y. Este bit almacenado en E es el de orden menor del multiplieador. Ahora verificamos el valor de E. Si es 1 , el rnulkiplicando X se suma al producto parcial P. Si es O, el producto parcial no cambia. Despus s e ejmta un corrimimb del valor de X una vez a la izquierda' al cargarlo dentro de AC circulando a la izquierda E y AC. E i ciclo se repite ocho veces al incrementar h e i c i 6 n CiX y verificarcuando alcanza a cero. Cuando el contador llega a cero, el progrhma deja el ciclo con el producto almacenado en P. El programa de la tabla 6-14 lista las instrucciones para multiplicar dos nrlmeros sin signo. L a inicializaci6n no se lista, pero debe incluirse cuando
i-m
206
w Prngram-
M&
de & I computadora
TABLA &a4
wp,
ORG 100
m
s m
LDA Y
STA Y
ONE,
CL
/Almamar multipficador desplamdo SVerificar si el bit e s cero /El bit uno; ir a UNO /El bit es m;i ra m C e r o /Cargar multiplicando /Sumar a l producb parcial IAl~lrpiaeenar producto p;ucial /Borrar E
/Cargar muf tiplicando /Corrimiento a la izquierda /Almacenat. mflltiplitiando recomdo jlnmemenlar contador /El contado?no es cero; =petir ciclo JEi ceintiidor es m o ; detener /Esta posicibn sirve como contador /El multiplicando se almacena aqui [ E i multiplicador se almacena aqui /El producto se forma aquf
ZRO,
LDAX
a I[Szm
STA X
BUN LOP
x,
Y, p,
H L T b
DE-8
H m OOOF
T W B
HEXQ
se carga dekitro de k computadora. La. iniciaIizaci6n consiste en traer el multiplicando y el multiplicador a las localidades X y Y, respecc tiva-& inicializar el contador a - 8, e inieilizar la localidad P a cero. Si 'Bstas no se ini.cialhn, el programa puede comer con datos incorrectos. E l pmgrsma mismo es directo y sigue los pasos que se listan en e l diagrama de.flujo,Jjois c~mentarimp h n ayudar a seguir el procedimiento paso a
el programa
paw.
Este ejemplo ha mostrado que si una computadora no tiene una instruai6n de mquina para una operad&^ requerida, la operacibn puede programarse mediante una w e n c i a de Instrqcciones de mAquina. Por l o tanto, hemos mostrado la implanhcibn de software para la operaci6n de ' multiplicacin. ta jmplantaQ6n de hardware. correspondiente se presenta en la seccibn 10-3.
Suma de'doble preci6$n Cuando se multiplican des nmeros de 16 bits sin signo, el resultado es un producto de 32 bits qu debe almacenarse &ndos palabras de memoria. Se &e que un nimero aima:cenado e i dos palabras de memoria tiene doble pi.ecisidn. Cuando se caliila un producto parcial, es necesario que se agregue
m d
D A AL ADD BL
STA CL CZA
/Cargar A inferior /Sumar B inferior, aarrear E /Almacenar en C inferior /Limpiar AC /Circular para llevar el acarreo a AC(16) /Su- A superior y acarreo /Sumar B superior /Almacenar en C superior
HLT
/Posicih de los operandos
m,
un nhmero de doble precisi6n al multiplicando sobre el que se ejecuta un corrimiento, e1 cual es tambibn un niimero de doble precisi6n. Para mayor exactitud, el programador puede dewar emplear nmeros de doble prixisi8n y ejecutar la aritmtica con operandw que ocupen dos paiabras de memoria. Ahora desarrollamos un prugrama que suma dos nmeros de
doble precisin. Uno de los nmeros de doble precisi6n se coloca en dos localidades de memoria consecutivas, AL y AH, donde AL contiene los 16 bits de orden menor. E i otro nmero ae coloca en las localidades BL y B H .E 1 programa se lista en la tabla 6-15. las dos parb de orderi menor se suman y el a c a m se transfiere a E. EI AC se limpia y el bit en E se circula dentro de la posici6n menos significativa de AC. Las dos porciones de orden mayor se suman despus al acarreo y la suma de doble preeisih se almacena en CL y CH.
Operaciones 16gicas La computadora bsica tiene tres instrucciones de mquina que ejecutan operaciones Idgicas: AND, CMA y CLA. La 'insfniEci6ri LDA puede conside rarse como una operacibn lgica que transfiere m operando lgico dentro de AC. En la 8ecciBn 44 listamas 16 opwaciones lhgicas diferentes. las 16
v c i o n e s 16gicas pueden integrarse mediante software parque cualquier funci6n lgica puede implantarse usando las operaciones AND y complemataf. Por ejemplo, la operadbn OR no gst disponible como una instruecin de mSiqulna en i a computadora bsica. Por el teorema de DeMorgan reconocemos la relacin x y = @'y')'. La aegunda expresibn rontiene slo operaciones M y complemdar. Un programa que forma l a operacibn OR de do4 operandos 16gicm A y B es como sigue:
m8
m Fqmnxih W c a de l a computadora
LD R 0
Cargar primer operando A Comp1ementax para obtener A CM A S T A T M P Almacenar en ima localidad temporal Cargar segundo operando B LD A B CMA Complementar para obtener AND TNP ~plicsrlafunci~m AND~onA~anobtenerAAB CM A Complemenbr de nuevo para obtener A V B
Las otras operaciones lgicas pueden efectuarse mediante software de manera similar.
Operaciones de corrimiento Las operaciones de corrimiento circular son instrucciones de mquina en la computadora bisica. Los otros corrimientos de inters son los corrhimtos Idgims y aitmdticos. Estos dos corrimiento6 pueden programarse con una cantidad pequea de instrucdones. El corrimiento ldgico necesita que los ceros se agreguen a las posiciones de los extremos. Esto se consigue con fadidad al h m a r y al hacer circular AC y E. Por lo tanto, para una operacihn l w c a de corrimiento a la derecha necesitamos las dos instrucciones.
C LE
CIR
Para una operacibn 16gica de despiazamimb a la izquierda necesitarnos las dos instrucciones
CLE CIL
Los corrimientos aridticos dependen del tipo de repmtacidn de niimems negativos. Para la computadora biaica hemos adoptado la repremntacibn de complemento a 2 con signo. Las reglas para los corrhientos aritmticos se &tan en la se~cibn M. Para un corrimiento aribn&tiro a la derecha es necesario que no se altere e 1 bit de signo en la posicibn de la extrema izquierda, Pero el mismo bit de signo se recorre a la posicibn del bit de orden superior dd nmero. E l programa para el corrimiento aritmetico a la derecha requiexe que estableE en el mismo valor que el bit de signo y b circulea la derecha, por lo t a n e
Con frecuencia, una misma parte del cdigo puede escribir= una y otra vez en cfemntes partes de un progtama. En lugar de repetir el cdigo cada vez que se necesita, existe una ventaja obvia si las instrucciones mmmm se escriben una sola vez. Un conjunto de insmcciones comunes que pueden usarse muchas veces en un programa se llama una subrutina. Cada vez que se usa F a subrutina, en la parte principal del programa se ejecuta un brinco al comienzo de la subrutina. Despus de que ce ejecuta l a subrutina se hace un brinco de regreso al programa principai. Una subrutina consta de una m e n t i a completa de instrucdones que realiza una brea dada. Puede haun llamado a la subnitina desde cualquier parte del p-ma principal. Esto presenta el problema de cmo hacer que la subrutirta reconozca a que Iokalidad regresar, porque muchas localidadea &tes del programa principal pueden llamar a la misma subrutina. Por 10 tanto, es necesario almacenar la direccin de regreso de alguna manera m la computadora pAra que la subrutina sepa adonde regresat. Como ia llamada a una subrutina y e l ~+bmo al programa princip d es una p a r i 6 n mmtn, todas ias computadoras proporcionan instnicciones especiales para facilitar la entrada y el retorno de una subrutnst. En la cumputadora bsica, el enlace del pmgrama principal y una subnitina es una instnicci6n BSA (brinca y guarda la direccin de retorno). Para explicar cbmo se utiliza h iristruceibn escribamos una subrutina que ejecute ei eorrimienb del mntenMo .del acirmulador cuatro veces a la izquierda. Rmwiwr una palabra cuatro vm& eli una operacin fitil para prmesar ntlmems decimaks codicados en binario o caracteres alfanum6 ricos. Tal operacin podra haberse hcIuido como una instnicci6n de maquina en la computadora. Como no est incluida, se forma una subrutina para realizar esta W. El programa de k i Zabla 616 comienza por cargar el
210
ctvfrum
HEX 4321
valor de X dmtro de AC. La siguiente imlmcc6n que se encuentra a BSA SH4. La Uistniccin BSA esta en la lacalidad 101. La subnitina SH4 debe =tomar a la h l i d a d 102 despus de que finahe su m .Cuando se ejecuta la instruccihn BSA, l a unidad de ccmtrol almacena l a direccibn de retomo 1 Q 2 dentro de la posici6n.ddinida por la M 6 n simb6b SH4 (la cual es 109), tambin transfiere el valor de SH4 + 1 al contador del programa. Despus de que se ejenita esta instnicciq La b l i d a d de memoria 109 contiene el equivalente binario del hexadecmai 102 y el contador de p q m ma contiene el equivalente binario del hexadechd IOA. Esta ami611 ha guqdado h dimcibn de retarno y la subrutina s e ejecuta ahora comenzando en la posicih 10A (porque este es el conaenido de PC en d siguiente ciclo
de b68queda).
E l clculo de l a subrutina circula el c o n ~ de o AC cuatro v a la izquierda. Para realizar una operacin de desplazamiento lgico bs cuatro bib de orden menor deben iniciarse en c e r o .Esto se hace al enmascarar FPPO con e l contenido de AC. Una operacibn de enmamar es una operaciht AND lbgica que borra los bits de AC donde el operando enm9warado err cero y deja 10s bib de AC sin cambio &ando los bits del operando de
enma8mramiento aon 1.
La ltima instruccibn de la subrutina regresa a la computadora al programa principal. Esto se consigue mediante la instniccibn de brinco indirecto, con una direccidn simb6lica idntica a la que se us para el nombre de la subrutina. L a direccibn a la cual se brinca La computadora no es SH4 sino el valor que se encuentra en la posicidn SH4 porque &a es una instruccih de dimccionamiento indirecto. Lo que se enmtn5 en h posicidn 52.14 es la direccin de retorno 102 que s e almacen antes ah mediante la instrucci6n BSA. ' L acomputadora retorna para ejecutar la instmccibn de la pmici6n 102. El programa principal continiia al almacenar el nmero con el corrimiento dentro de la posicibn X. Despus se recurre un nuwo n~mero hasta AC desde la p o s i c h Y y se hace otra llamada a la subrutina. Esta vez la lwalidad Sq4 contendr la dimi6n de retorno 105 porque ahora 6ta es la posicihn de la siguiente instruqibn despuk de BSA. Se ejecuta el mrrimimito en e l nuwo operando y la subrutina regresa al programa principal
en la pasici6n 105. En este ejmpb observamas que la primera localidad de memorib de cada subrutina sirve como un enlace entre el programa principal y ia subrutina. E l procedimiento para Uamar a una subrutina y r e t o m a r al programa principal se denomina mlam a subnitina. La instmcei6n BSA ejecuta una operacin que por lo general se llama Ilrimadri de subrutina. La dltuna instruceibn de la subrutina ejecuta una operacin que por lo general se llama retorno de subruiina. Es frecuente que e l procedimiento usado en la computadora Msica para una llamada a subrutina w encuentre en computadoras con un m10 registro de procesador. Muchas computadoras tienen mdltiples registros de procesador y a algunos de ellos se l~ asigna el nombre de registros indice. En tales computadoras, por lo generaL se emplea un registro hdice para realizar el enlace a subrutina. Una instrucci6n de llamada a subrutina almacena la direccin de retorno en un egistro fndice. Se lleva a efecto una instniccibn de @tomode la subnitina medianfe un brinco a la direccin que se almacena en momento en el registro d e Iridice.
Parhetm~ de subrutina y enlace de datos Cuando se llsnna a una sukmtina, el programa principal debe transferir los datas con los que s e desea que trabaje h subrutfna. E n el ejemplo anterior los datos se transfirieron mediante el acumulador. E l operando r x carg a AC antes de la llamada. La subrutina recorri el nmero y I o dej6 ahi para que l o aceptafa el programa principal. En general, es n e o que la subrutina teqp acceso a los datos desde e l programa que la solicita y para regresar los resultados a ese programa. E 1 acumulador puede usarse para un pahmetro de entrada nico y un pardmelro de salida nico. En las computadoras con mdltiples registros de prm&dm se puden transferir &S parmettrw de esta manera; Otra forma de tramkrir datos a una sub~tinaes mediante la memoria. Cm frecuencia ias datos se colman en
m 3AF6
HLT
'
/Cargar el primer operado dentro de AC ;/Llama a la subrutina OR /El egundo operando est almcenado aquf /La suhtina retorna agui
X/ Y,
mm 5
m 0 m 0 CMA
/E1 pdmer oprandoesu almacenado aquf /El resultada esta almacenado aqui
XS~bmtina~QR
~CompI-im~r @raer operando /Almacenar en posicibn temporal /Cargar segundo operando /Gimpleme$ar -do operando )Aplicar AhTD al primer opgrando complementada /&mplem&hr utra vez para obtener OR /Iirciementardirecdi5n de retorno IRetomr al p s o g r a m prirrdpal /Alihamamiehto terhporal
orC
w/
pmicionee de mmn& .despus de:la ktm& Tambin pueden colocarse en uii blque de a h c e m d e n b . En seguida, e coloca k primera d i d 6 n del blque en ia lwdidad de memoria despus de la,soli&ud. En cualquier caso, la d i 6 n de retorno siempre pmprciona .la informaci&nde enlace para transferir datos entre el,programa principal y la subniW. Como ejemplo, cons~erwno~ una subrutina que ejecuta la operacin QR lgica. Deben transferirse dos operandos a la subrutina y la subnitina debe retomar el tiesdtado de la opsraci6n. Puede usarse el acumulador para transferir yn ,gpecando y,para recibir el resultado. El otro operando se inserta en la. p i c i 6 n despub de la nstruc@n B S k E~to se muestra en el programa de la tabla 6-17.-Elprimar q e ~ a n d o k p&ici6n X se carga a AC. El d a operando-= aImacena en la posicibn 202 despuk de la instrucci6n EEA. Una vez que ,sucede i a b d a , , la prbera Localidad e n la subrutina con* qi nJmep 2 0 2N 6 , qime en este w,202 no es h h i 6 n de retorno: sino Ip +cin del q m d o pand do. La subnitina comienza a gecutar la,,operaci& OR al coriiplemqhr e l i primer operando en AC y almacenado en la, lwalidad kmparal TMPi El segundo operando se carga dentro de AC mm$ante una instruccin indimta en la posicibn OR. No hay que olvidar que Ia posicin OR c o n h et nhnero 202,Cuando Ia instmcci6n hace mferencia a ella en forma indirecta, elo @ de la p i r i h 202
- . se carga a AC. Es& operaiido-se GiipiekenbY despuCs se le aplica La funciSn AND con ei operando almacenado en TMP. Al complementarse e1 resultado se forma la operacihn OR.
El retorno de la subrutina debe manipulam para que el programa principal ccmtinde desde la posioibn 203, donde este ubicada la siguiente instniccin. Esto se logra al incrementar la poski6n OR con b instrucci6n I S Z .Ahora la lmaiid~dOR contiene el ndmeia 203 y na instrucci6n BUN indirecta provaca un retorno al lugar adecuado. EB psibie tenef mas de un operafido despus de la instruccibn BSA. La subnitina & incrementar la direcci6n de retorno aimacenada en su primera localidad para cada operando que exime del programa solkihte. El programa solicitante puede reservar una o m65 localidades para que la subrutina devuelva 19s resultad- que se cdcubron. Para estas localidades tambin debe inrrementarse la primera localidad en la subrutina a n b del retorno. S i hay una gran cantidad de datos por transferirse, pueden colocarse en un bloque de almacenamiento y despus se utilmr6 la diFecci6n del primer blque corno parhetro de enlace.
TABLA 618 Subrutina para mover un bloque de datos
BSA
MVE
HEX 100
H E X m DEC -16
HLT mx.0 LDA MVE 1 STA m 1
/Programa principal /Ramificar a subrutina /Primera direwibn de datos fuente /Primera dlmci6n de datos destino /Nmero de datos por mover
[$ubruiina MVE /Traer la direccibn de tuente /Almacenar en primer apuntador /Incrementar direccibn de retorno /Traer direccibn destino /Almacenar m segundo apuntador /incrementar direccin de retorno /Traer ntmero de datas j Almacenar en confadar /Incrementar dlrecci6n de retorno /Cargar datos fuente /&naceriar en destino /Incrementar apuntador fuente /Incrementar apuntador destino /Iswementar contador /Repetir 16 veces /Retornar a programa principal
m,
rsz MVE
WP,
m, m, m,
214
-O
SEIS
En la tabla 6-18 se lista una subrutina que transfiere un bloque de datos que comienzan en la direccin 100 a un bloque que comienza con la direccin 200. El tamaiio del bloque es de 16 palabras. La primera introduccin es una llamada a la subrutina MVE, La primera parte de la subrutina transfiere los tres parmetros 100, 200 y -16 desde el programa principal y los coloca en su propia posicin de almacenamiento. Los datos se transfieren haeia y desde sus bloques mediante el uso de dos apuntadores. El contador asegura que s610 se muevan 16 datos. Cuando la subrutina completa su operacin, los datos requeridos estn en el bloque que comienza desde la posicin 200. El retorno hacia el programa principal es a la instruccin HLT.
6-8
Programacin de entrada-salida
Los usuarios de la computadora escriben programas con smbolos que estn definidos mediante el lenguaje de programacin empleado. Los smbolos son cadenas de caracteres y a cada carcter se le asigna un cdigo de 8 bits para que pueda almacenarse en la memoria de la computadora. Un carcter codificado en binario entra a la computadora cuando se ejecuta una instruccin INP (entrada). Un carcter codificado en binario se transfiere al dispositivo de salida cuando se ejecuta una instruccin OUT (salida). El dispositivo de salida detecta el cdigo binario y escribe el carcter correspondiente. La tabla 6-19(a) lista las instrucciones necesarias para introducir y almacenar un carcter en la memoria. La instruccin SKI comprueba la bandera de entrada para ver si hay disponible un carcter para la transferencia. Se salta la siguiente instruccin si el bit de la bandera de entrada es 1. La instruccin INP transfiere el carcter codificado en binario hacia AC
TABLA 6-19 Programas para introducir y sacar un carhcter
a) Introducir un carcter SKI /Comprobar bandera de entrada CIF, BUB CIF - /Bandera = O, brincar para comprobar de nuevo INP /Bandera = 1 , introducir carcter OUT /Escribir carcter STA CHR /Almacenar carcter
HLT
CHR, b) Sacar un carcter LDA CHR COF, SKO BUN COF OUT /Almacenar carcter aqu /Cargar carcter dentro de AC /Comprobar bandera de salida /Bandera = O, ramificar para comprobar de nuevo /Bandera = 1, sacar carcter
HLT
CHR,
HEX 0057
(0-7). u & se escribe el cadctei mediante la instruccibn OUT. Una unidad temhai que comunica en forma directa con tina computadora no eel carcter cuando se oprime una k l a . Para impWIo, ,es necesario enviar una instruccin OUT para la impmra. De esta manefa, el usuario se asegura de que ocurra la transfemfcia correcta. Si la insmccin SKI encuentra el bit de bandera en O, se ejecuta fa siguiente instruccin en secuencia. Esta insttucci6n es un brinco para retomar y comprobar el bit de bandera otra vez. Como el dispositivo de entrada es mucho d s lento que h computadora, ,las dos htmcciones del ciclo se ejecutarn muchas vecw antes de que se transfiera un carcter al acumulador. La tabla &19@) lista las instrucciones necesarias para escribir un carcter almacenado inicialmente en la memoria. Primero se carga d car6cter a AC. DespuQ se comprueba la bandera de saiida. Si es O, la computadora permanece en .unciclo de dos instrucciones comprobando el bit de bandera, Cuando la bandera cambia a 1 , se transfiere el carhcter del acumuiador a la impresora.
Manipulacibn de caracteres Una computadora no es s61o una computadora sino tambih un manipulador de sXmbo105. Los caractem d f i e a d o s en binario que tepresentan simbolos pueden manipularse mediante instrucciones de computadora para realizar diveraas tareas de procesamiento de datos. Una de fales t m s puede reunir dos caraen una palabra. E&o es conveniente porque cada caricter w p a 8 bits y una palabra de memoria contiene 16 bits. El programa de la tabla 620 l i s t a una subrutina b d a MZ que introduce dw caracteres y los "&mpacaU en una palabra de 16 bib, ta palabra empacada permanece en el acumulador. NNBh que la subnitina SH4 (tabla 6-16)se solicita dos veces para e o e r el acumulador ocho veces hacia la izquierda.
TABLA 6-20
Subrutina para introducir y guardar junb dos c a r a e m
m 2 ,
FST,
SKr BUN m
/Entrada de subnitina
/Introducir primer d c t e r
/Recorrer a la iaquierda cuatro veces / a la izquierda cuatro vem8s / I n d u c i r egundo cai-ach
INP
OUT
INP
OUT
BUN i N 2 1
/Retomar
C A P h L O SEIS
LOP,
fiUN LOP
HLT
/Inicializar apuntador /Ir a la subrutina IN2(tabla 6-20) /Al,macenarpalabradedoblecatackrenelbuffer /Incrementar apuntador /Ramificar para i n d u c i r rnhs caracteres
/Primera direccibn de buffer /Pasieibn para aputitador
ADS,
m,
HEX 5&3
HEXO
est ahacenadu en un bloque de localidades adyaqtes de la memoria que se denomina comQnmente bufer. E l programa simblico que se imprime se
inbduce por el dispositivo de entrada y se almacena en posiciones de memoria consecutivas en el buffer. E) programa que se lista en la tabla 6 2 1 puede utilizarse para introduur un psograma sirnbbiico desde el teclado, empacar dos caracteres en una palabra y almacenarlos en el buffer. La primera direccin del buffer es 500. El primer cardckr doble se almacena en la p~sici6n 500 y todrw los caracteres se almacenan en posiciones secuenciales. El programa utiliza un apuntador para llevar un registro de la posici6n achtalmente vaca en el buffer. No se u t i k un contador en el programa, por lo que los caracteres se leer& mientras estn dispanibIes o hasta que el buffer llega a la posicin O (despua de la.posici&n FEF). En una situacibn prsctica podra ser necesario limitar el tamaio del buffer y podra usarse un contador pwa este prop6sito. N6tese que se solicita la subrutina IN2 de la tabla 6-u) para introducir y empacar los dos caracteres. A l analizar la segunda pasada del ensamblador en la seccidn 6 4 se mencion6 que una de las operaciones m6s comunes de un ensamblador es una bdsqueda en tabla. Esta es una operacin que busca en una tabia para
m, m,-
saber si contiene cierto smbolo. La bsqueda puede realizarse al comparar d smbolo dado con cada uno de b s slmbols ahcenados en la tabla. La btkqueda termina cuando ocurre una coincidencia o cuando ninguno de los simbolis coincide. Cuando ocurre una coincidencia, el ensamblador recupera el valor binario equivalente. En la tabla 6 2 2s e lista un programa para comparar dos palabras, 1La comparacih se realiza al formar el complemento a 2 de una palabra (como si fuera un niunero) y al sumarla en forma aritmktica a la segunda palabra. Si el resultado es cero, las dos palabras son iguales y ocurre una coincidencia. Si el multado no es cero, las palabras no aon iguales. El programa puede servir como una subrutina en un programa de b-ueda de tabla.
Xnterrupcibn del programa El tiempo de ejmsci6n de programas de entrada y salida se f o m sobre todo del tiempo que necesita la computadora para esperar al dispositivo externo para que active su bandera. El ciclo de espera que comprueba la bandera mantiene ocupada la computadora con una tarea que emplea una gran cantidad de tiempo. Este tiempo de espera puede eliminarse si se utiliza la opci6n de interrupcidn para notificar a la computadora cuando est activada una bandera. La ventaja de utilizar la interrupcin es que la transferencia de infmaci6n se inicia cuando hay una sdicitud de un dispositivo externo. Mien tras tanto, la computadora puede ocuparse en ejecutar otras tareas tiles. Es obvio que, si no reside otro programa en la memoria, i a computadora no tiene nada qu hacer, as que bien puede comprobar las banderas. La opcin de interrupcihn es dtil en un ambiente de multiprogramaci6n cuando residen dos o mas programas en ia memoria al misms tiempo. S6Lo puede ejecutarse un p&ama en un momento dado, aunque dos
o ms programas pueden residir en Ia memoria. Por lo general los otros programas esperan datos de entrada o salida. lia funcin de la opcibn de intempcih es cuidar h transferencia de datss de uno o mAs programas mientras otro programa se ejecuta en ese momento. El programa que corre
debe incluir una uisttucci6n T O N para atender la interrupcin. Si no se usa la opcibn de inkrrupcidn, el programa debe incluir una instruccibn IOF para apagarh. (131 intemrptor de mcmdido' de la computadora podra tambin apagar la intermpci6n.) La opcibn de intwnrpci6n permite que el programa principaI avance hasta que el dispositivo de entrada o salida active su bandera como lista. Cuando una bandera esta activada en 1, la computadora completa la ejecuci6n de Ia btn-icri6n en procm y despuk reconoce la interrupcin. El mltado de esta acci6n es que la direceibn de retorno se almacena en la locaiidad 0. h p u & se ejecuta k inskmccin de la ledidad 1; esto inicia una rutina de ~ervicio para la transferencia de entrada o salida. i . a rutina de servicio puede almacenarse en cualquier parte de i a memoria siempre que
218
SELS - 4 6 n
bsica de Ia computadora
una fransfemcia al comienza de l a rutina se almacene en la localidad 1. La rutina de ervicio debe tener inshcciones para ejecutar las siguienb m a s :
1 . Salvar el contenido de los registros del procesador. 2 Comprobar cual bandera est activada. 3. D a r servicio al dispositivo q y a bandera est activada. 4 Rmperar el contenido de lm registros del procesador, 5. Habilitar la @6n de interrupcin. 6. Regresar al programa principal.
E l eontehido de lm regisiros del p m ' d o r ante de la intemupcih y despuk del retorno al programa prindpal debe ser el dsmo; de otra manera el programa principal puede ejecutarse con error. Como la rutina de servicio puede utilizar estos registros, es necesario ''~lvar" su contenido al principio de la rutina y "recuperarlo" al h l . La secuencia mediante la cual se mprueban bs banderas dicta la prioridad asignada a cada dispositivo. Aunque pueden advarse dos o m8s banderas al mismo tiempo, los dispositivos sori atendidos uno a la vez. Se atiende primero el dispositivo cuya prioridad es mayor y despub al que tiene una prioridad menor. La aparicin de.una intemupci6n inhabilita la opci6n de ms intemp dones. La r u h de centicio dek habitar la inkrrupcibn antes del retorno al programa principal. Esto habilitad interrupciones posteriores mientras h computadora ejecuta el programa prineipat' L a opci6n de intampci6n no debe habilitarse hasta que se carga la d M h de retorno en el contador del
Un ejemplo de un programa que da semicio a una interrupci6n se lista en la tabla 6-23, La posici6n O 'se reserva para la direcci6n de retorno. La pmicibn 1 tiene una instruccin de brinco al inicio de la rutina de semicio SRV. IA parte listada del programa principal tiene una instruccibn ION que habilita 11a intermpcibn. Supongamos que ocurre una interrupci6n mientras la computadora ejecuta la instrucci6n de la localidad 103. El ciclo de i n k mpcibn almacena el equivalente bharia del hexadecimal 104 en la posici6n O y brinca a la posicibn 1 : IA instmcci6n de brinco a la posici6n 1 enva a la computadora a la rutina de servicio a la interrupci6n SRV, La rutina de servicio de la intempci6n ejecuta las seis tareas mencionadas. Los contenidos de AC y E se almacenan en posiciones especiales. (Estos son los nicos registros del procesadar de la computadora bAsica.) Las banderas se verif~canen forma secuencial, primero las banderas de entrada y despus las banderas de salida. Si una o ambas banderas estn activadas, se trmfiete un grupo de d a b hacia o desde el buffer de memoria correpandiente. A n b de retomar al programa principal, se m p e r a el contenido previo de E y AC y se habilita la opcidn de intemipci6n ltima instnicci6n provma un b a la dicecei6n almacenada en la localidad O. Esta es la dwcci6n de retorno almacenada ah durante el ciclo de in-p cin. Por l o tanto1 el programa principal continuad desde la posicibn 104, donde se interrumpi6.
p'ogfama.
S E C U &
68 Pmpmacin de entrada-~~lida
219
BUN SRV
CLA
ION LDA X ADD Y STA Z
/Diretcibn de retorno almacenada aqu /Brincar para dar servicio a rutina /Parte, d d programa que se ejecuta /Encender opcibn de interrupcibn
STA SAC
cm
STA SE
SKI BUN M
/Intemimpir servicio a la nitina /Almacenar contenido de AC /Almacenar contenido de AC /Mover E dentro de AC(1) /Almacenarcontenido de E . /La W w a estd apagada, comprobar siguiente bandera /La bandera eskA activada, introducir
cardcter
OUT
ISZ m
QL
SAC, SE,
Rl,
m,
trada
/Imprimir cadcter /Aimamnarlo en buffer de entrada /Incrcmcntar apuntador de entrada /Comprobar bandera de salida /Lahndcra esth apagada, salir /Cargar carhcter de buffer de salida /CarActcr de salida /Incrementar apuntador de salida /Rcstaiirrir vaIor de AC(1) /Corrimiento a E /Restaiimr contenido de AC /Habiliiar internipcibn /Retornar a1 programa principal /AC csb slmacenado aqu / E esU almacenado qul /Apuntadar de buffcr de entrada /Avuntador de buffer de salida
Una computadora tpica puede tener muchos m6s dispositivos de eny salida conectados a la opcin de interrupci6n. Adems, las fuentes de interrupcibn no se limitan a transEerencias de entrada y salida. Pueden usarse interrupciones con otros pmp6sitos, como para procesar v r e s internos o candiciona de alarma especial. En la seccibn 11-5 puede encontrarse un anlisis m& a n p l i ~ de las interrupciones y algunos conceptos avanzados reladonadds con este importante tema.
: S
-l.
E 1 siguiente programa estA almacenado en la unidad de memoria de l a cumpukidorabsiria. Muatre el contenido de AC,PC,e IR (en hexadecimal)
aI
finai, despub de que +ute sada instnrcci6r~Todos los nifmeroei Estados.abajo est&n en hexadecimal.
CLA ADQ 016 BUN 014 HLT AND 017 BUM 013
C1A5
9 3 1 3 6
-2
El siguiente programa es una lista de instrucciones en c6digo hexadecid. L a computadora ejecuta las inctrucciom comenzando m la direccin 100. ~ Q u contienen d AC y la palabra de memoria en la dkcin 103 cuando se detiene la computadora?
6-3.
Liste el programa de lenguaje ensarnblador (de las instrucciones biirias equivalentes) generado mediante un mmpilador del siguiente programa Fortran, Considere variables enteras.
SlJll=SUH+DIF
6 4
6-5.
64.
Puede usarse la letra 1como una d i d d n simbbliea en el programa de lenguaje ensamblador definido por la computadora bsica? Justifique la respuesta. >LQuB sucede durante la primera pasada del ensamblador (figura 6-1) si la Ilnea de c6digo que tiene una seudoinstrucei6n OR o END tambin tiene una etiqueta? Modifique el diagrama de flujo para incluir un mensaje de error si ocurre esta. Una llnea de cdigo en un programa de lenguaje ensamblador es como sigue:
DEC -35
a. Muestre que se necesitan las cuatro palabras de memoria para almacenar la lnea de d i g o y pmprcionar su contenido binario. th Muestre que una palabra de memoria almacena el &digo b i i r i o tradu6-7.
6-8.
cido y proporciona su contenido binario. a. Obtenga la tabla de direcciones simbblicas generada para el programa de la tabla 613 durante la primera pasada del ensamblador. b . Liste el programa traducido en hexadecimal. La ~eudoinstruc~i6n 3SS N @ ] q u einiciado mdiaate un smbolo)en ocasiones se emplca para reservar N palabras de memoria para un ggnipo de operandos. Por ejemplo, la lnea de d i g o
6 . 9 .
6-10.
6-11.
infoma d ensambladar que va a quedar l i W un bloque de 10 (decimal) loalidada,.comenzando desde la localidad A. Esto es si& al enunciado de Fo&mn DIMEMIDN A(10). Iddifique el diagrama de flujo de la figura 6-1 para procesar '&a seudoinstruccibn. Modifique el diagrama de flujo de la figura 6-2 para que incluya un mensaje de error cuando una direeeibn simb6liea no est definida mediante una etiqueta. Demuestre cdmo pueden almacenarse en memoria las tablas MRI y no-m, b t e el programa del lenguaje onsambladot (de las instruccimea binarias equivalentes)generado mediante un mmpilador para el siguiente enunciado ZF:
a. Explique en palabras qu4 realiza el siguiente progcama cuando se ejecuta. ~Gu1 es el valor de la posicin CXR cuando se detiene la
computad~ra?
CAP~TULO SEIS
B U N ROT
ROT 1 BUN STP CIL SZE BUN AGN BUN ROT CLE ISZ CTR SZA BUN ROT HLT HEX O HEX b2CI END
AGN 1
Escriba un ciclo de programa, utilizando un apuntador y un contador, que borre a O el contenido de las posiciones hexadecimalesde la 500 a la 5FF. Escriba un programa para multiplicar dos nmeros positivos mediante un metodo de suma repetida. Por ejemplo, para multiplicar 5 X 4, el programa evala el producto al sumar 5 cuatro veces, o 5 + 5 + 5 + 5. El programa de multiplicacin de la tabla 6-14 no est inicializado. Despus de que se ejecuta una vez el progama, la posicin CTR se quedar con cero. Muesbre que si el programa se ejecuta de nuevo comenzando de la posicin 100, el ciclo se recorrer 65536 veces. Agregue las instrucciones necesarias para inicializar el programa. .Escriba un programa para multiplicar dos nmeros positivos sin signo, cada uno con 16 bits significativos, con el fin de obtener un producto de doble precisin sin signo. Escriba un programa para multiplicar dos nmeros de signo con nmeros negativos que estn al principio en representacin de complemento a 2 con signo. El producto debe ser de precisin nica y en representacin de complemento a 2 con signo si es negativo. Escriba un programa para restar dos nmeros de doble precisin. Escriba un programa que evale la OR lgica exclusiva de dos operandos lgicos. Escriba un.programa para la operacin de corrimiento aritmtico a la izquierda. Brinque a OVF si ocurre un sobreflujo. Escriba una subrutina para restar dos nmeros. En el programa que se llama, a la instruccin BSA le siguen el susbraendo y el minuendo. La diferencia se
6-22.
W ~ b una a subnitina para complementar cada palabra en un bloque de datos. En el programa que se llama, a la instnrcci6n BSA le siguen dos parAm&ros:la direcci6n de comienzo del blaqrie y e l nmero de paiabras en e l bloque.
6-23.
k i b a una subrutina para circular E y AC cuatro veces a la derecha. S i el AC contiene e 1 hexadecirnal O 7 K y E = 1, ~ d m quedan o los contenidos de AC y E despub de que se e j w t a la subrutina?
Escriba un programa para aceptar caracteres de entrada, empacar dos caracteres en una palabra y almacenarlos en posiciones wnsecutivas en un buffer de memoria. La primera direcci6n del buffer ea (400),E l tamao del bufler es de (512), palabras. S i el buffer tiene un sobreflujo la computadora debe detenerse. Escriba un programa para desempacar dos caracteres de la posici6n WRD y almacenarlos en los bits del O al 7 de las posiciones CH1 y CH2. Los bits del 9 al 15 deben contener ceros. Obtenga un diagrama de flujo para un programa que compruebe un cdigo CR (hexadecimal O D ) en un buffer de memoria. E l buffer contiene dos c a r a c t e m por palabra. Cuando se encuentra el c6digo para CR,d programa lo transfiere a los bib de1 O al 7 de la posicin LNE sin afectar los bits del 8 al 15. Traduzca la nitina de servicio SRV de la tabla 6-23 a su d i g o hexadecimal equivalente. Considere que la rutina esta alrnamda comenzando d d e la posicibn 200. k i b a una rutina de servicio de interrupci6n que ejecute todas las funciones nqueridas pero que el dispositivo de entrada atendido & l o si una posicin espxial, MOD, contiene &lo 1. El dispitivo de salida se atiende 9610 si la posici6n MOD contiene nicamente diitos 0.
-24.
6-25.
6-26.
6-27.
6-28.
1. l b & , T .L . , Introd~ictionlo Computer Engineering, 3a. Ed. Nueva York John Wiley, 1984. 2. Gear, C.W,, Computer Organimtion and Programming, 3a. Ed. Nuwa York M d r a w
Hi11, 1980.
3. Gibcon, G. A., Computer S y s t m Conceplc and Design. E n g l e w d Cliffs, NJ: Prentice
HaU, 1991. 4. Gray, N.A. B. Introduction tu Computer S p W . E n g l e w d Cliffs, NJ: Prentice Hall, 1987. 5 . Ley, H . M, y R H.EAkhouse, Jr., Coniputer Pmgrarnming and Ardritecture: Ihe VAX-11. Wfod, MA: igital Press, 1980.
PubIishws, 1991. 9. Tanenbaum, A. S, Struchired Compute? rganizntion, 3a. Ed. Englewood Cliffs, NJ: M t i c e %U, 1990. 10. Wakerly, J, F . , MimKDrnpufer Architecture and hgramming, Nueva York: JohnWiley,
1981.
1 '
EN ESTE CAP~TULO
7-1 7-2
7-3 7-4
226
palabra de control
f
microinstruccidn microprograma
memoria de control
representarse en cualquier momento mediante una cadena de dgitos 1 y O, que se denomina palabra d e control. Las palabras de control pueden programarse para realizar diferentes operaciones sobre los componentes del sistema.' Una unidad de control cuyas variables de control binario se almacenan en la memoria se llama unidad de control microprogramada. Cada palabra en la memoria de control contiene una microinstruccin. La microinstruccin especifica una o ms microoperaciones para el sistema. Una secuencia de microinstrucciones constituye un microprograma. Como no se necesitan alteraciones del microprograma una vez que la unidad de control est en operacin, la memoria de control puede ser una memoria de slo lectura (ROM). El contenido de las palabras en la ROM es fijo y no puede alterarse mediante la programacin simple porque no es posible escribir en la ROM. Las palabras en ROM se vuelven permanentes durante la produccin de la unidad. El uso de un microprograma implica la colocacin de todas las variables de control en palabras de ROM para que las use la unidad de control a travs de operaciones de lecturas sucesivas. El contenido de la palabra en ROM en cierta direccin especifica una microinstruccin. Un descubrimiento ms avanzado conocido como microprogramacin dinmica permite que un microprograma se cargue al principio desde una memoria auxiliar; por ejemplo, desde un disco magntico. Las unidades de control que utilizan la microprogramacibn dinmica emplean una memoria de control en la que se puede escribir. Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero, por lo general, se utiliza para lectura. Una memoria que es parte de una unidad de control se denomina memoria de control. Una computadora que emplea una unidad de control microprogramada tendr dos memorias separadas: una memoria principal y una memoria de control. La memoria principal estli disponible para que el usuario almacene programas. El contenido ,de la memoria principal puede variar cuando se manipulan los datos y cada vez que se cambia el programa. El programa del usuario en la memoria principal est formado por instrucciones de mquina y datos. En contraste, la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar. El microprograma consta de instrucciones que especifican diferentes seales de control interno para la ejecucin de microoperaciones de registro. Cada instruccin de mquina inicia una serie de microoperaciones en la memoria de control. Estas microinstrucciones generan las microoperaciones para llevar a cabo la bfisqueda de la instruccin en la memoria principal; para evaluar la direccin efectiva, para .ejecutar la operacin especfica mediante la instruccin y i n de repetir el ciclo para retornar el control a la fase de bsqueda con el f para la siguiente instruccin. La configuracin general de una unidad de control microprogramada se muestra en el diagrama de bloques de la figura 7-1. La memoria de control se considera como una ROM, dentro de la cual se almacena toda la informacin en forma permanente. El registro de direccionamiento de la memoria
227
Palabra de Eontd
Enrrada =terna
+ J H G H T H T \
Generador de
W t m de
dimiwiti
Memoria de
la d i d b n wsiguiente iador)
Registm de
I
registro d~
direccibn de control
de controI especifica la direccihn de la microinstrucci6n y el registro de datos de control contiene la microhstrucci6n que se lee de la memoria. La micruinstrucci6n contiene una palabra de control que especifica una o ms micmoperaciones para el prricesador de datos. Una vez que se ejecutan estas
registro de lineas
operaciones, el contra1 debe determinar la siguiente d i c i b n . La posicidn de la instruccin siguiente puede ser la ms pr6xima en secuencia a puede ubicarse en cualquier otra parte en la memoria de control. Por esta radn, es necaario utilizar algunos bit5 de la microinstrucci6n presente para controbr la generacihn de la direcci6n de la siguiente microinstruccibn. L a direccibn siguiente tambin puede ser una funci6n de condiciones de entrada externa. Mientras se ejecutan las microoperaciones se calcula la siguiente dimxi6n en el circuito generador de la direccidn siguiente y despub s e transfieren al regstro de direccionamiento de control para leer la pr6xima microjnstmcci6n. Por lo tanto, una microinstniccibn contiene bits para iniciar microoperaciones en la parte del pmcesador de datos y bits que determinan la secuencia de direccibn para la memoria de control. E l generador de l a .siguiente instrucci6n en ocasiones se llama un secuencindor de micropmgrama, porque determina la secuencia de direccibn que se lee en la memoria de control. La direccidn de la siguiente instnicei6n puede especificarse de varias maneras, dependiendo de las entradas del secuenciador. Las funciones tipicas de un menciador de microprograma son incrementar el registro de direccionamiento de control en 1, cargar una direccih de la memoria de control en el registra de direccionamiento de control, transferir una diremi611externa o cargar una direcci6n inicia1 para iniciar las operaciones de control, El registro de datas de control contiene la rni~~0imtmcci6n pmmte mientras que la siguiente direccin se calcula y se lee en la memoria. El registro de datos en ocasiones se denomina registro de arquitectura pmlela (pipeline) u paralelo. Ya que permite la ejecucibn de las rnicrmperaciones especificadas mediante la palabra de control simultneamente con la generacihn de la siguiente microinstruccidn. Esta configuraci6n requiere un reloj de dos fases, donde se aplica una de stas al registro de dreccimarniento y l a otra a1 registro de datos. El sistema puede operar en el registra de datos de control al aplicar una d a fase del reloj al registro de d-onamiento. ta palabra de control y la informaci6n de la siguiente direccibn se toman de la memoria de controI.
--
circuito combinatorio; con el valor & la direcci6n como entrada y la paIabra correspondiente como sdida. El contenido de la palabra especificada en ROM permanece en hs Iineas de salida, en bnto su valor de direccin se encuentra en el registro de direcci6n. No se necesita d a 1 de lectura como en una memoria de acceso aleatorio. Cada pulso de r e l o j ejecutara las rnicrooperaciones especificadas
Control de inew
internas
7-2
Secuencia de la direccion
mapeo
Al f i l de la rutina de bsqueda, la inatmEi6n est en el registro de instruccin de 12L computadora, En seguida, la men'oria de control m n e la rutina que determina la dkeccibn efectiva del operando. Una instrucci6n de mquina puede tener bits que especifiquen diferentes modos de direccionamiento, como un direccionamiento indirecto y los registros ndice. Puede lograme una rutina de c8lculo de direccin ektiva- en la memoria de conkm1 mediante iina mic~oi~strucei6n de brinco, la cual est ~wndicionadaal estado de los bits de modo de la operacin. Cuando se M n a la rutina de c4lcuh de direccidn efectiva, h d i i d n del operando est disponible en el registro de direccionamiento de la memoria, El siguiente paso es-generar las mimperaeiones que ejecutan la instrucdh que se trajo de Ia mmoria. b s pasos de la rnicrooperaci6n que se van a generar en l~ q i s t r o s del procesador dependen de la parte del d i g o de operacidn de la instruccin. Cada instrucci6n tiene su propia rutina de micropmgrarna almacenada en una cierta posici6n de la memoria de control. b a transformacin de bits de1 cdigo de instruccin a una diremi611en la memoria d e conkm1 donde se Iocaliaa la rutina se denomina proceso de mapeo. Un procedimiento de mapeo es una regla que transforma e 1 cMgo
de instnimi6n en una direcci6n de memoria de control. Una vez que se llega a la niti a querida, las microinstrucciones que ejecutan la instniccibn pueden uenciarse al incrementar el registro de diicionarniento de conMI, pero en ocasiones la secuencia de microoperaciones dependerA de los valores de ciertos bits de estado- y Ioe registros del procesador. i m microprograma3 que.emplean subrutinas requerirn un registro interno para almacenar la d i d 6 n de retorno. tas direcciones de retorno no pueden almacenarse en RQM porque no es posible escribir en la unidad. Cuando se termina la ejecuci6n de la instrucci6n, el control deke retomar a la rutina de biqueda. Esto se consigue al ejwutar una miuuiinstrucci6n de brinco incondicional a la primera d i c i 4 n de la rutina de bsqueda. En resumen, las posibilidades de secuencia de direcci6n que se requieren-en la memoria de control son:
EL
Incrementar el registro de direccionamiento de control. 'Transferencia de control del programa condicional o incondicional, dependiendo de las condiciones de los bits de estado. 3. Un proceso de mapeo de los bib de la instruccidn a una ,direccin para una memoria de control 4. Una opcin para ilamar y regresar solicitud de una subrutina y
retorno.
L a figura 7-2 muestra un diagrama de bloques de una memoria de control y la circuitera a w i a d a necmaria para seIeccionar la direcci6n de la siguiente microinstrucci6n. La rnic~~instruccin en la memoria de control contiene un conjunto de bits paTa iniciar micmperaciones en las registros
de la computadora y otros hits para especificar e l mtodo con e l que se obtiene l a siguiente direccibn. El diagrama muestra cuatro trayectorias diferentes de ias que recibe la direccin el registro de direccionarniento de contra1 (CAR). El incrementador incremmta el contenido del registro de dhccbnamiento de control en uno, para seleccionar la microinstrucci6n siguiente en secuencia. La transferencia de control del programa se consigue al esp~ificar la direcci6n en uno de los campos de Ia microinstmccibn. La transferencia de control condicional se obtiene al usar una parte de la microinstmcci6n para seIeccionar un bit de estado especifico con e l fin de dekqinar su condicih. Se transfiere una dileccin externa a la memoria de control mediante un circuito 16gico de mapeo. IA direccin de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza despub, cuando d rnicroprograma desea retornar de la subrutina.
Figura 7-2 Celeccin de una direcci6n para la memoria de control.
Transferencia condicional
proporciona posibilidades de toma de decisiones en la unidad de control. Las condiciones de estado son bits especiales del sistema que proporciona nfomaci6n de parhetros, como el acarreo de un sumador, el bit de signo de un nmero, los bits de modo de una instfucci6n y las condiciones de estado de entrada o salida. la informacihn en estos bits puede probarse y se pueden iniciar acciones con base en su condicibn si su valor es 1 o O. Los bits de estado, junto con el campo en la microinstmcci6n que especifica una direccibn de transferencia, controlan las decisiones de transferencia condieional que SE generan en la 16gica de trmsfemcia de control. IA circuiteria de 16gica de transferencia de control puede implantarse de diversas maneras. La mAs sencilla es probar la condicibn especificada y brincar a la d i i 6 n indicada si se cumple una condicin; de otra manera, el registro de direccionamiento se incrementa. Esto puede logra- con un multiplexori Supongamos que hay ocho condiciones de bit de estado en d sistema. Se usan tres bits en Ia microinstrucci6n para especificar cualquiera de uno a ocho condiciones de bik de estado. Estos tres bits p"po"0nan las variables de selecci6n para d multiplexor. Si el bit de estado que se se1eociana est en 1, la salida del multiplexor es 1; de otra manera es O. Una salida 1 en el multiplexor genera una sefial de control para transferir la direeeidn de1 brinco de la microinstrucci6n al registro de direccionamiento de control. Una salida O en el multiplexor provoca que se uicremente d registro de diremibn. En esta configuracin, el microprograma sigue una de dos trayectorias posibles, dependiendo del valor del bit de estado que se seleccione. Una iristmccin de transferencia incondicional puede obtenerse al cargar la direccibn de ramificacin de la memoria de control en el registro de direccionamiento de control. Esto puede lograrse al fijar el valor de un bit de estado de la entrada del mdtiplexor para que siempre sea igual a 1. Una referencia a este bit, mediante las h a s de seleccih dei bit de estado de la memoria de control, hace que Ia dimcidn del brinco se cargue en el registro de dirwctonamiento de control en forma incondicional.
rna en i a memoria de confrd que ejecuta la microinstmeci6n. Un proceso de mapeo simpk que convierte al cdigo de operaci6n de 4 biis en una direccidn de 7 bi@ para la memoria de control se rnueetra en la figura 7-3.Este m a p consiste en colocar un O en el bit ms significativo de la direccin, al transferir los, cuatro bits de cbdigo de operacidn y borrar los bits menos signscativas del registro de direccionamiento de control. Esto proporciona una rutina .& mimoprograma con capacidad de cuatro microinstrucciones para cada imtruccih de computadora. S i la rutina necesita m8s de ectas cuatro mstnicciones puede utilizar las direcciones de l a 1000000 a la 1111111. S i utiliza mepos de las cuatro instruccionesr las posiciones de memoria que no se usan p i d a n estar disponibles para otras rutinas. Se puede ampliar este concepto a una regla de rnapeo mis general, al usar una ROM para espee%car la funcidn de mapeo. En esta configuracin, los bita de lar instruccidn v i f i c a n la dimci6n de una ROM de mapeo, El contenido da la ROM de mapeo proporciona los bits para el registro de direccionamiento de contro1. De esta manera, la rutina de microprograma que ejecuta la instntcci6n puede coIocarse en la posicibn que se desee en l a memoria de!contmI. El concepto de mapeo proporciona flexibilidad para agregar inabrucciones para la memoria de contra+ ronforme surge la necesidad. En ccasiones la funcibn de mapa se obtiene mediante un circuito integrado llamado dispositivu lgico progr-amable o PLD. El concepto de un PLD es similar al de la ROM, excepto que utiliza compuertas AND y OR con fusibles electr6nicos internos. Puede programarse la intermnexibn de las entradas, >compuertasAND, cornpueria8 O R g salidas como en una ROM. ,Unafuncin de mapeo que puede expresarse en trminos de expresiones ?maleanas pude incrementarse en forma conveniente con un PLD.
Submthas
h s subrutinas son paagramas que utilizan otras rutinas para realizar una tarea partrcuiar. Puede Ilamarise una suhruka de cualquier punto desde el
registra de
subrutina
del microprograma. Con frecuencia, muchos microprogramas contienen secciones de c6digo idbnticas. Pueden ahorrarse microinstrucciones al emplearse subrutinas que ~rtilizansecciones comunec de microcdigo. Por ejemplo, la secuencia de microinstrucciones necesarias para generar la direccin efectiva del operando para una instrueei6n es c o m h a todas las instrucciones de referencia a memoria. Esta =uencia podfla s e r una subrutina que se solicite en cualquier rutina para ejecutar el dlculo de dire4411efectiva. Los nicroprogramas que utilizan subrutinas deben tener una parte para almacenar la direcci6n de retorno durante una llamada a subrutina y restablmr la direccin durante un retorno de subrutina. Esto puede lograrse al colocar la salida incrementada del regiskm de direccionamiento de control en un registro de subrutina y al brincar al comienzo de la subrutina. El registra de la subrutina puede convertirse entonces en la fuente para transferir la direccin para e1 retorno a la rutina principal. L a mejor manera de estmcturar un registro de archivo que almacena direcciones para subrutinas es organizar los en una pila (stack) del tipo itimo en entrar, p m r a en salir (LIFO). El uso de una pila en ilarnadas y regresos a subrutina se explican con mayor detalle en la seccin 8-7.
a w p o principal
'
Configuracibn de la computadora El-pmgrama de bloque de una computadora se muestra en la figura 7-4. Consta de dos unidades de memoria: una memoria principal para almacenar instrucciones y datos y una memoria de control para almacenar el micropm grama. Se asoeian cuatro registros con la unidad del procesador y dos con la unidad de controI. Los regisiros del prpcesador son el contador de programa PC, el e t r o de direccionamiento AR, el registro de datos DR y el registro acumulador AC. L a funci6n de estos registros es similar a los de la computadora baisica que se present6 en el captulo S (vease la figura 5-3). 1La unidad de control tiene un registro de direccionamiento de control CAR y un registro de subrutina SBR. La memoria de control y sus registros se organizan como una unidad de control mkroprogramada, e n se m u e s t r a en la figura 7-2.
fomato de inshccibn
La transferencia de informaci6n entre los registros del procesador se realiza mediante mdtiplexores, no por el bus comn. DR puede recibir infomaci6n de AC, PC a de la memoria. R puede recibir informacibn de PC o DR. PC &lo puede recibir infomiaci6n de AR. La unidad arih&tica, lbgira y de corrimiento realiza micmperaciones con datos de AC y DR y coloca el multado en AL. N6tese que la memoria recibe su direceibn de AR. Los datos de entrada m i t o s en la memoria provienen de DR,y los datos que se I m en la memoria sblo pueden ir a DR. El formato de in6tmccii de computadora aparece en h figura 7S(a). Consta de tres campos: un campo de 1 bit ara direccionamiento indimcto
BRANCN
o001
EA wi la direccin efwkiva
b ) marro hsirurxiones de computadora
representado por 1 , un c6dig.o de operaci6n de 4 bits y un campo de dXxecci6n de 11 bits. La figura 7-5(b) lista cuatro de las 16 instrucciones posibles de referencia a memoria. La instruccidn ADD suma el contenido del operando que se encuentra en la direccin efectiva al contenido de AC. La instnicciBn BRANCH provoca un brinco a la direcci6n efeetiva si el operando en AC es negativo. El p~ograma pasa a ejecutar la siguiente insbccih si AC no es negativo. AC es negativo si su bit de signo (el bit a la extrema izquierda del registro) es un 1 . La hstmceibn STORE transfiere el contenido de AC a la palabra de memoria wp&if~cnda p ' rla direcci6n efectiva. La instrucci6n EXCHANGE inkrtambia los datos entre AC y b palabra de memoria espeOfdada por la direccin efectiva. Despus se moshr6 que cada instruM6n de computadora debe microprogramarse. Para no complicar el ejemplo de microprogramaci6n, a q d 9610 se consideran cuatro instrucciones. D e b e recordarse que pueden incluirse otras 12 qmaeiones y cada iristru~ei6n debe mic~aprogramarse mediinte el p d i m i e n t o que se mipestra enseguida.
fomtato de
mhin+cidn
Formato de las rnicrohtrudones El formato de microinstruccibn para la memoria de control se muestra en la figura 7-6. b s 20 bits de la microhtrumi&n se dividen en cuatro parties fundonal~. Los tres campos F1, E?y M especifican micmperaciones para la computadora. E 1 campo CD 6eIdona las condiciones del bit de estado. El ampo BR e c a el tipo de transferencia de contror que ae usarb. El
campo AD contiene una direccibn de memoria. El campo de direccin es de 7 bits porque la memoria de control tiene 128 = 2' palabras. Las microoperaciones se auhdividen en tres campos de tres bits cada uno. Las tres bits en cada campo se codifican para especifiar siete operaciones distintas, como c e muestra en la tabla 7-1. Esto proporciona un total de 21 micwoperaciones.. No pueden elegim m8s de tres operaciones para una microinstrucci6n, una para cada campo. S i se usan menos de tres microoperaciones, uno o ms de los campos usar&el cdigo binario 000, que significa sin operacibn. Como ejemplo, una microinstmcci6n puede especificar dos rrilcrooperaciones simultneas de F2 y M y ninguna de El.
Dp + M [AR]
Y PCc-PC4-1
con F2 = 100
cdnF3=101
campo de condin'p
Entonces los nueve bits de los cqmpos de la micmqeraci6n serfin 000 100 101. Es irnpofinte cqmprender que no pueden especificarse de manera simult4nca dos o ,m6s miuooperaciones confiicibas. Por ejemplo, un campo de microoperaci6n 010 M31 W I no tiene sentido porque especifica la operacidn para cambiar AC a O y restar DR de AC, al mismo tiempo. Cada microoperacin de la habla 7-1 se define con un enunciado de transferencia & registros y *,le asigna un smbolo para us~rseen un micropmgrama simblico. Todos los smbo1m de mia;ooperaciones de tipo transfe~enciau N b n cinco letras. Las primeras dos letras representan el registro fuente, la tercera es siempre una T , y las dos lltunas letras representan el registro destino. Por ejemplo, la mimperacibn que especifica la transferencia AC+DR. = 100) time el shbdo DRTAC, lo cual rep-ta una transferencia de DR a AC. El campo de condicin CD consta de dos bits que estn codificados para espeUFwr condiciones de bits de cuatro esbdos, ~ @ se n listan en la tabla 7-1, L a primera condich es siempre un 1 ,p r l o que una referencia a CD W (o el aimbolo U)siempre encontrar verdadera la mndicidn. Cuando
Ninguno A C t A C t DR
AC+D A C c A C -t 1
DRTAC
DATAR
PCTAR WRITE
Ninguno A C t A C DR A C t A C V DR AC-AC A DR
NOP
SUB
AND READ ArnR INCDR PCTDR
Simbolo
F3
000 001
010 O11
Micmpemcibn
1 0 0 1 0 1 110 111
NOP XQR
COM
SHL
SHR INCPC
AIETPC
Comentarios
ixi.
01
a m p ~1
4
U
1 S Z
DR(1S)
slC(1S)
1Q
11
AC=Q
BR M I
01
1 0 11
Slmbolo JMP
CAU,
RET
MAP
CAR +AD si la condicidn = 1 CAR +CAR + 1 s i la d i c i n = O CAR +Mm+ SBR CvPA + 1 si la condicidn = 1 CAR+aR I siIadici6n =O CAR +SER (Retorna de.subruiina) CAR (2-5) +DRCll-141, CAR(0,I -6) +O
238
CIETE
Control microprogramado
campo de
transfwericia
esta mndicibn se utiliza junto con el campo de transferencia BR, proporciona una operacidn de transferencia inmndicionaL El bit indirecto 1 est disponible en el bit 15 de DR despus de que lee una instnicci6n de la memoria. El bit de signo de AC proporciona el siguiente bit de estado. E l valor O, representado por 2,es una variable hinaria cuyo valor es igual a 1 si todos los bits de AC son iguales a cero. Utilizaremos los smbolos U,1 , S y Z para los wtrabits de estado. cuando anotemos programas en forma simblica. El campo de transferencia BR consta de dos bits. Se utiSua junto con el campo de direccionamiento AD, para seleccionar la direccibn de la siguiente microinstnicci6n. Como se muestra en la tabla 7-1, cuando BR = 00, el control ejecuta una opmaci6n de brinco JMP (la cual es similar a una transferencia de control), y cuando BR = 01, ejecuta una llamada a subrutina
(CALL). t a s dos operaciones son idnticas, excepto en que una microinstrucci6n de llamada almacena la dirrccibn de retorno en e l registro de subrutina SBR. Leis operaciones de salto y llamada dependen del valor del campo CD. Si la mnditi6n del bit de estado especificada en el campo CD es igual a 1, se transfiere Ia siguiente direccihn del campo AD al registro de diteccionamiento de control CAR. De oka manera, CAR se incrementa en 1. E l retorno de la subrutina se consigue con un campo BR igual a 10. Esto provoca la transferencia de la direccibn de retorno de SBR a CAR. Se consigue el mapeo de los bits del cdigo de operaci6n de la instrucci6n a una d i m i b n para CAR cuanda el campo BR es igual a 11. Este mapeo aparece en ]a figura 7-3. Los bits del cdigo de operaci6n estn en DR (11-14) despu4s de- que se lee una imstniccibn de la memoria. N6tese que las dos iiltimas condiciones del.campo BR ,san independientes de los valores de los campos CD y AD.
Microinstrucciones simb6licas
Los slmbolos definidos en la tabla 7-1 pueden utilizarse para especificar microinstrucciones en forma simbblica. Un microprograma simblico puede traducirse a su equivalente binario mediante un ensambladar. Un qnsamblador de microprogram es similar en su concepto a un ensamblador de computadora convenci~nal, e n se define en la secci6n 6-3. L a manera m8s sencilla y directa de formular un lenguaje ensamblador para un m i c m p ~ m a es definir shbolm para cada campo en la microinstruccin y proporcionar a los usuarios la posibilidad de definir sus propias direcciones simblicas. Cada lnea del microprograma del lenguaje ensamblador define una rnicroinstniccibn simb6lica. Cada micmhstnicci6n simbblica se divide en cinco campos etiqueta, micrmperaciones, CD, BR y AD. tos campos especifican la siguiente informacin.
1 . El campo de la etiqueta puede estar vado o especificar una d M & n simbolica. Una etiqueta temiina con un signo de dos puntos (:). Z El campo de rnicrooperacisnes consta de uno, dos o tres simbolos separados por comas, de los definidos en la tabla 7-1. No puede
campo de dirercidn
haber & de- un simbolo de campo F. E l siibolo NOP se utiliza cuando la microinstnicci6n no tiene microoperaciones. E1 ensambladar traducir&esto a nueve ceros. 3. E 1 campo CD tiene una de las letras U, 1, S o 2 . 4. El campo BR contiene uno de 10s cuatro slmbolos definidos en la tabla 7-1. 5. El campo AD espciftca un valor para el campo de direccin de Ia microhstrueci6n en una de tres maneras posibles: a . Con una d i m i 6 n simMlica, la cual tambidn debe aparecer como etiqueta, b . Con el smbolo NEXT para representar la direccihn siguiente en secuencia. c. Cuando e l campo BB contiene un smbolo RET o MAP, el campo AD se deja vacio y d ensambhdor b convierte a siete ceros.
ORC
cada palabra contiene 20 bits. Para mimoprogramar b memoria de conho1 es n ~ s a r i o determinar los valores de bit de cada una de las 128 palabras. tas primeras 64 palabras (direcciones -(J a 63) las van a ocupar las rutinas para las 16 instrucciones. h s iiltimas M paIabras pueden usarse para cualquier otro propsito. Una posici6n de inicia conveniente para la rutina de bsqueda es la direccin M. h s microinstnicciones necesarias para la rutina bsqueda son
biisqwda y
dwodijkucidn
a AR y despus se lee I a instruccibn de la memoria dentro de DR. Como no hay disponible un &gistro de inserucci6n, el cdigo de insfuccih permanece en DR.La parte de direccin se transfiere a AR y d @ u & se transfiere e l control a una de las 16 xutinas al mapar una parte del c6digo de operacidn de la instrucci6n de DR dentro de CAR. b rutina de btisqueda necesita estas microinstrucciones, las cuales se calman en la~mmorade control de las direcciones M,6S y 66. Usando las
ronvmdones del lenguaje ensambIador definidas antes, pdemos wribir e l m i q r o g r a m smb6lico para Ia rutina de recuperaci6n como sigue:
FETCH :
JMP
U U
JMP
MAP
NEXT NEXT
La traduccibn del micraprqrama simblico a binario p d u c e el siguiente rnicroprograma binario. tos valores de bit se obtienen de la tabia 7-1.
CD
BR
AD
Las tres microinstnicciones que constituyen la rutina de bdsqueda se han ihtado en tres representaciones di8ferentes. La representaci6n de Eransfe rancia de registros muestra las operaciones de transferencias de registros internas que implantan cada miczoinstrucci6n. l a qresentaci6n simb6lica es til para exribir m~cropmprztrnasen un fomnato del nguaje ensamblat e almacenarse en dor. La mpresentaci6n binaria es el contenido real que de la memoria de control, ! % acostumbra ecribir microprogramas en forma simbblica y ,dqpu4s. utilizar un programa ensamblador para obtener una traduccihn a binario.
La ejecuci6n de la tercera mfcrainsthcci6n (MAP) en la rutina de bsqueda da como resultado un brinca a la dimcibn Oxxxx00, donde xxxx son los
'cuatro bits del cdigo de operacibn. Por ejemplo, si la instmccidn es una ADD cuyo cdigo de operaciSn es 0000, la microinstmcci6n MAP transferir a CAR la d k c i b n 000000Q, la cual es la direccidn de inicio para Ia rutina ADD en la memoria de control. La primera dimi611 para la rutinas BRANCH y STORE son O O001 0 0 (el decimal 4) y O O010 00 (el decimal 8), respectivamente. La primera direcci6n para las otras 13 rutinas est en los valores de direccin 12, 16, 2 0 , .., 60.Esto proporciona cuatro palabras en la memoria de control para cada rutina. En cada rutina debernos proporcionar micminstrucciones para evaluar la direccibn efectiva y ejecutar la instruccin. El modo de direccionamienbs
Micropxogama simblico
indirecta est asociado con todas las instrucciones de referencia a memoria. Pueda usarse menos palabras de h memoria de control si se almacenan en una subrutina hs micr&nslfucciones para e1 direccionamiento indirecto. Esta subrutina, simboiizada mediante INDRCT, se coloca exactamente despus de la rutina de bsqueda, como se muestra en la tabla 7-2. i a tabh tarnbikn muestra d microptagrama simb6lico para la rutina de bsqueda y la's submtinas de microinstruccibn que ejecutan cuatro instrucciones de computadora. Para apreciar c6mo ocurre la transferencia y retorno de b rutina indiwQ, cmsidmos que la microinstnicci6n MAP al final de la rutina de bsqueda provac un brinco a la direccibn 0, donde est almacenada la rutina ADD. La primera microinstruccin en la rutina ADD solicita la subrutina INDRCT, condicionada al estado del bit 1. Si i = 1, ocurre un brinco indirecto I N D R a y la direccibn de retorno (la direccibn 1 en este caso) est almacenada en e l registro de subrutina SBR. La subrutina INDRCT tiene dos microinstrucciones:
INDRCT :
READ DRTAR
U U
JMP
RET
NEXT
Recuerde que un direccionamiento indirecto considera la parte de direcci6n de la instmcci6n como el lugar donde se almacena la direccibn efectiva ms que la dimti6n del operando. Por lo tanto, tiene que accesarse la memoria para obtenqr la direcci6n efectiva, l a cual despus se transfiere a AR. El retorno de la subrutina @ET) transfiere la direccibn de SBR a CAR y, por l o tanto, retorna a la segunda microinstrucci6n de la rutina ADD. ia ejecucibn de la tistrucci6n ADD se realiza mediante las microinstrucciones de las direcciones 1 y 2. La primera microinslnicci6n lee el operando de la memoria en DR. i~ segunda microinstmcci6n ejecuta una microoperaci6n de suma con el contenido de DR y AC y despus regresa al comienzo de la rutina de bsqueda. La instrucci6n BRANCH debe provucar un brinco a la direecibn efectiva si AC < O. AC ser menor que cero si su signa es negativo, lo cual se detecta cuando el bit de estado S es 1. La nitina BRGNCH en la tabla 7-2 comienza por comprobar el valor de S. Si S es igua.1 a O, no murre el brinco y la siguiente micrainstrucei6n provoca un retorno a la rutina de bsqueda sin alterar el contenido de PC. Si S es igual a 1, la primera microinstrucci6n JMP transfiere el control a l a posicin OVER La rnicroinstrucci6n de esta posici6n solicita l a rutina INDRCT s i 1 = 1. Despu4s la direccin efectiva se transfiere de AA a PC y d rnicroprogra'ma regresa a la rutina de
biisqueda. La nitina 5TOlU3 vuelve a utilizar la subrutina INDRCT s i I = 1. E i contenido de AC s e transfiere a DR. Se irtida una operacin de escribir en -la memoria para almacenar el contenido de DR en una localidad especificada mediante'la direccin efectiva en AR.
ADD:
CAIa.
LNDRCX,
U U
S
JMP
NEXT
FETCH
OVER FETCH INDRCT FETCH
INDRCT
JMP
JMP
JMP CALL JMP
'I
W OVER:
A R n c
ORG 8
STORE:
U X U
1
NOP
ArnR WRITE
U
U
JMP
JMP
NEXT
FETCH
ORG 12
EXCHANGE:
NOf
f
U U U
INDRCT
NEXT
NEXT FETCH
rd
mm:
INDRF::
La mtina MCHPrNGE lee el operando de la d i m i b n efectiva y lo c o b a en DR Ei contenido de DR y AC se in-bia en l a terma microinstruccihn. Este intercambio es posible cuando los registros san del tipo activado por isnw, (vbase l a figura 1-23). E l contenido original de AC, que se encuenlra ahora ,en DR, se almacena de r e p w en la ihemoria. l$ tabla 7-2 contieIie una lisb parcial del mimoprograma. N&be Si510 .sehan m i c q x ~ a m a d o cuatro de las 16 instrucciones de computadora posibles. Tampoco se han u&do las palabras de memoria de control en las ,pbiaones 69 a la 1 2 7 .Las instrucciones como multiplicar, di vi di^, y otras que mqpierert una larga secuencia de micmapmacio~leg~ necesitaran h6s de cuatro micminstrucriones parq su ejecucin. Las palabras de memoria de conhol de Ia 69 a la 127 pueden usarse para este pq%sito.
243
Microprograma binario El rnicroprograma simb6lico es una foma conveniente .para escribir m i c m programas de manera que las personas puedan leerlo y comprenderlo. Pero esta no es la m e r a en l a cual se almacena un microprograma en la memoria. El microprogratna sirnbolico debe traducirse a binario ya sea mediante un programa ensamblador o que lo realice e l usuario si el mimoprograma es lo suficientemente simple como en este ejemplo.
TABLA 7-3 Mianprograma binario pata memoria de control (parcial)
u.1
rbii
~il-mci~"
Microrrutjna
Decimal
O
Binaria
ADD
3
BRANCH
1 2
4 5
6
7
STORE
8
9 1 0
11 12
13 14 15
EXCHANGE
FETCH
INDRCT
64
10000M)
110
000
65
66
67 68
000 100
100 000
000
00
101
MW)
m
00
00
1OOOOO1
101
000
000 000
000
1OOOlOO
101
00 00
00 11 00
10
1OOOO1O
0000000
lOOO100 0000000
ia forma bina& equivalente del microprograma se lista en la tabla 7-3. h s di~ecciones para la memoria de control se prporcionan en decimal y b i i r i o . El contenido binario de cada microinstruccibn se deriva de los ~nb.010~ y 9us valores bimrios equivalentes se definen en la tabla 7-1. Ntese que la direcci6n 3 no tiene equivalente del microprograma simbiii porque la rutina ADD sblo tiene h.es micrbhtrueeiones en las M m e s 0, 1 y 2. la siguiente rutina comienza en la direccibn 4. Aunque
la dhwcidn 3 no se usa, debe especificarse al* valar binario para cada palabra en la memoria de control. P&OB hahr especificado &lo dgitos O en la palabra porque esta posicihn nunca se utilizar6. Sin embargo, si ocurre algn error no detectado o s i KM seal de ruido establece CAR para el valor de 3, ser4 prhetico saltar a la direcci6n 64, la cual es el comienzo de
M
memo* de contrul
ihi
A
b
contenido'de la paIabra de la memoria de control. Cuando se utiliza una ROM para la memoria de control, la lista binaria de microprograma proporciona la tabla de verdad para fabricar la unidad. Este proceso de fabricaci6n consiste en crear una mascarilla para Ia ROM con el fin de que produzca los dgitos 1 y O para cada palabra. Los bits de la ROM se fijan una vez que se funden los enlaces internos durante la produccin 'de la circuiterla. La ROM est4 hecha de I C que pueden reemplaza= cuando es necesario y sustituirse por otm. Para modificar el conjunto de instrucciones de la computadora, es necesario generar un nuevo microp~~)grama y "enmascarar" una nueva ROM.La anterior puede retirarse e insertarse una nueva en su lugar. Si se utiliza una memoria de control en la que s e pueda escribir, la ROM se sustituye con una RAM. ia ventaja de emplear una RAM para la memoria de control es que el microprograma puede alterarse de manera sencilla al escribir un huevo patrn de dgitos 1 y O s i n recurrir a procedimientos de fbncacin. Una memoria de contrnl en la que se puede es~ribir la flexibilidad para elegir en b n n a dinmica el conjunto de instrucciones de una computadora al cambiar e l microprograma bajo el control del prmesador. S i embargo, la mayora de los sistemas programados utilizan una ROM para la memoria de control porque es mas barata y mis rpida que una RAM y tambin para prevenir que un usuario ocasiona1 cambie la arquitectura del sistema.
7-4
Los bib de la microinshuccibn por lo genera1 se dividen en campos, y cada campo define una funci6n separada y distinta. Los diferentes campos que se encuentran en los formatos de instrucci6n proporcionan bits de control para iniciar microoperaciones en el sistema, bit6 especiales para especificar la manera en que se va a evaluar la siguiente instruccibn y un campo de direccin para transferir el control del prugrama. Puede reducirse la cantidad de bits de control que inician micmperaciones al agrupar variables mutuamente exclusivas en campos y cdificar los 'bits k de cada campo para proporcionar 2k micmperaaiones. Cada campo requiere un decodificador para producir las e l e s de control correspondienws. Este mdtodo d u c e e l tamao de Iw bik de rnicroinstruccin pero necesita hardware adicional externo a la memoria de control, Tambin aumenta el tiempo de retardo de
SEC~QN P-8. D k i b de
k unidad de control
245
ecodi&ad~xgs
de campos
las sehales de ~~ntr01 porque deben propagarse por los circuitos de decodificacidn. La d d i i c a c i 6 n de 10s bite de control se, mostr en el ejemplo de pmgramacibn de Ia,secci&n anterior. Los nueve bits. del campo de la microoperacibn se dividen en tres campos de tres bits cada una. IA salida de la memoria de m t m l de cada s&campo dek dediticpara que proporcione las.distintas rnicrooperaciones. Las ~ Q d a s de loa decodificadores e s & conectadas a las entradas convenientes en la unidad de procesador. b fipya 7-7 muestra las tres deico;dificadoresy algunas de les conexiony que deben hacerse a partir de sus salidas. Cada &o de los tres campos de la ~croinstr;ueci6n disponible en ese momento en la salida de I a memoria de control 'se decodifica con un decodificador 3 X 8 con el fin de propor&nar,,ocho salidas. Cada una de estas salidas debe conectarse al ,c.huito pnv&& para Miciar l a microoperaci6n ~~IT@SporidigIte, segn se e s ~ i &ca en la kbla 7 1 .Por ejemplo, cuando F1 = 101 @hario S ) , la siguiente
Figura 7-7 13erodlCicaci6nde campos de micrmperacibn.
Fl
1'
1'
F2
lr
P3
Derodificsdor 3 x 8
7 6 5 4 3 2 1 0
1
Desorlifkador 3 x 8
7 6 5 4 3 2 1 0
t t t'
ADD
DRTAC
ttt
m s
de PC
16gi y de
corrimiento
do DA (O- 10)
1t
ir
ir
Seleccionar
41
--
Multiplexores
WoY
246
m m Control micmpmgramado
trnnsicih de pulso de reloj transfiere el contenido de DR (0-10) a AR (representado por DRTAR en la tabla 7-1). De igual manera, cuando F 7 = 110 @ i r = 6.) hay una transfemcia de PC a AR {representado mediante PCTAR).Cbrno se muestra en la figura 7-7, las &lidas 5 y 6 del decodificador FI estn conectadas a la entrada de carga de AR, para que cuando una de e k s est activa, se transfxera a AR la informacibn de los multiplexores. Los muitipIexores seleccionan la informacin de AR cuando est activa la salida 5 y de PC cuando estd inactiva la salida 5. La transferencia a AR ocurre can una transici6n de pdso de reloj slo cuando* estiin activas las salidas 5 o 6 del decodificadox. L s otras salidas del decodifkador que inician transferencias entre registros deben conectarse en fomia similar. La unidad de corrmiento lbgico aritmetico puede di&rse como en lm figuras 5-19 y 5-20. En lugar de utilizar compuertas para generar las seHales de control marcdas mediante los shbolos ADD, y DR en la figura 5-19, estas entradas pwveridrdn ahora de las salidas de loa decodificadores asociadas con los smbolos AND, ADD Y DRTAC, respectivamente, como se muestra en la figura 7-7. Las otras salidas de los decodificadores que estn asociadas c m una operacibn AC tambin deben conectarse a la unidad de corrimiento ldgico aritmbtico en forma similar.
Idgfcn y de
com'mhnto
m,
Semenciador de dcroprograma Los componentes bsicos de una unidad de control minoprogramada son la memoria y ios circuitos que deccionan la direcci6n siguiente. L a parte
de seleccibn- de direccidn se llama muenciador de microprograma. Puede construirse un secuenciador de mimoprograma con funciones digitales que w? ajusten a una aplicacidn particular. Sin embargo, al igual que existen grandes unidades ROM disponibles en encapsulados de circuitos integrados, tambih hay secuenciadores de ppop6sib general convenientes para la con* tniccibn de unidades de control de micropropma. Para garantizar un amplio-rangode aceptabilidad, un secuenciador de circuitos integrados debe proporcionar una organizacidn interna que pueda adaptarse a un amplio rango de aplicaciones. El propsito de un menciador de microprograma es pmntar una direcci6n a la memoria de control con el fin de que pueda lee= y ejecutarse una microinstrucci6n. La lBgica de siguiente direcci6n del secuenciador determina la direeci6n fuente especfica que se va a cargar dentro del registro de control de direccidn. La elecci6n de la direcci6n fuente s e gua mediante los bits de informaci6n de la direcci6n siguiente que recibe el secuenciador de la microinstrucci6n presente. las secuenciadores comerciales induyen dentro de la unidad una pila de registro interno que se usa para el almacenamiento temporal de direcciones durante solicitudes de subrutina y ciclo de rnicroprograma. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direcci6n para h memoria de control.
247
Para mostrar la estructura interna de un secuenciador de microprograma tpico analizamos una unidad particular que es conveniente para usarse en eI ejemplo de computadora de micmpmgrama desarrollado en la ~ecci6n anterior. El djagrama de bloque del semendador de microprograma se muestra m la figura 7-8. La memoria de control se nciuye en el diagrama para mostrar la interacih entre e l secuenciador y la memoria conedada a 41. Hay das multiplexotes en el circuito. E l primero selecciona una direecibn de las cuatro fuentes y le marca una ruta hacia dentro del registro de direccibn de control CAR. El segundo multiplexor prueba el valor de un bit de wtado wleccianado y el resultado de la prueba se aplica a un circuito 16gico de entrada. La salida de CAR proporciona la direecibn para la memoria de contral. El contenido de CAR se i n m e n t a y se aplica a una de las entradas del multiplexor y al registro de subrutina SBR. Las otras tres entradas al multiplexor nmero 1 provienen del campo de diremi611de la miminstruccin presente, de la salida de SBR y de una fuente externa que
Figura 7-8 wuenciadw & micrqprogramp r a una memoria de mnhol,
Externa
diseo de I6gfca
de entrada
mapea la instmcci6n. Aunque el diagrama muestra un registro de subrutina tbica, un secuenciador tpico teridrh de cuatro a ocho niveles de profundidad. D e esta manera, varas subrutinas pueden estar activas al mismo tiempo. Una operaci6n de salvar (push) en la pila (stack) y leer de la pila (pop), junto con un apuntador de pila, almacena y recupera la direcci6n de retorno durante las microjnstrueciones de Uamada y regreso. E l campo CD C~adicibn)de la.microinstnicci6n elecciona uno de los bits de estado en el segundo rnulkiplexor. Si el bit seleccionado es igual a 1, l a variable T (pmeba) es igual a 1 ; de otra manera, es igual a O. E l valor T, junta con los dos bits del campo BR (brincar), van a un circuito 16gico de entrada. La 16gica de entrada en un secuenciador particular determinar el tipo de operaciones disponibles en la unidad. Las operaciones de secuenciador tlpicas son: incrementar, transferir o hacer saltar, .llamar y retornar de subrutina, cargarcuna direcci6n extema, saivar (en) o leer (de) la pila, y otras operaciones de secuenciamiento de d i i i n . Con tres entradas, e l sewenciador puede proporcionar hasta ocho operacienes de secuenciamiento de direccl6n. Algunos secuenciadores cometnales tienen tres o cuatro entradas ademdis de la entrada T y, p o r l o tanto, proporcionan un mayor rango de operaciones. El circuito 16gico de entrada en la figura 7-8 tiene tres entradas, 1, 1, y T, y tres salidas, So, y L. Las variabIes So y S, seIeccionan una de las direcdones4uente pafa CAR. La variable 1 , habilita la entrada de carga en SBR. h s vaiores binarios de las variables de seleccin determinan la trayectoria del multiplexor. Por ejempb, con SISO = 10, la entrada nmero 2 del multiplexor se.selecciona y etablwe una trayectoria de transferencia de SBR a CAR. Nbtese que cada una de las cuakro entradas, al igual que la sftlida de MUX 1, contiene una direccin de 7 bits. La tabla de verdad para el circuito Ibgico de entrada se muestra en la tabla 74. Las entradas 1, e Io s o n iw'ticas a los valores de bit en el campo BR. La funci6n liskada :en cada entrada se definid en la tabla 7-1, Los valores de bit para Sly So se determinan de la funcin citada y de la trayectoria en el multiplexor que establece la transferencia requerida. El registro de subru-
5,
Camp
Entrada
MUX 1
S,&
BE
44tT
CargarSBR L
Problemas
249
tina se cargamn el valor incrementado de CAR durante una microinstniccin dicitada (BR = 01) siempie p cuando se satisfaga la condicin del bit de estado (T = 1). Puede usam"Ia tabla de verdad para obtener las funciones booleanas simplificadas para el circuito 16gico de entrada:
El circuito puede construirse con tres compuertas AND, una compuerta OR y un inversor. N6:tese que e l circuito incrementador del secuenciador de la figura 7-8 no es un contador construido con flipflops, sino un circuito combinatorio construido con compuertas. Puede disearse un incrementador de circuito combinatorio al poner .en cascada una serie de circuitos semisumadores (vase la figura M).E l acarreo de salida de una etapa debe aplicarse a l a entrada de la siguiente. Una entrada m la primera etapa menos significativa debe ser igual a 1 y prporeionar la operaci6n de incrementar en uno.
7-1
7-2
7-3 74
?*
Cual es la difapnci entre.,un.micmpmd~r y un microprograma? iEs p i b l e diar u n d c m m d o r sin un mimpmpma? Todas las computadora~ son rnicroprograrna&s tambin como microp&m? Explique h difemwh entre m m l de amiiteda y control LES +bIe hkr un m W 1de WbRia-o con UM menwriade aintrol? Defina l o siguiente: a) microoperacibn; b) microinstnieei6n; c) rnimpmgrama: d) m i d i p . ia ~rgafzaclbn dk control rnictoprogramadaque se muestra en la figura 7-1 tiene los s i ~ u i m i b tiempos da ?baso de propagacin 40 ns para generar h siguiente d i d h , 18 ns para para.transferir la direcci6n al q i s b de direcciona~m de ~ control,~40 ns para accesztr la ROM de memoria de control, 10 ns para iransferir la mieroinshccibn al registro de datos de ejecutar 4 s dcr6cperaciongs requerGas que se e s @ ~ontroI~y 40 m h n mediantela palabra de m n ~ l . ~ C u A esll a d x i m a frecuencia de reloj que puede utilizar el control? iCuI sera la frecuencia de reloj si no se usa el regism &%'datos de control? EI &tema c@e se m w t m mla figura 7-2 utiza una d de mnd de 1024 pala& de 32 bib d a m.L mi~ ~ t i e a e ~ c a m g o s m ~ ~ ~ ~ ~ c a m p s d e ~ a & ~ ~ t l a i a i 1 a. ~Cu4nbs bik hay en el campo ~d&&t de transferencia de control y en el campo d e s e l d i ' .
-
250
SIETE Control
microprograrnado
b .S i hay 16 bits d e estado en el sistema, ~ d n f o bits s de 16gica de transferencia se utilizan para seleccionar un bit.& estado?
e. ~Cpntsis bits quedan para seleccionar como entradas para l o s mdtiplexom?
74
sitan?
7-7
Y-
Utilizando el procedimiento de m a p d b t o en la figura 7-3, proporcione la primera d i d 6 n de mieroinstruceibn para el siguiente c6digo de operacim: a) ODIO; b) 1011; c ) 1111. Formule un procedimiento de mapm que proporcione ocho microinskrucciones eomutivas para cada rutina. E l &ligo de aperacibn tiene seis bits y la memoria de control tiene 2043 palabras.
7-9
7-10
7-11
Explique &m& puede hacerse el mapeo de un c6digo de instmcci6n a una direcci6n de microinstrucc86n mediante una memoria de d o lectura. - Cul es la ventaja de -te m o comparado con d de la figura 7-3? Por qu necesitamos los dos multipIexores de la configuracibn de k d w a r e de computadora que se questra en la figura 7-4? Hay otra rnanera.en que pueda transferirse la informaci6n de fuentes mb!tiples a un destino comn? Utilizando la tabla 7-1, proporcione el campo de microoperaci6n de 9 bits para las siguienb microopadones:
7-12
Utilizando la tabla 7-1, convierta las siguientes rnicrooperaciones simblicas a enunciados de transferencia de registros y a binario.
a. READ, INCPC
b . ACTDR, DRTAC
c. ARTPC, DRTAC, WlUTE
7-l3
Suponga que cambiamos la rutina ADD que se lista en la tabla 7-2 a las siuuienh dos microinstruocion~.
RDD :
RERD
CALL
JRP
INDR;!
FETCH
ADD
sera la subrutina iNDR;!?
7-19
IOP
ARTPO
S Z f U
JMP
FETCH
JHP
CaLL
JMP
FETCH
INDRCT
FETCR
7-15
a. Espdfique la opetaribn realizada cuando se ejecuta Ia instruccin. b . Convida las cuatrc8h i d n s h d m a su f o m binaria equivalente. La computadora de l a secci6n 7-3tiene el siguiente microprograma binarim
a . Tradtzcalo a un microprograma simblico coma en la tabla 7-2. ect en la d i r e c c i n 64 y SNDRCT en la direccin 6 7 . ) da) b . Liste todas 19s fallas @bis cuando e l microprograma ce ejecute en la
computadora.
( B w u e
7-16
Sume las instrucciones si~uienies a la mmputadora de la seccidn 7-3 (EA es Ia direeQ6n efectiva), M b a el mhpmgrarna simb6Iico para cada rutina como en la tabla 7-2. (N6tese que AC no debe cambiar de valor a menos que
la i-ccin
especifique un 4 1 en AC.) )
Slmbo10
CMigo de operacidn
Funci6n cimbblica
Descripcibn
AND Restar
Sumar a memoria
AND
SUB
O1OO A C t A C A M [ E A ]
ADM
BTCL
B Z
SEQ
BPNZ
O101 AC +AC - M [EA] O110 M [ E 4 ] +M [ E A ] + AC 0111 A C e A C r\ M W ~ lOiM Si (AC = O) entonces (PC+EA) 1 O O J S i (AC = MEA])entonces (PC+PC 4- 1 ) 1010 S i (AC > O)entonces (PC+EA)
7-17
Eccriba una rutina de mimpqrama simb6lieo para Ia instnicci8n ICZ (incremmtar y brincar i i cero) definida en el capitulo 5 (tabIa 54). Utice eJ elmata de microinshcci6n de la secci6n 7-3. N6tese que la condici6n de estado DR = O no est disponible en el campo C D de la
cAPlTiL0
Control rnicroprogramado
7-18
computadora definida en 4 a &6n 7-3.Sin embargo, usted puede intercambiar AC p DR y comprabar si AC = O con e1 bit 2. Exriba las rutinas de mimprogfama simbblico para las instrucciones BSA @rimar y salvar direccibnj definidas en el captulo 5 (hbla 54). Utilice el formato de microinsttucddn de la secci6n 7-3.Minimice Ia cantidad de
dcroinstrucciones.
7-19
7-20
7-21
7-22
Muestre cmo van a conectar las salidas 5 y 6 del decodificador F3 en la figura 7-7 al contador de programa PC. Muestre cbmo.puee dividise un campo de m i a m p a c i h de 9 bits en m microinstrueei6n de subcampos que especifiquen 46 microoperaciones. ~Cusntas mtc~~~peraciones pueden especificarse en una micminstrucci6n? Una computadora tiene 16 regis-, una ALU (unidad ari tmbtiea-16giea) con 32 operaciones, y un circuito para corrimimto con ocho opemcioms, t d o s conectados a un sistema de bus comn. a. kmde una palabra de control para la microoperaci6n. b . Espeafique h cantidad de bits en cada campo de la palabra de mntrol y proporcione un esquema de dificaabn general. c, Muestre los bits de la palabra de control que especifican la opera6n R4 R5 + R6. Consi& que la Mgica de entrada del secuenciador de minoprograma de la figra 7-8 tiene c u a b entradas 1% ly ID T (prueba),y tres salidas, S , Soy L.Las operaciones que m van a ejecutar en la unidad e listan en la siguiente tabla. Dice* el circuito lgico de entrada utilizando una cantidad mnima de campuettas.
O O
O
O O
1
O 1 O
1
1 1
O 1 O O
1
7-23
incrementar CAR si T = 1, brincar a AD s iT=O Brincar a AD en forma incondicional IncrementaT CAR en forma incondicional Brincar a AD s iT=1 , incrementar CAR si T = O O Weitar subnitina si T = 1, incrementar CAR s i T =O 1 Retomar de subrutina en forma incondicional 1 Map&r direccibn externa en forma incondicional
7-24
Disee un incrementpdor de circuito combinatono de 7 bits para el aecuenciador de prugrama de la figura 7-8 (vhse la figura 4-8). Modifique el incrementadoral incluit una entrada de control D.Cuando D = O, el circuito se inc&menta en uno, p r o cuando D = 1 , el circuito se inctementa en dos. Inserte una compuerta 0 R e x c l ~ i v a entre el MUX 2 y la lbgica de entrada de la figura 7-8. Una entrada a la compuerta proviene de la salida de prueba del multiplexor. La otra enkadaa la compuertaproviene de un bit etiquetado P.(polaridad)en la mbroinstrumi6n de la memoria de control. La salida de la ~~mpuerta va a la entrada T de l a Ibgia de entrada. LQU& realiza el control de polaridad P?
1. Dasgupta, S., Cmputer Arehitature: A Mollert~Synthesis. Vol. 1 . Nueva York: John Wey, 1989. 2. Gordine, G. W , CompuferOrgmbtion: HardawrdSofkwrre, 2a. Ed. Gnglewwd C l i , N ] :Prentice Hall, 1986 3. Hamacher, V.C., Z. G. Vranesic, y S. G .Zaky, Computer Orguniurteon, 3a. Ed, Nueva York:MrGraw-Hill, 1990. 4. Hays, J .F. fhmputer Archifecttrrehitand Qrgnniznth, 2a. Ed.Nueva York: McGraw-Hiil, 1988. 5. Langhalz, G.J. Francioni, y A. Kandel, E l m b qf Computer Organiuitio.Englewood Cliffs, NJ: Prentice Hall, 1989. 6 , h i n , M.H . , Ingie Decign and Computer Organization. Reading, UA: AddLsonWesiey, 1983. 7. Mano, M. M., Computer Engirtering: Hardwre Desip. E n g l e w d Ciiffs, NJ: Prentice Hall, 1888. 8, Rafiquzzaman, M., y R. Chandra, M a d e r n Computer ArchiteEfure. St. Paul, MN:West Publishing, 1988. 9. StaIiings, W,Cmpufer OrpiraCion and Ardritecture, 2a. Ed.Nueva York: Maanlan, 1989. .lo. Tanenbaum, A. S., Strrrctured Computer Organiurtion, 3a. Ed. E n g i e w d Cliffs, NJ: Prentice Hall, 1WO. 11. Ward, S A, y R H. H a h d , J r . , m t a t h Structures. Cmbridge, hah I W .
EN ESTE CAP~TULO
Introduccin Organizacin general de los registros Organizacin de una pila Formatos de las instrucciones
Modos de direccionamiento
Transferencia y manipulacin de los datos Control del programa Computadora de conjunto.de instrucciones reducido (RISC)
8-1
CPU
Introduccin
L a parte de la computadora que ejecuta el grueso de las operaciones de procesamiento de datos se llama unidad de procesamiento central y se denomina CPU. La CPU est formada de tres partes principales,, como se muestra en la figura 8-1. El conjunto de registros almacena datos intermedios ' que se usan durante la ejecucin de las inst"tiicciones. La unidad aritmticalgica (ALU) lleva a cabo las microoperaciones requeridas para ejecutar las instrucciones. La unidad de control supervisa la transferencia de informacin entre los registros e instruye a la ALU sobre cul operacin ejecutar.
Figura 8-1 Componentes principales de una CPU.
Control
Conjuntode registros
256
cAP~TCRX~ -0
Unidad eerifral de p t o
La CPU realiza div~rsas funciones dictadas p a el tipo de instrucciones que se incorp~ran en la computadora. En wasiones se define la arquitectura de la comp&tdwa c o m la estnicima y el desempefio de la computadora desde el punto de vista del prograplacbr que utiliza instrucciones de ienp a j e de &*a. E i f o inu e l a . l~mitoo de ihstrucciones, modos de M ~ h $ m h tel ~cijnjdto , e hstrucciones y la organizaci6n general de los registras J.. la CPU. Un Wte donde el -dar de la computadora y el programador aprecian la misma nrqirina es i a parte de Ia CPU asociada con eI conjunto de instrucciones. Desde el punto de vista del diseadw, el conjunto de instruccione de k computadora proporciona las especificaciones para el d i d o de h CPU. E l diseto de una CPU es una tarea que, en gran parte, representa la eleccEon de la circuitera para implantar las instrucciones de m8quina. El usuario que programa la computadora en lenguaje ensamblador o de n 8 p k a debe tomar en cuenta el conjunto de registros, la estructura de memoria, el tipo de datos que soportan las instrucciones y la funci6n que reaZXza cada instnicci6n. En los capftulos S y 7 se desarrollaron ejemplos del diseo de unas CPU simples. Este c&ptulod 4 la arganizaci6n y arquitectura de la CPU con nfa& en el punto de vista del usuario de la computadora. be manera breve describe cmo los registros se comunican m la ALU mediante buses y explica la opaaci6n de la pila (stack) de memoria. Despds presentamos los tipos de fomtos de instrucciones disponibles, los modos de di-onamiento que se u pam recuperar datos de la memoria y las instrucciones tpicas incorporadas pot lo reguiar en las computadoras. LA ltima seccin presenta el concepto de computadora can conjunto de instrucciones r e c i d 9
(Rzsc).
8-2
En los ejempl~sde prograrriacih del captulo 6 hepos mostrado que se necesitan laalidades de memoria para almacenar apuntadores, contadores, direcciones de retorna, resultados temporales, y productos parciales durante la mdGplicaci6n. Tener que hacer referencia a localidades de memoria para esas aplicaciones representa una respetable inversin de tiempo porque el acceso a memoria es la operaci6n que consume m6s tiempo en una computadora. Es m8s conveniente y eficiente almacenar -tos valom intermedios en registros de procesador. Cuando se incluye una gran cantidad de registros en la CPU es ms eficiente conectarlos mediante un canal de sistema comn. Los registros se comunican uno con el otro no m510 para transferencia directa de datos, sjnD tambin mientras ejecutan diversas micrmperaciones. Por I o tanto, es necesario proporcionar una unidad comn que pueda ejecutar d a s las micmoperaciones a r i h & t i a s , lgicas y de corrimignk;! g~ el p m d o r .
Reloj
Entrada
a) Diagrama de bloque
b ) Faiabra de mtd
Figura M
258
c a l de sistema
Unidad central de p e e n t o
Una organizacin de canal para siete registros de CPU se muestra en la figura 8-2 La salida de cada registro esu conectada a dos multiplexores (UUX) para f o m r los dos canales A y B. Las lneas de selecci6n en cada mdtiplexor eligen un registro o los datos de entrada para e l canal particular. tos canales A y B forman Ias entradas a una unidad aritmtica 16gica comn (ALV. La operaci6n dekmhada en la ALU estable la miampacin aritica o 16gica que se va a ejecutar. E l multado de la microoperacin estA disponible para datos de salida y tambin va a las entradas de todos los registros. El registro que recibe la informaci6n del canal se selecciona mediante un decodificador. El decodificador activa una de las entradas de carga de registro y, por 10 tanto, proporciona una trayectoria de transferencia entre los datos del canal de salida y las entrad* del registro destino seleccionado. La unidad de control que opera el canal del s i s de la CPU elige el flujo de informacin a travs de los registros y la ALU al seleccionar los diversos componwtes del sistema. Por ejemplo, para ejecutar la operacih.
el control debe proporcionar variables de selecci6n binarias a las siguientes enttq&s del selector:
1 . Selector de MUX A (SELA): para colocar e l contenido de R2 dentro del canal A. 2. Selector de MUX 0 (SELB): para colocar el contenido de R3 dentro del canal B. 3. %lector de operacin (OPR) de la ALU: para proporcionar la suma
arikntia A
+ B.
4. Wecbr de destino del decodificador (SELD): para transferir el mnt d d o del. canal de silida dentro de R1.
Las cuatro variables de seIecci6n de control se generan en la unidad de control y deben estar disponibles al comienzo de un cielo de reloj. Los datos de los dos registros fuente se propagan por las compuertas en los multiplexores y la ALU al canal de salida y dentro de las entradas del registro destino, todo durante el intervalo de ciclo de reloj. k p u g s , cuando ocurre l a siguiente transici6n de reloj, la Xrifomacin binana del canal de salida se transfiere a R1. Para conseguir un tiempo de respuesta rpido, la ALU se construye con circuitos de alta velocidad. Los canales se imphntan con mdtiplexores o mmpuertas de tres estados, segiln se mwtra en la d 6 n 43.
Paiabra de control Existen 1 4 entradas de seieccibn binaria en l a unidad y su valor combinado una de conkd La palabra de control de 14 bits esa definida en la figura 8 - 2 0 Consta de cuatro campos. Tres campos contienen tres bits
paz*
de c o ~ h l
259
' .
binario
SELD
Entrada
Entrada Ninguno
R1 l 7 2
R3
R1
R2
R3
R1
R2 R3 R4
R4 R5
RB R7
R4 R5
R6 R7
R5 R6
R7
cada uno y uno tiene cinco bits. Los tres bita de SELA se1eccionan un registro
ALU
fuente para la entrada A de l a ALU. Los tres bits de SELB se1eeci6nan un rrgisttro i a entrada B de la ALU. L a tres bits de SELD selec&& un mghtro destino usando el dwodificador y sus siete salidas de carga. Las cinco bits de OPR seleccionan una de las operaciones en la: ALU. Cuando se aplica una palabra de control de 14 bits a las entradas de se1ecci6n se especifica una microoperacin particular. L a ccdWaci6n de las selecciones de registro se e c a en la tabla 81. El c6digo binario de 3 bik que se lista en la prim&a columna de la tabla especifica el c6digo binario para cada uno de los h s campos. El registro seleccionado mediante los campos SELA, SELB y SELD es aquel cuyo niimero decimal es equivalente al nme~obinario del c a p . Cuando SBLA o CELB es 000, el multipiexor correspondiente selecciona los datos de entrada exkmlos. Cuando SELD = 000, no selecciona un registro de destino pero el contenido de salida est disponible en la salida externa. La ALU proporciona operaciones aritmticas y Ihgicas. AdemBs, la CPU debe proporcionar operaciones de corrimiento. El circuito de cwmmiento puede colacarse en la salida de la ALU para ofecer una posibilidad de postcorrimiento o en la salida de la ALU para bruidar una posibilidad de postcomirniento. En algunos casos, las operaciones de corrimiento se incluyen con la ALU. En la seccin 4-7 se d i h 6 una unidad arih4tica 16gica y de corrimiento. La tabla de b c i 6 n para esta ALU est$ listada en la tabla 4-8. ia codificacibn de las operaciones de la ALU para la CPU se toma de la secci6n 4 7 y est q d i c a d a en la tabla 8-2. El campo OPR tiene cinco bits y cada operacin se designa con un nombre simbdlico.
Ejemplos de microoperadones
Se necesita una palabra de control de 14 bits para especificar una microop raci6n en la CPU. La palabra de control para una microoperacibn dada
Transferir A Incrementar A Sumar 3. B RestarA 3 Decremenfar A Aplicar la h c i b n AND de A y B Aplicar la funcidn O R de A y B Aplicar la funcibn XOR de A y B Complementar A R w m r a la Derecha A Recorrer a la izquierda A
TSFA INCA
ADD
SUB DECA
AND
OR
XOR COMA SHRA
SHLA
puede de,fivafs de la3 variablw de seZeeci6n. Por ejemplo, la micrmperaci6n de resta que giropgrcione el enunciado especifica
de la ALU,R1 para d q j s k p des.tino, y una. opraci6n ALU que rmte A - B. Por b tanto, se especgca la palabra de c o n b l mediante las cuatro campos y el valor binaria c?rwspondiente pan cadq campr, se obtiene de l a lista de codificacin en las Wlas 8-1 y 8 2 , h. palabra de control binario para la microoperaci6n de resta . e s 010 O11 001 QQ101y se obtiene como s i p . SEL& . SELB R3 Smbolo: R2 011 Palabra de c~ntrol:
Campo:
SELD
OPR
R1
001
SUB
00101
- E E C U d ~ & 5 ~ n d e i r n a p i i a261
MiCraoperqci6n SELA
SELB
SELD
OPR
Paiabra decontrol
~ 1 + ~ 2 - k 3 R2 R4tR4VR5 Rd R6GR&+i R6
m
Rl E
Entrada
R3 R5
R1 R4
R6 E ? Ninguno Ningnr, ' R4
SUB OR
XNCA TSFA
R5
TJFA TSFA
SHLA
R 4 t s h i R4 R5t0
R4
R5
RS
XOR-
TSFA de la ALU colma' los datos del registro, a travs de la ALU, en las terminales de Alida. ta transferencia directa de entrada a salida se consigue con &a palabra de control que tiene &lo i r o s (al hater 000 el campo B). Puede borrave un registro a O con una operacin 0 R exclusiva. Esto se debe a que x @ x = 0 . A partir de estos ejemplos, es evidente que pueden generarse otras muchas mimooperaciones en la CPU. La manera ms eficiente para generar 'palabras de control con una gran cantidad de bits es almacenarlas en una unidad de memoria. Una unidad de memoria que almacena palabras de mtcoI denomina memoria de control. A l leer palabras de control consecutivas de la memoria, es posible iniciar la secuencia deseada de microopexaciones para la CPV. Este tipo de control se denomina control microprogramado. En Ia figura 7-8 se muestra una unidad de coiitrol microprogramado. La palabra de control binaria para la CPU vendr6 de Ias salidas de la memoria de control marcadas con "mimooperacionestt.
8-3
se incluye en la CPU de la mayora de las computadoras es irn skck o. piia a lista iiltim~ en entrar, primero en salir (LTFO). Upa pila es un dispositivo de almacenamiento que guarda informaai6n de -manera que el artculo que se almacena al iiltimo es el primero que se recupera. La operacin de una pjla puede compararse a un racimo de charolas. ta dtim charola que se coloca en la parte superior de la pila es la primera que se vuelve a tomar. En las computadoras digitales, Ia pila es emcialmente una unidad de memoria con un registro de direccionamiento que s61o puede contar {desp & de que un valor inicial se carga dentro ella). El registro que contiene
262
aptciitador de pila
( ~ 3 ~ 0
Unidad central de p i o
la d i r e e c i b n para la pila se Uama apuntador de pila (SP)porque su valor siempre apunta la localidad en la parte superior de la pila. Al revs de una piIa de charolas en Ia cual la charola misma pude sacarse o insertarse, los registros flsicos de una pila esten siempre disponibles para lectura o escritura. Es el contenido de la palabra lo que se inserta o borra. Las dos operaciones de una piIa son la inserci6n y el borrado de datos. La operaci6n de escrituxa se llama "empujar" @ush) porque puede pensarse que es el resultado de "empujar"un nuevo dato sobre la parte superior. La operacin de borrado o recuperacibn s e llama ?botart' @op) porque puede pensarse que es el resultado de quitar un dab para que salga despedido de la pila. Sin embargo, nada se empuja ni s e hace saltar en una p l a de computadora. Estas operaciones w simulan al incrementar o decrementar e l registro del apuntador de ia pila.
Pila de registro Puede colocarse una pila en una parte de una memoria grande o puede organizarse como un conjunto de una cantidad finita de palabras de memoria o regis-. Xs. figura 8 3 muestra la organizacibn de una pila de registros de M palabras. El registro del apuntador SP de la pila contiene un niimero binario cuyo valor es igual a la direccibn de la palabra que en ese momento estfi en la parte superior de la pila. Se colocan tres datos en la pila: A, B y C,en ese orden. E 1 dato C est6 en la parte superior de la pila, por l o que d contenido de SP es ahora 3. Para recuperar el dato superior, se ejecuta una
Figura 8-3 Diagrama de bloque de una pila de 6 4 palabras.
89
Organktci6n de4-
pila
2 a
empujar
instrucci6n pop en la pila al leer l a palabra de memoria en la direccibn 3 y decrementar el contenido de SP. El dato B esta ahora en la parte superior de la pila porque SP contiene la direecibn 2. Para insertar un nuwo dato se ejecuta una instniccidn "push", al incrementa SP y emibir una palabra en la siguiente posicin ms alta de la pila. N6tese que e l dato C se ley6 pero no se qut6 fisicamente. Esto no importa porque cuando se accesa a la pila se escrike un nuevo dato en su lugar. En una piIa de 64 palabras, e l apuntador de piIa contiene 6 bits porque 26 = M. Corno SP tiene slo seis bits, no puede exceder un nmero mayor de 63 (111111 err biario). Cuando 63 se incrementa en 1, e l resultado es O porque 111211 1 = lMMOOO en b h i o , pero C.P d o puede acomodar los s e i s bits menos significativm. D e igual manera cuando 000MX3 se decmnenta en 1, e ) . resultado es 111111. El registro de un bit LLENO se activa en 1, cuando la pila est Uena, y el registro dk un bit VACIO ae activa en 1 cuando la pila estA vacia de datos. DR es el registro de datos que contiene los datos binarios que se van a escribir o leer de la pila. Al principio se borra SP a O , VACIO se activa en 1 y se borra LLENO a O, para que SP apunte a la palabra en la direcci6n O y la pih se marque como vacia y no como llena. Si h pila no est llena (si LLENO = O), s e inserta un nuwo dato con una instruccin push de "empujar". La instruccibn push se implanta con la siguiente secuencia de microoperaciones:
Escribir datos en la parte superior de l a pila S i (SP = O) entonces(FULL e l ) Comprobar si la pila estA Uena Indicar que l a pila no est vaca EMTY 6 0
la siguiente palabra wpexior. Una operacidn de escritura de memoria inserta la palabra dade DR a la parte superior de la pila. Ndtese que SP contiene
la direccin de la parte sup~rior de la pila y que M[SP] representa la palabra de memaria especifiida mediante la direccin dsponible actualmente en SiJ. El primer dato almacenado en la piia est5 en h dll.ecci6n 1. El ltimo dato es& almacenado en la didirecci6n 0,Si SP llega a O, la pila estA Uena de datos y se activa LLENO en 1. Esta condici6n se alcanza si el dato de la parte superior antes de la ltima operaei6n de empujar est en la lacalidad 63 y, despus de incrementar SP, el itimo dato se almacena en la localidad O. Una vez que se almaun dato en la Iocalidad O, ya no hay mgistros ~ c i o s la pila, Si se escribe un dato en la pila, es obvio que la pila no puede etar vaca, por lo que se adiva VAUO a O. Se b o m un nuevo dato de l a pila s i la piia no & vaca (si VACIO = O) la qxracidai de pop consiste en la siguiente m de microoperaooneS:
hacer saltar
264.
m 0 Unidad ceraal de
pmcesamiento
DR +MISU
SP+SP - 1
L&r
h pila
F w L +o
--.
W c a que ~ la pih no
estA
liena
, -
da
h i
kb
ALA
--
~iperior de l a piIa se ,lee en DR. Despus, se demementa e l a p i a d o 1 de &,Si su valar alcanza 0, 4.pila est vaca, por lo que se activa V&JQ en 1 . Esta condicin se> alcanza si el dato que se ley6 estaba en la pasici6n 1. Una vez que se lee este dato, SP se decrementa y alcanza el ~alm.0, el cual es el valor inicial de SP. N6tese que si una instrucci6n pop lee e l dato de la localidad Q g despus $P p e decrementa, SP cambia a 112111, 4 cual es el equivalente ,al decimal 63, En esta configuracin, L palabra de la duecci6n O wibe el ltimo dato en la pila. N6tese tambi&n que se p4ucirA una opaci6n errnea s i se; ejecuta una iizstrucci6n cuando L L W = 1 a una pap, cuando VACIO = 1.
El &o
Pih de memoria
Una pila puede existir como una unidad nica, como se presenta en la figura 8-3 o puede implantarse %en una memoria de acceso aleatorio conectada a una CPU. Se rediza la implantacidn de una pila en la CPU al asignar una parte de memoria A una operacibn de pila y al usar un registro de pracesador como un apuntador de pila. La figura 8-4 muestra parte de una memoria de computadora dividida en tres segmentos: p r e gramas, datos y pila. El contadas de programa PC apunta a la direccin de la siguiente instruccibn en el programa. El registro de diremi611AR apunta a un arreglo de datos. El apuntador de pila SP apunta a la parte superior de la pila. Los tres registros estan conectados a un canal de direcciones c o m h y cualquiera puede proporcionar una direccibn para la memorla. P C se utiiiza durante la frise de bfisqueda para leer una instrucci6n. AR se utiliza en la fase de ejetucin para leer un operando. SP se utiliza para ejecutar inszrniceiones pugh o pop en datos que se guardan o se recuperan en la pila. Como se muestra en la figura 84, el valor inicial de SP es 4001 y la pila crece con Ls direcciones decrecientes. Por lo tanto, el primer dato a b c e m d o en l a pila esti en h d k c i b n 4000, el segundo se almacena en la direccibn 3999, y l a itima direcicibn que puede usarse para la pila es 3000. N o estan previstas curnpmbaciom del limite de la pila. Consideramos que el dato en la pila se comhica con el registro de datos DR.Se inserta un nuevo dato con la imbnicci6n de push, de la manera siguiente:
SECCI~N 88 Orgdmci&r
de una pila
265
Direccin
Unidad de memoria
Ei apuntador de pila
se decrwnenta para que apunte en la direcci6n de la siguiente palabra. Una operad611 de escritura en la memoria inserta la palabra de DR dentro de la parte suprior de 1$ pila. Se recupera un nuevo dato can u n a instruccin push, de la manera siguiente:
266
m OCHO
Inites de Ia pila
El dato superior se lee de la pila a DR. E l apuntador de piIa se incrementa despub para apunbr al siguiente data en la pila. Muchas mmputadoxas no tienen hardware para verificar e l sobreflujo de la pa @la lierra) o sobreflujo inverso {pila vacia). Los lhites de la pila pueden c*omprobarse al usar dos registros de procesador: uno que contenga el lfmite suprior (m este caso 3000) y el otro que contenga el limite inferior (en a t e caso 4001). D q u & de una operaci6n de push, se compara SP con eI +tro de lfnvte superior y despus de una operacidn pop SP se compara con el registro deli lfmite inferior. Las dos rnicxd~peracionesnecesarias para las operaciones push o pop son: 1) un a c c e ~ l a memoria a travgs de SP y 2) k actualizacibn de SP. Depende de la orgarhcin de la pila determinar cuA1 de las das operaciones se realiza primero y s i se actualiza SP incmentando o decrementando. En la figura 8-4 la pila crece al decmmentar la direccibn de memoria. La pila puede construirse para crecer al incrementar la direcci6n de memoria como en la.f i w a 8-3. En tal caso, se incrementa SP para la aperacidn de push y 8e deuemwiki para la operacibn de pop. Puede construirse una pila para que SP apunte ti la siguiente posicihn vacfa arriba de la parte superior de la pila. En este caso, debe intercambiarse la secuencia de microoperaciones. Un quntad~x de pila se carga con un valor inicial. Este valor inicial debe ser h.direccin inferior de una pila asignada en la memoria. En lo sucesivo SP se incremmta o se decrementa en forma automAtica con cada operacan de push o pop. La ventaja de una pila de memoria es que la CPU puede hacer referencia a ella sin tener que especificar una direccin, porque la M 6 n siempre estA disponible y se actualiza en forma autamatica en el apuntador de pila.
Notcidti polaca inversa Una srga&aci& de pila es muy ekienk para evaluar expresiones aritmticas. El mtodo matemdtico comn de escribir expresiones aritmbtias i m pone dificultades cuando las evaMa una computadora. Las expresiones aritmdticas comunes se escriben en nofacin i n t m fija, donde cada operador escrito e s K entre los operandos. Consideremos ia siguiente expresin arih& tica simple.
El asterisco (que significa multiplicaci6n) est colacado entre dos operandos A y B o C y D,El signo de ms est4 entre los dos producFos. para evaluar esta expresihn aritmtica es necesario calcular el producto A * B, almacenar este p d u c t o mientras se calcula C * D y despuk sumar los dos productos. En este ejemplo apmiamas que para evaluar expresiones aritmdticas en notacihn interna fija es necesario a n a b r la expresin en todas sus partes para determinar d l operaci6n ser4 la siguiente en ejecutarse.
267
E l matemdtico polaco Lukasiewicz mostr que las expresiones aritmb ticas pueden r e p m t a r s e en notacitr frjn previa. Esta mp=ta&n, con
RRN
frecuencia denominada notaci6n polacnI coloca el operador antes de los operanda. La nofaci6n postm'urfija, denominada notaci6n polaca inversn (PN) colma el operador despus de los operandos. Los siguientes ejempIos mueshan las tws 'pmtaciones:
+B AE +
A
+A&
Notacin interna fija Notaci6n polaca o previa fija Notacidn polaca inversa o posterior fija
H evalda como sigue: rastrear la expresidn de izquierda a derecha. Cuando w encuentra un operador, ejecute Ia aperaci6n con los dos operandos que ,e encuentran en d lado izquierdo dd operador. Quite los dos operandw y el operador y wstittiyah por e l nmero que se obtiene de1 resultado de l a operaci6n. Cantinde analizando la expresibn y repita el procedimiento para cada operador encontrado hasta que no haya m8s operadotes. Para la expresi6n anterior encontramos el operador * despus de A y B. Ejecutamos la 0peraeiSai.A B y sustituhus A, B y * por el prcducto para &tener
dende (A * B) es una cantidad dnim' que s e bbtiene del producto. E l sfguiente operador es m y sus d& operado- previos son C y D,por lo que ejecutamos C * D y obtenemos una instnicci6n con dos operandos y un opekdor:
H siguiente -radar
com~wdn ri
RPN
es + y los dos operandos que S& van a sumar san los dos p r o d w I asi que mimamas las dm cantidades para obtener el mltado. La conversicin de nobcidn interna fija a notaci6n poiaca inversa debe considerar la jerarquia operacional adoptada para la notacibn interna fija. Esta jerarqua dicta que primero ej&utemos todas las operaciones aritm& ticas dmtio.de los padntesis internos, despus las de los parntesis externos
268
cAPfnno -O
y que realicemos las operaciones de multiplicaci6n y divisin antes de las operaciones de suma y resta. Consideremos la expresidn:
expresi6n dentro de los padntesis cuadrados. La multiplicaci6n de C * (D + E ) debe realizarse antes de la suma de porque la multiplicacibn tiene precedencia sobre la suma. La iiltima operad611es la multiplicacibn de los t h i n o s entre parntesis y parntesis cuadrados. La expresin puede convertirse a notacien polaca inversa sin usar parntesis, al considerar la jerarqua de operaciones. La expresin convertida es:
Al proceder de izquierda a derecha primero sumamos A y 3, despus sumamos D y E, En es& punto nos queda:
donde (A + B) y (D .t El son cada uno un nijunero niw que se obtiene de la suma. Los dos operandos para el siguiente * son C y I D + E). Estos dos nmeros se multiplican y ei producto se suma a F . El * final produce la multiplicaci6n de los dos &minos.
Evaluacibn de las expresiones aritmticas La notacibn polaca inversa, combinada con un arreglo de pila de registros, es la m e r a ms eficiente que se conoce para evaluar expresiones aritmdticas. Este procedimiento se emplea en algunas caIculadoras electrdnicas y tambih en algunas computadoras. L a pila es particularmente til para manejar problemas grandes y complejos que repre-tan cadenas de c4lcuIos. Se basa en el hecho de que cualquier expresibn aritmtica puede expresarse en notaci6n polaca sin parntesis. to consiste en convertir primero la expresidn aritmtica E l pra su notacin polaca inversa equivalente. Los operandm se escriben (push) dentro de la pila en el arden en el cual aparecen. El inicio de una operacin depende de si tenemos una calculadora o una computadora. E n una calculadora,, se introducen Los operadores mediante el teclado. En una computadora deben iniciarw m e d i a n t e instrucciones que contengan un campo de o p e r a 6 (no se necesita campo de direccin). Las siguientes micf~operacie nes se e j m h con l a pila cuando se introduce una operacibn en una calculadora o se emite mediante el controI en una computadora: 1) los dos omrandos supeciom de la pila se utilizan para la operacin, y 2) se lee el
269
dato ,@p) de la pils y el resultado de la operacidn sustituye el operando i l a continuamente y ejecutar inferior. Al escribir los operandos dentro de la p las operaciones como se definid, se waliia la expresibn en el orden apropiado y el resultado final permanece en Ia parte superior de l a pila. EI siguiente ejemplo nurndrice puede clarificar este procedimiento. Considere la expfesibn aritmdtica
.rr
w p w n (3 * 4)
aP4 &
+ (5 * 6)
-mi,
operm'ones de pila
Ahora consideremos las operaciones de b pila que se muestran en la figura 8-5. Cada caja representa una aperaci6n de la piia y las flechas siempre sefialan a la parte superior. Al analizar la expresi6n de izquierda a derecha encontramos dos operandos. Rimero, se escr1h el nmero 3 dentro de la pila, despds el nmero 4, el siguiente shholo es eI operador de multiplicaci6n Esto provoca una multiplicaci6n de los dos datos superiores'en la pila. Despues se l e e la pila y el producto se coloca en la parte superior, reemp-do los dos operandos ori@Ies. En wguida encontramos los dos operandos 5 y 6, por lo que ellos se escriben dentro de la pila, ta operacin de la piia que resulta del siguiente sustituye estos dos nmeros por su producto. La dltima operacin produce una suma aritmktica de los dos nmeros superiores en la pila para obtener e l resultado final de 42. Las calculadoras cientificas que emplean una pila interna requieren que el usuario convierta las expresiones aritmticas a notacibn polaca inversa. Las computadoras que utilizan una CPU organizada con pila proporcionan un programa del sistema para ejecutar la conversi6n para el usuario. La mayoria de los compiladores, sin considerar la organizacidn de su CPU, convierten todas las expresiones aritmticas a notacin polaca de todas maneras, porque este es el mktodo mBs eficiente para traducir expresiones aritmbticas a instrucciones de lenguaje de mquina. Por l o tanto, en esencia,
*.
270
C -
OMO
una CW organizada con pila puedie ser m8s eficiente en algunas apliracionm
:que una CPU sin pila.
8-4
Normalmente las estructuras flsica y 16gica de la computadora se describen en los manuales de referencia que se proporcionan con e l sistema. Tales manuales explican la construcci6n interna de I a CPU, incluyendo los registros de procesador disponibles y sus posibilidades 16gicas. TambiGn listan todas las instrnicciones que se implantan con hardware, especificaii su formato en c6digo binario y proporcionan una definicin precisa de cada instrucci6n. Por lo general, una computadora tendrA varios formatos de c6digos de'instrucciones.Una funci6n de la unidad de control dentro de la CPU es interpretar cada c6digo de instruccin y proporcionar las funciones de control necesarias para procesar la in~trucci6n. Normalmente el formato de una instrucci6n se muestra en una caja rectangular que simboliza los bits de la instruccidn conforme aparecen en la palabra de memoria o en un registro de control. Los bits de la instruccibn se dividen en grupos llamados campos. Los campos ms comunes que se encuentran en los formatos de instrucciones son:
l. Un campo de cdigo de operacibn que especifica la operaci6n que se va a ejecutar. 2 . U n caknpo de direcci6n que represeata una direcci6n de mmoria o un registro de procsador. 3. Un campo de modo que especifica la manera en que se determina el operando o la direccin efectiva.
En wasiones se emplean otros campos especiaIes bajo ciertas circunstancias, por ejemplo un campo que proporciona el nhmero de corrimientos en una instnicci6n de tipo corrimiento. El campo de c6digo de operacibn de una instruccibn es uii grupo de bits que define varias operaciones de pracesadar, como sumar, restar, complementar y corrimiento. Las operacionec mas comunes dispoi-iibles en instrucciones de computadora se listah y analizan en la secci6n M. Los bits que definen el campo de modo de una instrucci6n especifican diversas alternativas para escoger las operandos de la direcci6n dada. Lus diferentes modos de direccionamiento que se han formulado para las computadoras digitales se presentan en la secci6n 8-5. En esta seccin, presentamos el campo de direccin de un formato de instruccihn y consideramos el efecto de incIuir mltiples campos de direcci6n en una instruccin, h s operaciones especificadas mediante instrucciones de computadora se ejecutan sobre algunos datos almacenados en b memoria o en registros de procesador. Las operandos que residen en I a memoria se especifican
SECCI~N M Fomtos
de las instniccionec
di-&
de +sFro
mediante sus direcciones de memaria. Los operandos que residen en un registro de procesador se especihcan con una direcci6n de registro. U n a $imccidn de registro es un n b a a binnrio de k bits que define uno de 2k registros en la CPU,Por lo W o , una C m con 16 registros de procesador del RO a1 R15 WdrA un campo de direcEi6n de r e g i s t r o de 4 bits. Por ejemplo, e l nhero binario 010'1, representad el registro R5. Las computadoras pueden tener instrucciones de diferentes tamaiios que contengan una cantidad variable de direcciones, La cantidad de campos de direcciones en el formato de instrucCi6n de una computadora depende de i a organizacibn interna de sus registros. ta mayora de las computadoras caen en uno de tres tipos de arganizaci6n de.CPU:
Un ejemplo de una organizaci6n de tipo acumulador es a computadora bsica presentada wi e l capitulo 5. Todas las instrucciones se ejecutan con un registro de acumulador relacionado. El formato de instrucci6n en este tipo de computadora utiliza un campo de direccibn. Por ejemplo, la iristmcci6n que especifica una suma arihdtica se define mediante una iiistruccin del lenguaje ensamhlador como
ADD
X
+
donde X es la direcci6n del operando. L a instrucci6n ADD en este caso da como resultado la operacibn AC AC + M[XJ. AC es el registro acumulador y WXJrepresenta la palabra de memoria que se localiza en la direccin X. Un ejemplo de un tipo de organizac6n de registro general se presentd en la figura 7-1. El formato de instrucci6n en -te tipo de computadora necesih tres campos de direcci6n de registro. Por 10 tanto, la instrucci6n para una suma aritmktica puede es~ribime en lenguaje ensamblador como RDD Rlr, R 2 , B3
pera representar la operacin R1 + IC2 + R3. La cantidad de campos de direccin en la Vistnieci6n puede reducirse & tres a dos si el registro destino es igual a uno de los registros fuente. Por lo tanto, la instnicci6n
ADD RltfB2
repxesentarh h operacibn R1 + Rl + R2. Slo necesitan especificarse las &&dones de registro para R1 y R2 en ata iishucci6n. Las computaddras con miilriples registros de procesador utikan la instruccin de mover con un nemhico MOV para reprecentar una instnicci6n de trangferencia. Por b tanto, la instnicci6n
272
mtral de procesamiento
nov
RL,.RZ
"pmenta Ia transferencia R1+ R2 {o E 2t .R1, dependiendo de la computadora en particular). Entonces, las instrucciones de tipo de transferencia neceitan dos rampas de direcci6n para especificar la fuente y el destino. Las computadoras de tipo de registro general emplean dos o tres campos de direccin en su formato de instrucciones. Cada campo de direcd6n puede especificar un registro de procesador o una palabra de memoria. Una btnirein representada mediante
especificara la aperaci6n R1 + R1 4- M [ a . Posee dos campos de d i m i & , uno para el registro R1 y el otro para la dhxci6n de memoria X. La CMJ organizada /con pila se precent en la figura 8-4 Las computadora~ con organizacidn de pila envan instrucciones PUSH y POP las cuales requeririan un campo de d k d d n . Por l o tanto l a instrucci6n
PUSH
escribir4 la palabra de la direcci6n X a la parte superior de la pila. El apuntador de piia se actualiza en foma antomAtica, L;ts instrucciones de tipo operaei6n no necesitan un campo de direccin en las computadoras organizadas con pilas. Esto se debe a que h operacin se ejecuta sobre los dos datos que estn en la parte superior de l a pila. La instrucci6n
BDD
en una computadora con pila consta de un solo c6digo de operacibn sin campo de direccibn. Esta operacibn lee (pop) los dos nmeros superiores de la pila, los suma y escribe (push) la suma dentro de la pila. No es necesario especificar operandos con un campo de direcci6n porque es implcito que d o s estn en la pila. LA mayora de las computadoras caen en uno de estos tres tipos de organizacibn que se acaban de describir. Algunac. computadoras combinan caracteristicas de ms de una estructura oanizacional. Por ejemplo, el micraprocesador Intel 8080 tiene sfete registros de CPU, uno de los males es un registro acumulador. Como consecuencia, e l procesador tiene algunas de las caracteristicas de un tipo de registro general y algunas de las de un tipo acumulador. Todas las instrucciones aritmi5ticac y ldgicas, al igual que las instrucciones de carga y almacenamiento,-utilizan el registro acumulador, por lo que estas instrucciones slo tienen un campo de direccidn. Por otra parte, las instrucciones que transfieren datos entre los siete registros .del procesador tienen un formato que contiene dos campos de direccibn de registros. Adems, e l psocesador intel 8QW tiene un apuntador de pila e
instniccionq push y pop desde una pila de memoria. S i embargo, el pn>sesador no @ne iq@ruccionesde tipo de direccionamiento cero, las cual= son caracterkticas de una CPU ownizada con pila. Para dar una ejemplo de la influencia de la cantidad de direcciones sobre los programas >decomputadora, evaluaremos el siguiente enunciado aritmtico
utibdo m ,uno, dos a tres instrucciones de direccionamiento. Emplearemos los slmbalcs ADD, SUB MUL y DIV para las cuatro operaciones aritmticas; MOV para la operacibn de tipo transferencia; y LDAD y STORE para transferencias hacia y desde la memoria y e1 registro AC. Consideraremos que las operandos es las direcciones de n i e m r a A, B, C y D y e l multado deben almacenarse en h memoria en h difecein X.
z,
instrucciones de tres direcciones Las computadoras con formato de instrucci6n de tres.direcciones pueden utilizar cada campo de direcci6n para especificar un registro de procesador o un operando de memoria. En *+da, s e muestra el programa en lenguaje ensamblador que evala X = (A i. B] * {C + D), junto con comentarios que explican la operaci5n de transferen;eia de registros de cada instruccin.
AQD
RlirAIB
ADD
EUL
RZ,
Cf
D
82
X r RZir
RI+H[A]
+ M[B]
R1 y R2.
Inshcdonea de dos dreccionqs Las instruccioties de dos direcciones zsonlas d s comunes en las computadoraa comerciales. En d a s , bmbin cada campo de direccin puede specificar un registro de pwcesador o qna palabra de memoria. E i programa para evaluar X = (A -i-l?) * {C 23) es como sigue:
274
KHO
RI, A
RlrB
R2,C
RI+M[A]
R2, D
R2r82 XrRb
MDL MOV
H[XJ+RIi
La instnrccibn MOV mueve o transfiere e l operando hacia y desde la memoria y 10s registros del procesador. E l primer smbolo listado en una instruce transfiere e1 resultado de la ci6n se considera fuente y destino, adonde s operacin. hshcciones de una direcci6n tas instnicciones de una direcci6si utilizan un registro acumulador (AC) irnpicito para toda la mmipuhci6n de datos. Para la multiplicacibn y divisin se necesita un segundo registro. Sin embarga, en =te ejemplo no l o tomaremw en cuenta y consideramos que AC contiene el resultado de El programa para waiuar X = (A i- BB)* (C + D)es todas las
LORD ADD
STORB EOAD
AC+B[A]
RCtA[C]
B
T
C ,
+ HIB]
M[T]+AC AC+H[CJ
ADD
MUL
STORE
de memoria.
D T
X
Todas las operaciones se realizan entre e l registro AC y un operando T es la diwc86n de una localidad de memoria temporal necesaria para almacenar el resultado intermedio.
Instnicciones de cem direcciones Una computadora organizada con pila no utiliza un campo de direcci6n para las instrucciones ADD y MUL. Sin embargo, las instrucciones PUSH y POP necesitan un campo de direeci6n para especificar e l operando que comunica con la pila. El siguiente programa muestra d m o se 4 i r 6 X = (A B) * (C D)para una computadora organizada con pila. (TOS significa la parte superior de la pila.)
PUSP PUSH
a
C
r o s t ~
TOS+B
TOSt(A
P~SH B ADD
+ B)
TOStC
TOS+D T O S + ( C 4-D ) TOSt(C+D)*(R+B) POP X H[XJ +TOS Para evaluar expresiones a r i t d i c a s en una computadora con pila, es necesario convertir la expresi6n a motaci6n polaca inversa. E 1 nombre "dkecci6n cero" se da a este t i p de computadora por la ausencia de un campo de direccibn en las instrucciones computacwdes.
Instrucciones RI SC Las ventajas de una arquitectiira de computadora con conjunto de instrucciones reducido (RISC) se explica en la secci5n 8 8 . El conjunto de instnicciones de un procesador RlSC tipico est limitado a w las instrucciones cargar y almacenar c u d o hay comunicaci6n entre la memoria y la CPU.Todas las otras instrucciones se ejecutan dentm de los registros de la CPU s i n transferir* a la memoria. Un programa para una CPU tipo RE consta de instrucciones LOAD y STORE que tienen una memoria y una direcci6n de registro, e instnieciones de tipo computaciond que poseen tres direcciones donde d a s especifican registros de procesador. El siguiente es un programa para evaluar X = (A i B) * (C + D).
LOAD
LOAD LOAD LOAD ADD ADD UL
'
STOBE
Las instrucciones de carga transfieren los operandos de la memoria a registras de la CPU. Las operaciones de sumar y muItiplcar se ejecutan con datos en los registros sin acceder a la memoria. El resultado de los c6lculos se guarda despuks en la memoria con una inshucci6n de almacenar.
E31 campo de operaci6n de una instruccidn especifica 4 opexaci6n que se va a ejecutar. E s t a operacl6n debe realizarse mbfe algunos datos almacenados en registcos de computadora o en palabras de memoria, La manera en que eligen los operandos durante la ejecucin del programa depende del modo de direccionamiento de la instruccin. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dwcci6n de la
276
Unidad
~entra1 de p m m i e n t o
instrucci6n anta de que se haga la refehcia real al operando. Las computadora~utilizan tcnicas de modo de direccionamiento para acomodar una o las das siguientes consideraciones:
1. Proporcionar al usuario versatilidad de programacidn al ofrecer facilidades como apuntadores a memoria, contadores para control de ciclo, in&aci6n de datos y reubicacin de programas. 2, Reducir la cantidad de bits en el campo de direccionamiento de la iastnicci6n,
La disponibilidad de los modos de dlreccionamiento proporciona al programador con experiencia en lenguaje ammbiador la flexibiiidad para escribir programas mas eficientes en relacibrr con la cantidad de instrucciones ye l tiempo de ejecu~i6n. Para comprender 10s diferentes modos de direecionamiento que se presentarh en esta seccin, es imperativo e n h d e r el ciclo de operaci6n bAsh de la computadora, ta unidad de control de una computadora estd M a d a para recorrer un ciclo de instrucciones que se divide en t r e s faprincipales:
programa IPC)
ampo de modo
Hay un registro en la computadora llamado contador de programa o PC, que lleva un registro de las instrucciones del programa almacenado en la memo&. PC coagene la direeoi6n de la siguiente instruccin que s e va a ejecutar y se incrementa cada vez que se recupera una instruccin de la memoria. La decodificacibn realizada en el paso 2 determina la qxraci6n que se va a ejecutar, el modo de dinxcionamiento de h instnicci6n y la posici6n de los operandos. Despus la computadora ejecuta la instniccihn y regresa al paso 1 para hacer l a bsqueda de l a siguiente instruccin en secuencia. En algunas computadoras el modo de direccionamiento de la instnicci6n se especifica con un cdigo biario diitititd, como se hace con e l caigo de op"aci6n. Otras computadoras utilizan un c6digo binario nico que representa la operaci6n y el modo de la instruccin. Pueden definirse instrucciones con &&so$ madd de direccionarniento y, en ocasiones, se combinan dos o m8s modos de direccionamiento en una insbruccibn. Un ejemplo de un b m t o de hshuccibn con un campo de modo de direccionamiento distinto se muestra en la figura 84. El c6diga de operaci6n la operadn que se va a ejecutar. El campo de modo se utiliza para ubicm los +randas necesarios para la operarihn. Puede haber o no un campo *dedireccionamiento en la instruccin. Si hay uno, puede representar una di~eccibnde memoria o un tegistm de preesadot. Adems, como se
277
analiz6 en l a seccibn anterior, la inctrueci6n puede tener mAs de un campo de d i d b n , y cada campo de direccibn puede estar asociado con su propio modo de direccionamieno particular. Aunque la mayorfa de las m & de d i d n a m i e n t o modifican e1 campo de dimccihn de la instruccin, hay dos modos que no necesitan el campo de direccin, Son los modm hnplfcito e inmediato.
Modo implcito: En este modo se especifican los qperandos en forma implcita en la definicibn de la inst'nicci6n. Por ejemplo, la instruccin "complementaracumulador"es una instmcci6n de modo implcito porque e l operando en el registro dk acumulador est5 impliako en la definicibn de la instrucci&n.D e hecho todas las instrucciones de referencia a registro que utilizan un acumulador son instrucciones de modo implcito.
Modo
Direaibn
Las instrucciones de direccidn cero en una computadora organizada con pila son hstrucciones de modo implcito parque esth implcito que los operandas estdn en la parte supetior de la pila.
Modo inmediato: En este modo se especifica el operando en la instruccin misma: En otras palabras, una instrucci6n de modo inmediato tiene un campo de operando, en lugar de un campo de d i r d 6 n . Un campo de operando contiene el operando real que se va a usar jmto con la operacibn especificada en la insttucci6n. Las instrucciones de modo inmediato son ' tiles para inicializar registMs en un valor constante.
Se mencionb antes que el campo de direcci6n de una instrucci6n puede especifkar una palabra de memoria o un registro de pmesador. Cuando el campo de direcci6n especifica un registro de prccesador se dice que la instniccin estii en modo de registro,
Modo d registro: En este modo, los operandos estn en registros que residen dentro de la CPU. Se seieccioni el registro particular de un campo de registro en la insfrkcidn. Un campo k bik puede especificar cualquiera de 2k registros.
Modo indiregto por registro: En este modo la instruccin especifica un registro en' la CPU cuyo contenido proporciona la direccidn del operando en la memoria. En tras palabras, al registro seleccionada contiene la d i ci6n del operando en lugar del operando mismo,, Ahtes de utilizar una instruccin de modo indirecto par registro, el programador debe asegurarse
278
-0
de que la dimcihn de memoria del' operado est colacada en e1 registro del prmesador con u n a instru& previa. Entonces ura referencia al registro es equivalente a especificar una d h x i 6 n de memoria. La ventaja de una instaicci6.i de moda de xegistm indimdo es que e1 campo de direccibn de la iristrumi6n utiltza menos bits para seleccionar un registro de los que necesitara para especificar una diremi611de, memoria en forma directa.
direccibn efedivu
Modo de autoincremento o autodecremento: Este es similar al modo de registro indirecto, excepto en que e l registro se ipcremenb o decremenka despu& (o antes) de que su valor se utilice para a-r la memoria. Cuando la direccibn almacenada en el registro hace referencia a una tabla de datos en la memoria, es necesario incrementar o decremenfar el registro despuks de cada acceso a la tabla. Esto puede lograrse al usar la instruccibn de incrementar o decrementar. Sin embargo, como este es un requisito comn, algupas computadoras incorporan un modo especial que incremenb o d e crementa en forma automtica el contenido del registro despus de cada acceso de datos. La unidad de control en la CPU utiliza el campo de direccibn para obtener e l operando de la memoria. En ocasiones el valor que se proporciona en e l campo de direccibn es la direccibn del operando, pero en ocasiones es sbla una direccidn desde la cual se calcula la di~ecci6ndel operando. Para poder diferenciar los distintos modos de direccionamiento es necesario distinguir entre la parte de direccin de la inctmcci6n y la direccin ef-ctiva utilizada por e l rontxol cuando ejecutit la instruccidn. La direecibn ejectiva s e define como la &mi611de memoria obtenida del dlculo, fijado mediante el modo de difeccionamiento proporcionado. La dimi6n efectiva es la direccibn del operando en una inshuccidn de tipo cornputacional. Es Ia direccidn en que e l control se transfiere en respuesta a una instmccidn de tipo brinco. Ya hemos defiriido dos modos de direccionamienta en el caphiio 5. Se resumen aqu para que sirvan de referencia. Modo de direcdonamiento directo: En este modo la d i m i b n efectiva es igual a la parte de direcci6n de la instnicci6n. E i operando reside en memoria y su d i i c i 6 n la proporciona en forma directa el campo de direccibn de i a instruccin. Esi una instrucci6n de tipo brinco el campo de direccin especifica la d h i 6 n de transferencia de control del programa real.
Modo de direccionamiento indirecto: En =te modo, el campo de direccibn de la inskucci6n proporciona la dimtibn en que se almacena la direcci6n fectiva en la memoria. El control recupera la instrucci6n de la memoria y tiliza su,part;ede +direecibnpara accesar la memoria una vez m As con e l fin &-&le leer la dimci6n efedtlva. El m& de direccionarniento indirecto tambin se explica e n la d n 5-1 junto con la figura 5-2. '
.
Unos cuantos modos de diicionamiento requieren que el campo de dimcci6n de 1a instmcci6n se sume al contenido de un registro especifico en la CPU,En estos modos la direccidn efectiva se obtiene del cdlculo siguiente
Modo de di~eccionamiento relativo: En este modo el contenido del cantador de programa se suma a la parte de direccin de la instruccibn para obtener la direccin efectiva. ta parte de direcci6n de la instruccibn por lo general es un nmero con signo (en representacibn de complemento a 2) el cual puede ser positivo o negativo. Cuando se suma este nmero al contenido del contador de prugrama, el resultado produce u n a direccibn efectiva cuya posicin en la memoria es &tiva a la direccin de la siguiente uistmccin. Para hacer ms claro con un ejemplo, consideremos que e l contador de programa contiene el nmero y que i a parte de direcci6n de la instruccibn conkiene el nmero 24. La inctniccibn en Ia posici6n 825 se lee de la memoria durante la fase de reniperacilin y el contador de programa se incrementa en uno a 826. E 1 ciilculo de dreccibn efectiva para el modo de direecidn relativa es 826 + 24 = 850. Esto es 24 posiciones de memoria adelante de la direccin de la siguiente hhucci6n. Con frecuencia se utrliza el direccionamiento relativo con instrucciones de tipo brinco, cuando la direccidn del brinco est en el Brea que m i e a la palabra de la instrucci6n misma. Esto da como resultado un campo de direcci6n ms pequefio en el formato de la instniccin porque la direccin relativa puede especificarse con una cantidad de bits menor en comparacibn con la cantidad de bits que se necesitan para r e p m t a r la direccih de memoria completa.
este modo el contenido de un registro fndicese suma a la parte de d h x i 6 n de l a instruccibn para obtener la diici6n efectiva. El registro ndice es un registro de CPU especial que contiene un vaBr ndice. Un campo de direcci6n de h instnicci6n define la direccin inicial del arreglo de datos en la memoria. Cada opando del arreglo &e almacena en la memoria m relaci6n con la direcci6n inicial. La distancia entre la direcci6n inicial y la dimci6n del operando es el valor del ndice h a c e n a d o en el registro de indice- Cualquier aperando en el arreglo puede accesarse con la misma instruccidn siempre y cuando el registro
indice contenga el valor de ndice correcto. El registro ndice puede i n m mentar= para facilitar el acceso a operandos consecutivos. N6tese que si una instrucci6n de tipo ndice no incluye un campo de direcci6n en su formato, la instrucci6n se convierte al modo de operaci6n de indirecto por
registro.
280
formato de instruca6n.
Modo de didonamiento de xegistro base: En este modo, e l contenido de un registiro base se suma a la parte de direcci6n de la instnicci6n para obtener la direccin efectiva. Esto es similat' al modo de direccionamiento indexado, excepto en que e l registro se denomina ahora registro base, en I q p r de registro de indice. L2t diferencia entre los dos modos est en la manera que se usan mAs que en la manera en que se calculan. Se considera que un ~registmndice contiene un n~mero de ndice que se relaciona con la parte de d W 6 n de h insf-nicd6n. Se considera que un registro base contiene una dkc6n base y que el campo de direccibn de la instruccin proporciona un desplazamiento en relacibn con esta direcci6n base. E 1 modo de ,direccionamiento de registro base se utiliza m las computadoras para facilitar la locaikaci6n de las. programas en memoria. Cuando se mueven datm y programas de un segmento: de memoria a atra, como se requiere en los sistemas de multiprogramacibn, los valores de d i i b n de b s instrucciones deben reflejar esle cambio de posicin. Con un registro base los p e valores- de desplazamiento de h s instrucciones no tienen que cambiar. S610 e l valor del registro base requiere una a c ~ ~ c i para 6 n reflejar e l comienzo e un nuevo qmenta de memoria. jd J
, m
recuperar esta instcucclbn. El cantenido del registro de procesador R1 es m, y el contenido de un registro hdice XR es 100. AC recibe e I operando despu4s de que se ejecuta h instnicci6n. La figura lista unas cuantas direcciones pertinentes y muestra el contenido de la memotia en cada una de ellas. El campo de modo de la instruccibn puede especificar uno de varios modos. Para cada modo posible calculamos la direcei6n efectiva y el operand o que debe cargarse dentro de AC. En d modo de direccionamiento directo la direccidn efectiva es la parte de la direccidn 508 de h instniecih y el operando que se va a cargar dentro de AC es 800. En el modo inmediato
Ejemplo numnce Para mostrar las diferencias entre los diferenv modos, veremos e l ejemplo de los modos de direccionamiento sobre Ias instrucciones que se definen en la figura 87. h inshmi6n de dios paiabras m la d k i 6 n 200 y 201 es una iilstmccih "cargara AC" con un campo de diPecci6rr igual a 500. La primera palabra de la .inctrucci6n especifica e l cdigo de operacibn y modo, y la segunda palabra especifica la parte de la direccin. PC tiene e l valor 200 para
SEWI~N
C L T
Modos de di-ionamiento
281
u,
--hkrirn
Memoria
direcci6n efectiva es 201.) el modo indirecto se almacena la direcci6n efectiva de la memoria en la direcci6n 500. Por lo tanto, la direcci6n efectiva es 8 0 y el operando es 300. En el modo relativo, la direccibn efectiva es 500 202 702 y el operando es 325. (N6tese que e l valor eri PC, despds de la fase de recuperaci6n y durante la fase de ejecucin es 202.) En el modo de ndice la direccin efectiva es XR + 500 = 100 + 500 = 600 y el operando es 900. En e l modo de registro el operando est en R1 y se carga 400 dentro de AC. @ n este caso no hay una dimi611 efediva.) En e l modo indirecto de registro la dirqci6n efectiva es 400, igual al contenido de R1 y el operando cargado en AC es 7lO. El modo de autoincremento es igual que el modlo indirecto de registro, excepto en que R1 se incrementa a 401 despu& de la ejecuci6n de b instniccin. E l modo ,de autodecremento decrementa R1 a 399 antes de la ejecuci6n de la instrucci6n. E l operando que se carga en AC es, ahora W . La tabla 8-4 lista los valores de la direccihn efectiva y el operando cargado en AC para los nueve d o s de direccionamienta.
282
W OQIO Unidad--al
de p~wesamienbo
TABLA &4 Lirta tabular de un ejempIo numhrico
Modo de direccionamiento
Direccionamiento directo
DirecciSn efectiva
500 201
Contenido
de AC
Operando inmediato Dimciommiento indirecto Direccionamiento relativo Direccionamiento indexado Registro Indirecto por registro
Autoincrcmento Autodmento
800 702
000
1400 400
399
8-6
confunto de
operaciones hdsfcas
Las computadoras proporcionan un amplio conjunto de instrucciones para dar al usuario Ia flexibilidad de realizar diferentes tareas cornputacionales. El conjunto de instrucciones de diferentes computadoras vara de una a otra sobre todo en la manera en que los operandos se determinan de las campos de direcciones, Las operaciones reales disponibles en el conjunto de instnicci* nes no,son muy &rentec de una computadora a otra. fio que sucede es que las asignaciones de d i g o binario y e l campo de d i g o de la operaci6n son diferenb en diversas computadaras, aun para la misma operaci6n. Tambih puede suceder que el nombre shwlico asignado a instrucciones en la notaci6n de lenguaje ensamblador sea diferente en varias computadoras, aun para la misma instruccidn. No obstante, hay un conjunto bsico de operaciones que gran parte, si no es que todas las computadaras incluyen en su repertorio de instmccionq. El canjunto de operaciones bsicas dispnibles en una computadora tipita = e1 objeto que se cubre eri esta semi613y la siguiienk. ta mayor parte de instrucciones de computadora pueden clasificarse en tres categorhs:
1 . Instrucciones de transferencia de dms. 2. Instrucciones de manipulaciBn de datos. 3. Instrucciones de control de programa. Las instrucciones de transferencia de datos producen una transferencia de datos de una localidad a otra sin cambiar el contenida de la informaci6n
binaria. Las instrucciones de manipulaci6n de datas son las que realizan operaciones arihn&ticas,lbgicas ,y de corrimiento. Las instrucciones de control de programa proporcionan posibilidades de toma de decisiones y cambian la trayectoria que toma un programa cuando se ejecuta en Ia computadora. E l conjunto de instrucciones de una computadora particdar d e t e d a
las aperacim de transferencia de regisws y controla las decisiones disponblw para el usuario.
clda;
I@ruccbnes de ,&wderenciade los datas Zlag instruccione*de transferencia de datos mueven datos de un lugar en la computadora a olm:~iTi sambiir e l contenids de IPS datos. Las transferencias ms comunes son enhe registros. del p~ocesador y memoria, entre registros de+ pr<rcesadar y etibda a ,salida y entre loa mismos registros del procesadoic, La tabla 8-5 proporciona una lista de ocho instrucciones de transferencia de datos que se u&n en muchas computadoras. A cada instruccibn le acompaa un nembnFm. Debe recoda* que dihrentes computadoras usan nem6nicos distintw para el mismo hombre de instruccin. L a instruccin load (cargar) se ha usada principalmente para designar una transferencia de memoria a un registro de pragramaci61-1, por lo general un acumulador. La.instruccidn storg (alnrncennr) representa una transfev c i a de un registrp de p m o r a 1%m.ioria. La instrucci6n mov (rnuver) se ha usado en las ca~putadorascon -istrw rnGltiples de CPU para designar una transferencia de un a otro. Tambi4n s e ha usado para transfere0cia.s de d a m entre registros de C??U y la, piemoria o entre dos palabras de memoria. ,Lainshcc611exchadge iintercaltibiar) cambia la informaci6n entre dos registros o un registro y una palabra de memoria. Las hj "struc$"es input (intruducir) y output [sacar) transfieren datos entre registros del prwesadqr y tepinales de entrada o saiida. Las instrucciones push (empfir) y pop (snlfar) transfiere0 datos entm registros del procesador y una pila de memor'ia. bebe recordarse que las instrucciones que se listan en Ia tabla 8-5, al igual . ", que en Ias tabhs sipuientes en esta seccibn, con frecuencia estn asociada's C o n diversos mods de direccionamiento. Algunas nomias del lenguaje ensaniblador modifican 14smbolo nembnico para diferenciar entre los diversos modos de direccionamiento, Por ejempla, el nemnico para
m
Cargar
Alrnamr
kilovet
,LD ST
MOV
InkrmmbLr
Entrada
,WH
I N
OUT PUIMi.
-:r l.a+qipbi
Sai1L.a~
Ciilida
POP
2@
m ~
M O Unidad
central de procesamiento
Modo
ensambladar
Transfmncia de registros
AC
+ -
Dimcionamicnto di=& Lo ADR Direccionamiento indirecto LD @ADR Direccionamiento rehtivo LD SADR Operando inmediato LD #N=
Diretcionnmiento indexado LD ADRW)
IM[dDR]
AC
+-
M[M[ADm
AC +M[PC
AC 4 NBR A C A M[ADR
+ ADR]
+
+1
LD R1 LD (Rl) LD [R\)+
/'"
cargar de inmediato se convierte en LDI. Otras normas del lenguaje ensamblador utilizan un carcter especial para asignar el m d o de direccionarniento. Por ejemplo, e l modo inmediato se reconoce por un signo # colocado antes del operando. En cualquier casa, b importante es entender que cada histnicci6n puede ocurrir con diversos modos de direccionamiento. Como ejemplo, consideremos la instrucci6n cargar d ammulador cuando se usa con ocho modos de diteccionamiento d i f e m ~ . La tabla 8-6 muestra la convenci6n recomendada del lenguaje ensarnblador y la transferencia real que se logra en cada caso. ADR r e p m t a una direccibn, NBR es un ndmero u operando, X es un registro de ndice, R1 es un registro de procesador, y AC es el registro acumulador. El carcter B simboliza una ditwei6n indirecta. E 1 caracter $ antes de una direccin hace el direccionamiento relativo al contador de programa PC. El carhcter # precede al operando en una instruccibn de modo inmediato. Una instrucci6n de modo indexado se reconoce por un registro que se coloca entre parntesis despuCs de la direccin simb6lica. El modo de registro se simboliza al proporcionar el nombre de un registro de procesador. En el modo indirecto por registro, el nombre del regisffo que contiene la dimcci6n de memoria se encierra entre parntesis. El modo de autoinaemeito s e distingue del modo indirecto por regictro al colocar un signo de mas despus del registro entre padntesis. A su vez e l modo de autodecremento utilizara un signo de menos. Para poder escribir programas del lenguaje ensambladar para una computadora es necesario conocer el tipo de instrucciones disponibles y tambibn e s t a e s t a r familiarizado con Ios modos de direccionamiento utilizados en la computadora particular.
Instnicciones de manipulacin de los datos L a s instrucciones de manipulacin de datos ejecutan operaciones sobre los datos y proporcionan las posibilidades computacionales para la computad*
285
ra. Las instruaiones & M p . & c i S n de datos en una computadora tipica se dividen por l o general en tres tipos bdsicw
Instrucciones aritmdticas las cuatro operaciones aritmticas bsicas son suma, resta, multiplicacin y divisin, La mayora de las computadoras proporcionan instrucciones para
las cuatro operaciones. Algunas computadoras pequeas dlo tienen las instrucciones suma y, tal vez, resta. La multiplicaci6n y a divisi6n deben generarse mediante subrutinas del software. L a s ctrtro operaciones ariticas basicas son suficiente^ para formular salucionss a problemas cientficos cuando se expresan en trminos de mCtodos de anlisis numbrico. En la tabla 8-7 se proporciona una lista de las instrucciones aritm4ticas tipicas. La instnieci6n de incrementar suma 1 al valor almacenado en un
Nembnico
ResHr
M~ilti~Iicar Dividir Sirmar con acarreo R c s ~ ron r ~rbtarno N e r (complemento a 2)
SUB
mv
MUL
ADDC
SUBB MEG
286
registro o palabra de memoria. Una caracteristica comiin de las operaciones de incremenhr, cuando se ejecutan en regishos de pr~esador,es que un nmero binacio que contiene &lo digiba 1, produce un resultado de 9610 agitas O cuando se incrementa. La instruecidn para decrementar resta 1 de un valor ah4cenado en un registro o palabra de memoria. Un niimero con &lo datos 0, produce un ndmero con slo digitm 1 cuando se decrementa.
iipo ds d a h
Las hstrucciones sumar, restar, multiplicar y d h i d i pueden estar dispadbles para diferentes tipos de datos. 'los tipos de datos que se considera que estn en los registros dei p m d o r durante h ejecuci6n de estas operaciones aritmticas, ae incluyen en la definicidn del cdigo de operacin. Una instruccibn aritrnbtica puede especificar datos de punto fijo o flotante, datos binarios o derimales, datos de preciaibn h i c a o de doble precisi6n. Los diferentes tipos de datos se presentaron en el captulo 3. No es extrao encontrar computadoras con tres o ms instrucciones de suma: una para enteros binariost una para operandm de punto flotante y una para operandas decimales. En seguida, se muestran los nemdnicos para tres instrucciones de suma que especifican tipos de datos diferentes.
ADD 1
ADDF ADDD
Sumar dos niimeros enteros de punto flotante Sumar dos nmeros de punto flotante Sumar dos n b e r o s decimales en BCD
instnrcciones Ihgicas y de manipulacin de bits Las instrucciones ldgicas ejecutan operaciones binarias sobre series de bits almacenadas en registros. Son tiles para manipular biis individuales o un grupo de bits que represente informacin en c6digo binario. L a s instrucciones lgicas consideran en forma separada cada bit del operando y b tratan como una variable booleana. Mediante una aplicacin adecuada de las
instrucciones Igicas, es posible cambiar los vabres de bits, emplear un grupo de bits o insertar nuevos vahres de bib m los operandos almacenados en registros o palabras de memoria. Algunas instrucciones I6gicag y de manipulacin de bits tpicas s e Ustan en la tabla M , La instrueribn de borrar hace que e l operando especificado se sustituya con 0. La instrucci6n complementar produce el complemento a 1 al invertir todos los bits del operando. Las instrucciones AND, OR y XOR
producen las operaciones 16gicas correspondientes sobre los bits individuales de las operandos. Aunque realizan operacbonm hleanas, deben considerarse que las instmccianes ejecutan operacb~es de manipulaci6n de bits cudndo se usan en instrucciones de computadora, Existen tres operaciones de manipulacibn de bits posibles: un bit seleccionado puede borrarse a 0, activarbe en 1, o puede compJementarse. Por lo general, se aplican las tres instrucciones 16gicas para hacer &lo esa. La instrucci6n AND se utiliza para borrar un bit o un grupo seleccionado de bits de un operando. Para cualquier variable booleana x, las relaciones xbO = O y xbl = x dictan .que una variable binaria a la que se le haya aplicado un AND con un O produce un O ; pero la variable no cambia de valor cuando se le aplica un AND con un 1 . Par lo tanto, la instnieci6n AND puede utilizarse para b~rrar bits de un operando en forma selectiva al aplicar AND ai operando con o h operando que tiene O en las posiciones de bit que deben borrarse. La instruccibn AND t'ambign se llama mscara, porque enmascara o inserta O en una parte seleccionada de un operando. La instnicci6n 0 R se u tiliza para activar un bit o un grupo seleccionado de bits de un operando. Para cualquier variable booleana x, las relaciones x + 1 = 1 y x + O = x dictan queana variable binara a la que se le aplica 0 R con un 1 produce un 1; p e w la variable no cambia cuando se le aplica OR eon un O. Por l o tanto, la htnidn O R puede utikarse para ackiva~
TABLA - h t n i c E i w 16giaii y de manipdaci6nde bits tipicas
seleccio~ados
Bomr Complementar Aplicar la funci6n AND Apliar la furici6n OR Aplicar la funci6n.OR exclusiva Desactivar a
Acti~,m a .-
CLR
C O M
AND OR
XOR CLRC SETC COMC
E 1
DI
biis de un operanrto en f o m dwtiva, al aplicar OR con otro operando con dgitcw 1 en las p d o n w de bits que deben activarse: m 1. De igual forma, la, btmccibn XOR se ut.iliza para complementar bits de un operando en f a m a &&va. .Bto se debe a Ia relaci6n hiena x @ 1 = x' y ;u Q 0: = x. Por b tanto, m a variable binaria se complementa mando se le aplica XOR cbn un 1 , pero no cambia en vdlof cuando se le aplica XOR con un O. En la k c i b n 4 5 se muestran ejemplos numbrims de las tres operaciones lgicas. 1319 la tabla 8-8 se induym algunas otras-'~~l~trucciones de manipulaciijn de bits. Los M Y s individual@ [como los de un acarreo) pueden borrarse, a c t i v m a complementarse eon las instruccioneis aprbpiadas, Otro ejemplo es un fip-lop que controla la opcin de inkrrupci6n y se habilita o deshaMita mediante instrcciores ,de manipulacin de bits.
Instrucciones de corrimiento Las instrucciones para recorrer e l contenido de un operando son muy ames y se ~fkecertcon frecuencia en diversas variaciones. t o s corrimientos son operaciones en las cuales l o s bits de una palabra se recorren a la izquierda o derecha. El bit que s recorre al extremo de la palabra determina el tipo de corrimiento que utiliza. Las instrucciones de arrimiento pueden especificar conirnientos 16gicos, aritmdticos u operaciones de tipo rotatorio. En -lquier caso, el corrimiento puede ser a la derecha o a la izquierda. La tabla 8-9 lista cuatro tipos de instrucciones de corrimiento. El corrimiento lbgico inserta un O al de la posici6n final de bit, L . a posicidn final es el bit al extremo izquierdo para el corrimiento a la derecha y el bit al eximmo derecho para el coirimiento a la izquierda. Por lo general, loe c o ~ e n aritmticos b se apegan a h s reglas para los ntimeros de complemento a 2 can signo. Estas reglas se proporcionan en la d 6 n 4-6. La instrucci6n aritm6tica de corrimiento a Ia derecha debe preservar el bit de signo en la posicih al extremo izquierdo. E 1 bit de signo se desplaza a la
TABLA 8-9 L i s W o n e s de coerimiento tipicas
Nombre
Nembnico
Corrimiento a la derecha lbgico SHR Corrirnieritoa la izquierda lbgico SHL Corrimiento a la derecha aritmktico SHRA Corrimiento a la izquierda ariim&tico SHLA Rotar'a la derecha ROR Rbtar a l a izquierda ROL Rotar a la defecha mediante acarrea RORC Rotar a la izquierda mediante acarreo ROLC
289
derecha junto con el resto dd nmero, pero e l bit de signo no cambia. Esta es una operacin de combnhfo a la derecha en la que el bit final permanece igual. La instmcci6n de corrimiento aritmgtico a l a izquierda inserta O en l a posici6n final y es idntica a la instruccin I6gica de corrimiento a la izquierda. Por esta r&n muchas computadoras no proporcionan una instruccin distinta de corrimiento aBtm&tico a la izquierda cuando ya est di&pom%ie la inchccibn de coxrimiento lb@eo a la izquierda. Las instrucciones-de rotacibn producen un carrimiento circular. Los bit6 recorridos en un extremo de la palabra no se pierden en un desplazamiento ldgiao, pero se hacen circular hasta d otro extremo. La inslnicci6n de mtaci6n a travs ,del .bit de acarreo trata al bit de acarreo como una extensidn del registro cuya palabra se est mtando. Por l o tanto, una instnicci6n de rotaci6n a la izquierda a Bav6s del acarreo transfiere e1 bit de acarreo a la posicidn de bit a la extrema derecha del registro, transfiere la posici6n de la extrema izqukrda al acarreo y, al mismo tiempo,recorre todo el registro a Ia izquierda. Algunas,computadoras tienen un formato de carapo mltiple para las instrucciones de corrimiento. Un campo contiene el cdigo de operaci6n y los otros especifican e l tipo de corrimiento y la cantidad de veces que se va a recorrer un operando. Un formato de cdigo de instruccibn posible de una instnicdbn de desplazamiento puede incluir cinco campos de la manera siguiente:
nP
REG
TYPE
RL
COUNT
Aqu OP es e l campo .dec6digo de operacin; REG es una direccidn de W t r o que especifica la posici6n del operando; 'l"YPE es un campo de 2 bits que espeeifiea las cuatro diferentes tipos de corrimientos; LR es un campo de 1 bit que especifica un corrimiento a la denecha o a la izquierda y COUNT es un campo de k bits que especifica hasta 2k - 1 corrimientOs. Con tal
formato es posible especificar el tipo de corrimiento, la direccibn y la cantidad de corrimientos, toda en una sola instrucci6n.
8-7
Control del,programa
Las instrucciones siempre se almacenan en localidades de memoria sucesivas, Cuando se procesan en la CPU, las instrucciones se recuperan de localidades de memoria consecutivas y se ejecutan. Cada vez que se recupera una instruccibn de la memoria, el contador de programa se incrementa para que contenga la direcci6n de la siguiente instnicci6n en secuencia. Despus de Ia ejecucibn de una instrucci6n de transferencia de datos o de manipulacibn de datos, el control retorna al ciclo de recuperaci6n con d contador de programa que contiene la direccin de la siguiente instruccin de m e n c i a . Por otra parte, un tipo de instrucci6n de contra1 de programa,
290
m0
cuando se ejecuta, puede cambiar e1 valor de la ditemi511en el contador del progra~na y prov~ar que se altere el flujo de control. En otras palabras, las instrucciones de contra1 de pmgraha ~pecifican condiciones para alterar eI contenido del contador de programa, mientrae que las instrucciones de transferencia y manipdaci6n de datos especifican condiciones para operacioneS de procesamiento de datos. E l cambio en el valor del contador del . prograrria como resultado de la ejeucibn de una instruccibn de control de programa provoca m "ruptura"en la sezilentia de ejecuci6n de instrucciones. Esta es una caracte~isticaimportante en las computadoras digitales, porque proporciona un coritmol sobre el flujo de ejecueibn de un programa y h pmibitidad de transferir l control a diferentm segmentos de1 programa.. Algunas ~struccioriias de control de programa tpicas se listan en la tabla 8-10. Las instrucciones de transferir el conm1 y brincar se usan en forma intercambiable y representan I o misma, pero en ocasiones se utilizan para denotar modw de dmcianamiento diferentes. Por lo general, h transferencia del control es una instrucci6n de una direcci6n. Est escrita en lenguaje emmblador como BR ADR, donde ADR es un nombre simb6lico para la direccin, Cuando se ejecuta provoca una trmsferencia del valor de ADR m el contador de programa. Como d contador de programa contiene la direccin de la instrumidn que se va .a ejecutar, k t siguiente instnteci6n provendrai de la 1ocaIidad ADR. ias uistrucciones de transferencia del corrtrol y brincar pueden ser condicionales o incondicionales. Una instnicci6n de transferencia incondicional produce un brinco a la clkccici6n especificada sin ninguna mndicibn. La instnicci6n de transferencia condicional especifica una condicin, tal como un brinco si es positivo o brinco si es cero. S i se cumple la condicidn, el contador de programa se e q a con la direeei6n de brinco y se toma la siguiente h s W i de e& dhxi6n. S i no se cumple la condici6n, el contador de programa no d i a y la siguiente instnicci6n se torna de la . siguiente localidad en secuencia.
TABLA 8-10 Znshucciones de control de programa tipicas
Transferir Saltar
omitir
BR
JMP SKP
CALL Retornar RET Comparar (mediante resta) Probar (al aplicar la funci6n AND) TST
Llamar
La instnrcci6n de brinco no necesita un campo de direcci6n y por l o tanto es una b t r u c c i h de direccibn cero, Una instnrcci6n de brinco condicional brincara la siguiente instruccin si se cumple una condici6n. Esto se logra al incrementar el contador de programa durante la fase de ejecucibn, adems de lo que se incrementa durante la fase de recuperacin. Si la condicibn no se cumple, el control avanza a la siguiente instmccihn en secuencia, donde el programador inserta una instnicci6n de brinco incondicional. Por lo t a n t o , un par de instrucciones de brinco y transferench del control provocan un brinco si no se cumple la condicih, mientras una sola instnicci6n de brinco condicional produce una transferencia si se cumple la condicidn. Las instrucciones de llamada y regreso se utilizan junto con subrutinas. Su daempefo e imphntaci6n se analizan m6s adelante en esta secci6n, L2ia instrucciones de comparar y probar no cambian la secuencia del programa en forma directa. Estn listadas en la tabla 8-10 par su aplicaci6n al estable cer condiciones para instrucciones de brinco condicional subsecuentes. Una instruccin de comparar ejecuta una resta entre dos operandos, pero no se conserva el resultado de la operaci6n. S i n embargo, se activan ciertos bits de condiciones de estado como resultado de la operacibn. De igual manera i a instrucci6n de probar ejecuta el AND Ibgico de dos operandos y actualiza ciertos bit5 de estado sin mantener el resu1tado ni cambiar los operandos. Los bits de estado de interks son el bit de acarreo, el bit de signo, una indicacibn de cero y una condicin de sobreflujo. Primero se anabrA la generacidn de estoa bits de estado y despus mmtramos cbmo se utilizan en instrucciones de brinco condicional.
1'8
I I
,'8
Ir
c 7
ALU de 8 bits
cg
1i
AL
F;
F7-F0
11
h r n p r o h r una salida O
11
, '8
lr
Salida F
O. Esta es la condicin para un sobrefiujo cuando los nmeros negativos estn ,enmmplements a ,2 (vaw .la seccin 33). Para la AUI de 8 bik, V = 1 d la. salida e s mayor que 127 o menor que 228.
heden verificarse los bits de estado despues de una operacin ALU para determinar *ciertas mlaciones que existen entre lm valores de A y B. S i R activa el bft P despues de h suma de dos nmeros,ron signo, indica una m d i c i n de sobreflujo; S i Z se activa despus de una operaci6n OR exclusiva, indica que A = B. Esto se debe a que x @ x = O, y la OR exclusiva de dos operandos iguales proporciona icn resultado de 5610 nilimeros 0, lo cual activa e3 bit 2. Puede verificarse un bit dnico en A para determinar s i est ,enO o 1 al m a m a r todos los bits excepto el bit en cuestin y despus d c a r el bit de estado 2. Por ejemplo, sea A = 101x1100, donde x es e l bit que se va a comprobar-. La operaci'bn AND de A con B = OUOlOOOO @uce un resultado OOOxMH10. S i 2 = O, e~ aetiva el bit de estado 2 , pero ei xx' =.1, se desactiva el bit 2 pue$ el resultada es diferente de cero. Puede gemrdrse la. optaci6n AND con la ~ ~ c c i 6TEST 1 i que se lista en l a tabla 8 1 0 ,si debe mantenerse el corthido onginsI de A.
= & N
8 7 CmtRi1 del
programa
293
instrucciones de brinco condicional La tabla 8-11 proporciona tfna lista de las iIptrucciones de transferencia del control del. programa mas comunes. Cada nem6nico estA formulado con la letra B (por branch, salto) y una abreviatura del nombre de la coqdici6n. Cuando se usa e l estado de condici6n opuesta, se inserta la letra N (no) para definir el estado 0. Por lo tanto BC es brincar en el,acarreo y BNC es brincar cuando no hay acarreo. S i la condicihn planteada es cierta, se transfiere el cmtrol del programa a l a direccin especificada por la instrucci6n. Si no, el control contina con la instnicci6n que sigue. Las instrucciones condicionais pueden a a ~ ~ i a r s tambidn e con las instrucciones del tipo de control de programa brincar, interrumpe, llamar o retornar. E l bit de estado cero se utiliza para probar si el resultado de una operaci6r en la ALU es igual a cero o no. El bit de acarreo se utiliza para comprobar si hay un acarreo de la posici6n de bit ms significativa de la ALU. Tambin se wa junto con las instrucciones de rotaci6n para verificar el bit ms significativo recorrido de un registro dentro de la posici6n de
TABLA 8-31 Instrucciones de tmnsfereneia de mn&iI,~ndicional
-7
-m-'
Nemnico
eondicihde tmnsfqncia
Condicin probada
2 - 1
ri **L
dw = m
rrk
BZ
BNZ
BC
BNC
BP BM
BV BNV
Brincar si hay cero Brincar si nb hay -o Brincar si hay acarreb bimt si~nomhay acarreo B-sihayundgnomh Brincara hay irn signo menos Brincar si hay sobdujo , Brincarsi no hay sobrduio
V=O
Condiciones para comparar sin signo (A B) BHI Brincar si es mayor A> B BHE Brincar si es mayor o igual A 2 B BLO Brincar si' es'menor A<B BLOE Brincr si es menor o igual A S B BE Biincar si es igual A=B BNE Brincarsi e sdifhte A+B
BGT BGE
BLT
Condic.iones para comparar con signo (A Eriqcr si es.mayor que Brincar M, e s mayor o igual
- B)
A>B A 2 3
BLE BE BNE
brincar si es menor que U'rincars i es menor O igual Brincar s i es igual Brincarsi es Bifbmfe '
A<B
A I B
A=B A f B
ejemplo num6tieo
acarreo. El bit de signo refleja d estado del bit ms significativo de la salida de la ALU. S = O repmenta un sipo positivo y S = 1 un signo negativo. Por l o tanto, un brinco sobre ms comprueba un bit de signo en O y un brinco sobre menos comprueba un bit de signo en 1. Sin embargo, debe recordarse que estas dos instrucciones de brinco condicional pueden utilizarse para verificar el valor del bit mbs significativo ya sea que rep-te un signo o no. E l bit de sobreflujo se u t h junto con operaciones aritmbticas realizadas sobre nmeros en rep-ntacibn de complemento a 2 con signo. Como se dijo antes, Ia instruccin de comparar ejecuta una resta de dos operandos, digamos sl - B. El resultado de l a operaci6n no se transfiere a un registro destino, pero se afectan los bits de estado. El registro de estado proporciona informacin acerca de la magnitud relativa de A y B. Algunas computadoras proporcionan instrucciones de transferencia del control del programa condicionales que pueden aplicarse exactamente despus de la ejecucin de una instniccidn de comparar. Lsis condiciones especificas que se van a probar dependen de si los dos nilmeros A y B se van a considerar con signo o sin signo. La tabla 8-11 proporciona una lista de tales ins:mcciones de transferencia condicional. Nbtese que utilizamos las palabras d s alta y miis baja para denotar las relaciones entre nCimeros sin s i p y mayor y menor que para nmeros con signo. ta magnitud relativa que se muestra bajo la columna de condicin probada, en la tabla, parece igual para los nmeros con signo y s i n signo. Sin embarga, este no es el caso porque cada uno debe considerarse en forma separada, como se explica en el siguiente ejemplo n d r i c ~ , Consideremos una ALU de 8 bits, $amo se muestra en l a figura 8-8.E l nmero sin signo ms grande que puede acomodarse en 8 bits es 255. El ranga de nmeros con signo esU entre + 127 y - 128. La resta de d a nSimeros es igual, ya sea que no tengan signo o estn en 'epresentaci6n de complemento a 2 con signo (vase el capitulo 3). Sean A = 1 1 1 1 O O O O y B = 00010100, Para ejecutar A - 13, la ALU toma e l complemento a 2 de B y lo suma a A.
La hstruccibn de comparar actualiza el bit de estado segn se muestra. C = 1 porque hay un acarreo de I a ltima etapa. S = 1 porque el bit a la extrema izquierda ea 1. V = O porque Im ltimos dos acarreos son iguales a 1 y Z = O porque el resultado es diferente de O. Si consideramos nmeros sin signo, el equivalente decimal de A es 240 y el de B es 2 0 . ta resta en decimal es 240 - 20 = 220. Por l o tanto, el resultado bmrio 11O111OO S el equivalente del decimal 220. Entonces 240 > 20, tenemos que A > B y A f B. Estas dos relaciones tambih pueden derivarse de que el bit de estado C es igual a 1 y el bit Z es igual a O. Las instrucciones que producirsn una transferencia de control despubs de esta comparacin
295
BH6 (brincar si es mayor o igual) y BNE (brincar s i es diferente}. Si consideramos nmeros con sighq el equivalente de A es -16. Esto se debe a que e l signo de A es negativo y 11110000 es e1 complemento a 2 de @M10000, e1 cual e a el equivalente decimal de + 1 6 .E l equivalente decimal de 3 es 20. ia resta en decimal es (-16) - (+20) = -36. El resultado binario 11011100 (el complemento a nmeros de 8010010Q), es el equivalente del decimal -36. Como (-16) < (+20) terkmos que A B y A # B. Estas dos relaciones tambien pueden derivarse de que los bits de estado S = 1 (negativo), V = O (no hay sobreflujo) y Z = O (no hay cero). Las instrucciones que provocardn una transfereircia de control despus de esta comparacibn son: BLT (brincar si es menor que), BLE @rimar s i es menor o igual) y BNE (brincar si es diferente'}. Debe notarse que las instrucciones BNE y BNZ (brincar si no es cero) son identicas. De igual manera, Ias dos instrucciones BE (brincar si igual) y BZ (brincar si es cero) tambin son idnticas. Cada una estA repetida tres veces en la tabla 8-11 para hacerla mas cbra y completa. Con este ejemplo, resulta obvio que Ia magnitud relativa de dos nme ros sin signo puede determina= (despubs de una instrucci6n comparar) de los valore de bits de estado C y Z (vkase el problema 8-26). La magnitud relativa de dos nrimeros con signo puede determinarse de los valores de S, V y Z (vase d problema 8-27), Algunas computadoras consideran el bit C como un bit de prstamo despus de una operaci6n de resta A - B. No ocurre un prstamo s iA 2 B, pero debe prestarse un bit de la siguiente posicibn m s significativa si A < B. L a candici6n para un prstamo es el complemento del acarreo que se obtiene cuando se realiza la resta, al tomar el complemento a 2 de B. Por esta razn, un procesados que considera al bit C como un prstamo despuk de una resta, comphentar8 eI bit C despus de sumar el complemento a 2 del sustraendo y denotar que este bit es un prstamo.
296
F0 ~
jnstrucei6n al reaiizar dos operaciones: 1) s e almacena la direccibn de la siguiente instrucci6n disponible en el contador de programa (la direccin de retorno en una posicibn temporai, para que la subrutina sepa a d6nde retomar y 2) se transfiere el contcol al comienzo de l a subrutina. La ltima instrucci6n de cada subrutina, por lo general liamada ret~rno de la subrutina, transfiere la direccibn de,retorno de la posici6n temporal dentro del contador
Si se solicita otra subrutina mediante la actual, la nueva direccidn de retorno s e salva dentro de la pila, y as sucesivamente. La instruccin que hace retornar de la dltima subrutina se realiza mediante las microoperaciones:
PC t M I S P ] SP +SP + >1
PC
A utilizar una pila de subrutina, Ia circuiteria almacena en forma autodtica todas hs direcciones de retorno en una unidad. El programador no tiene que preocuparse o recordar d6nde sa dmacen6 i a direccibn de rctorno. Una subrutina remrsim es una subrutina que s e solicita a s misma. Si 9610 se utiliza un registro o localidad de memoria para almacenar la dicin de retorno y la subrutina recumiva se solicita a s i misma, destruye l a
SBCCION 87
297
b c i 6 n de ,retorno anterior. Esto no es deseable porque s e destruye XOCmaci6n vital. Este problema puede resolverse s i se emplean diferentes localidades de almacenamiento para cada utilizadhn de subnitina mientras otra utilizacin de nivel ms ligero estd activa todava. Cuando se utiliza una pila, cada ckcci6n de retorno puede saIvarse dentro de la pila sin destruir ningn valor previo. Esto resuelve eI problema de la subrutina reamiva porque Ja siguiente subrutina que sale es siempre la utima subrutina que se wlicit6.
Interrupcin> d d programa El concepto de interrupeibn de programa se utiliza para manqar diverproblemas que surgen de la secuencia de programa narmaL La internipcibn de p m g r m se refiere a l a transferencia del control de programa de un programa que com en cierto momento a otro programa de servicio, como resultado de una socitud generada en forma externa o interna. El control retorna aI programa original despus de que se ejecuta el programa de
servicio. I11 prodimiento de interrupcibn es, en principio, muy similar a una solicitud de subrutina, excepto por tres diferencias: 1) por l o general la interrupcin se inicia mediante una sefial externa o interna ms que por la ejecuci6n de una instruccin (excepto para una intempci6n de programa, como se explica m A s adelante); 2) Is d k c i 6 n dd programa de servicio de interrupcibn la determina la c i r c u i k a y no el campa de direccin de una instrucci6n; y 3) un procedimiento de intempci6n por 10 general almacena toda la itormaci6n necesaria pasa definir el estado de h CPU en lugar de slo almacenar e l contador de programa. Estos tres conceptos de p m d i miento se detallan en seguida. & @ S de que se ha interrumpido un.programa y se ha ejecutado la mtina de servicia, la CPW retorna al mismo estado exada que tenia cuando ocumb la intempcin. S6io de esta manera el progrma interrumpido podrh reanudar exactamente como si nada hubiera ocurrido. El estado de la CP al final del ciclo de ejecucih (cwndo se reconme la intermpcibn) est determinado por:
'
1 ,E 1 contenido de1 contador del programa. 2. El contenido de todos 1 - regi&os del procesador. 3. El c o n W u .de ciertas condiciones de estado.
p a i i i k de estado & programa
E i conjunto de todas las condiciones de bit de estado en la CPU se denomina en ocasiones una palaha die estado de p r o p m o PSW (PVogram sfafus m d ) . T;a PSW se almacena en un registro de hardware separado y contiene la informaci6n de estado que caracteriza a b CPU. Normalmenter inrIuye los bits de estado de la ltima operacibn de la ALU y especiEica las interrupciones que han permitido ucurran y si l a CPU est operando en
298
CAPfiULo -0
modo srrpemlsor
un modo supervisor o de usuario. Muchas computadaras tienen un sistema operativo residente que controla y supervisa todos los otros programas en la computadora. Cuando la CPU ejecuta un programa que es parte del sistema operativo, se dice que estA en modo de supervisor o de sistema. Ciertas instrucciones tienen privilegios y d o pueden ejecutarse en este modo, Por l o general la CPU est en e l modo usuario cuando ejecuta programas de usuario. E l modo en el cual esta operando la CPU en cualquier momento dado lo d e t e k ~ a n los bits de estado especiales en la PSW. Algunas computadoras &lo almacenan el contador de programa cuando responden a una intempci6n. El programa de servicio debe entonces incluir instrucciones para almacenar el contenido de estado y registro antes de que se utilicen estos recursos. S610 unas cuantas computadoras aImacenan e l contador de programa y todo el contenido de lw registros y del registro de estado en respuesta a una interrupcih. La mayoh de las computadoras d i o almaeI contador de programa y la FSW.Bn algunos casos, existen dos conjuntos de registros de procesador dentro de la computadora, &o para cada modo CmT. D e esta manera, cuando e l programa cambia del modo usuario al supervisor (o viceversa) en respuesta a una intempcibn, no es necesario almacenar el contenido de los registros de procesador porque cada modo utiliza su propio conjunto de registros. E1 p d h i e n t o de hardware para prwesar una interrupci6n es muy similar a l a ejecucibn de una instruccih de solicitud de subrutina. E1 estado de la CPU se salva a una pila de memoria y la direccibn inicial de la rutina de servicio se transfiere a1 contador de programa. La direccidn inicial de la rutina de servicio la determina h circuiteria en lugar de un campo de dire&dn de una instnicci6n. Algunas computadoras asignan una localidad de memoria en donde se transfieren siempre las interrupciones. La rutina de m i c i o debe determinar despuk qu h e lo que produjo la interrupci6n y proceder a darle servicio. Algunas computadoras asignan una localidad de memoria para cada intempcibn posible. En ocasiones, la interrupcidn de hardware proporciona su propia direccin, la cual dirige a la CPU a la rutina de servicio deseada. En cualquier caso, la CPU debe poseer alguna forma de prodimiento de hardware para seleccionar una direccibn de transferencia del control para dar servicio a la interrupci6n. La B U no responde a una interrupcibn hasta el final de una ejecucin de instruccibn. Justo anbes de pasar a la siguiente fase de recuperacidn, el control comprueba cualquier seal de interrupcin. Si & @ente una, el control va a un ciclo de interrupcin de hardware. Durante a t e ciclo el contenido de PC y PSW se salva dentro de la pila. Despus se carga la direcci6n de transferencia para la intempibn particular al PC y se carga una nueva PSW dentro del registro de estado. El programa de servicio puede ejecutarse ahora, comenzando de la direccibn de transferencia y con un d a CPU 10 especifica la nueva PSW. La 6 1 t h inshucci6n en el programa de servicio es wia instnrcci6n de retomo de interrupcibtt. Cuando se ejecuta esta instruccin, se hace leer la
S E C Q8 ~7
2.99
pila para recuperar fa FSW anterior y la d h a i 6 n de retorno. La PSW se transfiere al registro de estado y la direcci6n de retorno a1 contador de programa, Por l o hnto, se restablece el estado de la CPU y el programa original puede continuar su ejecucin.
Tipos de interrupciones
Existen tres tipos principales de intermpcionea que producen una detenci6n en la ejecucibn normal de un programa. Se clasifican de la manera siguiente:
300
GMT!iL@ OMO
una solicitud de subtutina, El programador puede utilizarla para iniciar un pmcedimimto de inkmpdn en cualquier pimto que se desee del programa. El 'usomAs conin de l a intempkibn de programa se asocia con una instrucci6n de llamada de supemisor. Esfa nstniccin proporciona medios para cambiar el modo de usuario de C W al modo supervisor. S610 ciertas operaciones pueden asignarse al modo supervisor en la computadora, par ejemplo, un procedimiento de transferencia de entrada o salida complejo. Un programa escrito por un usuario debe correr m el modo usuario. Cuando se necesita una transferencia de entrada o salida, se solicita el modo supervisor mediante una instruccin de solicitud de supkrvisor. Esta instnicci6n pmduce una interrupci6n de programa que almacena el estado anterior de i a CPU y trae una nueva PSW que pertenece al mcdo supervisor. El programa que solicita debe pasar l a info~maci6n ai sistema operativo con el fin de especificar Ia tarea particular solicitada.
8-8
Un aspecto importante de la arquiktura de computadoras es el diseo de conjunto de ictrucciones para el pmc-dor. Ei conjunto de instrucciones elegido para una computadora particular determina la manera en que se construyen los programas de lenguaje de mquina. Las primeras computa-
asc
m
Rlsc
doras t e n a n conjuntos de htruccions pequeos y simples, forzados sobre todo por la neresldad de minimizar la circuikra utiliiada para implantarlos. Conforme la ckuiterk digital se hizo mas barata con la aparici6n de los circuitos Integrados, las instns.cciones de computadora tendieron a aumentar, tanto >m cantidad como en complejidad. Muchas mmputadbras tienen conjuntos de instrucciones que incluyen ms de 100 y, en ocasiones, miis de 200 instrucciones. tas computadoras tambih emplean diversos tipos de datos y una gran cantidad de modos de direccionamentrr. L a tendencia hacia la complejidad de la circuikra de computadora la produjeron varios factores, como el mejoramiento de los modelos existente para proporcionar m8s aplicaciones al cliente, la adicin de instrucdanes que facilitaban l a traducci6n de programas e n lenguaje de alto nivel a programas de lenguaje de m6qirina y la baqueda para desamollar maquinas que-trasladaranfunciones de implantaciones de,programa a implantacionec de hardware. Una computadora con una gran cantidad de instnieciones se cIasifca como una computadora coa miunto de imtrucciontos m p l e i p , CISC (complex instructian set amputer). Al principio de los aiim mhenfa, muchos disefiadores de computadora recomendaron que las mquiiias utilizaran menos instrucciones con f6rmulas sencillas para que, pudieran ejecutarse cbn mucha mayor rapidez dentro de la CPU, sin tener que utilizar la memoria con tanta frecuencia. Este ttpo de computadoras se clasifica como mrnpufaiIoms de conjunto de instrumiones
SECU~N M
3 M
reducido, RTSC (reduced btniction set mmpukr). En esta d 6 n pmentamos las principales caractersticas de Ias arquitecturas CISC y RISC y despu6s d conjunto de instrucciones y el formato de instrucciones de un pmcesador. Caractersticas CISC E i dkiio de u n conjunto de instrucciones para una computadora debe considerar no 6610 f6rmulas de lenguaje de mAquina, sino tambin Iw requerimientos internos en i a utiIizaei6n de lenguaje de programacin de alto nivel. La traduccin de programas de alto nive].a programas de lenguaje de mquina se realiza mediante un progama compilador. Una razn para la tendencia a proporcionar conjuntos de instrucciones complejos es el deseo de simplificar la compikcibn y mqorar el desempefio general de la computadora. La tarea de
un compilador es generar una secuencia de instrucciones de mquina para cada enunciado de lenguaje de alto nivel. La tarea s e simplifica si existen - instrucciones de mAquha que integren los enunciados en forma directa. El propsito esencial de una arquitectura USC es intentar proporcionar una nica instmi6n de mquina para cada enunciado que estC emita en un Iwiguaje de alto nivel. Algunos ejemplos de las arquitecturas CISC son la computadora VAX de Digital Eqtaipment Carporatian y Ia IBM 370. Otra caracteristica de la arquitectura ClSC es la incorporaci6n de formato~ de instrucciones de tamafio variable. Las instrucciones que necesitan
operandos de registro pueden tener dio dos bytes de longitud, pero las instrucciones que necesitan direcciones de memoria pueden .necesitar cinco bytes para incluir todo el c6digo de la instrucci6n. Si la computadora tiene palabras de 32 bits (cuatro bytes), l a primera instmccibn mupa la mitad de una palabra, en tanto la segunda instnicci6n necesita una palabra m8s un byte en la siguiente. Para guardar formatos de instrucciones variables en una palabra de memoria de longitud fija se necesitan circuitos qeciales de demdificaci6n que cuenten 10s bytes dentro de Ia palabra y separen las instrucciones de acuerdo con la longitud de sus bytes. Las instrucciones en un procesador CISC tpico proporcionan Ia manipulacin directa de los operandos que residen en la memoria. Por ejemplo, una tistrucci6n ADD puede especificar un operando en la memoria mediante un direccionamiento de hd'ice y un segundo operando en ia memoria por medio de un direccionamiento directo. Puede incluirse en la instruccibn otra localidad de memoria para almacenar la suma. Esto requiere tres referencias de memoria durante la ejecucibn de la hstruccibn. Aunque los procesadores CISC tienen instrucciones que slo utilizan registros de procesador, la dispe nibilidad de otros modos de operaciones tiende a simplificar l a compilacidn de lenguajes de aIto nivel. S i n embargo, conforme se incorporan m8s instnicciones y modos de direccionamiento en una computadora, se necesita m s circuiterh lgica para implantarlos y soportarlos, y esto puede producir que los clculos se hagan lentos. En resumen, las principales caracteristicas de la arquitectura CISC son:
' .
.-1'
302:
cMrWL.0 mQ Unidad c e n t r a l de p t o
1, Una gran cantidad de in~tFucciones, por l o p e r a l de 100 a 250. especializadas y que no se 2. Aigmas .Instrhccion& qu ejecu,en' usen con frecumda. 3. Una gran cantidad de m d o s de didonamiento, por l o general de
5 a 20 modos diferentes. Formatos de instruccione8 .deexhsi6n vafiablb. 5. hbtnicciones que mariipiilm operandos en la aemaria. CwacterfsticasRISC El concepto de la arquitectura RISC signifita un intento para reducir el tiempo de ejecucidn aI simplificar el conjunto de insttucciones de la computadora. principales caractersticas de un proresador RlSC son:
1 . Relativamente pocas insthiecion&. 2. Relativam&Q p o s modos de direccionamiento.' 3. El acceso a memoria limitado a instrucciones de carga y alrnacenamiento. 4. Todas las .operaciones realizadas dentro de 1 - regisde la CPU. 5. Formatol de instrucriones decodificados ion facilidad, de longitud
fija,
6. Ejecudbn del ciclo de instruccidn nica. 7. Control pot circuiteria en lugar de rnicroprogramado.
El pequdo conjunto de instruccionec de un procesador RTSC tipico consiste principalmente en operaciones registro a registro, y &lo tiene las operaciones cargar y almacenar para accesar la memoria. Cada operando se introduce al pmesador con una instrucci6n cargar. Todos los clculos se bcen entre los datos almacenados en los registros del prticesador. Los resultados se transfieren a la memoria mediante instrucciones almacenar. Esta caracterbtica de arquit-tura simplifica ef conjunto de instrucciones y estimula la optimizacki de la manipulaci6n de qistros. Se usan unos cuantos modos de direccionamiento porque casi iodas las inshcciones tienen registros de direccionaM'1ento simple. Pueden incluirse otros modos de direecionamiento, como los operandos inmediatos y e l modo relativo. A1 usar un formato de instrucciones simple, la longitud de las instrucciones puede Fijarse y alinearse en palabras contiguas. Un aspecto importante del formato de instniccidn RTSC es que resulta fzicii de derodificar. Por b tanto, el control puede accesar simultneamente el cdigo de operaci6n y los campos de registro del c6digo de I a htrucci6n. A l simpiificar las instrucciones y su f k a t o , tambsn puede hacerse m s sencilla la 16gica de control. Para operaciones m63 rpidas, es preferhle un control de circuiterfa sobre uno rnicroprogramado. En el capitulo 5 se presenta un ejemplo de contmI de circukda, junto con la unidad de control de la computadora Msica. E n el captulo 7 se presentan ejemplos de control rnicroprogramado.
reddo
m m3
Una caracterstica de loa p r d m s e s su capacidad para e j e cuhf una Uisku&in por c i c l o ,de relaj. Esto se l a p al hacer simuitheamente las fases, de mpera&n, d ~ c a c i n y ejecucibn de dos o tres instni+na, u d un proredhhb denominado paralelismo. Una instrwci6.n cargar o almacenar puede requerir dos ciclos de reloj porque el acceso a memoria toma d a tiempo que las operaciones de registro. En acasimw se (atribuyen'a RISC un paraielisma eficiente y otras cuantas caractersticas, aunque tambib pueden existir en arquitecturas no RISC. Otras caracteristicas que se le atribuyen a la arquitectura RJSC son:
1 . Una .cantidad de,registros en el w d m relativamente grande. 2. Uso de m a s de re@kcm traslapados para acelerar la h a d a y retorno de p r o c ~ ~ , 3. Paralelismo de indrucriones eficiente. 4. Soporte de compilador para &aduccin &&te de programas de lenguaje de alto .nivel a programas de lenguaje de mquina.
& comimte'kner una gran cantidad de registros para almacenar los resultados intermedios y para optimizar las referencias de operandos. Za ventaja del a l m a ~ t en o registros, a diferencia del almacenamiento en memoria, es que los registras pueden transferir irzfomau6n a otros registros mucho ms rhpido que la transferencia de idoqaci6n hacia y desde la memoria. Por esa razbn, se pueden minimizar lae operaciones al conservar en registros los operandos a los que se a d e con mayor frecuencia. tos d u & s que muestran un mdinenta mejorado pa& la arquitectura RISC no esbblecm l a diferencia entre los e W .del conjunto reducido de instruceianes y h s e f m de un archivo de regi~tros grande. Debido a eso, a veces se a d n c m procesadores RMC una gran cantidad de registros en la unidad de pmcsadenta, En. la siguiente mxi6n se explica el uso de ventanas de regisbs trsisiapadoe cuando se transfiere el control de programas despus de una solicitud de prrpcedimhto, El.c~nducto de instrucciones en BXCC se p-ta en la secci6n 9-5, dkspus de que se expIica el concepto de conducaOn y saturaci611de lnea.
3
s a h r M n de I k u
gsr
En
304
-O
computadoras proporcionan bancos de xegistros mltiples y a cada pmcedimiato se le asigna su propio banco de registros. Esto elimina la necesidad de guardar y restablecer las valom de los registros. Algunas computadoras utilizan la pila de memoria para almacenar los parmetros que necesita el procedimientoi pexa esto requiere un acceso a memoria cada vez que se accesa la pila. Una caractefstica de algunos proeesadores E U X es que utilizan uentanas de rqistrus traslapados para ofrecer e l paso de parametros y evitar la necesidad de guardar y restablecer valores de registros. Cada solicitud de procedimiento prcduce la asignacibn de una nueva ventana, que consiste en un conjunto de registros del archivo de registrohlpara que la use el nuevo procediiento. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar un apuntador, mientras que e l enunciado de retorno decrementa el apuntador y produce l a activaci6n de Ia ventana anterior, Las ventanas para procedimientos adyacentes tienen registros traslapados que comparten para proporcionar el paso de parmetros y resultados. B concepto de wntanas con registros traslapados se ilustra en la figuxa 89. El sistema tiene un total de 64 registros, Los registros del RO a1 R9 son registros globales que contienen parsmetros que comparten todos b s procedimientos. Los otros 64 registros s e dividen en cuatro ventanas para alojar b s procedimientos A, B, C y D. Cada ventana de registros consta de 10 registras locales y dos conjuntos de seis registros comunes a las ventanas adyacentes. Los registros locales se utiliian para las variables locales. Los registros comunes se utilizan para e l intercambio de parsmetros y resultados entre procedimientos adyacentes. L o s regstros traslapados comunes permiten que se pasen parmetros y el movimiento real de datos. En cualquier momento dado, A 1 0 est activa una ventana de registro con un apuntador que la seiiala como activa. Cada solicitud de procedimiento activa una nueva ventana de re@stras al incmentar el apuntador. Los registros altos del procedimiento llamado se sobreponen a los registros bajos del procedimiento llamado, y por l o tanto, las parhmetros se transfieren en forma automdtica del procedimiento que Uama al llamado. Como ejemplo, supongamos que el procedimiento A solicita el procedimiento B. Los registros de1 $26 al R31 son comunes a los dos procedimientos y, por lo tanta, el procedimiento A almacena los parAmetros para el procedimientb 3 en estos registros. El procedimiento B utiliza l o s registros lmales del R32 al R41 para el almacenamiento de variables locales. Si el procedimiento B solicita el procedimiento C, pasar los paraimetros por medio de los registros del R42 al R47. Cuando el procedimiento B est listo para retornar al 'final su computaci611,el programa almacena los resultados de estos dlculos en los registros del R26 al R31 y transfiere de vuelta la ventana de registros al pmcediiiento A. Mwkse que los registros R10 al R15 son comunes a Ios procedimientos A y D,por lo que las cuatro ventanas tienen una organizacin circular en donde A es adyacente a D.
3 f l 5
306
cAetrrno -0
Como se mencion6 antes, l o s 10 registros globales RO al R9 estn disponibles para todos los procedimientos. Cada procedimiento en h fqpra 8 9 tiene disponible un total de 32 registros mientras eht activo. Esto inelup 10 registros globales, 10 registros locales, seis registros bajos traslapados y seis registros altos traslapados, Con posibles otros esquemas de ventanas de registros de tamao fijo y cada una puede variar en el hmafio de la ventana de registro y en el tamafio de todo el archivo de registros. En general, la organizaci6n de las ventanas de registros tendrii las siguientes relaciones: Cantidad de registros globales = G Cantidad de registros locales en cada ventana = L Cantidad de registros comunes a las dos ventanas = C Cantidad de ventanas = W
En el ejemplo de la figura 8-9 h e m a s que G = 10,L = 10, C = 6, y W = 4. El tamao de la v e n t a es 10 + 12 + 10 = 32 registros, y el archivo de registros consta de (10 + 6) X 4 + 10 = 74 registros.
RlSC 1 de Berkeley Uno de los pmq proyectos que pretendi6 mostrar las ventajas de la arquitectura iSC se mostr6 en la Universidad de California, Berkeley. La XSC 1 de Berkeley es una CPU de circuitos integrados de 32 bits. Soporta direccion- de 32 bits y,datos de 8, 16 y 32 bits. Tiene un formato de instrucci6n de 32 bits y un total de 31 instrucciones. Existen tres modos de diredonamiento Wm. Direeeionamiento de registros, operando inmediato, y direccionamiento relativo al PC para instrudones de transferencia o brinco. Tiene un archivo de registros de 138 registros ~ J Jun arreglo de 10 registras globales y 8 ventanas de 32 registros cada una. Los 32 q i s t r o s en cada ventana tienen una otganizaci6n similsir a la que se muestra en k figura 8-9. Como s61o se accesa un conjunto de 32 registros en una ventana en cualquier momento dado, e l formato de instruccibn puede especificar un registro de pracaador con un campo de registros de 5 bits. La figura 8-10 mue8tta los formatos de instrucciones de 32 bits utilizados para instnrcciones de n@stro a e s t r o y de acceso a memoria. Siete de
&g
computado^ de
ccuij~to de k t n i c c i s n e ~ reducido
307
Caigode opr-
Rd
5
Sin usar
S2
31
24 23
1 9 18
14 13 12.
13
5
c) Modo relativa a P C :
19
los bi en el cWgo de operacidn especifican una opsrari6n y eI ocbvo indica si s e a c t u a i los bits de estado despuk de una oyeracin ALU. Para instrucciones de registro a registro, el campo Rd de S bits selecciona uno de los 32 registros como destino para e l resultada de la operacibn. La operacin se ejecuta con los datos eapedicados en los c a * p Rs y S2. Rs es uno de los r e g s i w fuente.'Si e l bit 13 de la instrudbn es O, los 5 bits de orden menor de S2 especifican otro registro fuente. Si el bit 13 de la instzucci6n es 1, S2 especifica uoa constank de 1 3 bits de signo extendido. Par l o tanto, la instnicci6n tiene un formato de tres direcciones, pero l a segunda fuente puede s e r un registro o un operando inmediato. Las instrucc W de acceso a memoria utiliza Rs para especificar una direcci6n be 32 bits ea un registra y S2 para especificar un deplazamiento. El registro RO m n t h a &lo n h e r 0 ~ O, por lo que puede utilizarse en cualquig campo para especificar una cantidad de cero. E l tercer formato de instntcci6n tombm Ios tres i I i l h ~ farnpos para fo-1: una direcci6n relativa de diecinueve bits Y y se il(sa sobg todo con las instrucciones brincar y llamar. El carhpo COND sustituye el campo Rd para instrueclones de brinco y se u t i l i para especifiieari yna de ' 1 6 condiciones de brinco posibles. Las 31 instrucciuqes de la RICC 1 se listan en la 'tabla 812. Se han agrupado en tres categorhs. Las instnrcciones de d p u l a c i 6 n de datos ejecutan operaciones artrndticas, 16gicas y de corrimiento. Lns simbolos bajo las columnas del cdigo de operaci6n y operando se utilizan cuando se d-
308
GMIIJW -O
Wdad m a l de
-digo
de ,~pwacifinOperanda
Tnmf~erencia de pgistrw
Dcwripcibn
ADD
ADDC SUB
SUBC SUBR SUBCR
&,S2,Rd
M*Rs + S2
~
Sima d c enteros
RdtRs-S2 Rd +RF - S2 Acarrco Rs,S2,Rd R d t S 2 - R s Rd S2 l b - Acarrco Rs,S2,Rd Rd +RE r\ S2 AND Rs,S2,Rd Rd +Rs V S2 OR Rs,S2,Rd Rd tR r El3 S2 XOR Rs,SZ,Rd SLL Rs,S2,Rd Rd +lZF acarrear a S2 Ad c m a c a m r a 5 2 SRL s,S2,Rd SRA Rs,M,Rcl Rd +&:acarrear a $2 Instniccion~ de transferencia de dalos LDL (Rs)M,Rd Rd*M[& S21 LDSU (Rs)BZ,Rd Rd + M [ h + S21 WSS (RskS2,Rd . Rd +M[& + S21 LDBU (Rs)M,Rd Rd +M[& + S 2 1 LDBS (Rs)S2,Rd Rd + M [Rs S21
Resta de M I Restar mn a c m Restar i n v c ~ o Rcsiar mn acarreo Aplicar la luncidn AND Aplicar la funcibn OR Aplicar la funcibn OR excliisiva Corrimiento a la izquierda Corrimiento a la derecha Ibgico Corrimiento a la derecha aritmkico
LDHI
Carga larga Carga corta sin signo Carga corta con signa Carga by te sin signo Carga byte con signo
m
Sr3
RdtY
M[& M[&
M[lb1+S2]+Rd Rd +PSW
PSWtRd
W R CALL
C-AZLR
m) Cm,Y
Rd,ws)
Rd,Y
+ S2
Brinco condicional
Brinco relativo llamar a subnifina y cambir verrtana Llamar a relativa y c3;fmbiar ventana Retomar p cambiar
ventana
m
CALLINT
3 2 d , s 2
Rd
1
CWp-CWP+l
%;CCmP R&+E
RErn
. .
Rd,S2
~d
'
pC tRd S2 CWp+m+ 1
-1
Deshabilitar interrupciones
Habilitar inkrrupclonm
Obtener el fdtimo PC
GTLPC
309
--.
T-@
M
tren proprnas de lenguaje ensamblador. Las columnas de transferencia de mgktmis y descripcibn explican la instrucci6h en notacin de transferencia de wgMm y m palabras. N6we que t d a s las instrucciones tienen tres operandos. La s8gunda fuente $2 p u d e ser un registro o un operando inmediata, representado mediante d -signo #. Por ejemplo, consideremm la instncdh ADD y c6mo pude ut%zarwparaejecutar divemas operacionec.
A.PD R22 r.R21i, R23 ADD R2.2,XliSO'i 8 2 3
R 2 3 +A22 R Z 3 +RZZ
+ R21i + L50
(Mover) Cargainmediata f 1 incrementar
ADDROiR21irR22 ADDRC1,#15Q,R.?2
Y : -
ADDRZZt#litR22
Al usar el registro RO,>el cual siempre contiene nmeros O, es posible transferir el contenido de un registro o de una constante dentm de otro registro. La operacibn incrementar se tealiza al sumar una constante 1 a un regi~tro. L s instrudiodes de &ansfetencia de datos constan de seis instrucciones de carJa, tres instrucciones de almacenamiento y dos instrucciones que transfieren la palabra de estado del programa EW.E l registro que contiene la PSW contiene el estad^ de la CPU e incluye el contador de programa, los bits de estado de l a ALU, apuntadores usados junto con las ventanas de registro y otra informacin que detemina el estado de la C m . Las btruccion,es de cargar y almacenar mueven los datos entre un F9 v g i s t r o y una memoia. Las inst~~+ones. cargar acomodan datas con o sin ?signode 4 bib. byte) o 16 bits Ipaiabra coW)- Las instrucciones de palabra larga operan eIi dabs de 32 bits. Aunque parece existir un modo de direcaionamienha de registro.mAs desplazamiento, en las instrucciones de transferencia de datos, tambi6n es posible el diree~ionamiento directa e indirecto por registros. W siguientes m n ejemplos de cmo se cargan instrucciones larga6 con diferentes modos de direccionamiento.
LDL (RO)#SOOaRS
La direccibn &fha en la primera instmccidn se evala a partir del contemido dd m@stm R22 mAs un desplakmiento de 150. La segunda insfruccidn utiza un desplazamienta O, d &'lo reduce a un modo iridirecto. por regish. La tercera instruccidn Mi* t d o s los nmeros O del registro RO par3 producir un tipo de instruccin de .direccionamiento directo, Las instrucciones de control de pmgrwa operan con el contador de programa PC para controlar la secuencia del programa. Hay dos instruccio-
310
m m
nes de brincar y dos in~trucciones de liarnada. Una utilii un direccionamiento ndice ms desplazamiento; la ~ g u n d a utiliza un modo relativo a PC m d valor 'Y de 19 bits como la direcoi611relativa. Las instrucciones llamar y retomar utilizah un ~ g i s t r a de apuntador de ventana actual CWP (mrrent window pohtez) de 3 bib que apunta a la ventana de fegistms activa en ese momento. Cada vez que el programa dicita un nuevo prmedhiento, CWP se decrementa en uno para apuntar a la ventana de registro de nivel inmediato inferior. Despus una instruccidn de retorno CWP se incrementa en uno para retomar a la ventana de registros previa.
8-I.
Una CPU organizada con un anal simiIar a la de la figura 8-2 tiene 16 regisiros con 32 bits -da uno, una ALU y un dedifiador de destino. a ~Cudntos multiplexores.hay en el canal A, y cul es el tamaiio de =da uno? b. CuBntas entradas de selecci6n se necesitan para e l MX A y el MUX
B?
c. Cuantasentradas y salidas hay en el derodicador? d. ~Cuuitasentradas y saIidas hay en la ALU para datos, incluyendo acarreos de entrada y alida? e. Formu1e una palabra de control para el s i s ~considerando , que ALU
tiene 3 5 operacion~.
8-Z
E I canal del sistema de la hgwa 8-2 tiene los siguientes tiempos de retraso
de propagacin: 30 ns para que las seilales se propaguen por los multiple xores, 80 hs para qerutar la dperdci6n ADD en l a ALU, un retraso de 20 ns en el decalificador de destino y 10 ns para sineronizar los datos dentro del registro de destino. Cual es el tiempo del cielo mnimo que puede utilizarse para el reloj? Especifique la palabra de control que deba aplicarse al procesador de 1a figura 8-2 para implantar les siguientes micrwperacions.
a.
C.
8-3.
b . R4tR4
Entrada
S 4
Determine las micm~racionas que se 4ec.utarAn en el procesadar de k figura'&Z w n d o se apliquen las sigubb potlabras de mtml de 14 bits. a. 00101~00101
b .
c. d.
EEEz m r m 1 o
e. 11110001110
8-5,
s i :
8-6,
a LLENO = 1 ,y VAClO = O? b . LLENO = O y VACIO = l? Una pila estd organizada de m e r a que SP siempre apunte a la siguente posicibn vada en la pila. Esto significa que SP puede inicializarse a 4000 en la figura 8 4y el primer dato en la pila se almacena en la posici6n 4WO. Liste las mimooperaciones para las operaciones push y pop.
Convierta las siguientes expresiom aritmitieas de notad611interna fija a polaca inversa.
&7.
8-8.
Convierta la siguiente expresib n h i c a aritdtiea a notaci6n polaca inversa y muestre las operaciones de pilq para evaluar el resultado numrico.
8-10.
p h e r o en salir (RFO) tiene una organiza& de memoria que almacena informa& de manera que el dato que se almacena primero e s d primero que se recupera. Muestre cmo opera UM memoria FiR3 con tres contadores, Un contador de d t u r a WC contiene
8 1 1 ,
8 1 2 .
la d l d b n para escribir en la memoria. bn contador de ledura RC contiene la direcci6n par1 leer de la memoria. Un conhdor de ahacaamiento disponiblelMC indica la cantidad de palabras almacenadas en FIFO.ASC se h e m e n t a para cada palabra almamada y sed t a para cada dato mpetado. Una computadora tiene instrucciones de 32 bits y direcciones de 12 bits. Si hay 250 ir&truccioxm de das dimriones, ~ c u h t a s immieciones de una d W 6 n puedkn formularse? Escriba un p&arna para evaluar el enunciado admico:
3 ; 1 2
C A P ~ XHO ~ ~ O Unidad
central de procesamiento
8-13.
8-14.
8-15.
8-1.6,
8-17.
8-18.
a. Al usar una computadora d e registro general con instrucciones de tres direccionamientos. b. Al usar una computadora de registro general con instrucciones de dos direccionamientos. c. Al usar una computadora de tipo acumulador con instrucciones de un direccionamiento. d, Al usar una pila organizada c ~ rcero t instrucciones de aperacin de cero direccionamiento cero. La unidad de memoria de una computadora tiene 256K palabras de 32 bits cada una. La computadora tiene un formato de instruccin con cuatro campos: un campo de cdigo de operacin, un campo de modo para especificar uno de siete modos de direccionamiento, un campo de registro o direccin para especificar uno de 60 registros de procesador y una direccin de memoria. Especifique el formato de las instrucciones y la cantidad de bits en cada campo si la instruccin est dentro de una palabra de memoria. Una instruccin de dos palabras est almacenada en la memoria en una direccin representada por el smbolo W. El campo de direccin de la instruccin (almacenado en W +1)est representado mediante el smbolo Y. El operando utilizado durante la ejecucin de la instruccin est almacenado en una direccin representada por Z. Un registro ndice contiene el valor X. Refiera cmo se calcula Z de las otras direcciones si el modo de direccionamiento de la instrucain es a. directo b. indirecto c. relativo d. indexado Un tipo de instruccin de brinco de modo relativo est almacenado en la memoria en una direccin equivalente al decimal 750. El brinco se hace a una direccin equivalente al decimal 500. a. Cul debe ser el valor del cam,pode direccin relativa de la instruccin (en decimal)? b. Detsrmine el valor de direccin relativa en b m r i o utilizando 12bits. (Por qu debe.estar el nmero en forma de complemento a 2?) c. Determine el v a l ~binario r en PC despus de la fase de recuperacin y calcule el valor binari~ de 500. Despub muestre que el valor binario en PC ms la direccin relativa calculada en la parte b es igual al valor binario de 500. Cuntas veces hace referencia la unidad de control a la memoria cuando recupera y ejecuta una instrucen de modo de direccionamiento indirecto si la instruccin es: a) tipo computacional que requiere un operando de la memoria?; b) un tipo de transferencia de control del programa. Cul debe ser el campo de direccin de una instruccin de modo de direccionamiento indexado para hacerla igual que una instruccin de modo indirecto por registro? Una instruccin est almacenada en la localidad 300 con su campo de direccin en la localidad 301. El campo de direccin tiene el valor 400. Un
R1 contiene e l nmero 200. Evale la direesi6n efectiva si el modo de didonamiento de la instrucci6n es: a) directo; b) inmediato c) relativo; d) indirecto por registro; e) indexado con R1 como e1
w@stro~-de pmmsador
regisfm Sndice.
8-19.
Cdderando uria computadora de 8 bits, rnudtte la sum de prehsi6n mItiple de los dos n sin signo ,de 32 bits que se listan en seguida, utilizandok sutiwi con Instnicciom de acarreo. Cada byte se expresa como un niimero hemdecimaI de dos d fgitos.
8-20.
8-21.
Rmlie la I 6 g i e ~AND, OR, y XOR can las dos series binarias 1M)11100 y 101Q1010. Dado el valor d e 16 bits 1001101011001101. &Qu& operaci6n debe ejecutarse con el fin de:
a. Borrar a O los primeros ocho bits? b. Activar a 1 los ltimoa ocho bits? c. Complementar 10s ocho bits de enmedio?
8-22.
8-23.
la suma (-83) + (+68) en binario e interprete el resultado obtenido. b . Realice la resta (-68) - (+a) en bina& e indique si hay cobreflujo. C. Recorra a la derecha el binario -68 una vez y proporcione el valor del nmero recorrido en diximal d, Recorra a la izquierda el binario -83 e indique si hay un sobreflujo.
a. Realice
&24.
&E.
Demuestre que el circuito etiquetado "verificarsi hay una salida cero" en la figura 8-8 es una compuerta NOR de 8 bits. Una computadora de 8 bits tiene un registro R. Determine los valores de los bits de estado C, S, Z y V (figura 8-8) despuds de cada una de las siguientes htrucciones. E l vdor inicial del registro R, en cada cam es e l hexadecimal 72. Los nhmeros siguientes tambi&nestn en hexadecimal. a. Sume el operando inmediato C6 a R. b . Sume el operando inmediato 1E a R. c R e t e el operando inmediato 9A de R. d Aplique Ia funci6nAND del operando m e d i a t o 8D a R. e. Aplique 1 a funci6n O R exclusiva R con R.
8-26.
h s nmeros Sin s w o A y B se cqqparan al restar A B. E l bit de estado de acarreo se coxisidwa como un bit de pdstamo despus de una inctrucn comparar en la mayoda de las computadoras comercia~es, por ]o hnb c =
14
CAPfrvLo "-0
Unidad central de proce9amiento 1s i A < B, Muatre que puede dekminam la m a @ M relativa de A y B de-hh s p d n d e ,los$its de-C y 2,segn 8e especifica en la tabla p a r 4 problema:&%. W i i n Ia tabla 8-11.)
'8-27.
Dos nCrmeros c o n signo A ) ,E, iepresmtados en forma de complemento aDm 4sigit85.s=paran al =bar i 4 B. Los bits de estado S, Z y V semkivari!o dwotivm~depndiendp del resultado de la operacin w 6 k ino&~si6i3.h ~igno.ei w r r e un sobreflujo.) Demuwtre que ..que hay pude det;errnImiWlii egnitctd telativa de A y B a partir de la inspeccidn de los bits de estado, wmo se especifica en seguida. (Vhse tambin la tabIa.&ll.)
8-28,
Ee aecemrio disebr un cirquita digital con cuatro entradas C, S ,Z y V y 10 salidas, una para cada una de. hs condiciones de transferencia de controI listadas en los problemas 8-26 y 8-27. (Las condiciones igual y desigual s6fi 'eiihunes a ambad tablas.) Dibuje el diagrama 16gico del circuito utilizando dos compuertas OR, una compuerta XOR y cinco inversores.
A3.B
(SBl/r=OriyZ=O
4;)s
A<@
AS$ A =B ACB
,
Cs@<v=o
(S@Vj=I ~dYv)=loz=I
z=1
Z=O
equivalente decimal de cada nmero considerando 'f}no tienn riigno y 2 ) . riendasigno. 'b, Sume Iris d& ndfikros biiar'ias e interprete la suma considerando que Iwfi&& sud: il sin 5 1 p y 4 con signo.
@e:
a. Praporone el
Determine las valores de los bits de estado C, Z, S y V despus de la suma. d. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera. El programa en una computadora compara dos nmeros sin signo A y B al ejecutar ima resta A - B y actualizar los bits de estado. Sean A = OlOOOOOl y B = 10000100.
G
a. Evale la diferencia e interpfete el resultado binario. b. Mermine los valores de los bits 'de estado C (prstamo) y Z. c. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera.
El programa en una computadora compara dos nmeras con signo A y B al ejecutar la resta A - B y actualizar los bits de estado. Sean A = 01000001 y B = 10000100.
a. Evale la diferencia e interprete el resultado binario. b. Determine el valor de los bits de estado S, Z y V. c. Liste las instrucci,ones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera. El contenido de 1; parte superior de una pila de memoria es 5320. El contenido del apuntador de pila SP es 3560. Una instruccin de llamada a subrutina de dos palabws se localiza en la memoria en la direccin 1120 seguida por el campo de direccin de 6720 en la localidad 1121. Qu contienen PC y la parte superior de la pila a. Antes de qu se recupera la instruccin solicitar de la memoria? . b. Despus de qu se ejecuta la instruccin de llamada? c. Despus del retorno de la subrutina? &Culesa n las diferencias bsicas entre una instruccin de transferencia de control, una instruccin de llamada a subrutina y una interrupcin de programa? Proporcione cinco ejemplos de interrupciones internas y cinco ejemplos de interrupciones externas. Cul es la diferencia entre una interrupcin de programa y una llamada ,a subrutina? Una computadora respondea una seal de solicitud de interrupcin al salvar pila el contenidode PC y la palabra de estado de programa PSW dentro de $la actual. Despuds lee una nueva PCW de la memoria a partir de una posicin proporcionada por una direccin de interrupcin representada por IAD. La primera direccin del programa de servicio se toma de la memoria en la posicin IAD +l. a. Liste la secuencia de microoperaciones para el ciclo de interrupcin. b. Liste la secuencia de microoperaciones para el retorno de la instruccin de interrupcin. 1 e intel 386 son ejemplos de computadoras con La IBM 370, VAX 1 formatos de instrucciones variables. Compare los formatos de instruccin variable de una de estas computadoras con el formato de instruccin de longitud fija que se usa en ISC T.
316
8-37,
Tres computadoras utilizan ventanas de registro con las siguientes caractersticas. Determine el tamafio de Ia ventana y la cantidad total de regisen cada mmpatadriia.
10
10 6
8
8
16
16
8
4
16
16
8-39.
opera&orw. a, Decrementar un registro b . Complementar un registro c Negar un registro d. Bbrrar un rgistro a O e. Dividir un n5mm con signo entre 4 f. Ninguna aperaci6n Escriba las i~trucciones de R I X 1en lenguaje ensamblador que p d u c i r h un brinco a la d M i 6 n 3200 si e1 bit de estado Z (O) es igual a 1. a. Usando el modo inmedigto b . Usando un modo de direccionamiento relativo (considere que PC
= 3400)
-.
Ha,1 m .
Prentice Hall,
4,' Hamch'er, V .C 2 ~ . ' v r w i c ~ S.-G i .2aQE Computer Qrganihmz, B.Ed. N u m Vork: MGraw-%iB, f 9 % . 5. Hays, J. P . , -Ar&hture wrd Grgwidq, 2a. M. Nueva Y & M=mw-i-W 1983. 6. ~angholz, , $ . , F&E;o~~, y A. Kaadel, Ekm.znts pJComputer Orpnization. E n g l e w d CMfs, kmti&&El: 8@. , 7. b y , R M . y R. H.Eckiwge, 17, C ~ p u k P r r o p p n i g and Arckit&hw: 2 ' 7 ~ VAX-11. MA: Dgib;ir p m s , iW. 4. dppjatt, A: C.j Ml*hi, g k drehjfecka S D U ~computn ~ systems, 2.. d. wlwQod a ! & ,riU:,wtiwm, 1 %
w;
a.
htice 9. Mano,M . M., Computer Engin~ring: Hardware D e . EngIewood Cliffs, Hall, 1988. 10. Murray, W. D . , Conrpirter and DkitaI System Architecture. E n g l e w d Ciiffs, NJ: Prentice HaH, 1990. 11. Patterson, D.A., y J. L.Hemessy, Computer Archiiechrre: A Quantitative Appmch. San Mateo, CA: Morgan K a u f m a ~ kiblishers, 1990.
12. Patirson, D. A,, y C. H. Sequin, . "AW RTCC." IEEE Compufer, Septiembe de 1982,
pp. 822. 13. Pollard, L.H . , c o n i @ ~ i i ; iArc7titecture. ~ie E n g l e w d Cliffs, Nk Prentice Hall,
199D.
14. Rafiquzzaman, M., y R. Chandra, W e r n Cmtrputer Architeeture. St. Paul, MN: West
Publishers, 1988.
15. Siewiorek, D . ,C.G.Bell y A. NeweU, Compukr Strilcturec: Principk and Emmph. Nueva York: McGraw-Hill, 1982, 16. Stallings, W,, Computer Organiaztion and Architeehw, 2a. M. Nueva York, W l a & 1 9 8 1 ) . 17. Tanenbaum, A. S,, Structurd Computer Orpnization, 3a. Ed. Englewood Cliffs, NJ: Prentice Hall, 1990. 1 8 . Tornek, I., Intmfuctioii to Computer Organizatiun. Rockville, MD: Computer Science Pms, 1981. 19. Toy, W., y B. Zse, Co~tyuter Hardmre/SoWre Architecture. Englewood Cliffs, NJ: Prentice Hall, 1986. 20. Ward, S.A. y R.H. Halstead, Jr., Computatiofi Struct ums. Cambridge, MA:MiT h ,
1990.
EN ESTE wfTUL0
9-1
9-2
9-3
94
9-5
9-6
9-7
besamiento paralelo A r q u i t e c t u F a paralela Lnea paralela aritmbtica Lnea paralela de instrucciones Arquitectura paralela RICC Procesamientovectorial Arreglo de pmcesador S'IMD
El procesamiento pwwo pmde cangiderarse desde diversos niveles de .cornplqi&d: &-el n i w d m& bajq, eistinguhw entre operaciones seriales y para].eiasmediante el tipo de @gis~r& ijue4utilizan. Los registros de corri&@qer&t;eri f~wa &al -hit a la vez, mlenttas que los registras con m g aparaIela o ~9.ri @mLlusbib de l b palabra en forma shdtdnea. ~ f i d F + UF pdentoipralelo a un nivel m8s alto de complejidad al h d = % e ' s IonHm1es que ejecuten Operanbna idhticao Q difqqbs, ,de m e r a simd&@. E l procesamiento paralelo se establece al distcibi&t 1 b datos en^ la@unidades funcionales mitiples. Por jmplo, las op&adones adtmeticas, 16gicas y de corrimiento pueden separarse en tres unidades y dividirse los operandos a cada una, bajo la supervisi611de una unidad de control.
Figura 9-1 Procesadar con unidades funcionds miiltiples.
A la memoria
qiistmde
pmadw
. r
Suma-mtade
w f l -
..
'
'
MuiUplicdci6nde punuofloeanie
Divipi5n de puntoflotante
"
uniilass fintiihdJes
mtiii$piIes
ta figura 9-1 muestra u m manera posible de separar la unidad de ejecutik en ah~.unidades M&d& que m paralelo. b s operandos eh los registrds s ' e aplican a una de las unidades, dependiendo de *la opwaci6n respeci%tcada, mediante l a instiurrci6n asodada con los operandos. La aperacib ,ejecutada en dada unidad fundonai se-hdica en cada bloque del diagrama. El sumador y el multiplicadof de enteros ejecutan las opera~iones aritm4tkas ton f i h & o s mitim~. I.A~ ~etaciones de puntb flokante se separan eri kres c i d h s que operan en par#lelo. Las operaciones 16gicas de mmimiento p . de incremento. pueden ,ejecuhme en forma concurrente sobre dfferentes d a b , Todas las unida de s. ion fnriependientes una de otra, pbr lo que puede recomme uh nthliem rhiehttas otrb Ge incrementa. Por l o genaal, ura organlzacih inultihi6iml esti! seda con una unidad de control &ompl~$h $&a. cootdinar todas la$ actividades entre los diversos componentes. Existen varias maneras de clasificar el procesamiento paralelo. Puede considerarse a partir de la organbci6n interna de 106 procesadores, desde i a estrudura de interconexin entre los procesadores o desde el flujo de informacl6n a travds del sistema. Una clasificaci6n presentada por M. J. Fiynn considera la orgmi~ci6n de un sistema de computadora mediante la cantidad de instrucciones y unidad= de datos que se manipulan m forma simultnea. Za operacibn normal de una computadora es recuperar instrucciones de la memoria y ejecutarlas en e l p r e a d o r . La secuencia de instrucciones leda de.la memoria constituye un pujo de insfrucciunes. Las operacie nes ejecutadas -sobreIlm datos m ,el procesridor constibyen un flujo de datos. El procesamiento paraldo puede m r i r en el flujo de instrucciones, en el flujo de datas o o ambo%. La clasificacin de FIpn divide a las computadora~en cuatro grupos principales de la manera siguiente:
instruccih nico, flujg datqs h i c o (SISD) instrucc6ii ~i&Co~-&jode 'datos mltiple (m) instruccibn mLltiple, flujo ,dedatos iInieo (MISD) instmcci6n mdltipie, fliljp .de datos d t i p l e (MIMD)
SISD representa la o@nizaciGn ,de una computadora nica que contiene una unidad. de control, tina unidad de procesador y una unidad de memoria. .Las instni~ionas.,se ejecutan en forma m e n c i a l y el sistema puede o no tener posibilidades de procesamienko paralelo. En este caso el pmmiepito. paralela pude logtarse mediaiike unidades funcionales mltiples o mediante u n arquitectura paraleh. SMD r e p r e s a t a una orgadzacihn qrre incluye muchas unidades de procesamiento bajo la qmvisin de una unidad cte control cornk. Todos 1 s p-Ores r & i . kmfsrra Instmc&n de la unidad de control, pera operan sobre diferentes eonjuritos de datos. Lri -unidad de memoria compartida debg contener >~6ddos. mliltipIes para 'que -pueda comunicarse con
322
cAPmnoNUEVE
Paralelismo y pnxesamiento de v e c b
los prwesadores simultneamente. La estructura MiSD es s61o de inters tebrica porque no se ha construido h g h &terna prd~tico uiiLizmdo esta organhaciQn. L a ocganjzacin MIMD se refiere a un sistema de computadora~ capaz de procesar mltiples programas al mismo tiempo. La mayora de los sistemas de multicomputadoras y multiprocesador pueden clasificarse en esta cateprh. ' IA dasiffmcin de n y n n depende en la d ' b c i a en& d de$mpeno de l a unidad de control .y el de la unidad de procesamiento de datos. Exatba las caractersticas de desempeo del sistema de computadora mis que sus interconexiones estructeiraks y operacionales. Un tipo de procesamiento paralelo que no entra en la dasificaci6n de Flym es la arquitectura paralela @ipe-line)Las Sinicas dos categoras utilizadas de esta clasificaddn son los procesadores de arreglo SIMD, analizados en la secci6n 9-7y MIPVPD, que s e presentan en el capitulo 13. En este capitulo consideramos el procesamiento paralelo bajo los sitodos
El procesamiento por arquitectura paralela es una tcnica de implantaci6n en donde las suboperaciones aritmdticas o las faws de un ciclo de instntccibn de computadora w traslapan en su ejecuci6n. E 1 procesamiento de vector se relaciona con los c4lculos que implican vectores y matrices grandes. Los procesadores de arquitectura paralela ejecutan clculos sobre a q l m de datos grandes.
9-2
Arquitectura p d e l a
segmento para que cada uno pueda operar sobre datos distintos en forma
un demplo
simultnea. Tal vez la m e r a ms simple de apreciar la arquitectura de luieas paralelas es imaginar que cada segmento consta de un registro de entrada seguido de un circuito combinatorio. El registro contiene los datos y el circuito combiitorio ejecuta la subope~aci6n en e l segmento particular. La d i d a del circuito combinadonal m un segmento dado se aplica al registro de entrada del siguienk segmento. Se aplica un reioj a todos los registros despus de que ha transcurrido un tiempo suficiente para ejecutar toda la actividad del segmento. D e esta manera la irdormaci6n fluye por la Unea un paso a la vez, La organizacibn de la linea se mostrara mediante un ejempIo simple, Supongamos que deseamos ejecutar las operaciones multiplicar y sumar combinadas con un flujo de n m m
Cada suboperaci6n se va a implantar en un segmento dentro de la h e a . Cada segmento tiene uno a dos registros y un circuito combinatorio, como se muestra en la figura 9-2 D e R1 a R5 son registros que reciben nuevos datos con cada pulso de reloj. E l multiplicador y el sumador son circuitos
Figura S2 Ejemplo de ptmesamienio p d e l o .
Al
B 1
ci
ducto son
A',
+ ~4
&e0 ~+tm se cargan- con d a b s nuwos en cada pulso de reloj. El efecto de cada pulso de reloj se muestra m la tabla 9-1. El primer pulso de reloj hanskm .Ai y Bl, ~denhode Rl y m. El sepndo pul- de. rel~j trans8ere:d p d h * de-R1 y.R2 dentro de R3. y Gl$entro de R4. E 1 mismo pulso de reloj tramfie~e & y B~ dentro de R1 y R2. E m I tercer pulso de reloj opera sobre los tres segmentos en forma simultnea. Coloea a A, y B3 dentro de R 1 y R2, transfiere el producb de R I y R2 dentro de R3, transfiere C, dentro de R4 y coloca la suma de R3 y R4 dentro de R5. Se necesitan tres pul&&de e l o j para llehhr la lhea y recuperar la primera salida de ES. De ahf en a d h t e , cada ciclb. de reloj pbciuce una nueva salida y mueve los & k m un paso adebnte en la lhea. Esto sucede en tanto fluyan nuevos datos denh del sistema. Cuando ya no hay datos de e n k h disponibles, el reloj debe continuar hasta que emerge la iriltima salida de la lnea.
Ji*Bi
Az* Bn A3*B3
+ Ci
+ Cz + C3
Consideraciones generales
Cualquier operacin que puede descomponerse en una secuencia de suboperaciones de aproximadamente la misma complejidad, puede implantarse mediante un pcoeesador de arquitectura paralela. i i a &nica es eficiente para
aqueIlas aplicaciones que necesitan.repetir la misma tarea muchas veces con dikwtes wnjunw de ,datqs, La,e@mctura general de una lnea de cuatro qpentoi, se ilurba en la f i g u ~ 9-3. LOb opnandos recorren los cuatro s e g m e n t m en uns secaenda fija Ca6. &$lento consta de un circuito comhiaiiicisnd si que ejecuta rina subopraci6n sobre e l flujo de datos que fluyen por la U ~ E L b segmenws se separan mediante registros Ri que cbntien8h 'lb$ resultados inkrmedfos entre las etapas. La informacidn fluye entre dapaa adyacentes baja el control de ua reloj comilin aplicado a todos
tarea
los regis!ms en forma simultnea. Defjnimos una tarea como la operaci6n total ejecutada &do w recorren 'todos Ios Begrnentos en l a Ift~ea.
m4
Entrada
" F
SI
C .
Ri+
1
S2
+ R1
S3 - t R 3
S4
+ R4+
diagrama
espacio-tiempo
de-pefid de la ,arquitectufa paralea puede ilustrarse mediante un diagrama espacio-tienipo. Este &S un diagrama que muestra Ia utilizacidn del %menta como una funcibn del tiempo. E l diagrama espacio-tiempo de un conducto cori c u a b segmentos se muestra m la figura 9-4. El eje horizontal muestra el tiempo en ciclos de reloj y el eje verticai proporciona el nmero de qpnento. E l diagrama muestra seis tareas de Ia TIa la T , ejecutadas en t u a m egmentos. Al princip'o, l'a tarea TIse maneja mediante el segmento k hqm& del. prlmer Giclo de reloj, el segmmto '2. estii ocupado can T p mientras que e l segmento 1 est4 oreupdu con la tarea T2. Al continuar de esta manera la primera tarea TIse completa despuks del cuarto ciclo de1 reloj. D e ah adelante, la Unea completa una tarea en cada ciclo de reloj, No importa cuantos segrnentm existan en el sistema, una vez que la linea est llena, slo se necesita un p"1ado de reloj para obtener una salida. Ahora ~ ~ ~ s i ~ n icaso o sen ~ donde e l selutiiiza una lnea de k segmentos para ejecutar n tareas con un tiempo de ciclo de reloj t, La primera tarea TImcdhun tiempo igual a ktP paga coiqdetar su operacibn, porque existen ke a .enla %ea; Ims n4--1tareas restanb emergen de la h e a a una wlwidad de una +ama p ~ d r c b de reloj y se termhrAn despus de un - tiempo igual a (n - l)t,- Por lo tanto, para compkhr n tareas utilizando una bezi de & se ntos & : n d m k + "($t - 1) 'cidosde reloj. Por ejemplo, el diagrama deyfigura 9-4 muestwcuawi &qfrri&bs y seis tireas. El tiempo r e q d d o . p t a tqmpleiar-todas hs opciones e~ 4 + (6 - 1) = 9 ciclos de reloj, egkn e iIidic~-en el &&rama.
A continuacin considemm una unidad de arquitectura no paralela que ejecuta la miama operad611y requiere un tiempo igual a f, para completar cada tarea. El tiempo total requerido para n tareas es n f , IA aceleradn de un prmesamimto por arquitectura paralela sobre un procesamiento no paralelo equivalente se define mediante la relacih:
Conforme aumenta h cantidad de tareas, n se vuelve mucho ms grande que k - 1 ,y k n - 1 se aproxima a1 valor de n. Bajo esta condici6n, la aceleracibn se convierte en:
S i consideramos que el tiempo que se necesita para procesar una tarea es igqd m una arquitectura paralela y en una no paralela, tendremos f,, = k$
Al incluix esta supo&i&n, la aeeleracibn se reduce a:
Esto muestra que la miixima acelemci6n tddca que puede pmporcionar un d u d o es k, en donde k es la cantidad de segmentos en e l conducto. Para hacer ms claro el s i e c a d o de la rielaein de aceleracidn, consideremw el siguiente ejemplo numrico. Sea t, = 20 ns e l tiempo que s e necesita para pmu>cesar una operacin en cada segmento. Consideremos que la tiene k = 4 segmentos y ejecuta n = 100 tpras en m c i a . E l sistema de arquitetura paralela necesitad (k + tn - l)fp = (4 99) X u] = 2060 ns para terminarse. Considemndm que f, = 4 = 4 X 20 = 80 m, un sistema de arquitectura no paralela necesita nktp = 100 X 80 = 8tMO ns para completar las 100 tareas. L a relaci6n de aceleracin es igual a 8M30/2060 = 3.88.
Corsforme auentai d n r o de tareas, la acderaci6n se acercarA a 4, lo cual es igual al nmero de segmentos era el conducto. Si consideramos que t, = 60 n s , la acelaacibn se toma 60/2Q = 3. Para duplicar la ventaja de velocidad tebrica de un proceso paralelo mediante unidades funcionales mdltiples, es nexsario construir k unidades idnticas que operarn en pacalelo*Esto implica que puede esperarse que un pr-dor de arquitectura paralela de k segmentos iguale el desmpeo de k copias de un circuito de arquitectura no paralela equivalente bajo condiciones de operad611iguales. Esto se ilustra m la figura 9-5, en donde estn cmeados en paralelo amtro h i t o s idnticos. Cada circuito P ejecuta la misma tarea de un circuito con arquitectura paralela equivalente. En lugar de operar con los datos de entrada en secuencia, como en una Unea, los circuitos paralelos aceptan cuatro conjuntos de datos de entrada en forma simultnea y ejecutan cuatro tareas al mismo tiempo. En l o que se refiere si la v w d a d de operacidn esta es equivalente a una lnea con cuatro segmentus. N 6 W que el circuito de cuatro unidades de Ja iigura 9-5, constituye una organhcin de instmcci6n hita, datas mltiples (SIMD), porque se u t i h Ja misma instruccin para T r a r sobre datos mltiples en paralelo.
Existen varias razones por las que una arquitectura pardela no puede operar a su mxima velocidad &rica. Los diferentes segmentos pueden requerir tiempos diferentes para completar su suboperacih. Debe elegirse e l c i c l o de reloj para que iguale el titiempo de retraso del segmento con el mximo t i e m p o de propagacin. Esto provoca que los otros segmento8 desperdicien tiempo mientras esperan el siguiente ciclo de reloj. Ademiis no siempre es correcko considerar que un circuito de arquitectura tiene el mismo r e k : de ~ tiempo que un &mito con ~~a paralela equivalente. MuScos de los W t r u s inhmdios no se en un M t a de una sola unidad d cual, por lo general puede ~onstruirsepor completo como un circuito combinatorio. N o obstante, k tcnica de arquitectura paralela proporciona una operacibn ms +da que una secuencia puramente serial, aunque nunca se b p por m m p h la dima velocidad Urica.
328
CAP~TULO NUEVE
Existen dos reas de dieefio de computadoras en las que es aplicable la organizacin paralela. Una lnea aritmticas divide una operacin aritmtica en suboperaciones que se ejecutan en los segmentos de la lnea. Una lnea de insfwmiones !opera sobre un flujo de inst~ucciones al sobreponer las fases de recuperacin, .decodificacin y ejecucin del ciclo de instruccin. En las siguientes secciones se ejcplican los dos tipos de lneas.
4
+ ? !
Lnea #paralelaari.tmtica
9-3
Por lo general, se encuentran unidades aritfnticas dk arquitectura paralela en computadoras de gran velocidad. Se usan para implantar operaciones de punto flotante, multiplicacin de nmeros de punto fijo y clculos similares encontrados en problemas cientficos. En esencia, un multiylicador de arquitectura paralela es un arreglo multiplicador como el que se describe en la figura 10-10, c m sumadores especiales diseados para minimizar el tiempo de acarreo mediante los producbos parciales. Las operaciones de p~opagaciSn de punto flotante se descomponen con facilidad 'en.suboperaciones, como se muestra en la seccin 10-5. Ahora mostmremos un ejemplo de una unidad paralela para suma y resta de punto flotante. Las entradas para la lnea sumadora de punto flotante son dos nmeros binarios normalizados de punto flotante.
A y B son dos fracciones que representan las mantisas, en tanto que a y b son los exponentes. Puede ejecutarse la suma y resta de punto flotante en cuatro segmentos, como se muestra en la figura 9-6. Los registros etiquetados R se colocan entre los segmentos para almacenar los resultados intermedios. Las suboperaciones que se ejecutan en los cuatro segmentos son:
--
, a
PPICIILi
1 . Comparar los exponentes. 2. Alinear [Ias fnantisas. 3. Sumar o restar las mantisas. 4. Ndhnalizar el resultado.
Esto se apega al preedimiento delineado en el diageama de flujo de la figura 10-15, pero se usan algunas variaciones para reducir el tiempo de ejecucin de las suboperacimes. Se comparan los exponentes al restarlos para determinar su difeencka. Se escoge el exponente mayor como el exponente del resultado. La diferencia entre exponentes determina cuntas veces debe ejecutarse un corrimienko a la derecha sobre la mantisa asociada con el exponente menor. b t o provoca un alineamiento de las dos mantisas. Debe notarse que el clorrimknto debe estar disefiado como 'un circuito combina-
-m m
paralela aritmtica
329
Exponentes b
Segmento 2 :
Segmento 3 :
segmento 4:
torio para reducir el tiempo de corrimiento. Las dos rnanfisas se suman o restan en el segmento 3, E 1 resulkado se normaliza en el segmento 4. Cuando ocurre un sobreflujo, la mantisa de la suma o diferencia s e recorre a la derecha y el exponente se incrementa en 1. Si ocurre un sobreflujo, la cantidad de nmeros O significativos en la mantisa determina el nmero de conhientas a la izquierda y la cantidad que debe restarse del exponente. El siguiente ejemplo numrico puede achrar las suboperaciones que se ejecutan en cada segmento. Pqr simplicidad utilizamos nmeros decimaies, aunque Ia figura 9-6 hace derada a nmeros binarios. Consideremos los dos nmeros de punto flotante normalizado&
1. Se escoge el exponente ms grande, 3, como el exponente del resultado. EI siguiente segmento z r x o m a la derecha la mantisa de Y para obtener:
, -
Esb-alinea las dos mantisas bajo e l misma exponente. i a suma de las dos mantisas en el segmento 3 produce la suma:
Se ajusta l a suma al normalizar el resultado para que tenga una fraccin con un primer d@to diferente de IE. E s k o se hace aI ~ o x r e a r la derecha una vez la ~antisa e kmmentar el alponente en 1 para obtener l a suma normalizada.
En la linea paralela de punto flotante se implantan el comparador, corrimien- b, sunador, s u ~ t r a c b tincremenkador ~. y decrementador con circuitos combinatorio. Supongamos que los retrasos de tiempo de los 4 segmentos son ti = 60 ns, f2 = M ns, t3 = 100 ns, t4 = 813 ns y que los registros de interfaz tienen un retraso de f, = 10 Se ~ l m i o n a d ck10 de reloj para que sea 1, = t3 -it, = 1 1 0 ns. Un sumador-sustractor de punto flotante equivalente no paraido, tendra un retraso t,, = t, i t2 + t3 + t4 + t, = 320 ns. En este caso, el sumador paralelo tiene una aceleracidn mayor 320/110 = 2.9 que el sumadar no paraielo.
9-4
,
c s c b L
El procesamient~por h e a paralela puede ocurrir en el flujo de datos y tambin en e l flujo de instnicciones. Una lnea paralela de instrucciones lee inshuccionea ronseativas de la memoria mientras, en otros segmentos, se eiecutarr instnicciones anteriores. Una pmibk di~pesibn asociada con tal un brinco fuera de secuenkuema es que una insmiccibn puede cia. En tal caso, debe vaciarse h lnea y deben descartarse todas las instnic ciones que s e han leido de la memoria despus de la instnicci6n de brinco. Consideremos una computadora~on una unidad de recuperacibn y una unidad de ejemcibn de instrucciones d k h d a para proporcionar una lhea de dos segmentos. hede imphkarse el segmento de recuperaci6n de XIlk tniaciones mediante un registro intermedio (buffer) primero en entrar, primero en s a h Este es un tipo de unidad que forma una cola en lugar de una pila. Cuando h unidad de ejecuci6n no e s t i usando la memoria, el contd Uncrementa el contador de programa y utiliza su valor de d i c i 6 n para leer instnicciones consecutivas de la memoria. Las instrucciones se hsertm en el registro intermedio FZFO para que puedan ejecutarse en un &quema primero en entrar, primero en salir. Par l o tanto, puede colwarse un flujo de instnicciones en una cola, en espera que lo decodifique y procese el segmento de ejecucin. El mecanismo de formaci6n de colas con flujos de nin&u&nes proporciona una manera eficiente para reducir e l tiempo promedio de acceso a memoria para leer instrucciones. Cuando hay espacio en e1 # e g & ~intermedio FEO, la unidad de aonhol. inicia la siguiente fase de recuperaci6n de instniccions. El registro intermedio actiia como una cola de la qye el control obtiene las instrucciones para la unidad de ejecucibn. i a cmtpbcioms m hsbmmones compleja reotras fases a d e d s de las de tecuperacibn y +ci6n para p m t por completo una insbudh n el easo mi4s general, la computadora m i t a prmesar d a inst n i d 6 r i con l a siguiente secuencia de pasos. 1 . R m p r a r la instrucci6n de la memoria. 2 . ,Deeodificar i a instruccin. 3. Cakuiar la &recci6n efectiva. L los operandos de h memoria. 5. :Ejecutar la instnicei6n. 6. Almacenar el multado, .. en el lugar adecuado. Existen iertas diuc&& q u . evitardn que la lnea paralela de iristrucciones funcione a s u vel&dad mxima. Segmentos diferentes pueden necesitar tiempos diferentes para actuar sobre la informacin que ilega. Se saltan algunos segmentos pata &&as operaciones. Por ejemplo, una instnicci6n de modo de registro no necesita un &culo de d i c i n efectiva. Dos o d s segmentos pueden requerir el acceso a la memoria al mismo tiempo, provocando que un segmento r e hasta que o t r o termine su c o m u n i c a ubn. En ocasiones, se resuelven los conflictos de acceso a memoria al usar
m),
. '
das can&s,de ,memo* par$ qc-w 4s insbgcgiones y los datos en mbdulos separados, D esta Manra, pueden leer& en forma simultnea una palabra de instrudbn y una palabra d~ datas de dos mdduloc diferentes. E l diseno de una lnea paralela de iristruccime =A m6s eficiente s i se divih. el ciclo\,de instrucciones en xgmentas de igual duracibri. El tiempo que.neelesltacada p a paral terminar su, funci6n depende de la instruccin . y de h m m como se ejecuta.
Ejemplo: Lnea parlela d e . ~ h s ~ c c i o nde e s cuatro segmentos Consideramos que pueden combharse a .unsegmento la decodificaci6n de la instrwci&n y el ~ $ 1 4 de0 la & i i 6 n ektiva. Adems, consideremos que la mayoria de las i n s ~ ~ o n whcan es e l multado en un registro de
A
I
j .
333
procesador, para que la ejecucin de la instruccin y el almacenamiento del resultado puedan combinarse en un segmento. Esto reduce la lnea paralela de instrucciones a cuatro segmentos. La figura 9-7 muestra como puede procesarse el ciclo de instrucciones en la CPU con una lnea paralela de cuatro segmentos. Mientras se ejecuta una instruccin en el segmento cuatro, la siguiente instruccin en secuencia se ocupa en recuperar un operando de la memoria en el segmento 3. En un circuito aritmtico separado puede calcularse la direccin efectiva para la tercera instruccin y, cuando est disponible la memoria, pueden recuperarse y colocarse en una localidad del registro intermedio FIFO la cuarta instruccin y todas las subsecuentes. Por lo tanto, pueden traslaparse y estar en proceso hasta cuatro suboperaciones en el ciclo de instrucciones. De vez en cuando, una instruccin en la secuencia puede ser del tipo de control de transferencia del programa que produce un brinco fuera de la secuencia normal. En ese caso, se terminan las operaciones pendientes en los ltimos dos segmentos y se borra toda la informacin almacenada en el registro intermedio de instrucciones. Despus, la lnea paralela reinicia a partir de la nueva direccin almacenada en el contador del programa. De igual manera, cuando se reconoce una solicitud de interrupcin, har que se "vace" la lnea paralela y vuelva a iniciar a partir de un nuevo valor de direccin. La figura 9-8 muestra la operacin de la lnea paralela de instrucciones. El tiempo en el eje horizontal se divide en pasos de igual duracin. En el diagrama, los cuatro segmentos se representan con un smbolo abreviado. 1 . FI es el segmento que recupera una instruccin. 2. DA es el segmento que decodifica la instruccin y calcula la direccin efectiva. 3. FO es el segmento que recupera el operando. 4. EX es el segmento que ejecuta la instruccin.
Figura 9-8
. separadas,
cmflict~e de
condwto
Se considera qge el pr.mmado~ time nwwx!ia,s de instrucciones y datos ,por +bque pude avanar la l~peracibn en FI y FO, al mismo tiempo. En auSencia de una instnicci6n de .transerencia de control, cada segmento *pera m b imshuc;Pne$, ~ 8dfmmtes.Por l o tanto, en e l paso 4, se 4-b la inskrucWr) m q y n e n t ~ .X;el opera~do para la hstruccihn 2 se -pera en ei &en@ FQ; e n el ~ p w i t DA n . e decodifka la instnicri6n 3 y en-dsegpenta se m p e r a & la memoria la instruccin 4. Sugongzm~s que k h p i i 6 n 3 es yna ipstmi&n de transferencia de control. Tan pronto com~,seb hodifica esta hmmi6n en el segmento DA m e3, paao 4 se detiene b transferencia de Fi a.,DA de las otras instrucciones, hasta que se,ejecuta la ,instnicci6n de transferencia de control en el paso 6. Si w da la transhcias .se nwa hstruqci6n en e1 paso 7. Si no i da la ,~&erencia, puede uwme ,la hstmiccin recuperada antes, en d pasa 4, +pu&(: la k a paralela, co&a la efeeucibn hasta que se encencyehtca una nueva htmmi6n de trawfmncia de control. ,Puede o& QQO retram en la lnea si 4 segmento EX necesita almaqmar 4 respltadg de la ct-acin en la aiemoria de datos mientras el segmento FQ w i t a recuperar ,un operando. En ese caso, e1 segmento FO debe e s p p r . hasta que d . q m t EX ~ haya knnhad~ su operacibn. ' En general, existen tres dhultades principales que provocan que una inea de instruccbnw se apam de su operacibn,normal.
1 . CmjZrClos de recurso$,provocados al a la memoria dos gegmentos diferentes, al mismo tiempo. Gran parte de estos conflictos pue.den rgsolverge al .u$za~ memorias de instrucciones y de datos sepawdw.. 2. Surgen conflictm de depen&ncia de &tos cuando u n a uistruccin depende dd resultada de una anterior, pero ste todava no est disponible. '3. producen difrcuttades de hnsferencia de control a partir de instrucciones que modifican el valor cid FC.
no e@ disponible la informacidn que necesita el modo de direccionamiento. Por ejmplo,, una instruccin cQn modo de direccionarniento indirecto por registro no puede avanzar a recuperar e l operando si l a instrucci6n anterior esth cwgando la direccin en e l registro. Por lo h t o , el acceso del operando en la memoria &be retras- hasta que est disponible la.direcci6~ querida. L s computadoras w n arquitectura paralela enfrentan tales conflictos de dependencia de datos de divasas maneras. cirmitos E l mbtqdo ms d b t o es h r t a r circuitos vertjmdores. Un verificador vsrifica&res es circuito que .detecta ktnicciones cuyos operandos fuente son destinos de instrucciones que se encuentran m6s adelante en la lnea. La deteccin de esta situaci6n hace que la iiistrucci6n cuya fuente no estd disponible se mtrw suficientes ciclos de reloj para evitar el omfiicto. Este enfoque mantiene la secuencia de programa al usar hardware. para insertar los retrasos requwidos. auatrcs de operandos Qt~.atcnica, llamada a w i ~ c ede oprnndos, utiliza hardyare especial para detectar un comfiiqto y despu4s evitarlo pl direccinnar b s datos mediant e trayectorias espwiaIes entre segmentos de la Ilnea. Por ejemplo en lugar de transferir un resultado de la .ALU a un registro destino, la circuikria comprueba el operando d e s h a y, si se necesita como fuente en la siguiente instruccin, pasa el resuhado dimctamente la entrada de la ALU, sin accesas el archivo de registros. Este rnktcrdo necesita trayectorias de hardwmm a&cioililIes por medio de multiplexores y el circuito que detecta el cmflicto. Un procedimiento empleado en algunas carnputadoras es proporcionar 4 campitador que @aduceel lenguaje de programacibn de alto nivel a un pmgrarna de lenguaje de ,mdquina, la responsabilidad para resolver los probJ9as de connictos de datos. E l compilador para tales computadoras est& &&a40 para ,detectar un conflicto de datos y reordenar las instrucciones conforme sea,necesario al retrasar l a carga de .los datos en confiicta por medio de la inserci6n'de instrucciones de no coperacin, Este m6todo s e cafgp pclspuesta de~~omina carga psPwstEi O retardoda. eR la siguiente seccibn se presenta un ejemplo de este prwe.&ieiito.
Manejo de las instrucciones de transferencia de control Uno de los problemas priiicipales al operar uii conjunto de instrucciones es
la aparicidn de instrucciones de transferencia de control. Una instruccidn de trarisferencia de coiitrol puede ser condicional o incondicional. Una transferencia incondicional siempre altera el fiuja secuencia1 de1 programa al cargar e l coiitadar de programa con la direcci6n objetivo, En una instruccidn condicional, el controI selecciona l a direccibii objetivo si se satisface la rogdicibri o la siguiente instrucci~i secuencia1 si no se satisface. Como se mencion6 antec, la instruccin de transferencia de control interrumpe la secuencia narmaI del flujo de instrucciones, produciendo dificultades en la aperacibn de l a Iinea paralela de instrucciones. Las computadoras con
registro de
r#tlpifi~~~cin
objetivo
arquilectura partilela emplean d h t e s tcnicas de hardware para minimimr la degrada6n .del desempeo provocada por las instruccioiies de transferencia de control. Una maner'a de manejar una transferencia condicibnal es recuperar con anticipacibn la ciireccih objetivo, adems de la instmccibn que sigue a la transferencia. Ambas se guardan hasta ,que se ejecuta la transferencia. Si la condicin de la transferencia se cumple, la lnea paralela conkin$a a partir de ia lashucci6n objetiva de la transferencia. Una exknsi6n de este p d i miento es c~ntimuar la muperaci6n de insbmccciones de ambos lugates hasta que se tome la detisi611 de la transferencia. En ese momento, el control seleccima el. flujo de imskuccianes de la secuencia de programa correcta. Otra posibilidad es usar un wghfro de ratrnFcacin objetivo (branch target buffer, BT3). El BTB es una memoria asociativa (v&ase la secci61112-4) incluida en el segmento de recuperacin de la lhea. Cada entrada en el BTB consiste en la instnicci6n de transferencia recuperada con anticipaci6n y la instrucc"i6n objetivo para esa transferencia. Tambin almacena unas cuantas htrcicciones que se encuentran despiis de la instruccidn objetivo de la trmsfemcta. Cuando l a hea, decodifica una iastrucci6n de transferencia, busca I a memoria asociativa BTB para la dlmd6i de la Instrucci6n. Si est ei el BTB, se puede dispdner de la inshrucci6n en forma directa y la recuperacibn roh anticlpatibn cantina a partir de la nueva trayectoria. Si la instrucci6n na estd en el BTB, la lnea paralela cambia a un nueva ciclo de instrucciones y almacena la instrucci6n objetivo en el m, la ventaja de este esquema es que las inshmiones de transferencia de control que han ocurrido con anticipci6m 6 disponibles con fadidad en la iea, sin interru~iones. Una variante del BTB es el registro deciclo. Este es un pequefio archivo de registros, de muy aIta velocidad, que se mantiene en e l segmento de remperaci6n de instruceisnes de Ia linea paralela. Cuando se detecta un ciclo de prcrgrama, se almarena por compleito en el registro de ciclo, incluyendo todas ias trmferencias. El ciclo de programa puede ejecutarse en forma directa, sln tener quemaccesar la memoria hasta que se retira el modo de ciclo con la transferencia de control final. Otro pmcedbiento que utilizkn algunas computadoras es la prediddtr de trrinsf~enck de wntrot y tinm praieh. Una arquitectura paralela con prediccibn de transfe@ncie de control utiliza cierta(kgica adicional para predecir el resultada de una instruccin de transferencia condicional antes de que se ejecute. Despub, la Iinea paralela empieza a recuperar con anticipaci6n el flujo de instrucciones de la trayectoria predicha. Una predicci6n correcta elimina ei tfempo perdido causado por el proceso de transferencia de control. Un procedimiento usado en la mayora de las procesadores RTSC es la trmferench -!a O retardada. En este prdimienpof el pmxsador detecta las instrucciones de transferenria de control y reordena la secuencia de cdigo de lenguaje de mdquina al ihsertar'instniceiones iitiles que conservan s i n interrupciones la operaci6n de la lnea paralela. Un ejemplo de transfe-
33'1
rencia retardada es la iriserci6n de w a instnicci6n de no operacin d w & de una iristnacei6n de transferencia de conSro1. Esto hace que la computadora recupere la b c i n nbjetivo, durante h ejecucin de la instniccibn de no ope~ati6n, l o que permite tener un flujo continuo del conducto. En la siguiente secci6n se p m t a m ejemplo de transfemch de control pospuesta.
9-5
En la seccibn 8-8 se present6 la computadora con conjunto reducido de histrucciones (RISC). Eiitre las caracteristicas que se le atribuyen a RTSC est la capacidad .deusar un conjunto de instrucciones eficiente. Puede usarse la sencillez del conjunto de instrucciones para implantar una linea paralela de instrucciones con un nmero pequelo de operaciones y que cada una se ejecute en un ciclo de reloj. Debido al formato de instrucciones de longitud fija, la decodificacin de la operaci6n puede ocurrir a1 mismo tiempo que la selecci6n de registro. Todas las instrucciones de manipulacibn de datos tienen operaciones pgistro a registro. Como todos los operandos estsin en registros, no es necesario calcular una direccin efectiva o recuperar operandos de la memoria. Por 10 tanto, J a lnea paralela de instrucciones puede implantarse con dos o tres segmentos. Un segmento .recupera la hstrucci6n de la memoria del programa y el otro segmento ejecuta la instrucci6n en la ALU. Puede usarse un tercer segmento para almacenar el resultado de la operacidn de la ALU en un
registro destino.
ejwidn&
fnstmcctin eii
un solo cid0
En la arquitectura RISC, las iristrucciones de transferencia de datos e s t h limitadas a bs instrucciones cargar y almacenar. E l a s instrucciones utilizan un dimcioiiamiento Mirecto por registros. Por lo general, necesitan tres o cuaba etapas en e l egme~ito. Para evibr mnElietos entre un acceso a memoria con el fin de recuperar una instrwcibn y cargar o almacenar un operando, gran parte de Ias mquinas TUSC u t h dos canales separados con dos memorias: una para almacenar hs iiistmccioiies y otra para almacenar l o s datos. En algn momento, las dos memorias pueden opwar a la misma velacidad que el reloj de la CPU y se denominan memorias cach6 (vase la seccin 126). Como se meiicionb mi la = & n &8, una de las principales ventajas de la IUSC es su capacidad para ejecutar instrucciones a una velocidad de una por ciclo de reloj. No es posible esperar que cada instruccin se recupere de la memoria y se ejecute en un ciclo de reloj. En realidad, lo que se hace es empezar cada instruccin con cada ciclo de reloj y mediante su arquitectura paralela el procesador logra e l prophito de una ejecuci6n de instruccibn en un solo ciclo. La ventaja de la R15C &re la CICC (computadora con conjunto de hstsucciones complejo) es que la RTCC puede h e r segmentos paralelos, al requerir slo un d o de reloj, en tanto la S E utiliza muchos segmentos en su arquitectura paralela y e i .segmento mis grande requiere dos o &S ciclos de reloj.
suporte de
cowi~or
Otra caracterlstica de la RISC es el soporte que proporciona e l compilador que traduce l programa de lenguaje de alto nivel en un programa de lenguaje de m6quirra. T h lugar de diseliaf hardmre para manejar las dificultad& e i a d a s con conflictos de datos y prdi&c.por transferencias de control, los prmesadores RlSC se basan en la eficiencia del cornpiiador para detectar y minimizar los retrasos que se encuentran con estos problemas. L o s siguientes ejemplos muestran como un compilador puede oplimizar el programa del lenguaje de d q u i n a para compensar los conflictos de la arquitectura paralela.
Ejemplo: Unea paralela de instrucciones de tres segmentos Uh conjunto +pico de instrucciones para un prcesador MSC se a l i s t a en b tabla 8-E.En esta hhla apreciamos que existen tres tipos de instrucciones. ias instrucciones de rnanipulaci6n de datos operan sobre los datos en l o s registros del procesador. ias instrucciones de transferencia de datos son Mstrucciones de aarga y almacenamiento que utilizan una direcci6n efectiva obtenida de la suma del contenido de dos registros o ,de un registro y un desplazamiento constante proporcionado a la instrucci6n. Las instrucciones de m k a l de transferentia del programa utilizan valores de registro y una constante para evaluar. la direecibn de transferencia, la cual se transfiere a un registro o al contador de programa PC. Consideremos a b r a la operacin de hardware para dicha computadp. ra. ta secci6n de control recupera la instntcc6n de la memoria del programa dentro de un registro de instnrcci6n. La instnicci6n se decodifica al mismo tiempo que se seleccionan b s registros necesarios para la ejecuci6n de la instruccin. La unidad del pme6ador m s t a de un namero de registros y una unidad aritmBtlca 16gica (ALU) que ejecuta las operaciones arinticas, 16gkas y de corrimiento. Se usa una memoria de datos para cargar o almacenar los datos de un registro seleccionado en el archivo de registros. El ciclo de imstrucei6n puede dividirse en tres suboperaciones e implantarse m tres segmentos:
1 : Recupmci6n de instnicci&n A . Operaci6n de la ALU E : Ejwufar instruccidn
El zepento 1 recupera la instruccibn de la memoria del programa. La instru~cin se decod&a y se ejecuta una operacih ALU en el segmento A. La ALU se utrliza para tres funcione diferentes, dependiendo de la instrucci6n codificada. Ejecuta una operaci6n para una instrueci6n de madpulaci6~
de datos, maltia la direecibn efectiva para una instruccibn de emga o heen.aWentci o calcula la direcci6n de traderencia para una ~ ~ c c i Q n de transferencia de control del programa, El seginento B dirige la laida de la ALU a uno de tres destinos, dependiendo de la imstrucci6n decodificada.
Transfiere el d t a d o de la operaci6n ALU dentra de un ~ g i s t r o destino en e l d v o de registras. Transfiere h direccih efectiva a una memoria de datos para cargar o alnacenar o transfiere la direccin de transferencia al contador del programa.
Carga pospuesta o retardada Cansideremos ahora la opefacibn de lae .cuatro instrucciones siguien&
S i Ia hea paralela de tros mgmentos avanza sin intermpciona, habrd un conflicto de datos en la instnicci6n 3 porque el operando en R2 todada no est disponible en e l segmento A, Esto puede apreciarse a partir de la temporizacibn de h lhea paralela que se muestra en la figura 9-9a. El segmento E m el d o de reloj 4 se enmentra en d proceso de colocar los
Figura 9-P Toilporizaeih de tlnea p d e h de.im . t o s .
340
datos de la memoria dentro de R2. El segmento A en el ciclo de reloj 4 est utilizando los datos de R2, pero el valor en R2 no ser correcto porque todava no se ha transferido de la memoria. Depende del compilador asegurarse que la instruccin despus de la instruccin cargar, utiliza los datos recuperados de la memoria. Si el compilador no puede encontrar una instruccin til para ponerla despus de la carga, inserta una instruccin no operacin (no-op). Este es un tipo de instruccik que se recupera de la memoria pero que no tiene operacin, por lo tanto, gasta un ciclo de reloj. Este concepto de retardar la utilizacin de los datos que se cargan de la memoria se denomina carga pospuesta o retardada. La figura 9-9(b) muestra el mismo programa con una instmccin n m p insertada despus de cargar a la instruccin R2. El dato se carga dentro de R2 en el ciclo de reloj 4. La instruccin sumar utiliza el valor de R2 en el paso 5. Por lo tanto, la instruccin no-op se utiliza para avanzar un ciclo de reloj con el fin de compensar el conflicto de datos en la lnea paralela. (N6tese que no se ejecuta ninguna operacin en el segmento A durante el ciclo de reloj 4, o en el segmento E durante el ciclo de reloj 5.) La ventaja del enfoque de carga retardada es que el compilador se hace cargo de la dependencia de datos y no la M t e r a . Esto da como d t a d o un segmento de hardware ms simple porque no tiene que comprobar si el segmento del registro que se accesa es vlido o no.
'H programa eXi la figura PIOp) se vuelve a a q l a r al colocar las histrucd~ae~ de sumar w resthr despueS de la imfrueeion de transfermcia de control y no antes, como en el programa original. U n a revisin de la temporizacibn de la h e a paralela muestra'que PC ests actualizado al valor de X en el ciclo de reloj 5, pero las hstrucciones de sumar y restar se recuperan de la memoria y se ejecutan en la e n & deseada. En otras palabras, si h instruccin cargar &iiS en Ia d M d n 101 y X es igual a 350, la bttucci6tr de tran&&n& de control & v e r a de la direccin 103. La instniccibn de sumar se recupera de la d-in 104 y se ejecuta en el ciclo de reloj&: Fa btniccilin de restar se reapek de Ia direcci6n 105 y se ejecuta en el &lo de reluj 7, C m d vdor de X s e transfiere a PC con el ciclo de reloj 5 en e l segmenta E, la inetniceibn recuperada de ia memoria en el ciclo de h l ~ 6 j proviene de la W i n 350, la cual es la instruccin de la dimi5611de t r ~ ~ c h .
9-6
Procesamiento vectorial
Existe m tipo de problema computacional que est6 ms alla de h capacidad de una computadora convencional. E$te problema se caracteriza por el hecho de que requiere una gran cantidad de c4ldos que le tomar4 a una computadora convencional das o inclusa semanas para terminar. En muchas aplicaciones cientficas y de inpiera el pmbkma ptreEk formularse en trmims de vectores y matrices qize se prestan a procesamiento de
vectoEi.
aplicaciones
Las computadoras con posibiidades de procesamiento de vectores ti* nen demanda en aplicaciones especializadas. Las siguients son Areas de aplicacibn representativas, en las cuales el prccwmiento de vectores es de la mayor importancia.
h d k i o n e s climatol6gicas a largo plazo Exploraciones petroliferas Anlisis de datos sfsmicos Diagn6stieo rn&dico Simulaciones de aemdin4mica y Weio espacial Sistemas expertos y de inteligencia artificial Mapeo de los genes humanos Prmaaniento de imlgenes
Sin computadoras de avanzado diseo, muchos de 1 - clculos requeridus no pueden l i q m a cabo! dentro de un tiempo razonable. Para conseguir el nivel querido de desempeo de calidad es necesario utilizar la circuitera mas rapida y mnfiabIe y aplicar p d m i e n t o s innovadores de tcnicas de
procesamiento.paraldo y de vectores.
Operaciones .devectoxea Mu,&os problemas dentificos requieren operaciwes ari tm6ticas sobre arreg l a de niheros grandes. Por 10 general, estos nmeros se formulan como vktores y matricei de nmeros &'punto flotante. Un vector es un conjunto ordenado de un za?egIo de un dimensidh de coniunb de datos. Un vector V e longitud n se representa corno un vector lileal mediante V = [VIV2 Vg VA. Puede reprewntarse como un vector de columna si los conjuntos de datos se enlistan en una columna. Una computadora secuencia1 convencional pude procesar gieranda uno a L vez. En consecuencia, las operaciones sobre vectms deben dividirse m cAiculus simples con vartables suswit-, El elemento Videl v q h r V se m b i e como V(I)y e l indice 1 se refiere a una direcci6n de memoria o registro en donde se almacena el n8mero. Para examinar la diferencia entre un procwdor escalar convencional y un procesador de vector, considere el siguiente ciclo DO de Fortran.
...
Este es un pr~gr& de longitud 100 para sumar dos vectores A y B para pwdutir un vector C! Estp .se implanta en lbguaje .demhquina mediante la siguiente .secuencia de qperqciones: Imitialize 1 = U 20 Reaa.A(I). Read B ( 1 ) Skore C(1) = A " ( 1 ) t B ( 1 ) Iatcrement 1 = 1 f . 5 If 1 5 300 go to a0
Continue
Esto constituye un ciclo .de programa que lee un parde operandos de los m g l & A y B y ejecuta una suma ton m t o fiarnk. La variable de control del ciclo se actualiza despus y los pasas se xepiten 100 veces. Una, computadora capaz de procesar mediante vectores elimina la sobrecarga asocihda con el tiempo que se necesita para recuperar y ejecutar ias instrucciones en ei ciclo del programa. Permite que s e especifiquen operaciones con una sola m c c i 6 n de vecfbr, d& l a form
la instnicci6n'de vector incluye la dimci6n inicial de los operandos, la longitud de los vectores y la operacin que se va a ejecutar, todo en una htru'kci6n compu-ta. La suma.* m k m m m sumador de punto flotante de arquitectura paralela, similar al de l a figura 9-6. Un fomto posible para una htmrcibn de <vectorse muestra en la *a 9 . 1 1 . h c h l m e n t e , es una i n s w e i 6 ~ de tres direcciones en donde
344.
~Aetrvre
Paralelismo y pmeesamiento de v e r
.
.
Lnngitud de m t o r
adigude
0 -
DhemMnh hrente 1
W h nh e
fuente 2
Direamnbase deano
tres campos. especifican la direccibn base de los operandos y un campo Micional propotciona la Iongitud de los conjuntos .de datas en los vectores. Bst 6bnsideta que lo$ operaddas del vecbr &Iden eti la memoria. Tambikn es posible disear el pmsador con una gran cantidad de registros y almacerrar todos los operandos en registros antes de la operacibn de suma. En ese caso, la dWd'6n base y l a longitud en la. instmcci6n del vector espeiim un grupa de registros de CPU.
Jy
aa
&ti
bit
bts
~ i i C*
~ 1 3
b . ' / i n a b cn [hi. h b d =
cp
c L 3
cs
cd
. La
p@yc@ 6) qq una mtrk 3 .X 3 ~upsdmmtos -tAn mlacionados ,ionL los ~1wientw &A :y. B n 4 9 s r b 4 p r d e t ~mkrno: 'i
l
,L.
,
t!
,,',
'
)l. m ' ' .L , , . j , . ,,reqi;lierci . : y (Ite8pub da: i n : i l i i C l l en O) tres sumas Ila c&dad b f e i l de rnioltipUwipx~s suqa~ queridas para calcu.h.;@ prod~b; .&.la, matriz .es9 ' X. 9 Bsf. S i .,&nsideram i a operacidn , ,global de ~ m d ~ x a cc-f: m a N~b nriro UW bpem'rin acumulativa, el
,
' i
m
.'
,.
n requiere
r? o p c i o n e s de multiplicar-su-
mar. El edhlo consta de n2 praductos internos, en: donde cada producto interna r+uiete n operaciones de inultipfica~surnar, considerando que c se inicializa eh O arites de cakhlar cada elemento en la matriz producto. En general, el pbdukto h t h o consta de la suma de k tdrminos de producto de la forma:
En uria aplicacidn tipka k puede ser igual a 100 o incluso a 1000.El cicuio de producto interno eri un pmcesador de vector de arquitectura paralela se muestra en la &gura 9-12.L o s valores de A y B estn en la memoria o en registros & procesadw. Se considera que, la lnea paralela del multiplicador d;! punta fl&ante y la Enea paralela del sumador de punto flotante tienen cuatro segmen'tos cada uno. Todos 16s re&istrasde sepentos en el multiplicador y erl el sumador se iniciaSuan en O. Por lo tanto, la salida de1 sumador es O para los primeros ocho ciclos, hasta que estn llenas ambas lneas. Los pres Al y B1 se nfroducen y multiplican a una velocidad de un par por cido. Despus & 1 % primeros cuatro ciclos, el producto comienza a sumarse a'la salida de1 sumador. Durante las cuatro ciqios sQuientes se suma O a los productos que entran a la h e a del sumador. Al final del octavo cido, los primeros cuatro prductos A, B1hasta Ap Bq estitn en los cuatro segmentos del sumador y los siguientes cuatro productos de As B5 a Ag Bs estn en los segmentos de multiplicador. Al comienzo del noveno ciclo, la salida del sumador es Al Bl y Ia salida del mult.$licador es A5 Bg. Por lo tanto, el noveno ciclo comienza la suma A, BI + A5 B5 en la h e a sumador. E 1 dbcimo ciclo comienza la suma A2 B2 + A, Bg y aai sucesivamente. Este patr6n divide
de la maneea siguiente:
Fwnte
B
UMparalela dei m u i ~ d o r
Cuando Xa no hay ms tminos de producto par sumar, el sistema inserta cuatro ,ceros en la lbea del multiplicador, Entonces h lnea del sumador tendrd pproduckaparcial en cadq uno de sus cuatro segmentos, que csmesp~nden. a las cyatr~ .sumas que se listan en los cuatro renglones de l a f - u a a n antpripr. Deipyds, se s w n lag cuatro $urnas parciales para formar la suma final.
Memoria entrelazada
Los procesadores de vecfor y de arquitectura paralela con frecuencia requieren acceso sirnult~~eb a la memoria desde dos Q mZts fuentes. Una l i paralela de instnicci6n puede requerir 4 mntperaci6n de una instrucci6n y un operando al rnisrn~tiempo desde dos segmei~tpsdiferentes. De igual manera, una Ibea aritmhtica, por lo general, requiere que se introduzcan dos o mds operandos en i a linea, al mismo tiempo. En lugar de usar dos canales de mgmoria para acceso sirnultEtneo, puede dividirse l a memoria en varios mdulos conectados a canales de direcciones y de datos comunes. Un mi5dulo de memoria es un arreglo de memoria junto con sus propios registros de datos y. direcciones. La figura 9-13 muestra una unidad de memoria con hatro mdulos. Cada arregio de memoria tiene su propio registro de d i r ~ c i 6 n AR y registro de datos DR. Los registros de d ' i b n reciben informacin de un cawl de direcciones comn y los registros de datos cpmuican con un canal de datos bidireccional. Pueden utilizarse los
Pi&ra 9.13
&&&de d i d w
11
ti
AR
lr
A R
lf
AR
lr
AR
1
'
de
Arreglo de
memoria
Amglo de
Vria
1i
Arreglo de
, memoria
memoria
t
DR
ir
DR
t
DR
L l r
DR
J,
CanaI de da-
dos bits menos significativos de la dhecci6n para diferenciar entre 10s cuatro m6dulos. E l sistema modular permite que un m6dulo inicie un acceso a memoxia mientras otros m6dulos estn en proceso de leer o m i i r una palabra y cada mdulo puede cumplir una solicitud de memoria independiente del estado de Iw otros.m6dulos. La ventaja de una memoria modular es que pennite la utilizacibn de una tcnia llamada e n h k d o . En una memoria entrelazada, se asignan diferentes conjuntos de d k c w n e ~ a diferentes m6dulos de memoria. Por ejemplo, en um sistema de memoria de d w mdulos, las direcciones pares pueden estar en .unmQdulo y-las direcciones impares pueden estar en otro. Cwndo la cantidad de mdulos es una potencia de 2, 10s bits menos significativos de la direccidn seleccionan un m6dulo de memoria y Ios bits w t a n t p s repmxntan la posici6n especifica que se va a accesar dentro del msdulo seleccionado. Una memoria modular es til en sistemas con procesamiento de vector y de arquitectura paralela. Un prwesador de vector que uliliaa una m e m d entrelazada de n canales, puede recuperar n operandos de n m6ddos diferentes. Al entrelazar d acceso a h memoria, el tiempo de ciclo de memoria efectivo g u e reducirse en un facMr cercano a la cantidad de m6dylos. Una CPU con lnea paralela de instruccicines puede aprovechar los m 6 d u b de memoria mltiples para que cada segmento en la lnea pueda accesar la memoria en forma independiente del acceso de los otros -entos.
Sugercompuhdoras
A una computadora comercial con instrucciones de vector y operaciones
arih&ticas de punto flotante de heas paralelas se le denomina supmompu-
tadora. tas supercomputadoras son mAquinas de aILo rendimiento muy poderosas que se #usansobre todo pwa clculos ciwitificos. Para acelerar la ~peracibn, b s componentes se juntan para minimizar h distancia que tienen que recorrer las seales ekctr6nicas. Lns supercomputadoras tambin utilizan tcnicas egpiales para evitar e l calor en los circuitos y prevenir que se
quemen debido a su proximidad. El conjunto de instruwi~nade las supercornputadoras contiene las instrucciones de tyansferencia de datos, manipulaci6n de datos y transferencia de control del programa de las computadoras convencionales. Esto se aumenta mediante instrucciones que procesan vectores y combinaciones de escalales y vectores. Una supercomputadora es un sistema computacional que se reconoce por su alta velocidad de cblculo, sus sistemas de memoria grandw y rpidos y un uso amplio de procesamiento paralelo, Est4 equipada con unidades funcionales miliiples y cada unidad tiene su propia configuraci6n de arquitectu'ra paralela. Aunque Ia 'supercomputadora maneja aplicaciones de prop6sito p e r a l que se encuentran en todas las otras computadoras, est optimizada sspecff icamenie para el tipo de
~~1~11 n11~i6ricm 05 que invo1ucran vectores y matrices de nmeros de punto fIotante. Las supercomputadoras no son eonvehierrtes pata procesamiento cotidiano normal de una instalaci6n de computadora tpica. Su uso se limita a ciertas aplicadones cientfieaas, como pfedicci6n numrica del clima, anlisis de ondas ssmicas e Uwestigacih espacial. Se usan en foma limitada y su
mwdado taffibh
~ pe-qdla dtMds. a S I a l b pmiu. Una medida u t k d a para evaluar mmputadoras, es su capacidad para ejecutar cierta cantidad de operaciones de punto flotante por segundo, que se denomihan fiq. El trmino meggups se iitilUa para representar millones de flops y gi&ops para representar mil millones de flops. Una supercom-
putadora tpica tiene un fiempo de ciclo bAsico de 4 a 20 ns. Si e l procesador puede calcular una operacin de punto flotante por lnea paralela cada ciclo, tendr Ia capacidad de ejecutar de S0 a 250 megaflops, Esta velocidad s e sostendria desde el momento en que se produce la prmera respuesta y no incluye e l tiempo de i n i c i 6 n de las h e a s paralelas. Za primera supercomputadora desarrollada e n 1976 es la Cray-l. Utiliza el procesamiento de vector con 12 unidades fuhcionaIes distintas en paralelo. Cada iinidad funcional estA dividida para p m a r los datos de entrada a trav4s de una lnea paralela. Todas las unidades funcionales pueden operar en forma concwnte con operandos ahcenados en una gran cantidad de registros ( d s de 150) en l a CPU. Puede ejecutarse una operacin de punto flotante sobre dos conjuntos de operandos de 64 bits, durante un ciclo de reloj de 12.5 ns. Esto nos da una velocidad de 80 megaflops durante el tiempo que se procesan Ios datos a travgs de las lneas paralelas. Tiene una capacidad de memoria de cuatro millones de palabras de 64 bits. La memoria se divide en 16 bancos, en donde cada'banco tiene un tiempo de acceso de 50 ns. Esto signfica que cuando se accesan los 16 bancos en forma sirnultanea, la velocidad de transhencia de memoria es de 320 millones de palabras por segundo. La investigacibn acerca de la Cray ampli su supercomputadora a una configumd6n de multipr~cesador llamada Cray X-MP y Cray Y-MP. La nueva supercomputadora Cray 2 es doce v ms poderosa que la Cray 1 en el modo de p m m i e n t o de vettor. Otro modelo inicial de supercomputadora es la Fujitsu VP-200.Tiene un pmcesador. ewalar y un procesadbr de vector que pueden operar en forma mmrrente. Como en las supercompukadoras Cray, se utiiizan una gran cantidad de registros y de unidades funcionales mltiples para habilitar las operad~m de vector de registro a registro. Existen cuatro leas paralelas de ejecucidn en el procesador de vector y, cuando operan en forma simultghea, pueden procesar hasta 300 megafIops. ia memoria principal tiene 32 millones de palabras conectadas a l o s registros de vector m e h k heas pardehs de carga y almacenamiento. I;a VP-200tiene 83 instrucciones de vedor y 195 instnicdmes escalares. La mEts reciente VP 2MHl utiliza un ciclo de reloj de 3 . 2 ns y r e dice que a su mxima capacidad pude procesar cinco gigaflops.
Arreglo de procesador conectado Un tureglo de pmsador conectado ~ t diseado como un perifrico para una computadora anfitriona convencional y su prop6sito es mejorar el desempefio de la computadora al proporcionar pi'ocesamiento de vector
para aplicaciones cientfficas complejas. Produce un alto rendimiento mediante el procesamiento paralelo con miiltiples unidades funcionales. incluye m unidad aritmCtica que contiene uno o ms sumadores y multiplicadareb de punto flotante de arquitectura paralela. El usuario puede programar el arreglo de p-esador para que d&cabida a diversos problemas aritm&ticoscomplejos. La figura 9-14 muestra la int&onexih de un arreglo de procesador conectado a una computadora anfitriona. La computadora anfitriona es una computadora comercial de prop6sito general y el procesador conectado es una terminal conectada a una computadora anfitriona. E l arreglo de procesador est conectado por medio de un controlador de entrada-salida a la computadora y la computadora l o trata como una interfaz externa. t o s datos para el proeesador conectado se transfieren de la memoria principal a una memoria local mediante un canal de alta velocidad. La computadora de propsito general sin e l procesador conectado atiende a los usuarios que
Figura 9-14 Arreglo de proeesador conedad0 con compuiadora anfihlona.
Computadora de pro*Uom
k i t d a de
wbadagalida
T
, ArregIodep&ador
cmezhdo
W p a i
-=
350
plejas. A l p o s fabsicantes de procesadores de arreglo conectado ofrecen un modelo que puede conectarse a diversas computadorae anfitridn. Por ejemplo, cuando se conecta a una computadora VAX11, el FSP-lM/MAX de Hoating-Point Sysaumenta el poder de dlculo de la VAX a 100 megaflups, E l objetiv~ del procesador de arreglo conectado es proporcionar posibilidades de mdpulaci6n de vector a una camputadora convenciar,al a una fracci6n del costo de las supercomputadoras.
Arreglo de procesador SIMD Un arreglo de procesador SIMD es una computadora con mUltiples unidades de procesamiento que operan en paralelo. las unidades de procesamiento e s t h sincronizadas para ejecutar la misma operaci6n bajo el control de una unidad comn, por l o que proporcionan una organizacidn de flujo de instnicciones ficol flujo de datos m~ltiple(SIMD). Un diagrama de bloque genecal de un arreglo de procesadar se muestra en la figura 9-15. Contiene un conjunto de elementos de procesamiento (PE) idnticos, en donde cada uno tiene una memoria l c a l M. Cada elemento del procesador incluye una ALU, una unidad aritmtica de punto flotante y registros de trabajo. La unidad de control maestro dirige las apmaci~nes en los elementos del procesador. L a memoria principal se utiliza para almacenamiento del programa. La funci6n de a unidad de control maestro ea decodificar las instrucciones y deteminar &no SS van a ejecutar. Las instrucciones de
pE;I
Unidad de mmd m a e s m
MI
-l
m
41
M 2
m
m
M 3
11
m p a i
PEn
Problemas
351
control de programa y escalares se ejecutan en forma directa dentro de la unidad de control maestro. Las instrucciones de vector se transmiten a todos los PE en forma simultnea. Cada PE utiliza operandos almacenados en su memoria local. Los operandos de vector se distribuyen a las memorias locales antes de la ejecucin en paralelo de la instruccin. Por ejemplo, consideremos la suma de vector C = A + B. Primero, la unidad de control maestro almacena los isimos componentes ai y bL de A y B en la memoria local M ipara i = 1, 2, 3, 4, ..., n. Despus transmite la instruccin sumar de punto flotante ci = ai + bi a todos los PE, causando que la suma se realice en forma simultnea. Los componentes de ci estn almacenados en localidades fijas en cada memoria local. Esto produce la suma del vector deseado en un ciclo de suma. Se usan esquemas de enmascaramiento, con el fin de controlar el estado de cada PE durante la ejecucin de instrucciones de vector. Cada PE tiene una bandera que se activa cuando el PE est activo y se desactiva cuando est inactivo. Esto asegura que slo estn activos durante la ejecucin de la instruccin aquellos PE que necesitan participar. Por ejemplo, supongamos que un arreglo de procesador contiene un conjunto de 64 PE. Si se va a procesar una longitud de vector menor que 64 conjuntos de datos, la unidad de control selecciona la cantidad correcta de PE que van a estar activos. La unidad de control debe dividir los vectores con longitud mayor de 64, en partes de 64 palabras. El procesador de arreglo SIMD ms conocido es la computadora ILLIAC N,desarrollada en la Universidad de Illinois y fabricada por Burroughs Corp. Esta computadora ya no est en operacin. Los procesadores SIMD son computadoras altamente especializadas. Sobre todo son convenientes para problemas numricos que pueden expresarse en forma de vector o de matriz. Sin embargo, no son muy eficientes en otros tipos de clculos o para trabajar con programas de procesamiento de datos convencionales.
9-1.
9-2.
En ciertos clculos cientficos es necesario ejecutar la operacin aritmtica (Ai + B,)(Ci + Di) con una serie de nmeros. Especifique una configuracinpara realizar esta tarea. Liste el contenido de todos los registros en la arquitectura paralela para i = 1 a 6. Dibuje un diagrama espacio tiempo para una arquitectura paralela de seis segmentos que muestre el tiempo que se necesita para procesar ocho tareas. Determine la cantidad de ciclos de reloj que se necesitan para procesar 200 tareas en una arquitectura paralela de seis segmentos. Un sistema no paralelo necesita 50 ns para procesar una tarea. La misma tarea puede procesarse en una arquitectura paralela de seis segmentos con
9-3. 9-4.
382
9-5.
i
9-7.
9-8,
99.
940.
9-13,
un ciclo de reloj de 10 ns, 'Determine la ~ a z 6 n de aceleracibn de la arquitectura pardela pam IN t a m .Cul es l a mxima aceleracin que pude C Q I ~ S ~ ~ & M ? L21 arquitectura paralela de la figura 9.2 *e los ,siguientes tiempos de r de la memoria dentro propagaci6n: 40 para los operandosque van a k de los registro Rl, p E, 85 ns para la sefa1 que se va a propagar por el mdtiplicador, S mpara la transferencia denb de m R 3 y 15 ns para sumar 10s dos n 1 ~ ~ d e n t de ro H. ~ C des l el-tiempomhimo de a& de reloj que -puedeutiihme? b. Un &ana.no paralelo puede ejecutar la misma operaci6n al quitar R3 y 324. cunta se necesitar& pma m d t i p k y sumar los operandos sin w la arquitectura paralela? c C W e la ademei4nde l a .arquitecturaparalela para 10 tareas y vuelva a hacerlo p a p a 100 tareas. d. ~Cui es l a mxima aceleracibn que puede l v ? E s necesario disekr una Iinea paralela para un multiplicador de punto fijo .gueafecta a dos enteros binarios de ocho bits. Cada segmento contiene varias compuertas AND y un sumador binario similar a un arreglo multiplicador, .como se muestra en Ia figura 10-10. a , ,~ C u h t a s compuertas A N D hay en cada segmento y qu6 tamao de s.umador se necesita? b, Cuntos segmentos hay en la m ? c Si el retraso de propagad6n en eada,segmentoes de 30 ns, cul es el tiempo pkmedio que se n d t paca multiplicar dos nheros de punto fijo en la'lhea? E l retardo de los euatrq segmentos en la &ea paralela de la figura % es el siguien@:t, =SO n s , $i = 30 m, t3= 95 m, y tp= 45 m. El retardo de los registros de interfaz t, ='5 m. a. cunto tiempo se necesitara pa- sumas 100 pares de nilmerus en la Enea? b . ~Cbrno podcmos reducir el tiempo total a aproximadamente la mitad del timp calculado en la parte a? iC&w.iaram^os el sumador de punlo flotante de Enea paralela de la figura 9-6 para sumar 100 nilimeros de punto Elatante Xl+ X2+ X3+ ... + Xlod - Fonnule unzr Unea paralela de instrucciones de &s t o s para una computa$ora. &@fique las operaciones que se van a ejecutar en cada segmento. Expiique cuatro posibles -quemas de circuitera que puedan usarse en una lhk parakla de instrucciones para minimizar la degradaclbn del rendimiento provocada por las instrucciones de transferencia de control del programa. M d w las c w b instnicciones en el prapma siguiente. Suponga que la primera instruccin enipieza en el paso 1 en la ltnea paralela utilizada en la figura 9-8: Especifique cual- opddciones se ejecutan en los cuatro segmentas durante el p c o 4.
4
Loaa ADD
IWC
STORE
+ +
Proporcione un ejempb de un programa que produzca un conflicto de dabs en la Knea paralela de tres segmentos de la seccitrn 9-5. Proporcione un ejemplo que utilice carga reardada con la lnea paralela de tres segmentos de la seccidn 9-5. Propwcione un ejemplo de un progama que produzca una $rdida por transferencia de control en la lnea paralela de tres segmentos de la secci6n 9-5. Proporcione un ejemplo que utilice transferencia de control del programa -dada con la l h a paralela de t m ~gmentos de i a seceibn 9-5. Considefe la muldplicaci6n de d a matrices 40 X 40 utilizando un proc=dor de vecbr. a. ~Cubintos trminos de produeto hay en cada p d u c t o interno y cuntos peoduatos intefnos deben evaluarse? b. cuntas operaciones mdtipliear-sumar se necesitan.para ea!cuhr la matriz del producto? ~Cuintos ciclos de reloj se necesitan para procesar un producto interno en la lnea paralela de Ia figura 9-12,cuando se usa para evaluar el producto de dos matrices 60 >C #? Cuhntas productos internos hay y cuntos ciclos de reloj se necesitan para evaluar la matriz dd producto? Asigne direcciones a un arreglo de datos que s e va a almacenar en la memoria descrita en la Iigura 9-13. Un c&lcula de predicci6n del d i requiere 250 mil millones de operaciones de punto flotante. E l problema se calcula en una computadora que puede ejecutar 100 megaflops. Cunto tiempo se necesita para llevar a cabo
estos cblculos?
Considere una computadora con cuatro procesadores de punto flotante de arquitectura paralda. Suponga que cada procesador utiliza un cicb de 40 m. Cunto tiempo se necesita para ejecutar 400 operaciones de punto flotante? Existe una diferencia si se llevan a cabo las mismas operaciones usando un procesador de una sola lnea paralela can un ciclo de 10 ns?
1 . Dasgupta, S, Computer Arckitectare: A A d e r n SptIresis, Vol. 2 Nueva York John Wilegr, 1989.
2. DKegama, A. L . # Pamllei Pimessing Architmture ami VLS1 Ebrdwre. Englewd C W , NJ: h t i c e Hall, 1989.
354
-NUEVE
Paralelismo y p-miento
de vector
6. Kain, R., CompMer Ardritsctirre: S@~~oftware and hlmdware. Vol. 2. Englewood Cliffc, N: Prentice Hall, L989. 7. Lee, J. K F . , y A. J. m t h , "BranchPredidon Strategiee and Branch Target Buffer Design".Coflpkr, Vol. 1 7 ,No. 1 (Enero WW),pp. 6-22. 8. Lilja, D .J,, "Reducing h e BranchPenaltiesin Pipeline Processors".Computer, Vol. 21, No. 7 (Julio l W ) pp. , 47-55. 9. PaWson, D .A., y J. L.Hennessy, Carrputet.Ardu'tectnre:A QuanfitatiwAkproach, San Mateo, Ctl: M o r p Kaufrnann Publishers, 1990, 10. Pollard, L.H : , Cotilputer Design and drckikhm. Englewood CliEfs, NJ:Pientice Hall,
\
1840.
11. Stane,H. S . , High-Ptqhmnce Computer Architature, 2a. 4.Reading, IvlA:AddisonW d e y , 1990. 12. Tabak, D . , MuItipmessm, Englewood Cliffs, NJ: Prentice Hall, 1990.
ESTE C ~ U O
1-1
10-2
le3 104
10-5.
1
10-7
Introducd6n Sumayresta Aigoritmm de mdLipIicaci6n Algoritmos de divisi6n Operaciones aritrnicas de punto flotante Unidad ariWerr decimal Operaciones aritmticasdecimal-
Las instrucciones aritmticas en las computadoras diiitales manipulan los datos para producir los resuItados necesarios para la solucibn de problemas computacionales. Estas instrucciones ejeaitan c6lcuIos aritm6ticos y son responsables de la mayor parte de la actividad para el procesamiento de datos en una computadora. Las cuatro operaciones arilmkticas biisieas son suma, resta, multipHtaci6n y dfvisibn. D e estas cuatro operaciones bsicas es posible formular otras operaciones aritmgticas y resolver problemas cientficos mediante mktodm de anUiis numrico. Un procesador aritmtico es la parte de una unidad de procesador que ejecuta operaciones aritmkticas. El tipo de d a b que se considera residen en los registros del procesador durante la ejecuci6n de una instruccidn aritmtica se especifica en la definicin de la instrucci6n. Una instnicci6n aritrndtica puede e s w c a r datos binarios o decimales y en cada caso los datos pueden d a r en forma de punto fijo o flotante. Los niimeros de punto fijo pueden tqresmtar e n k m o fracciones. Los niimeros negativas pueden estar en repremmtaci6n de un complemento de signo o de magnitud de sipo. El pmcesador aritm!ica es muy simple s i sblo se incluye una instruccin de
sumar bhria de punto fijo. Sera mAs complwdo si incluyera las cuatro operaciom aritm&cas para datos binarios y decimales en representaciones de puto fijo y flotante. Cuando nos maeiPlaron a ejecutar las operaciones aritmkticas bisicas aprendimos la representadhn de magnitud de signo. Este conocimiento es vahoso & d o lag operaciones van a implantarse mediante hardware. Sin embargo,el d i h d o r debe,estar fmilidzado por completo con la secuencia de pasris que se van a ,-ir con el fin de ,realizar la operaci6n y lograr un resultado correcto. La solucin de cualquier problema que est definida mediante un nmero finito de pasos de procedrmiento bien definidos se denomina algoritmo. En la seci6n 3-3 se definid un algoritmo para la suma de dos nmeros binaros de punto fijo cuando los nhneros negativos estn en su representaci6n de complemento a 2 con signo. Este es un algoritmo simple, porque para su implantaci6n 9610 necesita un sumador binano paraleb. Cuando los nmeros negativos estin en representacin de magnitud con signo, el algoritmo es ligeramente mAs complicado y su implantacin requie re circuitos para sumar y mtar, y para comparar los signos y las magnitudes de los nmeros. Por lo general, tin algoriho contendr: varios pasos de procedimiento que dependen del resultado de los pasos anteriores. U n metodo conveniente para presentar algoritmos es un diagrama de flujo. Los pasas computacionales se especifican en el diagrama de flujo dentm de cajas rectangulares. Los pasos de decisin se indican dentro de cajas en forma de diamante, de las cuales surgen dos o ms trayectorias Jternativas,
En este capitulo desamHamos los diferentes algaritmos aritmticos y mostramos el p d i m i e n t a para obtenerlos con hardware digital. Consideramos la suma, resta, rnultiplicaci6n y divisida paza los siguientes tipos de
datos:
con signo. 3. Datos biarios e punto 8flotante. 4 Datos decimales ,en cdigo binario WD).
Como se mencionb w la seccibn 3-3, &ten tres maneras de representar nmeros binarios negativos de p u b fijo: magnitud con signo, complemento a 1 cun signo o complemento a 2 con signo. La mayora de las computadoras
utiliza la reprem~taci6n de complementa a 2 c m signo cuando ejecutan operaciones aritmticas con enkm. Para operaciones de punto flotante, la myora de las computadoras usa la representacibn de magnitud con signo
SEcmNlrrL suma y
resta
357
En a t a aemi6n desarrullamos 1 w algoritmos de suma y resta para datos representados en magnitud de signo y, una vez ms, para datos representados en complemento a 2 con signo. Ea importante wordar que la represmtacibn adoptada para los niunerus n ~ t i v o se s wfiei;e a Ja mpsmtacibn de los M e r o s en los registros antes y despus de la ejecuci6n de h ,opefa~i6n aritmbtica. N o significa que no puede usarsg aritmdtiea cpmplementaria en un paso intermedio. Por ejeppl% es conv@mte emplear ,a,ritm$ticacompIementaria cuando se ejecuta iyra operacidn ,deresta con, nmeros en representacin de magnitud con signo. Mientras el minuendo y d sustrzyndo iniciales estn en forma de magnitud con sipo, a l igual que la diferencia final, e l hecho de que se hayan u~do c o m p M - i t o s en un paso intermedio no altera que Ia representacidn sea en magnitud con signo.
para
Suma y resta con datos de magnitud con signo I a representaci6n de nmeros en magnitud con signo nos resulta familiir
magnitud
porque se usa en los elculos arihdticos cotidianos. El procedimiento para sumar y restar con papel y. lpiz dos nmeros binarios con signo es simple y directo. Un repaso de este prodimiento ser&til para derivar el algoritmo de hardware. Representemos la magnitud de los dos nmeros mediante A y B. Cuando los niimeros con signo se suman o restan, encontramos que existen ocho condicioncs diferentes por considerar, dependiendo de los signos y de las operaciones ejecutadas. Estas condiciones se lisbn en la primera columna de la tabla 10-1. Las otras c~lumnas en la tabla muestran la operacin real que se va a ejecutar con la magnitud de los nnwms. La ltima columna se necesita para evitar un cero negativo, En otras palabras, cuando se restan dos nmeros iguales, el multado debe wr +O y no -O.
TABLA 10-1 Suma y resta de niimpros de magnitud de signo
Operacin
Sumar magnitudes
Restar magnitudes
algadtmo de sum ( d a )
Los dgoritmos para la suma y la resta se derivan de la tabla y pueden definirse de la manera siguiente (las paiabras dentro de parntesis deben usarse para el algoritmo de resta): AlgmAtmo de suma (resta): cuando los signos de A y B son idnticos (diferentes), mme las dos magnitudes y agregue e1 signo de A al resultado. Cuando los signos de A y B son diferentes (idnticos), compare las magnitudes y reste e1 nrimero mds pequeo del m6s grande. Escoja el signo de resultado para que w igual a A si A > B o el complemento de signo si A B. Si las d i magnitudes son iguales, wk B de A y haga positivo el signo del resultado. Los dos algoritmos son similares, excepto por la comparacin de signo. El procedimiento que se va a seguir para signos idhticos en el algoritmo de suma es el mismo que para s@m diferentes en el algoritmo de r e s t ay viceversa.
hplantaci6n de hardware Para efettuar las d& operaciones aritmLticas con hardware, primero es necesario que los dos n5.mestn almacenados en registros. Sean A y B los dos n h e m s que contienen la magdtud de los nfimeros y A, y B, los dos flip-flops que contienen 1m signos compondienles. El resultado de la operacin puede transferim a un tercer registro: sin embargo, eso se puede evitar si el resultado se transfiere a A y A, Por lo tanto, A y A, juntos forman
un registro acumulador. Consideremos ahora la impIantaci6n de hardware en los algoritmos anteriores. Primero, se necesita un sumador paralelo para ejecutar la microoperacibn A + B. Segundo, se n-ita un circuito comparador para establecer si A > B, A = 3, o A < B. Tercero, se necesitan dos circuitos sustractores paralelos para ejecutar las micmoperacianes A - B y B - A. Puede determinarse la relaci6n de signo a partir de una compuerta OR exclusiva, con A, y Bs como entradas. Este procedimiento requiere un comparador de magnitud, un sumador y dos sustracbles. S i n embargo, puede encontrarse un procedimiento diferente que requiera menas equipo. Primero, sabemos que la resta puede realizarse mediante complementai. y sumar. Segundo, el resultado de una cornparacidn puede determinarse del acarreo final despus de la resta. Una investigacin cuidadosa de las alternativas reveIa que el uso del complemento a 2 para la resta y la comparacibn es un procedimiento eficiente que requiere slo un sumador y un cornplementador. La figura 10-1 muestra un diagrama de bloque de la circuikria para implantar las operaciones de suma y resta. ConsM de los registros A y B y de loa fiipflops con signo A, y B, L a resta se realiza al sumar A al complemento a 2 de B. El acarreo de salida se transfiere al flip-flop E, donde puede comprobarse para determinar las magnitudes relativas de los dos ndmeros. el flipflop AVF de sobreflujo de suma contiene e1 bit de sobreflujo cuando
se suman A y B. El registro A proporciona otras microoperaciones que pueden necesitarse cuando especificamos la secuencia de pasos en e l algoribno. La auma de A y B se realiza m d h t e d siimador paralelo. La salida S (suma)del sumacbr se aplica a la entrada del r e g i s t r o A. El complementador proporciona una salida de B a el complemento de B, dependiendo del estado del control de fiado M. El complementador consta de compuertas OEl exclusivas y el sumador paralelo se forma de circuitos sumadores completoc, como se muestra en la figura 47, en el caphilo 4. La seiial M se aplica bnbib d aacarreo de entrada del m d m . Cuando M = O , la salida de B se transfiere al humador, el acarreo de entrada es O y la sazida del sumador es igual a la suma A B. Cuando M = 1 , el eomphnmto a 1 de B se apfica al sumador, el acarreo de entrada es 1 y la salida S = 1 A + B + 1, Esto es igual a A ms el. complemento a 2 de BI l o cual es equivalente a l a resta A - B.
Algoritmo de Iiardware
E I diagrama de fiuja para e . algoritmo de hardware se presenta en h figura 10-2. Los dos signos A, y B, se comparan mediante una compuerta OR
exclusiva, Si la salida de la compuerta es O, los signos son idnticos; si es 1, los sipo5 son diferentes. Para una opaci6n de sumar, signos idknticw dictan que se sumen Ias magnitudes. Para una operacin de restar, signos diferente determinan que se sumen las magnitudes. tas magnitudes se suman con una microwperaciSn EA + A + B, don* EA es un registro que combina E y A: ' E lacarreo en E despus de la suma, constituye un mbreflujo s i es igual a 1. Ei valor de E se transfiere al fpflop AVF de sobreflujo de 6uma. Se restan las dos ma&tudes si los signos son diferentes para una oprakibti de smr o idnticos para una opera&n de restar. Se restan las
CAP~TULO DIEZ
Aritmtica de computadoras
-eraci6n
Restar
*racin
Sumar
1
,,,..aendo en B
Sumando en A Adendo en B
.11:
'
"
.')
,'
. ;
1,
.t,l,--'
l . ,
: ,.
/
J , , .J:*I
'
- .
8
A<B
1 ,
;,
1
J.
,
:
'817
8 .
,d. A
1
,,
+A
"
A&#&
.i.si,
. ,
..
. :
i i ... 1..
r
.
:'n
,~',~,:.,,II..
;
.,L2
.:
.
,'
8
h i
'
'
.A,
.e ,.&
'1
I
1 : .~
V.'
.
.,..
+,.,#
,
1
.,'d , , , r,
'%1!
8.1
, .
A, + O
1
,l
k.1
1.
!~t+mi'.
.
.,
.".
A+A+1 A, +A,
1.
8
t: i i
1
,1
1
1 , '
'
:
,
1
...
T.
r,
..... . ...
t .
, '.:'
8
C!
. .
ILIL
V I
J
e.
h ,
'
,-N
'
8 1
,l.
complementar e incrementar
-p,
magnitudes al sumar A al complemento a 2 de B. No puede ocurrir un . sobreflujo, si se restan los nmeros, de modo que AVF se borran a O. Un 1 en E indica q u A ~ r B y que el nmero en A es el resultado correcto.' Si este nmero es O, el signo A, debe hacerse positivo para evitar un cero negativo, Un cero en E indica que A c B. Para este caso es necesario tomar el complemento-a 2 en A. Esta operacin puede realizarse con una microo'peracin A c A + 1. Sin embargo, consideramos que el registro A tiene e incrementar, por lo que circuitos para las microoperaciones de corn~krnentar se obtiene 'el complemento a 2 a partir de estas dos microoperaciones. En
O N
1 0 . 2 Suma y resta
3 3 ' 6 1
otras trayectorias del diagrama de flujo, el signo del resultado es igual al signo de A, por lo que no se requiere un cambio en 4.Sin embarga, cuando A < B, el signo de1 multado es eZ complemento de1 signo original de A. Entbnce es n h a r i o camplmentar A, para obtener e l signo correcto. El multado final se encuentra m el registro A y su signo en A,. valor en AVF proporciona una indicacin de sobreflujo. a vdor fina1 de E es inmaterial.
Suma y resta con datos de compfemmto a 2 con signo La representacidn de mmeros en complemento a 2 con signo, junto con los algoritmos aritm&tlmspara la suma y h mita, a e presentaron en la secci6n 3-3. Se resumen en esta seccidn para una referencia fcil. E l bit de la extrema izquierda de un ntlmem binario representa el bit de signo: O para positiva y 1 para negativo. S i el hit de signo es 1, todo el nmero e n h a a e representa en su forma de complemento a 2. Por lo tanto, 4-33 se representa corno DOlOOOOl y -33 como 11011111. N6tese que 11011111 es e l complemento a 2 de O O l O O O O 1 y viceversa. La suma de ds nmeros en forma de complemento a 2 con signo consiste en sumar 10s ntmenis con los bits de s i p o tratados de la misma manera que los otros bits en el niimero. Se descarta un acaireo de la posicin de bit de signo. La resta consiste en tomar primero el complemento a 2 del sustraenda y despuh sumado al minuendo. Cuando se suman dos nmer~s de n dgitoc cada una y la suma ocupa n 1 digitos, decimos que ha ocurrido un cobreflujo. E l efecto de un sobrdujo sobre la suma de dos nmeros de complemento a 2 con signo se analiza en la w i h n 3-3. Puede detecta= un sobreflujo al inspeccionar los dos 6 1 ~ 0 acarreos s de la suma. Cuando los dos acarreos se aplican a una compuerta OR exclusiva, se detecta el &reflujo cuando la saiida de la compuerta es igual a 1. La configuracin de registros para la implantacih de hardware se muestra en la figura 104. Esta es la misma configuraci6n de la figura 10-1,
Complemen*y
sumador paralelo
que los bits de signo no esqn separados del resto de los registros. Nombramos AC (acumulador) al registro A y EiX al registro B. El bit de la extrema izquierda en AC y BR representa los bita de signo de los nmeros. Los dos bits de signo se suman o se restan junto con los otros bits en e l complernentador y en el sumador paralelo. E i flip-flop V de sobrefluja, se activa en.1 si hay sobreflujo. En este caso,. se descarta el a c a m a ~ , ~ salida. E 1 algoritmo para sumar y restar dos nmeros binarios en representauh de complemento a 2 con si= se muestra e n el diagrama de flujo de Ia figura 10-4. La suma SE obtiene a l siimar el contenido de A C y BR (incluyendo sus bits de signo). B 1 bit de sobreflujo V se activa en 1 si la OR exclusiva de los dos iiltimos acarreos es 1). y en casa contrario s e desactiva aO . La operacidn de resta se logra al sumar el contenido de AC al complemento a 2 de M, Tomar d c~mplemento a 2 de BR tiene el efecto de cambiar un nmero positivo a negativo y viceversa. Debe verificarse si ha ocurrido un sobreflujo durante esta operaci6n porque los dos nmeros sumados podran tener el mismo signo. E l programador debe recordar que, si ocurre un sobreflujuI aparwaA un resultado errSm en el registro AC.
excepto
Al comparar este algoritmo c o n su contraparte de magnitud con signo, notamos que es mucho m4s sencillo sumar y restar nmeros si se mantienen kis nmeros negativos en su representacidn de complemento a 2 . Por esta
r d n , las computadoras adoptan esta representacidn, en lugar de la de magnitud c o n sipo, que nos resulta m8s familiar.
23
19 -
10111 x 10011
Multiplicando Multiplicador
10111
o m +
00000
10111
Producto
Cuando s e efecta la multiplicacin en una computadora digital, es conveniente cambiar un poco el proceso. Primero, en lugar de proporcionar registros para almacenar y sumar en forma simultnea la misma cantidad de nmeros binarios que la que hay en el multiplicador, es conveniente
propordonat un $rimador para la suma de s61o dos nmeros binarios y acumular sucesivamente los productos parciales en un registro. Segundo, en lugar de ejecutar un corrimiento del muItiplicando a la izquierda, el producto parcial se morre a la derecha, 10 qpe & como resultado ia colocacibn del producto parcial y del mulfiplicando en las posiciones relativas requeridas. Tercero, -do el bit correspondiente al multiplicador es O, no hay necesidad de silmar todos los nmeros O al producto parcial porque esto no alterarh su valor. La chuiteria para la multiplieaciSn consiste en el equipo que ce rnuestra en i a figura 10-1 ms dos registros. stos dos registros junto con los registros A y B se muestran en la figura 10-5, BI multiplicador se almacena en el registro Q y su s@o en Q ,E l cbntador secuencia1 SC se inicializa al phcipio en un nmero igual a la cantidad de bi! en el multiplicador. El
e,
contador se d e c m n t a mediante 1 despu4s de formar cada producto parcial. Cuando el contenido del contador llega a O, ,se forma el producto y d proceso s e detiene. A l principio, el multiplicando e s a en el registro B y el multipcador en Q . La suma de A y B forma un producto parcial que se transfiere al' registro EA. E i praducto parcial y e l muitiplicador se recorren a la derecha. Este corrimiento se representar4 m e d i t e el enunciado shr EAQ para designar el corrimiento a la derecha que se muestra en la figura 10-5. El bit menos significativo de A se recorre a la posicin m8s significativa de Q, el bit de 4 . - E se recorre dentro d e n l ap'bsiein mbs sigriificativa de A, y O se recorre m dentro de E. Despues del corrimiento, un bit del producto parcial hace lo - -G u d s m o dentro de Q,xecorriendo los bits del multiplicador una posicin a la derecha. De esta manera, e l fiip-fiop a la extrema derecha en el registro Q w d representado mediante Qw contendr2i el bit del rnultiplicador, el mal ea el que debe inspeccionarse despues.
'*
O
* F
5 '
B, y Qw respectivamente. Se comparan los signm y A y Q se activan para que correspondan al signo del producto, IwF ya que se almacenar un producto de doble Longitud en los registros A y Q. Los registros A y E se borran y el contador -m&l (SC) se inicializa en un ntmero igual a la cantidad de bits del multiplicador. Aqui wamos Y' mnoidemndo que los operandm se tmnsf~ren a los registros de una unidad de lh memoria que tiene palabras de n bits. Como un operando debe almacenaSus signos correspondientes estdn en
'La figura 1 0 4 es un diagrama de flujo del algoritmo de multiplicaci6n en "' hardware. Al principio, el multiplicando est en B y el multiplicador en Q.
Alg[~rtmo de hardware
consistir en n - 1 bits. Qespu&s de l a iniciailiza~ib~ se prueba el bit de orden inferior del multiplicador en Qa. S i es un 1 , el multiplicando en 8 se suma al producto parciai p-te en A, Si es un O, no ee hace nada. Dsspus, se ejecuta un commiento a la derecha en el registroJAQ una ~ez, para formar el nuevo producto pareial. Se decrementa ei contador secuencia1 en 1 y se comprueba su nuevo valor. Si diferente de O, el proceso se >repitey se forma un nuevo pxoduct~ p a h l .B1p m c se ~ detiene ~ mando SI = O. Ntese que el producto parcial formado en A se recorre d e n b de Q un bit a la vez y, eventualmente, sustituye al multiplicador. El pducta*finalest6 disponible
en A y Q , donde A contiene )os bib mas significativos y Q contiene los bits menos significawos. El ejemplo nmbrico anterior se repite en la tabla 10-2 para hacer m8s claro eI pracesa de mdt~plicacibn con hardware. El procedimiento sigue los pasos delineados en la tabla de flujo.
-B.LA
10-2 EjempIo numrico para multiplicador binario
'.
MultiplIcaduren Q Qa= 1; E u m , E Primer producto pardal 'Etac01 EAQ a l q derecha Q. = 1; sumar B -doproaucto . Recorrer EAQ a la!derecha Qa = @RecorrerEAQaladefecha Q, = O; Recorrer EAQa laderecha
Q.=l;mmarB. Quintopd~parciaI &mmx EAQ a la derecha Prod~ct~ final en AQ = 0ll01i010l
Aigoritmo de multiplicacibn de Booth El al8oritmo de Booth proporciona un procedimiento para multiplicar enteros binarios en representaci6n de complemento a 2 con signo. Opera con base en que las series de nmeros O en el multiplicador no requieren suma, sino &lo corrimiento y ue una S& de digitos 1 en el multiplicador de una 1 ponderacin de bit de 2 a una ponderaci6n T puede katarse como 2 2m. Por ejemplo, e l nmero binario O01110 (+14) tiene una serie de digitos 1 de $ 2' (k = 3, rn = 1). E i n~mer~i puede como 2h1 - 2"' = 2 ' -' 2 = 16 - 2 = 14. Por l o tanto, I a multiplicacin M X 14, donde M es el multiplicando y 14 el muitiplidr, ppuede d i z a como ~ M X 2 ' - M x 2'. Como d t a d o , e l producto puede obtenal ejecutar el corrimiento del multiplicando binaro m cuatro veces a la izquierda y cesta una vez M recorrido a la izqukda: Como en todos los q u e m a s de multiplicaci611,el aigoritma de Booth r e q u i e un examm d losqbits del multiplicdor y ejecutar un corrimiento del producto patciaI. Antes del corrimiento, puede sumarse el muItip1icando al producto parcial, restarse.odejario s i n cambio, de acuerdo con las siguien-
-te6
1. El multiplicando se resta del producto parcial cuando se encuentra el primer 1 menos swcativo en una serie de digitos 1 en el
multiplicador.
2 El multiplicando se suma al producto parcial cuando se encuentra e l primer O (siempre y cuando exista un 1 anterior) en una serie de
dgitos O en el multipIicador. 3. E I producto parcial no cambia cuando el bit multiplicador es idnt i c o al bit multiplicador anterior.
El algoritmo funciona para multiplicadores positivos o negativos en repmtaei6n de complemento a 2 Esto se debe a que un rnultiplicador negativo temtixia c m una serie de dgitos 1 y a que la Ciltima operacidn ser una resta de la ponderaci6n adecuada. Por ejemplo, un multiplicador igual a -14 se reprem~taen complemento de nlmeros 2 como 110010 y se trata como -z4 + 2' - 2' = -14. La implantaddn de hardware del algoritmo de Bmth requiere la configuracin de registros que se muestra en la figura 10-7. Esto es similar a la figura 105, excepto en que los bits de signo no estn separados de1 resto de los registros. Para mostrar esta diferencia, renombrarnos los registros A, B y Q,como AC, BR y QR, respectivamente. Q, representa el bit menos significativo del multiplicador en el registro QR. Se conecta un flip-flop extra Q , , a Q R para facilitar urm ddble hspecci6n de bit del multiplicador. El diagrama de flujo para el algoritmo de Bwth se muestra en la f i r a 10-8. AC y el bit extra QM1se inicializa a O y el contador secuencia1 SC se inicializa en un niimero n, igual a la cantidad de bits en eI rnultiplicador. Se inspeccionan l o s dos bits del multiplicadar en Q,y en QW1.Si los das bits son iguales a 1 0 , significa que se ha encontrado el primer 1'en una serie de ellos. Esto requiere una resta del multiplicando del producto parcial en AC. Si los dos bits son iguales a 01, significa que se encontr el primer O en una serie de
Figura 10-7 Hardware para el algosirno de Booth.
368
Multiplicar
Multiplicando en BR
C-)
Figura 10-8 signo.
SECCI~N1@3
Algoritmos de multiplicacin
369
ellos. Esto requiere la suma del multiplicando al producto parcial en AC. Cuando los dos bits son iguales, el producto parcial no cambia. No puede ocurrir un sobreflujo porque la suma y resta del multiplicando siguen una a la otra. Como consecuencia, los dos nmeros que se suman siempre tienen signos opuestos, una condicin que excluye un sobreflujo. El siguiente paso es recorrer a la derecha el producto parcial y el multiplicador (incluyendo el bit Q,,+3. Esta es una operacibn aritm6tica de corrimiento a la derecha (ash) que recorre AC y QR a la derecha y deja sin cambiar el bit de signo en AC (vase la seccin 4-6). El contador secuencia1 se decrementa y el ciclo computacional se repite n veces. Un ejemplo numrico del algoritmo de Booth se muestra en la tabla 104 para n = 5. Presenta la multiplicacin paso por paso de (-9) X (-13) = + 117. Ntese que el multiplicador en QR es negativo y que el multiplicando en BR tambin lo es. El producto de 10 bits aparece en AC y QR y es positivo. El valor final de Q,+l es el bit de signo original del multiplicador y no debe tomarse como parte del producto.
TABLA 10-3 Ejemplo de multiplicacin con el algoritmo de Booth
1 O 1 1 O 1
Inicial Restar B R
ashr ashr
Sumar B R
ashr ashr
Restar B R
ashr
Arreglo multiplicador Comprobar los bits del multiplicador uno a la vez y formar productos parciales es una operacin secuencial que necesita una secuencia de microoperaciones de suma y corrimiento. La multiplicacin de dos nmeros binarios puede hacerse con una microoperacin mediante un circuito combinatorio que forma los bits del producto todos a la vez. Esta es una manera rpida de multiplicar dos nmeros porque slo necesita el tiempo para que las seales se propaguen a travs de las compuertas y formen el arreglo de multiplicacin. Sin embargo, un arreglo multiplicador requiere una gran
cantidad de compuertas y, por esta d n , .no resut6 costeable hasta el d e d o de los circuitos integrados.
Para observar c6mo puede implantarse un arreglo multiplicador con un c i ~ u i t o combinatorio consideremos la multiplicaci6n de das nmeros de 2 bits, como se muestra en la figura 10-9. Los bits del mu1tiplicando son bf y & los bib del,multiplicadoi!son al y a. y el producto es CH~CO. El primer producto parcial se fonna al multiplicar s10 por blb& La muitiplicaci6n de das bits y b, produce un 1 d los dos son dgitos 1 ; de otra manera produce un O. Esto es idhtico a una operacih A i N D y puede loparse con una compuerta AND. Como se muestra en el diagrama, e1 pI;mer producto parcial se foma mediante dos compuertas M. El segundo producto parcial se forma al multiplicar al por bxboy se korre una posicihn a la izquierda. Los dos productos parciaies se suman con dos circuitos semisumadores (HA). Por lo general, hay ms bits en los productos parciales y ser necesario utilizar sumadores completos para producir la suma. N6tese que el bit menos significativo del producto no tiene que seeomc un s m d o r porque estA formado por la salida de la primera compuerta AND.
E3
c2
cl
X 2 bita.
"""
Puede construizsse un muJkiplicador binario de circuito combinatorio eori m s b h en una forma h i l a r . A un bit del multiplicador se aplica la funcin AND con cada bit del multiplicando en tantos niveles como bits ~ieexistm en el multiplicador. La salida binaria en cada nivel de las compuertas ) b A N D se suma en paralelo con el producto del nivel anterior para -formar un nwyo,p d w b .parcial. E i 61th~ nivel da el producto. Para los a-iflfm bits del mdtipbador j y h bits del multiplicando k necesitamos j x k
m
compuertas AND y-Cj sumadow de.$& para &tener un producto de j + k bik Coma d o ejemplo,, mnsidesemos m chuitb md tiplicador que m d t i p h un n h r o bharb de cuatro bits con un nmero de tres bib. Repxle~~ntem el multiphando mediante b&&lbo y d,multiplicador mediant e a f l y p Como k = 4 y j = 3, naesitamoe 12 compuertas AND y doe sumadores de4 bib p m ,lograr prudwto de siete bita. E l diagrama lgico del multiplimdox se muesm en la fipca 10-10.
10-4
Aigoritmos de divisin
La divhi6n de dos nmeros b i r i o s de punto fijo en representacin de magnitud m signo se hace con papel y lpiz mediante un proceso de
operaciones de comparar, corrimiento y resta sucesivas. La divisin b i r i a es m6s sencilla que i a divisi6n decimal parque los dgitos del cociente son 1 o O y no hay necesidad de estimar &tas veees cabe el dividendo del producto parciaJ. dentro dd divisor, E l proceso de divlsin se ilustra mediante un ejemplo numrico en la figura 10-11. El divisor B consta de cinco bits y el dividendo A de diez bits. Los cinco bits ms signX1cativos del dividendo se comparan con e l divisor. Como el n h e r o de S bits es menor que El, probamos de nuevo al tomar los seis bits mds significativos de A y comparar este nh-mo con B. El nhmm de 6 bils m mayor que B, por l o que colocamos un 1,para e1 bit del d e n t e en i a sarta pici6n arriba del dividendo. Despub a recorre e l divisor una vez a la derecha y se resta del dividendo. La diferencia se denomina residuo parcial porque la divisin podb habeme detenido aquf para obtener un cociente de 1 y un miduo igual al residuo parcial. El prmesb contuiaa al comparar un residuo parcial con el divisor. Si d residuo parcial es mayor o jgual que e l divisor, el bit del cociente es igual a 1. Despus se recorre el divisor a l a de& y se resta del residuo parcial. Si el miduo parda es menor que el divisor, el bit del cociente es O y no se neeecita una resta. En cualquier caso el divisor se recorre una vez a la derecha. Ndtese que el resuhado proporciona un cociente y un residuo.
II
Jal
Dividendo A
5bitseA<B,dcltetiene5bita 6bibdehrB Recrirrer B a la d d y regtar; introducir 1 e nQ
R&d~ocB;n~ucirOenQ;rrcwrerBabdcxefha
Residuo2 S
R d d w Rnal Divisor Ejemplo de divisih binatia.
bcm&Bab~ymtux;introducir~enQ Rgiduo < B;introdudrOmQ
knpluit.ei6n de Hardware para dato; de magnitud con signo Cuando = efecta la divipi6n en una computadora digital, es conveniente cambiar el proceso ligeramente. ~n lugar de ejecutar un corrimiento sobre el divisor a la derecha, e1 dividendo o residuo parcial se recorre a la izquierda, con lo que se dejan los dos n b e r o s en h posicin relativa
requerida. La resta puede loparse a l sumar A al complemento a 2 de B. h p d s la informacin acerca de las magnitud= relativas est disponible a partir del a w m nal. L a c'lreuiteda para implantar la operaEi6n de divisin es iddntiea a l a que se requiere para la multiplicacin y constas de ius componentes que se muestran en h figura 10-5. Ahora se ejecuta. un commiento a la izquierda d registro EAQ cuando se inserta un O en Q, y se pietde e1 valor anterior de E. El ejemplo numrico se repite en la figura 10-12 para hacer mais c b el proceso de divisi6tr p"puestci.~El divisor se almacena en d registro B y el dividendo de dable IongituB se alniaeena en los regis- A y Q El dividendo se recorre a la izquierda y el divisor se resta al sumar su valor de complemento a 2 . La informacin acerca de la magnitud relativa est dispe nible en E. Si E = 1 , s i g d b que A 2 B. Un bit de cociente 1 se inserta en Q,, y el residuo parcial se recorre a la iquieda para W t i r el proceso. Si E = O, esto significa que A < B por lo que el cociente en Q, s e queda como O (insertadv durante e l corMento). Despus el valor de B se suma para
Figura 1 W Ejemplo de divisi&n& b
con hardware digital.
DivisorB.= 1,000.1,
8 + 1=01111
DMdenda B
A l MQ Sqmr B +1
E=l
shl EAQ
aunar$ + 1
Sumr B + 1
En 1
m Q n = l
EAQ
E = D;'dejarQ=O Sunriir 8
Resta&t*siduo Bh' U Q SmqrS + X
E= 1
m i z a r Qm= 1
d,MQ
&imatB+i
E=Od+Qn=o Sumar B
RWF
-en@
residuo NoconaidemE k i d m en A:
-,
restablecer el residuo p d l en A a su valor previo. El residuo parcial se recorre a l a izfierda y d p n se repite una vez m68 hasta que se forman todos los bits del miente. Ntese que, mientras el residuo parcial se kcorre al a izquierda, tambin se recorren los bits del cociente y, despus de cinco corrjmientw, el d e n t e esti m Q y el residuo final en A. Antes de mostrar el algoritmo en forma de diagrama de flujo, tenemos que considerar el signo del resultado y una posible condici6n de sobreflujo. E i signo del cociente se determina a partir de los sipm de1 dividendo y del divisor, S i los dos signos son iguales, el signo del cociente es mAs. Si son diferentes*el signo es menos. El signo del residuo es igual al signo del
dividendo.
Sobreflujo al dividir
La operacicin de divisibn puede dar como resultado un cociente con un sobrefiujo. Esto no es un problema d o se trabaja con papel y Upiz, pero es crtico cuando la operacibn se implanta con hardware. Esto se debe a que la longitud de los registros es finita y no contendri un nSimero que exceda la longitud estndar. Para observar esto, consideremos un sistema que tiene registros de 5 bits. Utiharnos un registro que contenga el divisor y dos registros para contener al dividendo. A partir del. ejemplo de la figura 10-11, notamos que d cociente estar& formado de seis bits si b s c h bits m s significativos del dividendo constituyen un nSunero mayor del divisor. El cociente se va a almacenar en un registro estndar de 5 bits, por lo que el bit de sobteflujo requerir un flipfhp ext.ra para almacenar el sexto bit. Esta condicin de sobreflujo al dividiu d e b evitarse en operaciones de computadora normales, porque todo el cociente ser4 demasiado largo para transferirse a una unidad de memoria que time palabras de longitud esthdar, esto es de la misma longitud que los registros. Deben incluirse provisiones para asegurar que se detecte e s t a condici6n ya sea por la circuitera o programaci6n de la computadora, o en una combinaci6n de las das. Cuando el dividendo es dos veces ms largo que el divisor, puede definirse k condicidn para un sobrefiujo de l a manera siguiente: ocurre una condicin de sobreflujo al dividir s i la mitad de los bib de orden superior del dividenda constituyen un nmero mayor que o igual al divisor. Otro problema asociado con la divisibn es que debe evitarse UM dhisibn entre cero. L a co$icin de sobreflujo al dividir tambih cuida esta condici6n. Esto ocurre porque cualquier dividendo ser4 mayor o igual al divisor, el cual es igual a cero. Por lo general, se detecta la mndici6n de wbreflujo cuando se activa un flip-flop -al. Lo llarnacemos un flipflop de sobreflujo al dividir y lo titularemos DVF. La apadci6n de un sobreflujo al dividir puede manejarse de diveraas maneras. En d p a s computadoras, es reqponsabiiidad de los programadocomprobar si D W est activo despus de cada instrucci6n de dividir. Despus se puede llamar a una subrutina que tome una medida c o d v a ,
como poner una nueva escala a los datos para evitar el sobreflujo. En algunas computadoras antiguas, la aparici6n de un sobreflujo al dividir detenia l a computadora y esta condicin se denominaba d e t m d n al dividir. Detener la-operacinde la computadora no es recomendabl&porque consume tiempo. E n la mayora de las computadoras el p r m ~ e n t o se basa en proporcionar una solicitud de interrupcin cuando M establece DVF. La intempcibn hace que la computadora suspenda el programa achiaI y se ilame a u m rutina de servicio que tome una medida correctiva. La medida comctiva m& comfm es quitar d programa y escribir un mensaje de error explicando la M6n por la que nocpdra completarse el programa. Despus es responsabilidad del usuario que escribid ei programa volver a fijar la escala de los datos o tomar cualquier otra medida correctiva. b mejor manera de evitar un sobreflujo al dividir es usar datos de punto flotante En la d 6 n 10-5 veremos que un desbordamiento al dividir puede manejarse con mwha d e z si los nmeros e s a en su represmtadbn de punto flotante.
Algoritmo de hardware
El algorimo para dividir en hardware sis muestra en el diagrama de flujo de La f g w a 10-13.E l dividendo est en A y Q y d divisor en B. El signo del resulta& se transfiere a CS, para que sea parte del'cociente. Se inicializa una constante dentro del contador secuencia1 S@ para especificar l a cantidad de bits en el cociente. Como en la mdtiplicaci&n,consideremos que los operandos se transfieren a los registras de una unidad e memoria que tiene palabras de n bits. Como un operando debe almacon su signo, se ocupar para el signo un bit de la palabra y la magnitud mnstard de n - 1 bits. Se prueba una condici6n de sobreflujo al restar d divisor en B de la mitad de los bits del dividendo almacenados en A. S i A 2 3, se activa el fip-flop DVF del sobreflujo al dividir y la,operacibn se termina en h a prematura. Si A 3, no ocurre un sobreflujo al dividir, por lo que el valor de1 dividendo se restablece al sumar E a A. La divigih de las magnituh comienza al ejecutarse un corrimiento del dividendo en AQ a la izquierda con el bit de orden superior recorrido a E. Si el bit recorrido dentro de E 1, sabemas que EA > B, por 10 que EA consta de.un d@to 1 seguida de n 1 bita mientras que B consta &lo de n - 1 bits. En este caso, B debe restarse de EA y debe insertarse un 1 eri Q, para el bit del cociente. Como e l registro A no alcanza el bit de orden superior del dividendo (e1 cual m t en E), s u valor es EA - r " ' . Sumar este valor al complemento a 2 de'$ da como wdtada:
Operacin diiHdir
nlvfdir magnltudw
L
SC+n
Q , -4e4
-1
ghl
EAQ
=1
lr
=o
EA+A+~+I
EA+A+8+1
A+A+B+I
=1
=O
A>B
A<B
1 f
tf
Y EA + A + & DYF+ 1
YA>B
Ei4*A+B
DVFtO
&+r
t
A
4
SC
SCtSC- 1
=O
-7L & -
+o
en 8,ei d u o
.Si la operaci6n de corrLninto a la izquierda inserta un O dentro de E, w resta el divisor al sume su valor de ,complemento a 2 y el acarreo se transfme a E. S i E = 1, significa que A 2 B, por lo tanto Q,, se activa en 1. Si E = O, significa que A B, y el nmero original e =tabla al sumar B o A. En el ltimo caso, dejamos un O en Q, (el O w insert durante e1 corrimiento). &te proceso se repite una vez ms con e l registro A que contiene el residuo parcial. -u& de n - 1 veces, la magnitud del cociente se fonna en el registro Q y el rksiduo se encuentra en el registro A. El signo del
377
cociente es@ en Q, y el signo del residuo en 4es igual al signo origind del
dividendo.
Otxos aigorlhnos
&toda
de
~fahiecitrrknto
&todo
E i mdtodo de hardware que r e acaba de describic se denomina mdtodo de wsfableeinihto. b razdn de este nombre es que se mtablece el residuo
pardal al sumar el divisor a i a diferencia negativa. Hay disponibles otroe dos m6todm para dividir nmefos. El d t d o de mrnparadn y el m h d o de m r&f&k&kzfo, En el d t o d o de cmmparaa6nl A y B s e comparan antes de la operaci6n de resta. Despus, s i A r B, se resta B de A. S i A < B no se hace nada. El residuo parcial se recorre a la izquierda y Ios nifmeros se vuelven a comparar. La comparaci6n puede determinarse antes de la resta al inspeccionar el acarreo final del sumador paralelo antes de su transferencia al r e g i s t r o E. En el metodo de no m establecimiento, B no se suma si la diferencia es negativa pero, en lugar de eso, se recorre a ia izquierda la diferencia negativa y despus se suma B. Para apreciar por qu es posible sta, concidexlemos el caso en el cual A 2: B. A partir del diagrama de flujo en h figura 9-11, notamos que las operadona ejecutadas son A - B + B; esto es B se resta y despus se suma para restablecer A. Durante el siguiente ciclo, este nmero se recorre a la kquierda (o se multiplica por dos) y B ce vuelve a restar. Esto da 2(A 0 + B) - B = 2A - B. Este d + d o s e obtiene en ei mgtodo de no restablecimiento al dejar como esta A - B. En el siguimte ciclo, el nmero s e recorre a la izquierda y B se s m para dar 2(A - B) + B = 2A - B, lo cual es igual que el ejemplo anterior. Por lo tanto, en el m&todode no restablecimiento, B se resta si el vaior anterior de Q,era un 1, pero se suma si el valor anterior de Qnera un O y no se quiece un resfabbiertto del residuo parcial. Este proceso ahorra el paso de suinar e l divisor si A - B, pero quiere una 16gica de controI especial para mordar el resultado anterior. La primera vez que se morre d dividendo, debe miam B. Tambih, si el atimo bit del cociente es O, residuo parcial d e k x e s t i i b h para obtener el residuo parcial correcto.
&
enum'adu de
dechneidn
pmto flotante. Aunque el'M o de programas es m8s caro, el que R incluye en la mayoda de las computadom es mucho ms eMmk que el mtodo de ptoa.ramas y la QKuiWa de punto flotante slo se omite en las muy pequeas.
'
Consideracionesbsicas La reprwntacih-de datos de pmto flotante se introdujo en la seccin 3-4. Un nmera de puto flotante en los .registros de la computadora consta de dos partes: una mantisa m y un exponente e. h s dos partes r e p m t a n un n b e m obtenido de multiplicar m v e m una iafz r elevada al valor de e; par l0Jtanto:
-.
-.--T.
qwbwros h mantisa pwde ser una fraccioii o n 'itero. ia posicidn del punto de base y el valor de la base r se asumen y no se inciuyen en los registros. Por ejemplo, consideremos una t"prsentaci6n de fracci6n y una raz de 10, el con m = 53725 y e = 3 y n i u n a dechal 537.25 se r e p m t a en un se interpreta parsi t'epmsmtoir el nmero de punto flotante: .53m x 109.
' l a
m x f m&-
dc
Un nfimero de punto flotante se normaliza si el primer nmero m8s si@ficativo de la mantisa es diferente de cero. Re esta manera, la mantisa contiene la entidad mxima posible de clgitps significativos. Un cero no puede nomalizarse porque no tiene un d@to diferente de cero. Se T e p e senta en punto Botpnte mediante Lodos O en La mantisa y en e l exponente. La repmsentaci6n de punto flotante aumenta e l rango de nmeros que pueden alojarse en un regrstro dado. Concideranos una computadora con palabras de 48 bits. Como debe reservarse un bit para el signo, eI rango de los mmeros ente. de punto flotahte ser&1(F- 11, lo cual es aproximadamente. +1014. Los 48 bits pueden usarq para rep-tar un nmero de punto flotante con 36 bits para la mantisa y 12 para e1 exponente. Al considerar la repmtaci6n de fracci6n para la mantisa y a l tomar 10s dos bits de signo en consideraci6n, e l de niimeros que pueden alojarse es:
&te n-em se deriva de una fracci6n que contiene 35 n~meros1, un expon&& de 11 bit6 (excluyendo"susigno) y el hecho de que 2" - 1 = 2047. E I nmep m8s grande que puede alojarse S aproximadamente.1 0 ' 7 el'cual es un n m muy granida La mantisa puede alojar 35 bits [excluyendo el signo) y si se considera como un entero puede almacenar un nmero tan grande cdmo ( p - 1). Esto es aproximadamente igual a lo1', el cual es equivalente a un nmero dechal de diez dgitos.
379
Las computadoras con longitud- de palabras m s cortas utilizan dos pdabras para rep-tar un nmero de.punto f l o t a n t e . Una micm wmputadora de 8 bits puede utilizar cuatro palabras para representar un ndmera de punta flotante. Se reserva una palabra de ocho bits para el exponente y los 24 bits de las otras tres palabras se utilizan para la mantisa. Las op-er&neg aritmficas con ni'tneros de punto flotante son mis campUcaas.,que con niuneras de punto fijo, y su ejmci6n requiere ms tiem~oy un hardware ms complejo, Fara sumar o restar dos nmeros, primero es necesario alinear e l punto de .base, porque las partes de los
o m8s
exponentes deben v o l v a iguales antes de sumar o restar las mantisas. E l alineamiento se ejecuta al alinear una mantisa mienhs se ajusta su expw nente, hasta que es igual al otro ,exponente. Consideremos la suma de los siguientes n6meros de punto flotante:
+ .lS0000 x 10-'
Es necesario que los dos exponentes wan iguales antes de que puedan sumarse las mantisas. Podemos recorrer el primer nmero tres posiciones a
la izquierda o el segundo nmero tres posiciones a la derecha. Cuando se almacenan las mantisas en registros, el corrimiento a la izquierda produce una perdida de los d g i h s mAs significativos. E l corrimiento a la derecha p d u c e una prdida de b dgib ms ~ L v o sE l . segundo m6todo es preferible porque & l o reduce la exactitud, en tanto que el primer mktodo puede producir un e-, E l pr~edimiento de alineamiento usual es recorrer a la derecha la mantisa que tiene el exponente d s pequefio una cantidad de lugares igual a l a dihmcia entre los exponentes. Despuds de que se hace estu, puede sumarse la mantk:
,
/,
Cuando se su* dos mantisas normalizadas, la suma puede contener un dfgito de sobrefiujo. Un sobreflujo puede col'rregirse con facilidad, al recorrer la suma una vez a la derecha e incrementar el exponente. Cuando se restan dos nheros, el resdtado puede hhtener una mayora de nheros O significativos, como se muestra en el siguiente ejemplo:
significativa de la manb, tiene un s~breujo inziw50. Paxa nomializar un nmero que contiene un sobreflujo inverso, es necesario recorrer l a mantisa a la izquierda y decrementar el exponente hasta que aparezca un digito diferente de cero en 1s primera posicih. En el ejemplo anterior, es necemrio recorrer a la derecha das veces para obtener X lo3. En la mayora de las computadoras, se ejecuta un pmdimienb de nomalizaci6n despub de cada operacibn para asegurar que todos lw resultados est2in en su forma normahada. La multiplicacibn y la divisi611 de punto flotante no necesitan un alineamiento de las mantisas. Puede formarse el p d u c t o al multiplicar las dos mantisa~y sumar los exponentes. La divisi611se realiza al dividir las mantisas y restar los exponen&. Las operaciones ejecutadas con las rnantisas son las mismas que con los nmeros & punto f i j o ,por b que l o s dos tipos pueden compartir los mismos registros y circuitos. Las operaciones ejecutadas con los exponentes son comparar e incrementar (para alinear las mantisas), sumar y restar @ara multiplicar y dividir) y decrementar (para nomalizar el resultado). El e x p nente puede qresentflrse eri cualquiera de las tres formas siguientes: magnitud de * o J magnitud de complemento a 2 con signo o complemento a 3 con signo. Un cuarto tipo de q m t a c i 6 n que se emph en muchas de las computadora~ se conoce como exponente polarizado. En esta representacibn, se eviQ que el bit de signo sea una entidad -arada. L a polarbacin es un n~mero positivo que se suma a cada exponente mientras se forma el nmero de punto flotante, para que internamente todos los exponenles sean positivos. El siguiente ejemplo puede hacer m8s claro @te tipo de representaciones. Consideremos un exponente que vara de -M a 49. internamente, se representa mediante dos *tos (sin signo) al sumarle una polarizaci6n de 50. H registro del exponente contiene el nmero e + 50, donde e es el pxponente real. De esta manera, se representan los exponentes en los registros como nmeros positivos en el rango de 00 a 99. Las exponentes positivos en registros tienen e l rango de nmeros de 99 a SO. La resta de 50 prupocciona los valares positivos de 49 a O. Los exponentes negativos se representan en los registros en el rango de 49 a 0 0 . La mta de 50 proporciona los valores negativos en d rango de -1 a -50. La ventaja de los exponentes polarizados es que &lo contienen n m ras positivos. Por lo tanto, es m8s senciUo comparar su magnitud relativa sin preocuparse por sus signos. Como consecuencia, puede utilizarse un comparador de magnitud para apreciar i a magnitud relativa durante el alineamiento de la mantisa. Otra ventaja es que el exponente polarizado miis pequeo posible contiene slo nmeros 0. De esa manera la representacibn de punto flotante de O ec una mantisa O y el exponente mAs pequeo posible. En h s eje+s anteriores, utiiizamoe niuneros decimal- para mostrar algunos de los conceptos que deben comprenderse cuando se trabaja con
SECCI~N 10s
3 8 ! l
nameMs de punto flotante Es obvib que 1 - mismos conceptos se aplican tambih a lm Mmerqs bhrim. Los dpitmos d&arrollados en esta seccin son para n h m binarioa. La ari&& d k c i r n a l de computadora se analiza en la m i b n siguiente,
'
C o ~ ~ a c i de 6 n registros La confi'gurahn de re!ghtros para operaciones de punto flotante es muy similar a la dmrita para operacioaes de punto fijo. Como %la general, para procesar h s m h s se usan. 1 o miamos ~ regfstros y el mismo sumador para bs operaciones de punto fijo. La diferencia estftba en la manera m que se manejan lbs exponents. La org&aci6n de registros para operaciones de punto fiotante se muestra en l a figura 10-14. Existm res registros, BR, AC y QR.Cada registro & subdivide en dos pattes. Ln parte de la mantisa time los mismos simbolos
de letras rnayCiscub que la repmentaci6n de punto fijo. IA parte del exponente utiliza d smbolo de letra m i n h l a eomspondienk.
Se considera que cada nmero d punto flotante tiene una m t i s a en representacin de magnitud con signo y un exponente polarizado. Por l o tanto, el AC time una mantisa cuyo signo est en A, y una magnitud que est en A. E1 exponente s t A en la parte del' registro r e p m t a d a por el smbolo de la letra a minscula. Rl diagrama muestra en forma explcita el bit ms sigdkativo de A etiquetado mediante Al, El bit en esta p i c i 6 n debe ser un 1 para e l nmero que va a nomializarae. Nbtese que el sfmbolo AC representa todo el registro, esto es, i a concatena96n de A, A y a. D e igualmanere, el registro B R s e subdivide en B,, B y b, y QR en Q, Q y q. Un simiador paralelo suma las dos mantisas y t r a d k e el resultado p* a A y e l a c a r m a E. Para los exponentes se utiliza un sumador paralelo 7 baseparado. Como los exponentes estn pala-dos, no tienen un bit de sipo
distinto, pero se repremtan como una cantidad positiva polarizada. Se considera que los nmeros de punto flotante s q tan grandes que es muy remota la posbihdi?d.deun sobreflujo de exponente, y por esta razbn, no se considera un sobreflujo de exponentes. Los exponentes tambikn s e conectan a un comparador de magnitud que proporciona ires salidas binarias para indicar su magnitud relativa. El n h o de la mantisp 1 tomar8 como Una fraccidrz, para que se considere qqe el ,puntobinario reside a la *uierda de la parte de magnitud. La r e p ~ q t a c i 6 n eritera para punto fiotatrte pmducqciertos problemas en el establ-ento de escalas, duran@ la multiplicacin y la divisi6n. Para evitar es@ problqas, doptamoc una representacin de fracciones. 'rcr Se considera que, inicialmente, I a s nfineros de los registros esten .normaliados. Despus de cada operaci6n arimi&tica, se normalizad el n suItado, Confome ,a B O , todos los operandos de punto flotante que se '*@-q -,mueven de v a la unidad de memoria estan siempre normalizados.
,
--
--JW@
a
'Suma y resta
mlr
Durante la suha o resta, los dos operandos de punto flotante estan en AC y en BR, La suma por diferencia S forma en e l AC. E l algoritmo puede dividirse m cuatro parta consecutivas;
1 . Comprobar l a p-cia
2. Aiinear las mantims.
de ceros.
No puede normalizam un nmero de punto flotante que es cero. Si se u c i a este nWiero durante el c3lcul0, el resuitado tambin puede ser cero. En l u ~ a r de comprobar l a presencia de ceros durante el proceso de normalizaci611,wmprobamos Ios ceros en un principio y, s i es necesario, se termina el p m . Ihbe realizarse el aineamienb de las mantisas antes de su operacihn. Despus de que se suman o restan Ias mantisas, el resultado puede estar sin normalizar. E l procedimiento de nomalizaci6n asegura que el resultado es@ normalizado antes de su transferencia a memoria. El, diagrama de flujo para sumar o restar dos nmeros bmriw de pwto flotante se muestra en la i p a D15, Si BR es igual a cero, se termina opaci6n, y ei v&r ea AC es el resultadotado Si AC es igual a cero, transferirnos el c o n W o & BR a ,4Cy, s is e van a restar los mhems, Micompk g i e n t w su signo. Si ninguna de los nmeros es igual a cero, procedemos a alinear las rrimths. El mrnpqadqr de mapitud conectado a los exponentes a y b proporciona kes .salidas que indican su magnitud relativa. Si los dos exponentes son iguah, pamms a $ecutar Ia operaci6n aritmtica. Si los exponentes son dkentes,,la m a @ b con e l exponente menor se dwplaza a la derecha y s e
SECCI~N 1~
Opraciones aritmt5ticas de
punto flotante
383
'
IL
Figura 1&15
incrementa su exponente. Este pmceso se repite hasta que los dos exponente8
m iguales.
La suma y resta de las dos mantisas es idntica al aigoriho de suma y resta de punto fijo que se present en e l figura 10-2. La parte de magnitud se suma y se resta dependiendo de la operaci6n y de los signos de las dos mantisas. Si murre un sobreflujo cuando se suman las magnitudes, se transfiere al flipflop E. Si E es igual a 1, se transfiere eI bit a A, y todos los otrcis bits de A se re&rren a la -a. &be intrementarse el expcmenk para mankmer e l n W m corredo. En este caso, no puede ocurrir un sobreflujo inverso porque la m a n b original que no se recorri durante el alineamiento ya estaba en una posici6n normalizada. Si se restaron las magnitudes, el resultado ser6 un cero o podra tener un sobreflujo inverso. Si la mansa es cero, todo el nmero de punto flotante en AC se hace cero. De otra manera, la mantisa debe tener al menos un bit que sea igual a P. La m a n b time un sobreflujo inverso si el bit ms significativo en la posicidn Al es O. En ese caso, la mantisa se recorre a la izquierda y se d-enta el exponente. Se comprueba de nuevo el bit m Al y e l prcceso se repite hasta que es igual a 1 . Cuando A, = 1, se normaliza l a m a n h y se completa la yeraci6n.
b
--_
Mdtipliacih La multiplicacin de dos nmeros de punto flotante requiere que multipliquemos las mantisas y sumemos ios exponentes. No es necesaria una comparacin de exponentes o alineamiento de rnantisas. La multiplicacibn de las
manse ejecuta de la misma manera que con e l punto fijo para proporcionar un producto de doble precisi6n. La respuesta de doble precisi6n se utiliza en los nmeros de punto fijo para aumentar la exactitud del producto. En el punto flotante, el rango de la rnantk de precisibn nica, combinado con el exponate, por l o general es lo bastante acertado para que se mantengan &lo nmeros de precisidn nica. Debido a eso, se tomarn juntos la mitad m A s significativa de bits del producto de la mantisa y d exponenk para formar. un pmducto~ de punto flotante de precisibn nica. E l .aIgoritmo de multiplicacin puede subdividirse en cuatro partes:
'
Los pasos 2 y 3 pueden hacerse en forma simuItnea s i se dispone de suma& separados para las mantisas y los exponentes. En la figura 10-16 se muestra el diagrama de f l u j o para la multiplicacin de punto flotante Se comprueban los das operandos para detemiinar s i contienen un cero. Si algn opando es igual a 4 el producto en AC se inicializa
m IM
385
m O y la cyemcibn se temina. S i ninguno es igual a O el proceso contina con la suma deexponentes, El exponente del snultiplicadox est en q y el ssumador est entre los wpomenb a y h Esnwwario mderir, los exponentes de q a a, sumar los dos exponentes y kansferir la suma a a. C m ambos exponwib se pohriFigura 10-16 Multipliuiun d e - n w - m de plinto flotante.
Multiplicar mansa
shl AQ
U'@-
=1
f
i1
386
cwimm~ DIEZ Mhtica de.eomputad~ras zan mediante la suma de u n a constante, h suma de exponentes tendrii doble polariaaci6n. El exponente polahdo mrikto para el producto se obtiene al restar el n h e m de pab de la suma. .. La mulkiplicab6n de las mantkshsehace como en el caso del punto fija, ron d producto residiendo en 34 y Q.No puede ocurrir un sobreflujo durante Ia rnultiplicaci6r1, par lo que no es necesario comprobar.
N
El producto puede tener un sobrefiujo inverso, por lo que se comprueba el bit d s sipificativo m A. S i es 2, el producto ya est normalizado. Si es O, se recorre a la izquierda la mantisa en AQ y s e decrementa el exponente.
Nbtese que d o se necesita un corrimiento de nomlizacibn. El multiplicador y el multiplicando estaban nomializados originalmente y contenan fracciones. E l operando normaIizado mAs pequeiio es 0.1, por lo que el producto m& pepueio posible es 0 . 0 2 . Por b tanto, slo puede presenkuse un O en el extremo significativo. Aunque .la mitad de orden inferior de la mantisa est en Q, no la tilizamos para el producto de punto flotante. %lo se toma el valor de AC omo producto.
Divisi6n
La divisi611 de punto flotanie requiere que se resten los exponentes y se dividan las mantisas. La divisibri de mantisas se hace como en e l punto fijo, excepto que el dividendo tiene una mantisa de precki6n nica que se coloca en AC. Recuade que el dividendo de la mantisa es una fraccin y no un entera. Para representar enteros, un dividendo de precisin nica debe colocarse en el registro Q y debe borrarse el registro A. ~ Q S ceros de A estin ai a i z y d a del punto binario y no son significativos. En representaci611 de fracciones, se coloca un dividendo de pmisin nica en el. registra A y se b m a d registro (2. Las ceros de Q e~tn-ah &echa del-p-mo binario y no son significativos. La prueba del sobreflujo al dividir es igual que en la representacidn de punto fijo. Sin embargo, con nmeros de punto flotante, el sobreflujo al dividir no implica problemas. S i el dividendo es mayor que o igual al divisor, se recorre a la derecha la fraccibn del dividendo y su exponente se incrementa m 1. Para operandos normalizados esta es una operacibn suficiente para asegurar que no ocurrirA un sobreflujo al dividir la mantisa. La operaci6n ankrior se denomina alineamiento del dividmdo. La divisi611de dos ntmeros de punto flotante normalizados dar camo multado un d e n t e normalizado, siempre y cuando se realice un alineamiento del dividendo antes de la divisih. Por b tanto, a diferencia de otras operaciones, el cociente que se obtiene despus de ia divisibn no necesita una normalizaci6n. El algoritmo de divisi611puede subdividirse en cinco partes:
1 . Comprobar la existencia de ceros. 2 Inicializar los registros y evaluar el signo.
alineamiento de1
dividendo
En la figura 10-17 se muestra el diagrama de flujo para la divisi6n de punto flotante. Se comprueban los dos operandos para saber si hay ceros. Si e1 divisor es cero, indica uh intento -pr dividir entre cero, que e s una operaci6n ilegal. Se termina la operacibn con un menaaje de error. Un proeedimienko alternativo sera establecer e l cociente de Q R en el n-ctmero ms positivo posible ( s ie l dividendo es positivo). O el nmero ms negativo posible (si el dividendo es negativo). Si ei dividendo en AC es cero, el cociente en Q R se hace cero y termina la ~peracibn. Si b s operandos no son cero, avanzamos para determinar e1 signo del cociente y almacenarlo en Qs, El signo del dividendo en A, no se afecta para que sea el signo del residuo. E 1 registro Qtse borra y el contador secuenciaI SC se inicliza en un nmero igual a La cantidad de bits en e l cociente. El alineamiento del dividendo es similar a h prueba del sobreflujo al dividii h operaci6n de punto fija El aheamiento adecuado requiere que el dividendo de la fraecihn sea menor que el divisor. Se comparan las dos fracciones mediante una prueba de resta. El acarreo en E deterpiina su magnitud relativa. Se restablece l a fraccibn del dividendo a su valor original al sumar el divisor. Si A 2 B, es necesario recorrer a la derecha A una vez e incrementar el exponente del dividendo. Como ambos operandos estn normalizados, este alineamiento asegura que A c B. Despub, se resta el exportente divisor del exponente dividendo. Como ambos exponentes estaban polarizados originalmente, la operacin de resta proporciona la diferencia s i n el polo. Despub se suma e l polo y e l resultado w z transfiere a 4 , porque el cociente se fom6 en QR, Se divide la magnitud de las mantisas como en e l caso del punto flotante. Despus de la operaci6r1, e l cociente mantisa reside en Q y el residuo en A. El miente de punto flotante ya est normalizado y reside en QR. El exponente del residuo debe ser igual al exponente del dividendo. El punto binario para la mantisa residuo se encuentra a (n - 1) posiciones a la izquierda de A,. Puede convertirse el residuo en una fraccibn normalizada al restar n - 1 del exponente deI dividendo y a1 recorrer y demementar hasta que e l bit en Al sea igual a 1. Esto no se muestra en el diagrama de flujo y se deja codio ejercicio.
m..,
C'
389
b s nmeros decimales de entrada en binarios, para ejecutar todos los - clculos con nmeros binarios y convertir el resultado en decimal. Este puede ser un mtodo eficiente en aplicaciones que requieran una gran cantidad de clculos y una cantidad relativamente ms pequea de datos de . entrada y salida. Cuando la aplicacin solicita una gran cantidad de entradas - y salidas y un nmero relativamente ms pequeo de clculos aritmticos, es- nids conmiente hacer la aftm6tica Hrterna de manera directa con los nmeros decimales. Las computadoras capaces de ejecutar aritmtica decimal deben almacenar los datos decimales en forma de cdigo binario. b Despus se aplican los nmeros decimales a una unidad aritmtica decimal ! tI capaz de ejecutar microoperaciones aritmticas decimales. a Las calculadoras electrnicas utilizan invariablemente una unidad arit1 1 mtica decimal interna, debido a que las entradas y salidas son frecuentes. No parece existir una razn para convertir los nmeros de entrada del teclado en binario y volver a convertir los resultados exhibidos en decimales porque este proceso requiere circuitos especiales y tambin necesita ms tiempo para ejecutarse. Muchas computadoras tienen hardware para clculos l o aritmticos con datos binarios y decimales. Los usuarios pueden especifi-, ' car mediante instrucciones programadas si desean que la computadora ejecute los clculos con datos binarios o decimales. Una unidad aritmtica decimal es una funcin digital que ejecuta . microaperaciones decimales. Puede sumar o restar nmeros decimales, por 1! lo regular, al formar el complemento a 9 o 10 del sustraendo. La unidad , ,, acepta nmeros decimales codificados y genera resultados en el mismo cdigo binario adoptado. Una unidad aritmtica decimal de una sola etapa t . consta de nueve variables binarias de entrada y cinco variables binarias de salida, porque se necesita un mnimo de cuatro bits para representar cada dgito decimal codificado. Cada etapa debe tener cuatro entradas para , un dgito sumando, cuatro entradas para el otro sumando y un acarreo de . ,.8lU#. 1 .L. ' " entrada. Las salidas incluyen cuatro terminales para el dgito de suma y uno para el acarreo de salida. Por supuesto, existe una amplia variedad de '' configuraciones de circuito posibles, que dependen del cdigo utilizado para I I , , ~ representar los dgitos decimales. .
-- --
11
++
1,)'
'lA'
J.)-
-,
. , ,n
'r
lb
5..
'S,
' I
11'
J .
1 1 ~ 1I ,
11
'
1 ,
,rl
l .
rr
17.2
"
I 4 I
Y
' 4
" "
VL
'l-
tb
Consideremos lb '&%unaaritmtica dos dgitos decimales en BCD, junto con ." "!"' -*11 un posible a c a r d de una etapa bnterior. Como cada dgito de entrada no , I J,- , , t , , . excede de 9, la d&a de salida n6'6uede ser mayor que 9 + 9 + 1 = 19, el .,l .. I~ 1 " 1 en la suma es un acarreo de entrada. Supongamos que se aplican dos ' h1 ' * dgitos BCD a un sumador binario de 4 bits. El sumador formar. la suma ' , , . "'. en binnrio y producir&"&$ iesultado que puede variar de O a 19. Estos nmeros binarios se listan en la tabla 10-4 y se etiquetan mediante los -* (.it>n*- smbolos K, Zg, Zp,Z2 y Z1. K es el acarreo y los subndices bajo la letra Z 1' 11 r ' ' - representan las ponc+xgcipes 8 4, 2 y 1 que pueden asignarse a los cuatro 'tnr: I.t>lI. '1 , ', -1 c,
-#\.J.
''
,J~,CII,?,
?'
"
+
L,
1Ig
Z e
&
Za
21
S 8
Sub
SE
SI
Decimal
O O
"
0 0
0 0 '
O
0
O
0 1 0
1 0
O
1
0
O
0
0
O
0
0
Q
0 0 1
0 1
Q
0
1
O
1 O 1 0
1
O
1
o
0 0
0 1
1
1 0
1
0 0
0
0 0 0 0 0 l
1 0
0
2 3 4
5
0 o
0 0 O
0 1 l
1 0 O
1 0 O
1 0 l
o 0 O
1 1 1 O
1 1 0 O
0 1 ~ l
6 7 0 8 9
bits en el cdigo BCD. La primera columna en la tabla lista las sumas b i i r i a s conforme aparecen en las salidas del sumador binariu de cuatro bits. La suma de salida de dos ndrneros hcimaks debe representarse en BCD y debe aparecer en b forma que se lista en la segunda columna de la tabla. E l protilema es encontrar una regla simple mediante la cual pueda convertirse el nmero binario de la primera columna en la representacidn correcta de dgito BCD del n h e m de l a segunda columna. Al examinar e l wntenido de la tabla, es evidente que cuando la suma binaria es @al que o menor que 1W1,e l nmero BCD correspondiente es idntico y, por lo tanto, no es necesaria una conversin,Cuando la suma binaria es ,mayor que 1001, obtenemos una representacidn BCD no vlida. Lii suma'de binario 6 (0110) a la suma binaria la convierte en la repremtaci6n BCD correcta y tambib praduce un acarreo de salida, conforme s e requiere. Un mtodo para, sumar nCimeros decimales en BCD sera emplear un sumados binario de cuatro bits y ejecutar la operaci6n aribktica de un dgito a l a vez. El par de &@tos BCD de orden inferior se suma primero para
391
producir una suma binaria. Si el resultado es igual que o mayor que 1010, se corrige al sumar 0110 a la suma Kmaria. Esta segunda operacidn producid en forma automkica un acarreo de salida para el siguiente par de dgitos
significativos. E l &+te par de *tos de orden superior, junto con e l acarreo de entrada, se suma despus para pruducir su suma biiria. Si el resultado es igual que o mayor que 1010, se corrige al sumar 0110. E l p d i m i e n t o se repite hasta que se suman todos los dgitos dmimales. E L circuito 16gico que detecta la correcci6n necesaria puede derivarse de las entradas de tabla. Es obvio que se necesita una correeei6n mando la suma binaria tiene un acarreo de esalida K = l. Las otras seis combinaciones de 1010 a 1111 que necesitan una cormi6n tienen un 1 en la pmici6n Z& Para distinguirlas de los b&m 1000 y 3001, que tambin tienen un 1 en la picibn Zw ~ ~ adems que c2 ,o &<deben s tener un 1. la condicin para una correccidn y un hcarreo de salida puede expresarse mediante la expresi6n bmleana:
Cuando C = 1, es necesario sumar 0310 a la suma b i a r i a y proporcionar un acarreo de saiida para la siguiente etapa. Un sumador BCD es un circuito que suma dos dgitos BCD en paralelo y produce un digito de suma tambin en BCD. Un sumador BCD debe incluir la 16gira de correccibn en su construcci6n interna. Para sumar O110 a la suma biaria, ,utilizamos un segundo sumador binario de cuatro bits, como se muestra en la figura 10-18. t o s dos dgitos decimales, junto con el acarreo de entrada, se suman primero en el sumador binario de 4 bits superior, para producir la suma binaria. Cuando el acarreo de salida es igual a O, no se suma nada a la suma binaria. Cuando es igual a 1, se suma el bina& O110 a l a suma bina& mediante e l sumador binario de cuatro bits inferior. Puede ignorarse e I acarreo de saiida generado por e1 sumador binario inferior, porque proporciona informaci6n ya disponible en la terminal de acarreo de salida. Un sumador paralelo decimal que s u n a n dgitos decimales necesita n etapacde sumador BCD, con el acarreo de salida de una etapa conxtado al acarreo de entrada de Ia siguiente etapa de arden superior. Para conseguir retrasas de propagacin d s cortos, los sumadores BCD incluyen los circui~QS necesarios para acameos antiapados. Adeds, el circuito sumador para la correccin no necesita los cuatro sumadoras completos y este circuito wuede optimizarse.
Resta BCD
Una resta d ' i t a de dos nmeros dmimales requerir4 tui circuito sustractor diferente, de alguna manera, de un sumador binario, 13s mas prActico ejecutar la reta al tomar el complemento a 9 o 1 0 del suatraendo y sumarlo al
392
CAP~TLILO DIEZ
Aritmtica d e computadoras
Adendo
Sumando
fnu
hacia afuera
Lz -
Acarreo
de entrada
Acarreo de salida
1
rtrn
"-
::&Ez;:~d
J
inl
Figura 10-18 Diagrama de bloque de un sumador BCD. ~,.I*.IlIY YIrnY-, m# A U U I C I '1 m t w j ,1...l-r ir* i
*y.
minuendo. Como el BCD no es un cdigo autocomplementano, no puede obtenerse d complemento a 9 al complementar cada bit en el cdigo. Debe formarse mediante )un circuito que reste cada dgito BCD de 9. El complemento a 9 de un dgito decimal representado en BCD puede obtenerse al complementar los bits en la representacin codificada del dgito, siempre y cuando se incluya una correccin. Existen dos mtodos de correccin posibles. En el primero, se suma el binario 1010 (decimal 10) a cada dgito complementado y al acarreo descartado despus de cada suma. En el segundo mtodo, se suma el nmero binario 0110 (decriinal 6) antes de que se complemente el dgito. Como un ejemplo numrico, el complemento a 9 del BCD O111 (decimal 7) se calcula al complementar primero cada bit para obtener 1000.Al sumar el binario 1010 y descartar el acarreo, obtenemos O010 (decimal 2). Mediante el segundo mtodo sumamos O110 a O111 para obtener 1101. Al complementar cada bit, obtenemos el resultado requerido de 0010. Complementar cada bit de m ncimero binario N de cuatro bits es igual a restar el nmero de 1111 (decimal 1 5 ) . %mar el equivalente binario del decimal PO proporciona 15 - N + 10 = 9 - N + 16. Pero 16 significa el
S0
S4
S2
S1
MUI
I rn
.o
1.
SECCI~W
393
acarreo que se descarta, p r l o que el rbwltado es 9 - N, conforme se w c e i b a . Sumar el equivalente binario del decimal 6 y despus cornpl+ mentar proporciona 1 5 - ( N + 6) = 9 - N, queves10 que s e necesita. El complemsnb a 9 de+und.@to BCD tambin puede obtenerse me diante un circuito combinaeionaL Cuando se conecta este circuito a un sumador BCD, el resdtado es un sumador/sustraetor BCD. Representemos el dgito del ~usbmdo[a del sumando) mediante las cuatro variables bina& B , B,, BB y Bi. Sea M un bit de m d o que controla la operacin sumar/mtar. Cuando M = O, s e suman los dos digitos; cuando M = 1 se restan los digitos. Sean las variables bidras x& x* q y x, las salidas de c h i t o complementado^ a 9. Mediante ima revkibn de Ia tabla de verdad para el circuito, puede observarse (vgase e l problema 10-30) que B1 pude complementarse; B2 est siempre igual en f o p a de compIemmto a 9, como e n el & @ t o origid; x4 es 1 cuando la OR exclusiva de B1 y B4 es 1 ; y x8 e s1 cuando BS, B4 p B2 -- (WXI. L a s funciones boo1eanas para el circuito complemenhdor a 9 son: xi=BiM1+BiM - --T.
'
I t l m xz = Bz ~4 = B4M1 ( B i B l + B4B3M
Q=
BBM'
+ &&&M
M
= O. Cuando
,
,+N-?
apirddR d
Una etapa de una unidad aritmgtica decimal que puede sumar o restar das digitos BCD se muestra ,enla figura 10-19. Consiste en un surnador BCD y un complementador a 9. El mddo M controla la operaci6n de la unidad. Con M = O las,s a l i h S fonh2ui lasuma de A y B! Con M = 1 , las didas S forman la suma de A d s el complemento a 9 de B, Para nmeros con n &&os decimales necesitamos n etapas como &a. Ellacarreode saiida Ckl de-etapa debe ccnahnc a l ata-m de entrada Cf de la siguiente etapa
de arden superior. 14L mejor manera de retar los dos nSimems decimales es dejar M = 1 y a p h r un 1 al acarreo de entrada C1de la primera etapa. Las salidas brmdn l a suma de A m8s el complementa a 10 de B, lo cual es equivalente a una operacibn de resta si w descarta el acarreo de la iiltima etapa.
+ +
A+A + B
Sumar *@ros derimales y transferir la suma dentro de A Complemento a dgitas 9 de E E Contenido de A mls complemento a Qt+Qt + 1 dfgitos 10 de B dentro de A ~ t . ~ + f i - + ihammmtarnberoBCDenQt dsh A -Commiento d 4 al a erecha del registro A dshlA Corrimiento decimal a ia izquierda del registroA
contenido original A al complemento a 10 de B. El uso de smbolos idhticos para e l c o m p b t o a 9 y el complemento a 1 puede resultar confuso si se emplean ambm tipos de datm en el mism~ sistema. En este caso, seria mejor adophr un dmblo~ diferente para'el comphnto a 9. Si & l o s e est conside rando un tipo de datos, .el simbolo se aplicada a i tipo de datos que se usa. incrementar 6 decrementar uh registro es igual paraJbin&os y decima1% excepto en la cantidad de estados que se permite que tenga eI registro. Un contador b h a h recorre 16 esbdm, del 0000 to 1111, cuando se incrementa, Un contador decimal recorre 1 0 esbdw, de 0000 a 1001 y de regreso a 0000, dado que 9 es eI ltima contea. De igual manera, un contador binarlo cubre una secuencia de 1111 a 0000 cuando se decrementa. Un contador decimal va de iOD1 a 0 0 . A un corrimiento decimal a la derecha o izquierda, le antecede la letra d para indicar un corrimiento sobre los cuatro bits que contienen los dgitos decimales. Como un ejemplo num&rIro, consideremos un qistro A que contiene el decimal 7860 en BCD. El patr6n de bits de los doce flip-flops es:
La micmoperacih dshr A ejecuta un corrimiento en el nhnero decimal un digito a la d d a para "proporcionar'0786.Este corrimiento S sobre los cuatro bib y cambia el contenido del registro a:
Suma y res@ El algoritmo para suma y resta de niuneras binarios de magnitud con signo se aplica tambin a los nmeros decimales de magnitud con signo, siempre y cuando interpretemos 10s smbolos de la microoperaci6n en forma correcta. De igual manera, el algoritmo para nameros de complemento a 2 bbrios con signo se aplica a lw nmeros decimales de cony,1emento a 10 con signo. Los datos binarh deben mnplear un sumador b i r i o y un complementada. h s datos decimales deben emplear una unidad arihbtica decimal capaz de sumar los nmeros K D y formar el complemento a 9 del sustraendo, como se muestra en la figura 10-19. 'Los datos decimales pueden sumarse en tres diferentes formas, como se muestra en 4 figura 10-20. El rnktodo paralelo utiliza una unidad aritm& tica dechal compuesta de tantos sumadores BCD como dfgitos hay en el ndmero. L a suma se forma en paralelo y 6610 requiere una microoperacih Iln el mtado de * t o serial y bit paralelo, loa dgibs se aplican a un W o sumador ECD en f o m serial, mientras se transfieren los bits de cada dgito d i c a d o , efi paralelo, L a suma se forrha al ejecutar un corrimiento de los niimms decimales por e l sumador BCD, uno a la vez, Para k digitos decimales, esta confiracion requiere k mici00peraciones, una para cada
O 1 Q,I
0 0 0 0
0 0 1 1
Sumando
Surm
S
FA
CAdda
I I
1I
I I
1L
t
Figura 1 0 7 i lTres maman de ~umarnilrrserwrddmaimz
corrimiento digital, por todo el sumador serial, los bits se recorren uno a la vez por medio del sumador mmplel~. La suma binaria formada despu4s de cuatro corrimientos, d ~ b e cmgirse dentro de un dlgito BCD vblido. Esta correcci6n, analizada en la seccibn 10-6, consiste en comprobar la suma binaria. S i es mayor o igual que 1010, la suma binaria se corrige al sumarle O110 y generar un acarreo para el siguiente par de dlgitos. m w o paralelo e sd~ido pero d t a una gran cantidad de sumado~es. El mtodo de digita.dy bit paralelo $610 mpiere un sumados BCD, d d comparten todos los dgitoet. Es m6s h t o que e l mtodo pardeb por el tiempo que se para desplazar IQSdigitos. El mtdo totahente setlal. quiere una cantidad mhima de equipo pero es muy lento.
Multiplicad6n La multiplicaci6n de ndmeros decimales de punto fijo es simar a la de nmeros binarios, excepto par la manera en que se forman los productos parciales. Un mdtiplicador decimal tiene digitos cuyo valor flucth de O a 9, mientras que un multiplicador binario slo tiene dgitos O y 1. En el caso binario, se suma el multiplicando al producto parcial si e l bit multiplicador es 1. En el caso decimal, el multiplicando debe multiplicarse por el dIgito del multiplicador y sumarse el resultado al producto par-. Esta operacin puede realizarse al sumar el mItjplicando al producto parcial una cantidad de veces igual al valor del digito muItiplicador. La organizaci6n de're&tros para la multiplicacih decimal se muestra en la figura 10-21.Consideramos aqu niimeros de cuatro dgitos, en los que
Figura 10-21 Reghfros para multiplifacin y divisibn a-kntica decimal,
3
/
q
8
.aaw
c a i
&Lh.d
dlgito ocupa cuatro bits, para un.total de 15 bits por nmero. Existen tres registros, A, B y Q , . y cada uno tiene un flip-flop de signo correspondiente A, B, y Q, Los q i s b A y B tienen cuatro bits rnds, denominados mediante 4 y Bw que pmporcionan una extensibn de un digito m4s a los registros. La unidad aritmtica BCD suma los cinco digitos en paralelo y colma la suma en e1 registro A de cinco dgitos. El acarreo final va al flip-fiop E. El propdsito del e o t A, es alojar un sobreflujo o mientras swna el multiplicando a l p d u & parcial, durante la multiplicacibn. E l pmp6sito del dfgito B, es f ~ m el x complemehto a 4 del divisor cuando se resta de un residuo parcial, durante i a divisihn. El dgito menos significativo en el registro Q de repmxnta mediante Qp Este dgito puede incrementarse o
cada
decrementarse. Un operando decimal que proviene de Ia memoria consta de 17 bits. Un bit (el signo) se transfiere a B, y se coba la rniapitud del operando en
Figura 1&22 Diagrama de flujo para multipliEaa6n decimal.
los 16 bits inferiores de B. Al principio s e borran tanto E, como A, E1 resultado de Ia operacidn tambmbin tiene 17 bits de longitud y no usa la parte A, del registro A. El algoritmo de muItiplicaci6n decimal se muestra en la figura 10-22. Al principio, se borran los registros A y Be y el contador secuencial SC se inicializa en un nmero k igual a la cantidad de &@tos en el multiplicadoi. Se comprueba e1 dfgito de arden inferior del multipIcador m QL.Si es diferente a O, e e suma una vez el multiplicando en B al produdo p a r d en A y se decrementa Qt. Se comprueba QLuna vez ms y ce repite el proceso hasta que es igual a O. i h esta manera, el muitipkando en B se suma al produdo p a m d una cantidad de veeea igual a i 1U8;to multiplicador. Cualquier dgito de sobreflujo temporal residid en A, y puede variar su valor de O a 9. Ensepida, el produtto parcial y el multiplicador se recorren una vez a la derecha. Esta coloca un O en A, y transfiere e1 siguiente digito del multiplicador a QL. ;-pus se repite el proceso k veces para formar un producto de doble Z~ngituden AQ.
Divisin L a divisidn decimal es similar a la divisi611binaria, excepto que, por supuesto, los dlgifos del cociete pueden tener chalquiera de diez valores de O a 9.. En el mtodo de divisibn-restablecer, se resta el divisor del dividendo o residuo parcial, tantas vmxs cpmo sea necesario, hasta que se produzca un residuo negativo. ihspus, s e sestab1we el residuo correcto al sumar el divisor. El dfgito en e1 cociente d e j a la cantidad de restas acumuladas, pero excluye la que produjo la diferencia negativa. El algofitmo de divisidn decimal se muestra en la figura 10-23.Es simiir al algoritmo con datos binarim, excepto por h manera en que se f m n los bits del cociente. E 1 dividendo (o residuo parcial) se recorre a la izquierda, con su dgito ms significativo colocado en A, Despus, se resta e l divisor al sumar su valor de comphento a 10.Como Be se limpi6 al inicio, su valor de complemento es 9,que es lo querido. El acarreo en E determina la magnitud relativa de A y B. Si E = 0 ,s i m a que A < B. En =te caso, se suma el divisor para restablecer el residuo parcial y QL se queda en O, (insertado ah duranfe el cofrimiwito). S iE = 1 , significa que A 2 B. El dgito del cociente en QLse incrementa una vez y e1 divisor se resta de nuevo. Se repite este p m hasta que la ,resta produce una diferencia negativa que se reconoce cuando E es O. Cuando ocurre esto, el digito del cociente no s e iocremenh, pero se suma e1 divisor para restablecer el residuo positivo. De esta manera, el dgito del a t e n t e se hace igual a la cantidad de veces que ,el residuo parcial ':va'Vmtro del divisor. t o s bits del residuo parcial y del cociente se recorren una vez a la izquieda y e l praceso -se repite k veces para formar k dgitos de cociente. Despub s e eneentfa el miduo en el registro A y el cociente est en e l registro Q.N o * consideta el valor de E.
Dividir
(Q cociente esta en a)
Agura 10-23 D i a m a de flujo para divisi6n decimal.
,Operacionesde punto flotante tas operaciones aritmticas de punto flotante decimales siguen los mismos pxocediiientos que las operaciones bbarias. L a s algoritmos de la secci6n 103 pueden adaptarse para datos decimales, siempre y cuando se interpreten en forma correcta los shbolos de la, microoperaci6n. La multiplicaci6n y divisibn de las mantisas deben hacerse mediante los mtodos ya descritos.
A+AyE&+-A*B:
10-2.
.
3W.
Marque cada baybctofih indlddial en e1 diagrama de flujo de la f i p r a lb2 m&dhhun n h e r o y despu4stindique;la trayectoria general que toma el,aig@itnoaand@m ' d d a m los siguientes nmeros de magni.f-ud' c m 48r(s. En reaaa eawi p r & w n eel valor de AVF, E 1 bit a la .ex@ew kqgi&,q,\w si&m@ phmerosqeprenta el bit de signo. O OUW83, 9;'OllIl$ b . 1. OllM1 1, 2011Q c. p 10liO'. O 01111 d. 0 101101 - 1 0 1 m b e, i tiiilf~ - O' lb110 L n -L 2 - -lL Ejerirte las wacioiies z t e s con n & binarir* y mn niimems negativos en representad& complemento a 2 con signo. Utiliee
+ + -
- 8
P'
siek b i t s ~ a ~ ~ a a & l ~ o h e m ~ i I r l ~ En ~ cada n acaso, ~ @determine b. si k y un .9olWbjg alcpmpm& 'bs~a$nrreo hacia s adentro y h a & afuera
A W
10-4.
'
Considere los n r l r n q ~ s bjn?&s cuapdo e s t h en repreaentacidn de crrmplsmwito a 2 coa signo. Cada n h r o tiene n bifs: u w para el sipo p k : = n, gata la m B @ i i h $ Vn . narhm& n -X se rqresarita como ~ ~ . ~ ~ - ~ , - & i d & d ~ ~ i ? ~ ~ t (5.ka e i -el b i t ~ s i complenia ~ 3,ds X:Utr'nCrmwo p b s i t h so representa como O + X , donde el O significa el bit de y %la magnitud de k kits. Utilizando estos ,ahboJps gperdj~ad0sfL wpip~?ie:be: qw la suma (+X) f {*Y) puede&~m%fsa :24 sumar i o s : e r ~ incluyendo s sua bits de signo y descartand~el acarreo hacia afuera de la posicibn de hit de signo. En w ' a b h s ,@dipM&Cel iil$o&nd para sumar dos n W o s en r@q@ad&nd i l e ~ f $ e m b " a 2 &n signo.
- b T
k >e:& q p e m c i D .(-q+ (rb)= -15 m n mimeras binarios en ~e~resentacirin de caplemento a 1 con signo, utilizando sdlo ",E " bib qa. r p F e n Q r cada r&tem,&riJuyenda d sQno). Muestre & dp&edin&&~tod r d%~/6n di1Zobrefi ujd que m s t e en bmpioGr.b,~-&-@d$rl d.l q Gltimm a ~ r w sno , funciona en
de computadoras
Compruebe que la muhipli~ci6n de dos nheros de n dgitos en base r proporciona un producto no mayor de Zn dgitoc de longitud. Demuesb que &e enunciado implica que no puede ocurrir un sobrefiujo en la operaci6n de mu~tipiicaci6n.
Muestre e l rnntaido de los q i s t r o s E, A, Q y SC (como en la tabla 10-2) durante el proceso de multipeaei6n de dos nrimeros binarios, 1 1 1 1 1 (multiplicando) y 10101 (multiplicador).No se induyen Ios signos. M u m el eontenida.delos tegis- E, A, Q y SC (como en la figura 10-12) durante e1proceso de divisidn de: a) 101OM)ll entre 1 0 1 1 ;b) OMXlllll entre 0011 (utilice un dividendo de acho bits),
Demuectre que al sumar B despus de la operacibn A + + 1 restablece e l valor origiinal de A. ~ Q u k debe hacerse con el acarreo final?
11
s o r qt$ debe s e rigual el signo del residuo al del dividendo, despuk de una d&$i6n? I , Disee un arregl~ mdtiplicador que funcione sobre dos nmeros de cuatro bh. Utice mmpuertas AND y sumadores binarios.
Muestre el groepa de multiplicacib paso por paso utilizando el algoritmo de Booth (como en la tabla 10-3) cuando se multiplican los siguientes nmeros binarios. Considere registras de Unco bits que contengan los nmeros con signo. En ambos casos, el multiplicando + 15.
M v e un aigaritmo en forma de diagrama de flujo para el mtodo de ,&vi$6n de b m a b de punto fijo sin mtablcimiento. Derive un alpritma para evaluar la raiz cuadrada de un n h e m binario de
punto Ej. Un numero b W o de punto flotante tiene siek bits para un exponente phrfiada. l a constante utihzida para polarkm es 64. a . tistelarrpresentacinpl~adetodoslw~tesde64a~. b . Demu&re que puede UWW un comparador de magnitud de s i * bits pmacompamb~tudrrlativade~dosexpmbes. c . fiemuestfe que, despus de la suma de dos exponente p h r k d a s , es necesario restar 64 para tener una suma de exponentes polarizados. d Demuestfe que, despuzs de la resta de dos exponentes polarizados, es necesario sumar 64 para tener una diferencia de exponentes polarizados. Derive un algoriimo en forma de diagrama de flujo para la comparacinde dqs niimera blnatim con signo, mando los nmeros negativos estiIn en repmentacin de complemento a 2 eon signo:
Wanb una
b . Al revisar y comparar para de bita de izquierda a derecha f 0-19. R e p i t a . s L p h 10-W para mhems bharidsde magnitud con signo. de bits de h m a n h e n un n h e m binario de punto 1 0 c m Sea n la ca~tldad Botank. Cuando sealinean bmdhwdurante la suma o mta, la difeiencia
,
a=
opnci6rrdE
aur n d d e mrnplemento a 2 mn
1 0 2 1 .
-J
4 10.Z r
10-23.
1024.
1 W .
d~tepuedeser~que~n~tl.S~6cutre&,hmtisaconel menor m reame p r Wpleta fuera del registro. Modilique el ~ ~ ~ den la +a e m 1 5 ~al incluir l un contador a secuen~ d S C q u e ~ b l a ~ & ~ b , C i e l n d m e m d e ~ b es mayor que n 1 . se usa e n & nmero ms grande para determuiar el &tsdo. E l ' t o para a h a u mantisasdurantela suma o r d a de ni5meroa d e s i t e ppe+de&qne 4. i a manga siguienk m h r rl expo nente ms ppeio d d mayor y r a la derecha fa m t k que tiene d -te ms peq.&rrna eantiddd de lugares igual a la d i h e d a entre ios exponente. E it e de h su& (o d b c i a ) a igual a las e x p m t e m8s @ e s . Sin utllinrat un 5 h m d o r de magnitud, e d e r a n d o eqm~entes pdiarizadas y tomando mi cuenta que % l o puede recorreme AC, derive un algoritmo en brma de diagtama de flujo para alirbeat las m a n h y colel exponente mayor enLel AC. Demucsire que no puede haber uh sobreflujo de mantisa despus de una * & n de mthltipbcin 4 Demueahk que Ia divisibn de dos-nthefosnormakmdos de punto flotante con manSeas b a c t h a g siempre d e como multado un &te normalizado, d * y mando & m d k un alineamiento del dividendo antes de i a o p m d h de divid& I I Atriplik e1 diad i flujo de la figura 10-17 para pmporeionar un resid20 d e l otante normaliic el AC. La mantisa debe ser una fraccin ' i u s aipritmos a las *apaeigtbes'aride punto flotante m la '-im 1W no la @Ididid de sobreflujo o sobreflujo inverm del'expmte. r Rivlr km ires dhgqpiw de f l " p y m n h . dnde puede muL un mb.n&ujo de explente. b . '"pp~apdp6&flrq'p del 8ugokivdeapmehtesi el es ms negativo que el nhnem m g r s ' m u e A a que puede alojanse en ei registro. E ~ e o q i o ~ ~ ~ k h a g d w a r e u n ~ u j o o u d u j o inverr#,deteqmmtp. S i u p i a de m m i l a mmtisa de d m a m de p b= ., p r o b e l m a s J e & b h iriL.dupanbe ia d t i p , y h dhhibit ! k i la cantidad de bits en la parte de mapitudde k mantupa (n - 1 ) . Para w h c @ de e n t m a &mws& que sise utiiii m de p d i n bnica, (n -1) debe sumarse al pradwbde qwmk en el AC.
'Exz
. ..b . .Demu&re
-.
10-27.
bniea, (n . bom Q.
10-28. 'Demuesireque 673 &5 pude calcularse al sumar 673 al complemento a U3de 356 y-de-mr elatafteu~fd. Dibuje el diagrama de bloques 1, . de una: unidad1 ari,h&ica &ecimakd&tres etapas y muestre e6mo se . +,implantaestaoperakih, biste MOS les bits de entrada y de salida de la
n
unidad, '
&muestre que el sumador bit&;
? ,
II
&o
... ..
de cuatm bits inferior de la figura 10-1 puede suatituirse con m d d o r completo y0d&semisumadores. . 1WU. UtilPzando biw & d i & ciicuitk combicionales, derive las hui. ,,. ; cfo* b o o f F~ a ~el com$lem&nta:dora 9 BCD de la figura 10-19. Dibuje ei d*a& 1'6gim. -i Uldl?. Es wesario diseiiar un oumadbr para dos digitos decimales reprei cdigo de e ~ r tres , (tabla 3-6). Demuestre que la correcseytso& a . .. ci6v desp* d dos dfgim eoq un sumador bimrio de cuatro bits es oomp sigue: a. wmw de wlida es igriaI d -a sin carregir. b . Si el acarreo de saW = 1 , summ W 1 1 . c 3 el acarreode q d a =+O, p r 1107 e i p p y el acarreo de gsta suma. Detnuestreqe el &dor de exceso t mp i d e constniime eon 7 suma-u\ ' dores mf"ip1ebs y dos @ve&#, . . 10.32 M v e el circuitop a w w eornplementador a 9 cuando los d @ hd-es . seq?-tan w c&hgo ,sle m.(tabb Una entrada de mntrol de ~ q de p $se ~ pel dgito o no. l Cules Ia ~ ventaja de~ ud&r k t e z e i lugar de BCD?
10-29.
b
8 . .
2 % .
M g W 4 ,c@$perlg que se utlza para la sumq y resta de dos nilimeros d w 4 -?negativ~ en .repmmtaan de complemento a 10
Idique cdmo se ,&tech un .mbrdujo. Derive al algoritmo del diigraqa de Aujo y prueix unos n&em para a v e m e m e que el algorihno
' c o i signo.
p d u & d t a d a s mrredd
'I
.'.l.?
&hwb $~wf$$do *,km rrgiahosy4, B, Q y SC durante i a multiplipd6n y b) 999 X 199. Considere regisim de , . . dslelplal (+a 10-22) de: a)+X 4 como el rnuitiplicador. , * t q y tome~l :iWS, Mue&rBd -contenido de lm A, E, Q y SC durante la divisibn decimal (figum'i-23)de 36W/32. C o m h registrae de dos dlgib, '.lWr'bue$trequed ~ ~ b A;;Wia"Ea'gura ~ t m 1O 2 1es cero al final de: a) la khkipUahdermia1, t d g k &pifia en la figura 10-22 y b ) la divisibn ~~;~ se en l a ff&ua;lC)-23. a W t i n 0 8 aritm&& 8e iunto flotante en l a &10-5 de 1 . ~mE;ie'ios ' . .dabsbim&sa M&. En me I a , lisie ebmo d& interpretarse d a dnhlo d e n n i ~ a d h .
1
l. Blaauw, G,-1 Systemii IrnpiemntaFion. Englewwd mi, NJ:Prentie Ha11,1976. 2. Cavanagh, J. J. F . , Digiftzl Gwpfer Arithmetif. Nueva York: MeGraw-Hili, 1 M 3. Hamacher, V. C., Z. G. Vranesic, y S. G. Zaky, C m p t e r Organiuition, 3a. Ed. Nueva Ywk McGraw-Hiii, 1990. 4. Hap, J. F . , CompirterArchi&re ami Organiration, 2a. Ed.Nuwa York McGraw-Mil,
1 m ,
4. Hill, F.J., y G :R Petemn, Digiktl Systm: rlrduwire Orgmtlzntion and h i g n , 3a Ed. Nueva York JohnWiley, 1987. 6. Hwang. K . ,Computer Atr'thmetk. Nuwa York JohnWiiey, 1979. 7. Kuliiih, V. W., y W.L.Miranicer, Cmpukr Afifkmdic in Thmy and Practice. Nueva York: Aeademic Prws, 1980. 8. Schrnid, H . , Decimal Arithmetic. Nueva York: John W i ,1979.
EN WTE CARfTUW
tivo vos
I n e e e de
rrqf&ia
w&na
de datos
M d w d e framkml&
~
'
.c
-m
m
B1. subditema de entrada-salida de una computadora; denominado B/S, p~oporcim u n - d o de comiinxcacifi eficiente && el sistema central y el mbhte extemo. i m pmgtamas' gr datos debren introducirse a la memoria de Ir .computadora para su p ~ ~ ty he o miiltados " que se obtienen de los C~ICUIDS hben grabarse o q$trarse.para el ushrio. Una computadora mb Gene n3nigiui pm$slto sin k capacidad de recibir informaci6n de urm fuente exPwna y d& h&& b multados de manera r~mprensibl~ medio m& familiar de introdtikir'ihfoima~nkn una computadora ' .es a travs de un Wiado tipo mquh' ' & &tr, que permite a una p w m htrodudr uifo&8ti dhTidrice en fomh direda Cada v a que se oprime una l a , i a tie4nihd enva un c d c t w cudificado en binario a la computadora; Xn veIoeiW ms alta pibb pah ihtroducir informaEi'6 de esta depende de kvelmidad para elear de una pwsona. Por otra p r & ila-un&d , & e p ~ ~ e n t o ~ c e n ta ra uri l dispositivo extremadamente 1 ' fp& capaz c k ejecut2u.*.operacidma muy alta Velocidad. Cuando se handeie;a-un plocesador h f o r m c i h de enhada mediante un tedado lento,
la,mayor park 44.,t-p, mientras espera que el pps+40r~~estwd iiegue la iromiacidn. &ka uq,*r una computadora de manera eficiente, deben p m a r a M con ariWpaeibn u n ag , r w,cantidad de programas y datm, y deben ha*-rse a m& de almacenamiento como discm o cintas .&gn~'ess.., fa Wormaci del . d i & se .@aqsfieredespus a L a memoria de la ''c~mph&i@d Bg L a r ve i W d , k s resul@dusde los programas tarnbikn .@ de Ata v~IorT.dad, como discos, ddesde los se h a n i * 8, m mates + 'd * ! t l : = tsrde, a una impresora para proporcionar ypa d i d a inprqu&, %B .resulbdos. -Ia. dispmitivbi que estn bq<> co~tml directo de la computadora e s t h conectadoe en linea. Estos dispositivos estn diseados para leer hformaci6n hacia adentro o afuera de la unidad de memoria a n t e un comando de la C m y; sie r o ~ ~ W a ' q u son e parte del sistema total de la computadora. Los dispositivos de entrada o saIida conectados a la computadora tambi4n
'
el
llaman &@Qs.~ Entre i a ~ ~ ~ m8s M comunesS =tAn los teclados, los mo~@~res .y i m p q r a s . LOBperif&cw que proporcionan a h c e n a miento &liar paia el Usiema p? cintas y discos magn&ticos. Los perifri'cm six dihpz1sitivirs efectromecAnico$ y eleetromagn&ticosde cierta comple jidad. A q f se , ~ & i o n a T un 6 breve anlisis de su funcionamiento, sin entrw:en d-lles de BU con$thicci&ninterna. Los rqpnjtores d e , video son los p e r i M h de uso mds comn. Consismonitor y kclado , Fn q un Wla* como clisposivo de entrada y una panfalla como dispositivo de &da.'&y diferentes tipos de mo~tores de video, pero los ms populares'titW8-un 'tubo de rayos catdicos (CRT).E l CRT contiene un caiin electFdnico que enva un haz de electrones a una pantalla fosforescente al frente del tubo, El haz puede desviarse en forma horizontal y vertical, Para producir un patr611en l a pantalla, una rejilla dentro del CRT recibe un voltaje variable que hace ,q9eIeJ.M mtziem ,con la pantalla y la haga brillar en punm ~ l e c c i o ~ d o Las s . -le6 ' h o m n t a k y verticales desvW e 1 3 b a y:l o ham,bmer por el tub,.dmcien& que aparezca en la pantqiIa ,h. p~tr6n viswb, ,Una .mrwteds@ ,de. b. -pitores es un cursar qye marca la~ ~ m,que,6 insertad n el siguiente'carcter en la pantalla. . -. .& c;upr: puede w v ,a cualquier pwki5n en la pantalla, sobre un , earfickr ni~%~wia palabrq o, cci+quier linea, h s &ha de edicibn agregan ,, , o , l q r a n h$ocacir). w n base en la p i c h del.mmor. El monitor puede .,, opesjtr en b q de 8q&jez, *o, .& donde todos-b r c a r a c m inhoduci, 11, dw la pvtj!k a ,hv$s del t e e W : = t r w t a la mputadora m ,simuWm. En ql- gpod~ !deb w e , .el .text~editado se almacena , . for;m~. W,UIM memoria ! Mdmtw de.h Wrmbal, E i texto se transfiere a , -. b ~ , m p t a & r acomo8 .bloqpe de h ib$?m~w P M P D * ~ Un w @ o ~ p -k f e , e l papel de. =@dada de la.-~ynpu:kd~~a.. Ha y tres tipos b 8 ~ h ~ d i 1~ daw, 4. d .. , d e , i m m a s d&qwac&m: de mawb, de matriz.de puntos y laser. La , +$npmorade rnargada,pntie*neu n ' d h a cqm 1 - .carmkres colocadas en la o .- w . de @ circunferm&..A~ ;Tnpr;Mir ,mcacarA~brC l a meda gira a la posici6n
se
!m
m
.-
' &.
*
cinta ~qagriticq
disco magnhtiw
L.
zippiada y-dmpukuh imn, al que =-aplica itna corriente, la oprime - contra la cWa:Le de matrhlde puntos &tiene un conjunto de puntos n lo:largo del de+lmpM6m,Por ejempIo, una impresora de matriz de S X 7 puntos que imprime 80 caracteres por lnea tiene varias lineas horizontales y cada una consta de 5 X 80 = 4(30 puntos. Cada punto pude impon & ; depndiertdo de los mm&r&especificos que es& impresos en la liea. hhptewra hser utiliza'un tanibor fotogrbfico rotatorio que se emplea para-imprimir las-imgenes de caracteres. Despuk, el patrn se 'transfiere sobre el papel i p l que en una mquina copiadora. &as cintas tnagn&cq,w utilizan principalmente para almacenar archivos he datos: por ejemplo, el registro de l a n6mina de una compania. El accew es secuencigd y consta de registros que pueden accesarse uno despuks de otro, confonne Ia cinta. m u m 8 a 1 0 largo de un mecanismo esfaciomio de lectura-emiturd. Es und de Id rn6todoa :ms baratos y lentos para . almacenar y' tiene k ventaja de que las ~intas pueden quitarse cuando no se usan: 'Las discos magn&tic& t i & siiperficies 'rotatorias de alta velocidad, !con u b cubierta de material ma@tico. El a c h se consigue al mover un - mecanismo ae lecturassc@ura sobre una pis'h en la superficie magnetizada. Sobre todo, los d i se tiM,jzan para el almacenamiento de grandes cantidad* de programas y datqe. Las cintas y discos se anaIizan mrs adelante en la wcibri 12-1, juntb mn su como memoria auxiliar. Otros dispositivos de entrada y 'salida que se ennientran en sistemas de computadora son los gmikadores digitah, los lectores de caracteres ptima y mapdticos, los canvertidones analgicos-digitales y equipo diverso de adpuisici6n de datas. Na?odas las e n t r a b provienen de pemnas y no todas das salidas estn dirigidas a eiias. Las computadoras se utilizan para controlar varios p m s en tiempo real, como provisidn de partes de mquinas, procediientas de ensamblado en Wea y p m s quimieo~ e Xnduatriales. Para tales aplicaciones, d& proporcionarse un m h d o para captar las condkiofies de estado del proceso y enviar Males de control al procesa , que se coptroIe. La oqy$mcin de entrada-salida una computadora es una W 6 n del tamao, de la computadora',yde los dispitivos conectados a eiia. I a difepciadenfre un sistema cande y peque@ depende en gran parte de la qantidad de b i t e r a que tiene &pqn$k l+twmputadora para comunicarp e con unmdes periMcas y la ca~kidad~de Nfricos conectados al sistema. Como cada perifrico se comporta eri forma d i h a t e de los dems, seria ~mkibitiva entrar en detalles de h a htconexiones necesaFias entre la computadora y 'cada perifkrico. En este capiSu10 be presentan ciertas M c a s comunes ,arb mayora de los p e r ~ ~ ~
S
"
Caractexes alfariumricos ASCW L . & dispgtivtw de entrada y salida que comunican con las personas y la
computadora, por l o general s e relacionan con l a transferencia de informa-
~idn alfanumrica hacia y desde e1 dispitivo y la computadora. El &digo ario eatirrdar para los mractems &ar~um&icos es el ASCiI por sus siglas en ingls (leneriEan Sandsld Codefor Informafion Jnterchnge, C M i o Estannr-,r~i'..ii.h-!~nir!
m .
.-
....
SQH
S'IX
ETX
OlOO .
DC2 DC3.
. '
N
1 -
A
II
' Q a
.
,
4
q r
m!
ir=.
EOT
n C 4
01.01
0110 O111 iOoQ
ENQ
ACK
NAK.
SYN
'CAN
S &
'
1
T
'
c S dhw t e U
f
X J
j
v
w
BEL
rn
IW
FS
SUB
101
1010
~11001
LF
FF S I
E;; a
*
GS
i
.
Y
z
,I
SO
.m
Rs
*,y% - < =
!
'.
S
K
L
I \
*'*A
l -
k
1
{
I
+.
, /
-3
M
'
N
O
m n
O
' 1
DEL
'. . l
1
f,?
'1
I
./
I1
DLE DCI
l.
Fin de h8misconsulta
helar
P h de medio
FF
S I
m..
..
'
>
'-SP -
Aimentacibn de forma FS Retornodecarro G S Teda de maykuhs oprimida RS T & de m a m s sin oprhIrUS Espacio DEL -. . ..
Sustttuto 4bpe
SECCI~N 11-2
Interface de entrada-salida
411
byte
dar Norteamericano para Intercambio de Informacin). Utiliza siete bits para codificar 128 caracteres como se muestra en la tabla 1 1 1 . Los siete bits del cdigo se representan mediante bl a b7, donde b7 es el bit ms significativo. Por ejemplo, la letra A se representa en ASCII como 1000001 (columna 100, rengln 0001). El cdigo ASCII contiene 94 caracteres que pueden imprimirse y 34 caracteres que no se imprimen y que se utilizan para diversas funciones de control. Los caracteres imprimibles consisten en 26 letras maysculas de la A a la Z; 26 letras minsculas; los 10 nmeros del O al 9, y 32 caracteres , *, y $. especiales como % Los 34 caracteres de control se representan en la tabla ACCII con nombres abreviados. Se listan de nuevo debajo de la tabla con sus nombres funcionales. Los caracteres de control se utilizan para direccionar datos y formar el texto impreso en un formato preestablecidu. Existen tres tipos de caracteres de control: afectadores de formato, separadores de informacin y caracteres de control de informacin. Los afectadores de formato son caracteres que controlan la distribucin de la impresin. Incluye los controles de mquina de escribir comn, como retroceso (backspace, BS), tabulacin horizontal (horizontal tabulation, HT)y retorno de carro (cawiage return, CR). Los separadores de informacin se utilizan para separar los datos, en divisiones como prrafos y pginas. Incluyen caracteres como separador de registro (record separator, RS) y separador de archivo @le separator, FS). Los caracteres de control de comunicacin son tiles durante la transmisin de texto entre terminales remotas. Algunos ejemplos de caracteres de control f text, STX) y fin de texto (end o f text, ETX), los son inicio cte texto (start o cuales se utilizan para enmarcar un mensaje de texto cuando se transmite por un medio de comunicacin. El ASCII es un cdigo de 7 bits, pero la mayora de las computadoras manipula una cantidad de 8 bits como una unidad nica llamada byte. Por lo tanto, con mucha frecuencia, los caracteres ACCII se almacenan uno por byte. El bit extra en ocasiones se utiliza para otros propsitos, dependiendo de la aplicacin. Por ejemplo, algunas impresoras reconocen los caracteres AXII de 8 bits cuando el bit ms significativo se desactiva en O. Los 128 caracteres adicionales de 8 bits con el bit m6s significativo activado en 1 se . utilizan para otros smbolos, como el alfabeto griego o una fuente de tipo cursivo. Cuando se utiliza en la comunicacin de datas, puede emplearse el octavo bit para indicar la paridad del carcter del cdigo binarie
11-2
Interface de entrada-salida
La interface de entrada-salida proporciona un mtodo para transferir informacin entre dispositivos de almacenamiento interno y de E/S externas. Los perifricos conectados a una computadora necesitan enlace de comunicacin especial para funcionar como una interface con la unidad de procesamiento central. El propsito del enlace de comunicacin es resolver las diferencias
la computadora central y ,cada perifrico. Las diferencia5 qua existen principales mn. ., .,
r
Q m .
1
. '..
',
1 . TAXI @-.sun dkpilifok ehtmmecnicas y debromagnticos ysu manera de 6peraei@i7es dikmt~te a la de la CPU y la memoria, @e mn dispwitivm.elethdnicos: Rax- lo tantoI8puede querirse una m d 6 n ~ d e . ~ b r e w ~ d e s e f & h + -, - 2 La *iddad de & a d e & x h de datos e los perifdricos, por l o general, es menor que l vel~dad de-tramferemia de la CFU y, en .', -e puede . f i d t a r & m meranlsmo de sincronizaci6n. 3. W &dip:de daW y 10s hmmtod en las pWirQ.icos son diferentes , - .,del fmrh-de la :paIabfaleila &U y en la inemoria. 4 k Las mods de opacin de tos peiWddo&hn diferentes uno de otro y cada ttno~d& estar ^confro~o para i i b 'perturbar La operacin de otros p e f i M m oaktadi a la C m .
+
l.-,
n'
l..
-11
.I
a
..
. irate*
,
n
-1.
,,
2 Para resorver estas diferendas, loi s@hnas de'tomputadara incluyen componentes &e dimitera' e$&dea erifre h 'EPU los peri@ricos para supemisaz y ~ & u ~ ~ n t d ha r~ las trdr&cias Tdemtrada y salida. Estos comp~nwit&~~&:llanian nrlefam, porque :&-'comufcantanto con el canal del presador roxrnarcm kl diqmsit9Vo pBrico.( ' ' . Adedm ~e a d a 2 dispsitivo puede tener su propio controlador que aup e h las apaci~nes del rne&iisrno paizimlar en*& pifrico,
' '
',L.
,
,.+! , ,
,
i :
.- .
Canal de EIS y mdulos de interface .. ~r Un enlace d e ~ r ~ d c a c i 6 n M t ritre p h el 'prceesadory varios perifrico8 s e <muepth m la figura 11-1t E i canal,de E/Si :conha de,h e a s de datos, beas
S
; &.
.-:
'.;l,
..
- 0 .
,
i
,
*
L ,-a! l .
.
J
'.
--., .r,-l,
,-lL!*;
Iiah
I
DimCih Control
'
9TI*
e
coinando de US
# S
de direcci6n y lfneas de contrd Se emplean eldisco mgndtieo, la impresora y la krminali&ea& cualquier computadora de p r e i t o general. La cinta ma@th uUsa en algumas computadoras~para e l almacenamiento de zespaldos; Cada dispmitivo p&iw tieaie~asociada-urna unidad de interface. Cada hterfare deoodifca h ~ ~el mntkol , que ae mg i b e del canai de E/$ y las. bterpreta paria e l .perifricoy prop~rciwia sdales pata el conhdor del ,perifrico,. ,TambiBn sincrDniza el flujo de datos y .lsupervim la transfewck entre.d p e d r b y el pmtesador. Cada perifrico tiene su pmPi~.wntm~dor que opera el djs~ositiviodectmmecanico particular. Por ejmpl~, el ~1~ntro1ad.o~ de irn-ra w hace carpdel movimiento de papel, la-tenm~rizaci6n de l a impresi6n y h seleccib de los caracteres que se imprimen. Un controlador puede alojarse en forrna separada o puede integrarse ffsicamente con el perifrico. El canal de E/S del prwesador se conecta a todas las interfaees del perifrico. Para comunicar~e+wn iui. disposiiko particular, el procesador mIwa una d h d 6 n da dispositivo en E s - h s& hionarniento. Cada . Uriea wnectada al canal de WS contiene un decdidkerdor de direecibn que monitorea ias.&eas ,de& m i o m i e n t o . ~ Cuando la interface detecta BU propia direccib, activa B2L. trayectoria entre las ,lneas del canal y e l dispositivo que controla. Todois los perifdricos c u y a s - k i o n e s no corresponden a la direccibn en el canai, son inhabilitados por su interface. Al W m a tiempo que queda &pmible la Ldirefci6n en las h a s de . dimxionamiento, el procesador propordona ,un c6digo de funci6n en ias neas de control. .LaLite&ce ~ h i o n a d a responde al cdigo de funcin y avanza a ejecutarlo. E l c6digo db W a ' e ,denomina un comando de E/S y es, ,en m c i a , una, htrueci6n que .w ejecuta m i a interface y estb conectada a la unidad perifrica. La intwpmtacibn del comando depende del perifriio que d i d o n a el prwesador. Una i n t e r f e puede recibir cuatro tipos de.,comand* ,Se clasificgn como contml, estado, salida de datos y
conundo @ ssitro
.,
1
( : +
,
1~
es
datos de salirfa
entrada de datos, . .Se emite w mmndo & . e 1 para aCtiv+r*,d perifrico e informarle que hacq? Pon rjempla l a unidad de a t a q g n C t i w puede instruirse para que w a m c la un registro, -a que.= rebobine o para que empiece a moverse: hacia adelanh E l :~omamdo de control particular que se emite d p & .del,perifkriw y ,cada psrifQlco :redi< su propia secuencia distin#a,de comandos d. eonhi, dependiendo de su modo de operacin. Se .utiliza un ~ ~ i c r ~ de d esfado o para p h r divwsas condiciones de *do en la jntmfwe y un pevi~Bco.-l?ok ejmpio, m posible que La eomputadqra quiera coqvobar el, etado dd p&rico antes:de que se inicie una transfeeenrk D ~ b x t S e : h , ~ pueden ~ i a , mmir uno o m68 errores que detecta la Interface. Estos m r e s se representan al activar bib en un +tro de estado que el procesador pueda leer en ciertos inktv&s. Un :GBM& de salida I &&S hace que la jntmace mpmcia transfiriendo &@S dei m a l a uno de sus ~ i s t r o s . ~ C o un ~ ejemplo o s con una unidad de cisW La computadora c c m k m a mwer la cinta al emitir
c m
zw
e l p h d o r monitomi el estado de la anta ingdtnk un ~ d o O d stda c Cuandoila dnta s t si k poski6n mrrectr. el pr~cesador en* ua mqmdmde salida de daba ia interface responde a Agll la direcd6m y al comando y+kansfiere ia ialomaci6n de las lineas de datos .del canal. a su W t r o intermedio' fbuffer), ]En seguida, )la interface comunica con e l controlador de la a t a y envfa b. d a b que se van a almacenar. ' e de & n h & - . E l cbthnth de mhdn de &os es lo bpuesto al dk salida de datos. En -este casa Ia Interface redbe datos del pedrico y los :coloca en su registro intermido..El ~xucwadar vedbs i las &tos disponibles mediante un lrorrmaru$ode estados y despus envh un m a n d a de entrada de datos. La inkface coloca dos datos sobre las beas de datos, donde el procesador Ios
..
1 .A
canal de memoria Mems de+comuniaarse con .su espacio de E/S,:el pmesadoc debe comucon la unidad de+memoria. Comd .d canal de E/S, el canal de memoria contime datos, direeeiorm y Ifnea8 de control de lectura/escritura. Existen m m e r a s que pueden dlizar los canales de la computadora para m u n i e a r s e con la memo* y las B/S:
'
'1
U
HS ve-
. _ .
1 . U U h r dm canales separadas, wo para la memoria y el o b para las Ef3. & U r un canal comn pah memoria y E/C pero tener h e a s de control separadh~ para cada u&; 3. Utiliear un canal comn para memorWy E/S con Uneae de control c o m w e s .
m
r a
.
1
En el prima mdtodo, la c o r n p u l d ~ Ziene ~ conjuntm de canales de datus, de control y de direcciones indpendientes, tu10 para accesar la memoria.y e l ot> para las EfS. Esto se hace eili mputadoras' qiie dr&rui, m m p w d o r de- l3/S separado (ID promsorr IUP) ademds de la , d a d .de procesamS~nb central &lW). ntetnotia'se comunica con la B U y el NOPl por; FM&O de un car(al de memoria. El IOP se comunica tambin min 1 - dipidvw & enataa y silida m e d i t e un canal de E/S separado, msus &edsR&, &-'y beas de &iiYtril. E l p+ib del IOP es pqomionar una aqector$ inidepndbnte.para la transferencia de h h r 0 %
I,
: .
rmsteidn -ea& &positivas externos y 'Ea memoria interna. El prowsador de E / & l a a* masionei3 s e denomina a a d de t i & & . En la seccibn 11-7 -anahmo8 con m a p r detalle lav h u O n del IOP.
'
2
i
..
T I '
xi
Abhas &mputado~. u * un canal. comdn para hnsferir hfomaci6n entre la m&oria Q rlre EX9 y la rCPU. h~difer&>iaentre una tramfemncia
de d M 6 n n &pafa palabra de memoria wpara un registro de interface al,haMat una o dos meas posibies de ,leetyra o esmituia. las lneas de control Mwu y E/S whsm se habitaii(durailteuna transferada de E/S. Las lneas de control de lectura de m & y E S U ~ ~ U M memurh ' ~ ~ so habilitan 'durmte ' m transferencia a meididria. Esta corifiguraci6n aisla todas las direcciones de interface de E/S de las direcciones asignadas a memoria y se denomina mtodo de E/S aislada para asignar direcciones en un canal comn. EIS aislada En Ia configuraci6n E/S a&&, la C m tiene ' h h c c i o n e s distintas de entrada .y saW, y cada iina de estas instmccione s e asocia con la direccidn de un registro de interface. Cuando la CPU reciipera y decodifica e1 caigo de operacidn de una instniccidn de entrada-salida, coloca la direccin asociada con la ,instruccin dentro de las Uneas de direccin comunes. Al mismo tiempo, habilita Ia lfnea de control de lectura de E/S @ara entrada) o de qxritura de E/S (para salida). Esto informa a los componentes externos conectad~s al canal comdn que h direcci6n en las i s de direccin es para - un registro de interface y n b para una palabra de memoria. Por otra parte, cuando la CPU recupera una instrucci6n o i d operando de la memoria, coloca la d c i 6 n de memoria en las lfneas de direccidn y habilita la lnea de ccm-tro1 de iectura de memoria o de escritura de memoria. Esto informa a I*. mmpentes externos que la direccibn es para una palabra de memoria y no-para una interface de E/S. El mgtodo E/S aislada separa memoria p la6 drrecciones de E/S para que 10s valores de h direccin de memoria no se afecten con la asignacin de dirmciones de interface, porque cada q, tiene su propio espacio de , direccionamientb. 'La otra 'alternativa e s utilizar el mismo espacio de direcdonimiento para 'memo&' y E/S. Este es d caso de las computadoras que emplean 6610 un conjunto de SeAales de .lec@ra y escritura y no hacen diferencia entre direcciones de memoria y E.)s. Esta configuracih se denop & &e n h. memoria, La computadora trata a un registro de rnpeada & ~a - ,mina EJS m irt~kce como parte del sistema de memoria. Las direcciones asignadas para ntmwria registros de interface no pueden utilizarse para palabras de memoria, 10 cual ereduce el rango de direccioh de memoria disponible. En una organizacih da E/S mapeada en La memoria, no hay instrucciones especificas de entrada o salida. La CPU puede manipular datos de B/S que Siden en'+tras de_interface con la misma instruccih que se iaSiIii para. manipular palabras de memoria. Cada interface se organiza como un eoqjunto de registros qiie responden a peticiones de lechira y escritura en el +tia de diredonamiento normal. D e manera tpica, se reserva w w t o del e6paaio de diredunamiento total para registroe de interface pero, en general, se pueden coimar en cualquier direcci6n mientras no existe t i d i & .uiia pqiabra de m r i a que responda a L a misma d k c & ~ Las c~)rnputado~s~ con E/S mapeada en memoria pueden utilhr iristntccPo~ -de tipo meniork para accesar datos de E/S. Bsto permite a la
,
S
de memoria y una & a m h c i e de E/S se reconoce mediante h e a s de l&um y ewrihra szparadgs. L a CPU-espei:iicab si la direccin en las lineas
a*
r,:
computadora utilizar ias,q~ismas instmccionm para trsuisfererina ae entrada&la o para transferencia &m-oria. L a wmtaja .es que las instrucciones de q g a y a ~ ~ e n a n ) i e a t o , u ~ dpara a s - leer: y escribir en h memoria pueden, utilizarse para introducir y sacar datos de 1 - registros de E/S. En una computadorii tipicai hay mas instnicciones de referencia a memoria que . htru+ones de E/S. Con las E/S mapeadas en memoria todas las instruc, . cioqp.que hacen referencia a mem~ria tambidn e s # hdisponibles para E/S.
,
,
puedo d i EIS
,
,
.
m .
Canal de datos
4
"
..
b i d -
'd'e'd
I
d .
'
pwmA
..
1:.
,
:
a
.
. .
. .
Ala CPiJ
.-.
--L
un registro de control, un registro de estado, acopladores de canal y circuitos de temporizacin de control. La interface se comunica con la CPU mediante el calla1 de datos. Las entradas de seleccin de integrado y de seleccin de regisaro determinan l n a direccin asignada a la interface. Lectura de E/S y escritura de EkS son dos lneas de control que especifican una entrada o salida, respectivamente. Los cuatro registros comunican en forma directa con un dispositivo de E/S conectado a la interface. Los datos de E/S hacia y desde el diposibivo pueden transhime al puerto A o al puerto B. La interface puede operar con un dispositivo de salida, con un dispositivo de entrada o con un dispositivo que requkre tanto entradas como salidas. Si la interface est conectadh a una impresora, s610 sacar datos, y si da servicio a un lector de caracteres, slo introducir datos. Una unidad de disco magntico transfiere datos en ambas direcciones pero no al mismo tiempo, por lo que la interface puede utilizar lneas bidireccionales. Se pasa un comando a l dispositivo de EJS al enviar una palabra al registro apropiado de la interface. En un sistema como este, no se necesita el cdigo de funcin en el canal de B/S, porque el comando se enva al registro de control, la informacin de estado se recibe del registro de estado y los datos se transfieren hacia b s registros de los puertos A y 8.Por lo tanto, la transferencia de datos, el contkol y la informacin de estado se realizan siempre mediante el canal de datos comn. La diferencia entre datos, control o informacin de estado se determina del registro particdar de la interface con el que se comunica la CPU. El registro de control recibe informacin de control de la CPU. Al cargar los bits apropiados dentno del registro de control, la interface y el dispositivo de E/S conectados a ella pueden colocarse en diversos modos de operacin. Por ejemplo; el puerto A puede definirse como un puerto de entrada y el puerto B como un puerto de salida. Pueden darse instrucciones a una unidad de cinta magntica para que rebobine la cinta o para que se arranque con un movimiento hacia adelante. Los bits en el registro de estado se utilizan para condiciones de estado y para registrar errores que pueden ocurrir durante la transferencia de datos. Por ejemplo, un bit de estado puede indicar que el puerto A ha recibido un nuevo conjunto de datos del dispositivo de E/S. Otro bit del registro de estado puede indicar que ha ocurrido un error de paridad durante la transferencia. Los registros de la interface comunican con la CPU por medio del canal de datos bidireccional. El canal de direcciones selecciona la unidad de interface por medio de la entrada de seleccin de integrado y de las dos entradas de seleccin de registros. En forma externa, debe proporcionarse un circuito (por lo general un decodificdor) para detectar la direccin asignada a los registros de la interface. El circuito habilita la entrada de seleccin de integrado (chip select, CS) cuando se, selecciona la interface mediante el canal de direcciones. Las dos entradas de seleccin de registro RS1 y RSO, ppr lo general, se conectan a las dos lneas menos significativas del canal de direcciones. Estas dos entradas seleccionan uno de los cuatro registros en la
418
apfmm m c 6 O r g m i z d b de entrada-salida
interface, se@p se e s p d c a ,en l a tabla que acompaa al diagrama. El. cwtenido del regist~o. wlecckonado se traxlsfkre a la CPU mediante el canal de datos ,cuando se bahilih .lade M a r a de,.EiS. La CPU transfiere infmmaci6n tiinaria al =gis& seleccionado m d h k el cana1 de datos cuando la habsta la entrada E/S &!ma.
<
Control de habfitacihn E l mtodo de control de habilitacin (estroboscpico) de transferencia 'asincrona de datos emplea una lnea de control nica para temprizar cada transferencia. La unidad h t e o la. unidad destino pueden activar el pulso de habilitacibn. L a figura 11-3(a) muestra una transferencia iniciada por la fuente. El canal de dam lleva la informacin binaria de la unidad fuente a la unidad destino. D e manera tlpica, el canal tiene heas miiltiples para transferir un b p o palabra completos. E l estrobosmpio es una h e a hita que informa a la unidad destino cundo est disponible en e l canal una ppiabra de datos vAlida. Como 8e muestra en e l diagrama de temporizacibn de la figura 1 1 3 @ ) , primero la unidad fuente coloca los datos en el canal de daDespubs de mun 'b'teve retraso, para asegurar qui los datos se e s t a b b en un valor regular, h h e r r t e activa el pulso de habilitaci6n. L a infomci6n en el canal de datm y la sehl de habilitacin se quedan en estado activo durante un &di ki - . . . tiempo suficiente para permitir que la unidad destino z e c h los datos. Con frecuencia la unidad destino utiliza un flanco descendente del p u b de ih h'mb habilitacin para transmitir el contenida del canal de datos a sus regiairos JR , i ~ f r , ~ . t internos. La fuente quita los dakm del ranai en un breve periodo previo a la deshabilitaeibn del pulso de habitaei61~ En mlidad, la fuente no tiene que cambiar l a Inforrnacidn en el canal de da-, el W o de que la seiial de habilitacidn est ddab'itada indica que el canal de datos no contiene datos vbtliclos. Habr disponibles nuevos datos vdlidos a610 degpu6 de que se vuelva a habilitar el pulso de control de habiiitacih. La figura 114 nuestra una tcansfetkmcia de datos iniciada 'por la unidad destino. En este caso, la unidad destino activa d pulso de habilitacin, uifotmando a : la fuente que proporcione los datos. La unidad fuente
i r
F .
traqskmicia de datos.
bansemcia de datos.
-
B..-L..-
!1 canal de datos. datos deben ser vAlid08 y permanecer ea el canal e l tiempo suficiente que k unidad destino ios acepte. Puede utiiiime otra vez e l flanco kendente del pulso de LabilitaciGn para activar un registro destino. Desl i a unidad destino habilita el pulso. La fuente quita los datos del canal espu& de un intervalo de ,tiempo muchas computadoras, el pulso de habilitacid controla en realihd medbntebpulsos-de reldj en b CPU. La CPU est siempre a cargo de os canales e i h m a a las unidadeslexkmas,c6mo transferir datos. Por &-m&jmPlo,e l pulso de habilibci6n de la f e a 113 debe ~ e una r s e M de . d montrol de escritura de memoria de la CPU a una unidad de memoria. h &%ente, en este caso la CPU, coloca una piabra en el canal y le informa a a unidad de memoria, la cual es el destino, que sta es una operacidn de a w i t u r a .De igual manera, e l pulso de habilitad611de la figura 11-4 puede ier una sefiaI de eontkol de lectura de memoria de la CPU a una unidad de nemoria. E l destino, la CPU, inici h operacibn de lectura para informar a !liga memoria, la m4 es la canal de da& La tramferema de = S i r a la que se acaba de describir. Por l o general, k transferencia de datos entre F a inrrface y un d+positivo @e E/S es controlada por un conjun&,. de lneas de recanocimiento mutuo. d
1 *S
a bu&
econ~cimiento+~K rrP del mktado bbilitacih es la unidad fuente que inicia la no m m a de saber si la unidad ha recibido en
,desventaja de que tramfemcia tiene destino realidad los datos que col& en el canal. D e igual manera, una unidad
la transferencia no puede saber si la unidad fuente ha colocado - & h k los datos en el canal. El mgtodo de reconocimiento mutu~~handshake), .pueIv- este problema al introducir una segunda seiIal de control prop~ona una respuesta a la unidad que inicia la conlml de dos lneai 131 principio bbtm del d b p d o de recondmhto mutuo de dos lneas de transferencia de da- es el siguiente. Una h e a de control estA en la misma dired6n que el flujo de datos en e l m a l , de la fuente al destino. La utiliza la unidad fuente para informar a la unidad destino si hay datos viilidos en d canal. WoWa m e s de, control est en la diceeeihn opuesta. La utiliza la unidad d & h o para irfoqar la fuenSes i puede aceptar datos. La secuencia de control durante la transferencia depende de la unidad que inicia la transferencia. . La fipra 11-5 muestra el pmcedhiento de transferencia de datos cuandolo'inicia la fuente. &E dos h a s de recanocimiento mutuo son &tos mlidos, ue p e r a l a unidad fuente y, &tos ncqtados, generada por la unidad estino.+EI diagrama de twipocizaci6n muestra el+intercambiode seales entre l a d o s .midade&la rwuencia de eventos listada en la parte (c) muestra los cuatro estados posibles que puede tener e1 sistema en cualquier momento. La uriidad fuente inicia la transferencia al colocar los datos en el canal y habilitar su mial de datos vlidos. La unidad destino activa la seal de dalos aceptados des@& de que acepta los datos del canal. En seguida, la unidad fuente deshabiiita su seiial de datos vblidos, la cual invalida las datos en e l canal, despus Ia wiidad destino deshabilita su seal de datos a c q ~ o y s el sistqa a su estado inicial. ia unidad fuente no envh lw datos siguientes hasta decpus que la unidad destino muestra su disponibilidad. para aceptar nuevos datos al dehabilitar su se-1 de datos acqofados.Este esguerq pemite ref%s& arbitrarios de un estado al siguiente y que cada unidad pes@sida apu propia vekidad de transferencia de datos. La v e i ~ d a d a e transferencia est determinada por la unidad d s lenta. La trhsferencia que utiliza lfneas dq reconocimiento mutuo iniciada por la unidad destino mudm en la figura 114. N6tese que el nombre de la sefial generada por la unidad destino s e ha cambiado a prepara& pura &os, con el fin de que refleje su nuevo significado. En este caso, la unidad hente n o 4 : b l l o c a datos en el canal hasta que recibe la &al preparada pira datos de la unidad destino. De ahi ert adelante,,el procedimiento de recow cimiento mutuo sigue el mismo patrdn que en el caso iniciado por la unidad fuente. N 6 t e que la secuencia de eventqs m ambos casos sera iddntica si ' brlsli&erd&05%~&ial &e &m& p*h1dnt9d como el komplemento de datos dmpfdbs. Ik liec* !a nica dif&cia en& la h&cia iniciada por la fuente y ia iriiciada par d dbtiii, @b9 'Ia el-6n de su estado inicial. E l qhema de d ~ & h i n t 6 ' m u t u opropqiona un alto grado de 'flex3bdi&d1:y &fiabilidad $orque' bl &r&o &be de una transferencia de datos' w bdsa & I , i aparticipacidn dctiva de ambas unidad- S i m a unidad & delectuo&, no &, mmP1etafr&'ia ,~msferench' de &tos. E l error puede detectarse' m d h k un m&&is& de ~hPO fmmmwido, que produce una
desha que inicie
~~.
---4
.1!
: L ) R !&ll4:it? ~
L.
-* tdl'
T
'
t#n,:,::,h:r,,rAA
-!.
~.l.lq$~
II
16,-~
l L b 1 4 t q , wk , ~ i j + - . I L / T ~ ~ I ~ : i a GP ,
f , j 3 ~ 2 : , : , 1 t , ~:J v fi-attc ,,d;r td,h,i f8, 5 A -.L ---, ~ ~ , t > , -.~:ir-p ~ , I j ~ t ~ r & ~ ~
3
I , I ~ , .
batosaceptadm
&
r k + q r , , , *S:
v,~:)!
~ r d !d,+iigib
IL.1
i
-iii.-h la 9 --.?#Av ~ p il 4
t .
iiii fiI
> L .
l
~ b p ~ ! f i ihi~q:, , I , ! 1-
tdc
i.1 ~dofi't:,Jy,:r-.t. b r 1 . i
- -
'.
,*,i I :
4.-
L
!
L,f~m< ,r
,
1
,
4 . r ~
"
, ,
,l
t +
;id
1
,,la>
e 1 b-,,i
-'
.:IA, , - j a l b m , ( l t , t t - *
'
A
" " 6.
ui3di j l .*=a
r m d l Ir r r ,i 7 Figura 1 1 5
u:,,,:-a,fl:
..+.,.7!h
Tcnsk&a
. c , - t u ~ . n r i , , i :i l
t s a n s b c b de d a b p no se qompleta dentro de un tiempo paedebmhdo. La &l de h p o transcurrido se implanta mediante un reloj interno que inicia un tiempo de conteo cuando la unidad habilita una de sus e l e s d control de recon+knto, Si la seiIal de recormhiento mutuo que proviene del &kho no =ponde dentro de un cierto tiempo, l a unidad ednsidera que ha mrrido un error. La &tal de tiempo transcurrido puede utilizarse para interrumpir e l , p v d o ry, por lo tants, para ejecutar una rutina de que realice una accin de recypacin de econveriente.
Lrn
m '
)LEC &.SIa!
'm
F i
a
J
~ l b S P s f e F e t l & a s ~ d e d a a o s4 E 3
S;
-29
,a
:IFrTd!I
i
-a
'
r
g IiP
3 Wgmm de bloque
I I .
qdl
.
3 1
Canal de data
'
L .
.-
1
1
x136irw
Unldaad&
,m I
iRrR
tu
Unldad fuente
CbhrdabaCwaL
Hab&lar&hdl&3,
c) ~eaienci de eventm
Deehabilitat&m d i & .
asinnvma
bit de inicio
,Ir
tierra comi5n. La transmisibn paralela es ms rapida pero requiere muchas heas. Tamaiih se h i i para distancias cortas y mando la velocidad a imprtante. La tran8misibn serial e a d s l ~ t pero a es menos cara porque * s61o req& u n pt?r de . e a ~ d ~ c t p r e ~ ' La tramdsi6rr serial puede ser shcrona o asncrona. En la transmisidn sinmona, ias dos unidades comparten urdecuencia de reloj c o m h y los bits se transriiiten en PbMa c&ntjnwa la velocidad 'que dictan los puIsos de reloj. En Ia transmisidn serial de larga distancia, cada unidad es manejada por un reloj -aradade. la misma frecuencia. En f o m peri6dica se transmiten &he de sina-ci6n entre las dos unidades para mantener sus doies en sincrona uno cortc~l m.En h ttansmisibn ashcrona, sblo se envia infinfqmnrrnci,b b&ia cuando est disponible y la lima estd desocupada cuan do;^ hay inhmci6n por transmitir. Esto contrasta con la informacibn sh~zon&, en la cual \os bits deben transmitirse en forma continua para conservar suicronizada la frecuencia de reloj en ambas unidades. La trans' misi6n serial shcrsna ?,analiza ms adelante en la secci6n 11-8. Una tmiea seria4 de transmisihn asncrona de datos, utilizada en niuchas terminales interaZvVas -&pIfea bits especiales que se insertan en ambos extremas del c6digq de_carAckr.Con esta tcnica, cada carcter consta de tres partes: un bit de inicio, l o s bits del carActer y los bits de paro. La convencin es que el transmisor est en el estado 1 cuando no s e transmiten caracteres. E l primer bit, liarnado el bit de inicio, es siempre O y se utiliza y r a ipdim,d comienzo de un carcter. E l l h o bit, Uamado e l bit de paro, S :siempre 1 . En la 11-7se mu-a un * l o de este formato. Un cadcter kansmitido pude-qektatlo el reeptar a partir del con* cimiento de las reglas de trapismisi6n: -. .. l.,Cuando nodse =ti enviando un carkter, la lnea se mantiene en el '&a& 1. 2. La iniciaci6n de una trammisin de&ar&cter se detecta a partir del bit de i n i c i a 4 cual es siempre 0. 3. Lbs-bib de c a x a c k siempre van despus del bit de inicio. 4. Despu& de,2ue se transmite e l Bltimo bit de cardcter, se detecta un . bit de cuando la lnea retorna al estado 1, por al menos un tiempo eorrespnndknte a un bit. .
,
Al usar estas reglas, el receptor puede detectar el bit de inicio mando la Enea pasa de 1 a O. Un reloj en el receptor examina la lnea en los tiempos de bit dnwnientes. El receptor conoce la velocidad de transferencia de los bits y la cantidad de bits de carackm que debe aceptar. Despus de que se trmsmiten los bita de' caracteres, se.enmn un6 o dbs bits de paro. Los bib bit de prim de paro &@n siempre en el estado 1 y marcan el fin del cara* para dar a entender el estado desocupado o de espera. Al final del catacter, la h e a ae conserva en el estado 1 por un perodo de al menw uno o dos tiempo8 correspondientes a un bit, para que el transmiso~ ye l ~ q t o puedan r volverse a sincronizar. El tiempo que la linea permanece en este estado depende de l a cantiad de tiempo requerida por el equipo para volve& a sincronizar. ~igunas terminal- elechmnecAnicas antiguas utxlizan dos bits de paro, pero las temnales ms nuevas utilizan s l o un bit. La k e a permanece en el estado 1 hasta que se transmite otro carcter; i3l & m p de paro awgura que no Ilegarb un carActer nuwo durante uno o das 1 i e . m ~ de ~bit. Como ejemplo, consideremos la transmisin aerial de una terminal cuya velocidad de transfekcb es de 10 caracteres .par segundo. Cada caracter transmitido coqsta de un bit de inicio, Dcho bits de informaci6r1,y dos bits de paro,,para total de 11 bits. 10 caracteres por segundo significan que cada carActer n w i & 0.1s para la transferencia. Como se van a transmitir 11 velocidad en b d i o s bibt se s a k que el .tiempo para un bit ea 9.09 m s . La velocidad m bnudios se define como la velocidad a la cual se transmite informacih serial y es equivalente a la transfemcibS de datos en bits por segundo. Diez caracteres por segundo con un formato'de 11 bits tiene una velocidad de transferencia de 110 ba'ltdiw ta ferminal tiene un teclado +y una impresora. Cada vez que se una teclaAuna terminal mva 11 b i t a en forma serial a lo largo de una lnea. Para imprimir un carcter en la impresora, d e k recibirse un mensaje de 11 Mts a travs de otra lnea. La interface de Ia terminal consta de un trzmmbr y un receptor. El transmisor acepta un caracter de 8 bits de la computadora y p d e a enviar un mensaje serial de 11 bits a travs de la lInea de la im~resora. E1 meptor acepta el mensaje &al de 11 bits de Ia lhea del @lado e introduce 4 &digo de c-+ter de 8 bits dentro de la computadora. B t n disponibles circuitos integrados diseiiados en forma q x c f i c a para proporcionar la interface entre la computadora y terminales interactivos similares. Tal circuito wdmomuia una i&bw@e de comunicacidn a s f m a reaptmdmlssmim mfmno univtml (universal awnchvonoics
S
asinc~ma seunirihue% tra 'enl a figura 11-8. Funciona-*emo transmisor y v t o r . La interface se inMallzia 'para .mmodo de tfanshmW partidar mediante un byte de +eonholytese carga dentro de sir reghtro.demtmL E l +tro transmisor
sei.&imd*regEBCro
'
RS
,
Terhp-
control
Le-de
B/S
m mm1
I
-9
buitwqdeI/S
. 'I
.
RD'
..
1
'-
Registrode
Recibir da-
~
*
1
'
'
'.&Jm4i,w -
o
1,
R@m*
I d
- ..
X@rd'tl-&
r,
. .
a
&ha
w,. (Slegie-de-0
*,
..
de broqte d e h a i n l u h a b p i i de ~~n
islnamu.
acqta.b ~ . @
kamk
un: m@m de
de&w,de h CPU a bvds del anal de datos. &te byte & comiden~ pam trammisibn serial. L a parte
dmtM $e ~ t r @&o o de corrimhto y, cuanda se a-ula un byte de datos completo, se transfiere al registro receptor- La CPU puede deecimar que el registro recepbr lea el byte a trav~del~ana~d~lo;ainpa~Uta.anelsogistm~e~~doseutilVan . ~ s & m W g ~ y p ~ r , c i ~ . e m r e a ' p p .wurrir dwmb la tmwnhih,La Wil pude k el mgistra de estado para ooqprqlqrel @o de h sI s i b de k a n k a y ~ e b m h a si r ha ocurrido algn . . F 4 sbeas,&qLwntrol d-esa:kifjn..dehtegrhdg y .de lectura y d t w a
reoeptora recibe infomci6n
=CPtOf
coiriunican con la CPU.La agrada de decd6n de inkgrado (CS) Be u t i l i z a para sehionar la interface a -vs del canal de direcciones. La sekabn .de mgistro (ES) s e asocia con los contrales de lectura (RD) ydtura Ros, xegistrw son & l o de escritura y dos son d i o de lectura. El registro seletcionado es una porcin del vahr RS g de 1 w estados RD y WR, segn . se lista en la tabla que acompaa al diagrama. La opracibn.de una intwhee de tammhdh ashcrona se inicializa mediante i a CPUi al enviar un byte sil registro de mnhL E 1 procedimiento de inichlhcibn coloca la interface en un modo de operacin wpecfico porque define ciertos parhmetros, como la velwidad en baudios que se va a utiiizar, cuntos bita hay en cda~sadder/ la.decisin de generar una comprabacih de. la paridad y eithtos bits de alto se -den a cada car$&'r:: Das bits en d r&strobde mtadq re usan como banderas. Un bit ae utiliza para indicar 8i 4 registro &ansmisor est vado y otro se emplea para indicar 1 el registro wceptor mta Ileno, ta operacin de la parte :de transmisor de la inkrfaee B la siguiente. La U ? U a lee eL registro, de estado y comprueba la bandera para obsemar si . ~ t vado reeisho tmmimr. S i est vado, la CPW transfiere un carcter al registro transmisor.y la interface desactiva la bandera para marcar h o e l qbtro. El primeic hit en el registro de corrimienh de1 transmisor se activa m O para generar un bit de inicio, Elbcarcter se trsnsfiere en paralelo del registro trawmiwr al iregistro de desplammiento y e agrega la cantidad apppia* de bi# de alto al registm de corrimientod k p u s se marca vaco .el registro Qammimr. &ra,.puede ka~~mitiise el mdcter un bit a la vez , al colmar b d a t o s en el mgistro de codmiento a la velocidad de baudios ' mpecificada. La CPU puede transferir otro carcter al registro transmisor, despuds de comprobar la bandera en el -m@tro de estado. Se dice que l a interface es de registm dbble porquepuede cargarse un nuevo carkkr tan pronto comed anterior comienza la transmisi6n. 1 La opera& de -h -parte mqptora de h interface es similar. ta entrada de m h n de &#os estA en el atado 1 cuando la h e a est inactiva. El confml receptor monitorea la lnea de r e q d b n d i datos en busca de una -1 d para dekctar h ocurrencia de M bit de W o . Una vez que re ha detwtado un bit de-&ici~, l o s bits de &&r que entran se colocan en el de corririoiento en donde se reconen a la velcieidad de baudio , establecida. Despus*de i & i r los bits.de &tos, ' la interface comprueba la paridad y los Pi+g,dealto, En seguida, se t m h m el cardcter, en paralelo, del regis@ de .comhimto al registro de mceplci6n, sin los bits de inicio y de al@ La banda@en el registro de stada se activa para indicar que el q i s t r o Ceceptar est &no. b CPY lee, el ,registrg de estado y comprueba la bander? y, s i pt+ activa, lee los datus d4 registro mxptor. La interface ver$.. cualquiera emm posibles durante la transmisibn " activa bita apropiados en el .registro de estade La CPU puede leer el registro de estado en cualquier momento para comprobar s i han ocurrido erro=. 'f.res emm p o s % ! - que cornpnieba iq inke$a@ durante la transmi-
m).
428
l,..
CA-O
o=
Organizacin de entrada-salida
,
,
,
8
,
M
,
,
.-
,
'
* 1--1
r~
8 ,
sin son el error de paridad, el error de configuracin y el error de superposicin. Un error de paridad ocurre si la cantidad de dgitos 1 en los datos 1 'recibidos no corresponde a la paridad correcta. Un error de posicin ocurre , . t, I , t S > i no se detecta el nmero correcto de bits de alto al final del carcter rsecibido. Un error de superposicin ocurre si la CPU no lee el carcter del ,, i registro receptor antes de que el siguiente quede disponible en el registro de , ,-# , corrimiento. Los errares de e&anearnimto dan c6m6 Multado una p4fdida - , ,de caracteres en el flujo de datos recibido. -17 ~ ~ ' l ~ ~ j ~ ~
S
:l.
*
e ' '
f
11,
J . '
L .
,
.',
8 1 '
*.
e 9
,, ,
llf,:.
-rnr
,
l
Un buffer primero en entrar, primero en salir Prst-in, 3rd-out, FIFO) es una unidad de memoria d e localidades adyacentes que almacena informacin de -, s i a . L< manera que el primer dato que entra es el primero que sale. Un bffer FIFO tiene terminales de entrada y salida separadas. La caracterstica importante -. , , , de este buffer es que puede introducir y sacar datos a dos velocidades ,. I ,! diferentes y que los datos de salida estn siempre en el mismo orden en el - cual se introdujeron al buffer. Cuando se coloca entre dos unidades, el FIFO , I r J l . Y , F. puede aceptar datos de la unidad fuente a una velocidad de transferencia y 1 lq enviar los datos a la unidad destino a otra velocidad. Si la unidad fuente es , ,' 7 ms lenta que la unidad destino, el bffer puede llenarse con datos a una - 4 . Ivelocidad lenta y despus vaciarse a una velocidad ms rpida. Si la fuente , II~,~II . es ms rpida que el destino, el FiFO es til para aquellos casos en donde :.a ' nin los datos fuente arriban en grandes cantidades que llenan el buffer, pero que i ! r: el tiempo entre esos arribos es suficientemente largo para que la unidad , I . t ; destino vacie alguna o toda la informacin del buffer. Por lo tanto, un buffer lb r FiFO puede ser til en algunas aplicaciones cuando se transfieren datos en I ,t.- ,, r -,I forma asncrona. El buffer FIFO apila los datos conforme llegan y los entrega en el mismo orden cuando se necesitan. 1 . . > ' ' v : El diagrama lgico de un buffer FIFO tpico 4 X 4 se muestra en la r ~ q ; 1-~,, , 1 r ,,> ,., , I G figura 11-9. Consta de cuatro registros de 4 bits RI, I = 1, 2, 3,4 y un registro . de control con flip-flops Fi, i = 1, 2, 3, 4, uno para cada registro. El FIFO , lb , rjri I.C~ puede almacenar cuatro palabras de cuatro b i t s cada una. Puede aumentarse la rI .< 1 1 . cantidad de bits por palabra al elevar la cantidad de bits en cada registro y .(,ir , " , ' puede aumentarse la cantidad de palabras al elevar la cantidad de registros. I ,, 1, =+ Un flip-flop Fi en el registro de control que est activo en 1, indica que :n una palabra de datos de 4 bits est almacenada en el registro RI correspon. 1 1 - : frJ diente. Un O en Fi indica que el registro correspondiente no contiene datos 1 . 1 11 1. vlidos. El registro de control dirige el movimiento de datos por los registros. -h.~;*p: . Cada vez que el bit Fi del registro de control est activado (Fi = 1) y el bit .l " Fhl se reactiva ($i+l= 1). se genera un pulso de reloj que hace que el registro A ' r J.; - ! f l ~ R(1 + 1) acepte los datos del registro RI. La misma transicin de reloj activa '. , 4l,, 1 Fi+l en 1 y desactiva Fi en O. Esto provoca que la bandera de control se 2 ' r.lrl;~ mueva una posicin a la derecha junto con los datos. Los datos en el registro I t r c n ~ ii / J, se mueven hacia abajo del FiFO, hacia la salida, mientras existan posiciones
i
, a * ; J
, ,,.
.-.-I'c
1.
,!I
;,
7,
j'
l,
. a
.
n
T . + =
y , -!
,,,:m,
, 6 ) ~ .
d 1
8'
J ~ I,
1 : ,
'
I
Entrada de datas
.
I (
L.,f,
>
.,#T
.
-
R1
7
11
11..
.
L
R2
~3
R4
C
Registro de 4 bits ,
*
t
Registro de 4 bits
.
C
Registro de4Mw
i
'
Salida datos
! l
Ir
A
1
Reloj .
I1.i)
A
1 0
1
0
Reloj
1 .
A Reloj
1
4
A Reioj
1
11
4 1
I
1
+ L
A-'
8 ,
'- I
c l
t.
'
,
'
I
Insertar
h
I.
'i'
< #
: I
& . T
'.
, 4 # ~ ~
s . '
-S
.
F1--
J
m '8-
1 F m
Borrar
4
Entrada preparada
-11-
'' ''
I
., I
.
L
7
<
7'
I
'I
A
'
! L . . -
..
1 ,
r
A
-LB
.I
4.
Borrado maestro
' S
I
.('
.,:
vacas adelante de l. Esta operacin de avance se detiene cuando los datos alcanzan el registro RI con el siguiente flip-flop Fi+l activado en 1 o cuando alcanzan el ltimo registro R4. Se utiliza un borrado general maestro para , . , ,. .. . .; inicializar todos los flip-flops del registro de control en 'O. Se insertan datos dentro del buffer siempre y cuando est habilitada la .: C !Iseal entrada preparada. Esto ocurre cuando se desactiva el primer flip-flop . . t., . F1,indicando que e1 registro RI est vaco. Se cargan los datos de las lneas
. .
S :
930
de entrada al habilitar el reloj en R1 mediante la lnea de control insertar. El mismo reloj activa F, lo cual deshabilita el control mhda preparada, lo que indica que e1 FIPO est& ahora ocupado y no puede acepta? mAs datos. El procesa de avancB comienza siempre y cuando eR2 estg vado. Los datos en RI se transfieren dentro de R2 y se desactiva F1. Esto habilita la lnea entrada p r p r a d a , indicanda que las entradas esfdn ahora disponibles para otra parabra de datos. S Ee i m esta lleno; permanece activa y la linea entrada preparada permanece en el estado O. Ntese que las dos lineas de control entrada preparada e insertar constituyen un par de heas de reconocimiento mutuo initiadas por el destino. h datos recorren la pila de registros hasta d extremo de salida. La linea de control siida preparada est6 habilitada cuando se activa el ltimo flip-flop de control F4, indicando que hay datos vlidos en el registro de salida R4. ta unidad destino acepta los datos de salida de R4, y esa misma unidad deshabilita la seal de control borrar. Esta desactiva Fq,haciendo que se deshabiiite la salida preparpda, lo cual indica que los datas en la salida ya rio son vAlidos. Slo despus de que la sefial borrar regresa a O pueden moverse l o s datos de R3 dentro de R4. Si el FIFO est vacfo, no habrdi datos en R3 y F4 permanecer en estado inactivo. N6tese que las dos Imeas de control salida prqarada y borrar constituyen un par de lneas de reconwimiento mutuo iniciadas por la fuente.
rl
H -
l. E/S programada 2. E/S iniciada por intempcin 3. Accesa directo a memoria @MA)
EIS programada
Las operacion~ de E/S programadas son e 1 resultado de instrucciones de ELS escritas en e l programa de la computadora. Cada transferencia de datos se inicia mediante una instmcci6n en el progzama. Por lo general, la transferencia es M i y desde un registro de CPU o aerMco. Se necesitan otras instrucciones para transferir los datos hacia y desde la CPU y la memoria.
Transferir datos bajo e l control del programa requiere que la CPU &ice un monitorea constante de perifricos. Una vez que se inicia una transferencia de datos, es necesario que la CFU monitoree la interface para ver cundo puede volveme a ha= una transferencia. lkpende de las instrucciones programadas y ejecutadas en la CPU, observar en detaIIe todo b que acontece (enla unidad de interface y en el dispositivo de E/S.
iti t e m p d d n
IOP
En el mbtodo de E f S programada, la CPU permanece en un ciclo de programa hasta que la unidad de E/S indica que est preparada para transferencia de datos. Este es un proceso que consume bastante tiempo porque mantiene ocupado el pmcesadox en forma hmxsaria, Puede evitarse al usar una opeidn de interrupcin y comandos espdales para informar a la interface que emita una reial de solicitud de interrupcibn mando estn disponibles los datos del dispodtivo. Mientras tanto, la CPU puede avanzar a ejecutar owo programa. En ese lapso, la interface sigue monitoreando dispositivos. Cuando la interface determina que el dispositivo est preparado para transferencia de datos, genera una solicitud de interrupcin a la computadora. Cuando se detecta la seal de interrupcibn externa, la CPU detiene un momento la tarea que est procesando, transfiere e l control a un programa de servicio para procesar la transferencia de E/S y despuk regresa a la tarea que ejecutaba originalmente. ta transferencia de datos bajo E/S programada es entre la CPU y un periMrico. En e l acceso directo a memoria, (DMA), la interface transfiere datos hacia adentro y hacia afuera de la unidad de memoria por medio del canal de memoria. La CPU inicia la transferencia al proporcionar a la interface la direcci6n inicial y la cantidad de palabras necesarias que se van a transmitir y despuds avanza a ejecutar otras tareas. Cuando se hace la transferencia, el DMA solicita ciclos de memoria mediante el canal de me moria. Cuando e l controlador de memoria concede la solicitud, el DMA transfiere los datos directamente a la memoria. La CPU d o retrasa su operacibn de a c e a memoria para permitir la transferencia directa de E/S a memoria. Como la velocidad de los perifgricos por lo general es menor que la velocidad del procesador, las transferencias a memoria de E/S no son frecuentes en cornparacibn con el acceso a memoria del pmcesador. l a transferencia DMA se analiza con mayor detalle en la seccin 11-6. Muchas computadoras combinan la 16gica de interface con los requisitos para acceso directo a memoria en una unidad y h llaman procesador de E/S IOP. E l WP puede manejar muchos perifricos a travds de un DMA y la opci6n de interrupcin. Con tal sistema, la computadora se divide en tres mdulos separados: la unidad de memaria, la CPU y el IOP. ~ Q S procesadores E/S se presentan en 1a seccin 11-7.
Ejemplo de ES programada En el mdtodo de E/S programada, el dispositiva de E/S no tiene
acceso
432
requiere que la CPU ejecute varias instrucciones, incluyendo una instrueci6n de entrada para transferir los datos del dispositivo a la CPU y una uistruc n de almacenamiento para transferir los datos de la CPU a la memoria. Pueden necesitarse otras instrucciones para verificar que estn disponibles los datos del dispositivo y para contar b cantidad de palabras transferidas. U n ejemplo de transferencia de datos de un dispositivo de E/S por medio de una interface a la CPU se muestra en la figura 11-10. E l dispositivo transfiere bytes de datos uno a la vez, conforme estn disponibles. Cuando esti4 disponible un byte de datos, el dispositivo l o colma en e l canal de E/S y habilita su lnea de datos V A M O S . L a interface acepta el byte en su registro de datos y habilita l a lmea de datos aceptados. La interface adiva un bit en el registro de estado que denominaremos bit de "bandera"o bit F. Ahora el dispositivo puede deshabilitar la lnea de datos vblidos, pero no transferiri otro byte hasta que la interface deshabilite la lnea de datos aceptados. Esto se apega al procedimiento de reconocimiento mutuo establecido en la figura 113.
Eeuihua de 3/SL
r
Datm aceptados
F = Bit &-huiera
E s t -rito un programa para la computadora con el fin de comprobar la bandera en el registro de estado, para determinar si se ha colocado un byte en el registro de datos mediante el dispositivo de E/S. Esto se hace al leer el registro de estado dentro del registro de Ia CPU y comprobar e1 valor del bit de bandera. Si Ia bandera es igual a 1, la CPU lee los datos del registro de dabe. ihpus, la Cmr o la interface de8activan e l bit de bandera a O , dependiendo de c6mo estn disefiados los circuitos de l a interface. Una vez que se desactiva La batuda, l a interface d~habilital a linea de datm acepta& y el dispositivo puede transferh, entones, e l siguhtcs byte de datos. Un diagrama de f l u j o del programa que debe escribirse para la CPU, se muestra en la figura 11-11. Se considera que el dispositivo estii enviando
-6~
11-4
Modos de bansferem5a
433
Ir
=0
=1
11
11
no
s i
11
Figura 11-11 Diagrama de flujo para programa de CPU para inkwlucir datos.
una secuencia de bytes que debe abcenarse en la memoria. La transferencia de cada byte requiere de tres instrucciones:
1 , Leer el registro de estado.
2 Comprobar e l estado del bit de bandera y transferir el control al paso 1 si no est activado o a1 paso 3 si l o est. 3. Leer el registro de datos.
434
. .
Cada byte se lee en el registro de la C P U y despuh se transfiere a la memoria con una instnrccibn de almacenar. Una tarea c o m h de proaama- qi6n de E/S es transferir un bloque de palabras de un dispositivg ~;E/S y ~ a l m a c e n w f a en s un buffer de memoria. Un programa que almacena caracteres de entrada en el bff~rque utiliza las instnicci&es definidas en el capitulo 6 se lisfa en Ia tabla G21. 131 m4tcdo de,E/S programada es particularmente til en computadoras pequeas de baja velocidad o en sistemas que &Sin dedicados a monitorear un dispositivo en forma continua. La diferencia en la velocidad de transferencia de informacih entre la CPU y el dispositivo de E/S hace ineficiente este tipo de transferencia. Para apreciar por qu4 es ineficiente, consideremos una computadora tipica que puede ejecutar las das instrucciones que leen el registro de estado y camprueban a bandera en un micro-segundo. Consideremos que el dispositivo de entrada transfiere sus datos a una velocidad promedio de 100 bytes por segundo. Esto es equivalente a un byte cada 10000 micro-sepndos. Esto significa que la CPU comprobar la bandera 10,000 veces entre cada transferencia. La CPU est gastando tiempo mientras comprueba la bandera en lugar de hacer alguna otra tarea de procesamiento
t i I .
sEC&N
1 1 5
Prioridad de intempdh
435
apunta a una posicin en la memoria en la cual se almacena la direcci6n inicial de la rutina de servicio de E/S. En la secci6n 11-5 se muestra un sistema de intempci6n con vector.
rutitta de
E/S
Consideraciones de pxogramaci6n E I ariiifhis anterior se relaciond con la ckuiteria necesaria para lograr la interface de dispositivos de E/S hacia un sistema de computadora. Una computadora tambidn debe tener rutinas de programaci6n para controlar los perif6ricos y para la transferencia de datos entre el procesador y los perif& ricos. h s rutinas h E/S deben emitir comandos de control para activar el perifdrico y para comprobar el estado del dispositivo, con el fin de determinar cundo estd Esto para transferencia de datos. Una vez que est preparado, la informati611se transfiere dato a datu hasta terminar. En algunos casos, se proporciona entonces un comando de control para ejecutar una funcibn de dispositivo, como detener la cinta o imprimir caracteres. Con frecuencia las traasferencias estn acompafadas de mmprobacibn de errores y otros pasos iitiles. En las transferencias controladas por intempci6nJ los programas de E/S deben enviar comandos al perifrico para interrumpir cuando estb preparado y para dar servicio a la interrupci6n cuando m r r a . En la transferencia DMA,los programas de E/S deben inicializax el canal de DMA para comenzar su operacibn. E i control por programa del equipo de entrada-salida es una empresa compleja. Por esta razdn, 10s fabricantes proporciorian rutinas de E/S para lbs perifricos estandar como parte del sistema de computadora. Por lo general, se incluyen dentro del sistema operativo. L a mayora de los sistemas operativos contienen diversas programas de E/S para soportar la lnea de perifkricos particular que se ofrece para Ia computadora. Las rutinas de E/S est8n disponibles como proce&rmientos de sistemas operativos y el usuario hace referencia a las rutinas establecidas para especificar el tipo de transferencia requerido, sin entrar a detallados programas en lenguaje de miquina.
prioridad de intewupcibn
encuesta
nuwa PSW para la rutina de servicio. Aqu na consideramos la PSW para no complicar el analbis de las interrupciones de E/S. En una aplicaci6n tpica, se conectan varios dispositivos de E/S a la computadora, y cada dispositivo puede originar una solicitud de interrup ci6n. La primera tarea del sistema de interrupcin es identificar la fuente de la interrupcidn. Tambin existe la posibilidad de que varias fuentes soliciten servicio en forma simultnea. En este caso, el sistema debe dkdir tambih a cual dispositivo atender primero. Una priot.idad de i n f m p c i b r r es un sistema que establece una prioridad entre las diversas fuentes para determinar quk condicin ae va atender primero cuando llegan al mismo tiempo dos solicitudes. El sistema tambin puede determinar cuales condiciones se permiten para interrumpir a la computadora mientras se da servicio a otra interrupcin. Se asignan niveles de internipci6n de alta prioridad a solicitudes que, si se posponen o interrumpen, pueden producir consecuencias serias. Los dispositivos con trarw ferencias de alta velocidad como discos magnticos reciben una alta prioridad y los dispositivos lentos como los teclados reciben baja prioridad. Cuando dos dispositivos interrumpen Ia computadora al mismo tiempo, I a computadora atiende al dispositivo con mayor prioridad. Puede establecerse la prioridad de interrupciones simultneas mediante programacin o circuiterla. Se usa un procedimiento de "encuesta" para identificar la fuente de prioridad ms alta por medio de programacibn, En este mhtodo existe una direccin de transferencia de control comn para todas las interrupciones y el programzr cuida que Ias interrupciones comiencen en Ia direccibn de transferencia y registra las fuentes de inkrrupci6n en secuencia. E I orden en la cual se prueba detemina la prioridad de cada internipci6n. Se prueba phmero la fuente de prioridad ms alta y, s i su seal de interrupcin este activada, el control se transfiere a una rutina de servicio para esta fuente De otra manera, prueba la fuente con Ia siguiente prioridad hacia abajo y asf sucesivamente. Por lo tanto, la rutina de servicio inicial para i d a s las interrupciones consiste en un programa que prueba las fuentes de intempci6n en secuencia y transfiere el control a una de varias rutinas de servicio posibles. La rutina de servicio particular alcanzada, pertenece al dispositivo de prioridad mas alta entre todos los dispositivos que interrumpieron a la computadora. La desventaja del mdtoda de programaci6n es que, si hay muchas interrupciones, el tiempo requerido para *gistrarlas puede exceder el tiempo disponible para atender el dispositivo de E/S. En esta situaci6n, puede utilimse una unidad de circuito de prioridad de inkmpci6n para acelerar la operacibn. Una -unidad de prioridad de intemipcidn de circuiterfa funciona como un administrador general en un ambiente de sistema de interrupciones. Acepta solicitudes de interrupcin de muchas fuentes, dekrmina cul de las solicitudes que 1Iegan tiene la prioridad m s alta y emite una solicitud de intempci6n a la computadora con base en esta determinaci6n. Para acelerar la operd6n, cada fuente de intermpci6n tiene su propio vector de interrup-
ci6n para accesar en forma dwcta su propia nitina de servicio. Por l o tanto, no se necesita el registro porque todas las decisiones Ias establece la unidad de circuiM de prioridad de interrupcibn l a funcin de prioridad de eimiitera puede establecerla una sonexin serial o paralela de heas de interrup c h . La conexihn serial tambin se conoce como el d o d o de cadena
circular.
VAD 1
MspIdvo 1 :PI PO
VAAD 2
'
YAD 3
i
.
I3ispitlvo 2
: PI
Po
MBpositlvo 3 PI m
AIsiguienie
dhposftivo
- WWd -
de iritwudon
: INT
CPU
h m w i m h b de fnterrupdbn
U
INTACK
de entrada-wlida
direecidn de wector
h salida de prioridad (PO)s610 d el dispositivo 1 no est solicitando una interrupcin, S el dispositivo 1 tiene una interrupcidn pendiente, bloquea la seal de reconocimiento del siguiente dispositivo al colwar un O en su salida (PO. Entanceb, procede r inserta su propia direccih de vector (VAD) de interrupcin, dentro del cana1 de datos, para que la CPU la utilice durante el ciclo de intemipcibn. Un dispositivo con un O en su entrada PI genera un O en su salida PO para informar al dispositivo con la siguiate prioridad ms baja que ha bloqueado la seal de r&onocimienb. Un dispositivo que solicita una i n b mpci6n y tiene un 1 en su mhada PI acepta b seal de reconocimiento al colocar un O en su salida PO. Si e l dispositivo no tiene interrupciones pendientes, transmite la &al de reconocimiento al siguiente dispositivo al colocar un 1 en su salida PO.Por lo tanto, el dispositivo con P1 = 1 y PO = O es el que tiene la prioridad m& alta y que ~Iicita una interrupcibn y este dispositivo coloca su direccidn de vector (VAD) 'enel canal de datos. E 1 arreglo de cadena de margaritas le da la prioridad mis alta al dispositivo que recibe' la seal de reconocimiente de intempcih de l a CPU. Entre d s lejos esti el dispositivo de h primera posicl6n, es menor su prioridad. La figura 11-13 muestra la 15gica interna que debe incluirse dentro de cada dispositivo cuahdo estA conectado en un equema de cadena de margaritas. El dispositivo activa su &pflop RF cuanao desea interrumpir a la CPU. La salida del ffip-flop RF recorre un inversor de colector abierto, un
Figura 11-13 Una etapa del arreglo de prioridad de cadena de margarita.
VAD
Entrada de prioridad.
PI
'
I
W t u d de dfreEd6ar M
&plitivo
1
Salida de prioridad
i
RF
PO
-R
7
Solicitud de interrupcin a CW
circuito que proporciona la lgica de alambrado para la h e a de interrupci6n comiin. Si PI = O, PO y la lnea de habilitacin a la VAD S Q ~ iguales a O, sin considerar el valor de RF. Si PI = 1 y R F = O, entonces PO = 1 y se deshabilita la direccidn del vedor. Esta mdici6n pasa la seal de reconocim i e n t o al siguiente dispositivo a travs de PO. El dispositivo est activo cuando PI = 1 y RF = 1. Bta condici6n colma un O en PO y habilita la h i 6 n del vector para el canal de datos. Se considera que cada dispositivo tiene su propia d i d 6 n de vecter d i s W . Se desactiva el flip-flop RF despu& de un retrasa suficiente para asegurar que la CPU ha recibido la dfrec-ch de vector.
Idgicn de prioridad
Inkmpci6n de prioridad paralela El m W o de interrupcin de prioridad paralela utiliza un registro cuyos bits se adivan en forma wparada, mediante la seal de interrupcin de cada dispositivo. h prioridad se establece de acuerdo con la posicidn de los bits en el registro. Adems del regis& de interrupcih, el circuito puede incluir un registro de mAscara, cuyo propsib es controlar el estado de cada solicitud de interrupcibn. Puede programarse el registro de mAscara para deshabilitar interrupciones de prioridad menor mientras s e esta atendiendo un dispositivo de prioridad ms alta. Tambin puede proporcionar una opcibn que permita que un dispositivo de prioridad alta interrumpa la CPU mientras se atiende un dispositivo de prioridad menor. La 16gica de prioridad para un siskma de cuatro fuentes de interrupcibn se muestra en la figura 11-14. Consta de un registro de interrupcibn cuyos b i t s individuales se activan mediante condiciones externas y se desactivan mediante instrucciones de programa. E l disco magn6tic0, como es un dispositivo de alta velocidad, recibe la prioridad m6s alta. La impiesora tiene la siguiente prioridad, seguida por una lectora de caracteres y un teclado. El registro de msscara tiene l a misma cantidad de bits que el registro de interrupcibn. Mediante instrucciones de programa, es posibl~activar o desactivar cualquier bit en el registro de &&ara. Cada bit de interrupcidn y su bit de mascara correspondientes, se aplican a una compuerta AND para producir las cuatro entradas hacia un codificador de prioridad. De esta manera, se reconoce una interrupci6n &lo si el programa activ6 en 1 su bit de mascara corregpondiente. El d i c a d o r de prioridad genera dos bits de la direccibn de vector, la cual se transfiere a la CPU. Otra salida del mdificador activa un flip-flop de estado de intwnifi6n @T) cuando ocurre una inteirypcibn que no est enmascarado. B1 programa puede habilitar %odahabilitar el flip-flop de habilitacibn de h k m p c i h (intmpt enable, IEN)para proporcionar un control general subre el si~tema de interrupciones, Las salidas de IST que recibieron la h u 6 n AND con IEN proporcionan una seal de Hiterrupi6n comn para h CPU. La seal de mmnocimiento de i n m p c i d n (INTACK) de la CPU habjlita l o s b u f k dd cana3 en el registro de salida y se coloca una direccidn de vector VAD dmm
440
ONCE
Orgmh66n de entrada-salida
del canal de dAhora explicaremos el circuito M c a d o r de prioridad y despus analiarqno6 la interaccibn entre el controlador de prioridad de interrupcibn y la CPU.
Codificador de prioridad El codiflcador de prioridad es un circuito que -implanta la funci6n de p r b ridad. La 16gica del codiiicador de prioridad es que, si dos o m8s entradas
114
Prioridad de uiWru@~
441
TST
Funciones booleanas
x = I',I{ y = ILI, i;i; ( I S T ) = I, 1,
o
O 0 0
i
O 0 0
x
f 0 0
x
X 1 0
0 1 1
1
.O
1 1 1
+ + +1 , + J,
"' *
lie.gan al mismo tiempo, la entrada que tiene la prioridad mayor tendr preferencia. La tabla de verdad de un dificador de prioridad de cuatro entradas se proporciona en la tabla 11-2.Las letras X en la tabla representan condiciones no signiicativas. L a entrada Io tiene la prioridad mayor; por lo tanto, sin considerar el valor de las otras entradas, cuando esta entrada es 1, la salida genera una salida xy = 00. I1 tiene el siguiente nivel de prioridad. La salida es O1 si Il = 1 siempre y cuando lo = O, sin considerar l o s valode las entradas de prioridad menor. Se genera I a salida para I2 6610 si las en~adas de prioridad mayor son O, y as sucesivamente hacia abajo en el nivel de prioridad. Se activa el estado de interrupcin (1ST) 9610 si una o mAs entradas son iguales a 1. Si todas las entradas son 0, se desactiva XST a O y las otras salidas del codificador no se utilizan, por lo que se marcan em condicimw no significativas. E610 ~e debe a que la direcci6n de vedor no se transfiere a la CPU cuando IST = O . Las funciones booIeanas listadas en la tabla especifican la 16gica interna del codificador. Por lo general, una computadora tend8 ms de cuatro fuentes de interrupcin. Por ejemplo, un codificador de prioridad con ocho entradas generar una salida de tres bits. La salida del ccdificadox de prioridad se utiliza para que forme parte de la direcciSn de vector con cada fuente de mtempci6n. Puede asignacualquier valor a los otros bits de la direcci6rt de wctor. Por ejemplo, la d M 6 n de vector puede formarse al agregarse ceros a las salidas x y y del codificador. Con esta seleccin se le asignan los nmeros b'inarios 0,1, 2, y 3 a los vectotes de interrupcin para los cuatros &positivos de E/S.
Ciclo de intemipci6n El ffipflop IEN de habilitacin de intmupci6n que se muestra en la figura 11-14 puede activarse a desactiva* mediante iastniccimes de programa. Cuando IEN se desactiva, la CPU no considera la solicitud de intermpci6n que proviene del IST. E l bit IEN controiado por programa le pennite al
programador elegir entre usar o no b opcibn de intemipci6n. Si se ha insertado una instniccibn en e l programa para desactivar IEN, significa que el usuario no dque su programa se interrumpa. Una instrucci6n para activar XEN indica que la opci6n de interrupcin se usar mientras corre el programa actual. La mayora de las computadoras incluyen eircuiterla interna que desactiven IEN a O cada vez que el procesador reconoce una intemipcibn. Ptlhfinal de cada ciclo de interrupci6n la CPU comprueba IEN y la seiial de intermpcibn de IST. Si alguna de ellas e s igual a O, el control contina con la siguiente instnicdbn. Si ambas IEN e IST son iguales a 1 , la CPU pasa a un ciclo de intemipci6n. Durante d ciclo de internipci6n la CPU ejecuta la siguiente secuencia de mierooperaciones:
V m
IEN +O
ir a recupera la instrucci6ri
1La CPU salva la direccidn de retgrno en PC dentro de la pila. Despus reconoce la intempci6n al habilitar Ia lnea INTACK ia unidad de prioridad de interrupcin responde coIocando un vector de intempci6n nico dentro del canal de datos de la L a CPU transfiere la d k c i 6 n de vedar dentro del PC y desactivan IEN antes de pasar a la siguiente fase de
bsqueda. Duran& 6 siguiente fase de bsqueda, la instrucci6n que se leed de la memorig serh la que est localizada en la direcci6n de vector.
Rutinas de pmgramaci&n Un siskeq de prioridad de interrupciones es una combinaci6n de tcnicas de circyiteria y programacin. Hasta aqu,, hemos analizado los aspectos de la circuitera de un sistema de prioridad de interrupciones. ta computadora
tambi6n debe tener rutinas de programaci6n para atender las solicitudes de inkrcupci6n y para controlar los xegistros de la ciruiitera de interrupcibn. L a figura 12-15 mu-tca el programa que debe residir en la memoria para manejar el sistema de interrupciones. Cada dispositivo tiene su propio programa de servicio que puede alcamrse medite instrucci6n de brinco (JMP) almacenada en la direccibn asignada al vector. E 1 nombre simbblico de cada &m q m t a la direccih inicial del programa de servicios. La pila que se muestra en el diagrama se usa para almacenar la direcci6n de retorna despub de cada interrupcin.
programa de servicio
CMICI~N 115
Prioridad de intempci6n
443
Memoria
-mas
de servicio de E/S
0
1
JMP DISK
J M P m
wrvlcio a d k o rnagntim
JMP RDR
JMP KBD
pmgiama prindpa!
"1 -1
hograma w dar
wrvWo a teclado
Pila
256
750
Para proporciomr un ejemplo espcffico consideremos que el teclado de Uitmupci6n mientras la U?Uejecuta la instnicci6n en la l@&d 7 4 9 del programa princip91. Al final del ciclo de instruccin, la coriiiputdora va a un ciclo de interrupcin. Salva la d k c i & nde retorno 750 en la pila y. despus acepta la diremi611 de v d o r 0000M)ll del canal y la transfiere al PC. La instnicci6n en la localidad 3 se ejecuta despus, produciendo urva trmfemnuia de control a la-i u . h J d e interrupcin KBD. Ahora supongamos que e l disco activa su bit de h b m p c i h cuando la CPU ejecuta la instnteci6n en la direccin 255 en el programa KBD.la direccin S 6 se wlva dentro de l a pila y d control se hansfiere al programa de servicio DISK. ta ltima instruccin en cada rukina*esun retorno de la instruccin de interrupcin. Cuando termina el programa de servicio del disco, la instruccihn de retorno se recupera de la pila y coloca 256 en el PC. Esto retorna el control a la rutina KBD para que continde atendiendo el teclado. Al final del progrwa KBD, la tl*a htruccin recupera la direccin de retorno de la pila y retorna el coqtrol al programa principal en Ia direccin 750. Por lo tanto, u q dispositivo de prioridad mayor puede interrumpir a un dispositivo de prioridad menor. Se considera que el tiempo para dar servicio a una intermpciai de alta priorgad es corto en comparacidn con la velocidad de
activa su bit
444
0 -
Oxgankacin de entrada-salida
Los bits del registro de dscara de nivel inferior (incluye el bit de la fuente que interrumpid) se desactivan para evitar que estas condiciones habiten la interrupci6n. Aunque a las fuentes de intempci6n de prioridad menor se les asignan bits de ndmero mayor en el registro de mAscara, la prioridad puede cambiarse si se desea, porque el programa puede utilizar cualquier configuraci6n de bits para el registro de mscara. El bit de estado de internipci6n de& desactivarse para que pueda volverse a activar cuando ocurra una interrupcibn de prioridad mayar. El contenido de los registros de p m d o r se salvan porque puede necesitarlos el programa que se ha interrumpido d q u s de que e l control retorne a &l.Despuks, se activa la habilitacin de intempcibn IEN para permitir que otras interrupciones (de prioridad mayor) y la computadora procedan a atender la solicitud de intempcibn. La secuencia fmal de cada rutina de servicio de interrupcidn debe contener instnicciones para controlar la circuitera de interrupci6n de la siguiente manera:
1 . Activar el bit de habilitacidn de interrupcin IEN. 2 Recuperar el contenido de los registros del pxocesador. 3. Desactivar e l bit en el registro de intwrupci6n que pertenece a la fuente que ha sido atendida. 4. Reactivar los kts de prioridad de nivel menor en el registro de cubierta. 5. Restablecer la direcciBn de retorno dentro del PC y establecer IEN.
Debe activarse el bit en el registro de intempci6n que pertenece a l a fuente de l a intempcibn para que est disponible de nuevo cuando la fuente requiera otra interrupcin. Zns bitc de prioridad menor en el registro de mdscara (incluyendo el bit de la fuente que se est interrumpiendo) se activan para yIver a habilitar sus interrupciones. El retorno al programa interrumpido se consigue al cargar la direccin de retorno en el PC. N6tese que la cimiterla debe disearse para que no ocurran interrupciones mientras se ejecutan los pasos 2 al 5; de otra manera, puede perderse la direcci6n de retomo y la infonnaci6n de los registros de mascara y de1 procesador puede ser ambigua si se reconoce una instruccibn mientras se ejecutan las operaciones en este paso. Por esta raz611,inicialmente se desactiva IEN y mis tarde se reactiva despub de que se transfiere la direccin de retorno h PC. tas operaciones final y inicial que acabamos de listar se denominan operacimres generales de gestin o quehaceres dodsticos. No son parte de1 propio programa de servicio pero son esenciales para procesar interrupcic~ nes. Todas las operaciones generales pueden implantarse mediante prograrnaci61-1. E s t o se hace al insertar las instrucciones adecuadas al principio y al final de cada rutina de servicio. La circuiteria puede hacer en forma a u b matica algunas de las operaciones generaieg de gestidn. La circuitera puede salvar dentro de fa pila el contenido de los registros del procesador antes de transferir d control a la rutina de servicio. Tambin se le pueden asignar otras operaciones iniciales y finales. De esta manera, es posible reducir el tiempo entre la mpci6n de una interrupcidn y la ejecucin de las instrucciones que atienden l a hm'te de interrupcin.
a memoria (DMA)
447
Canal de direcciones
de datos
I
e
Registro de direccin
Registro de control
1
de E/S
1 intempdbn
4
DMA tpico. La unidad se comunica con la CPU mediante el canal de datos y las lneas de control. Los registros en el DMA se seleccionan mediante la
CPU por medio del canal de datos al habilitar las entradas de seleccin de DMA (DS) y de seleccin de registros (RS). Las entradas lectura (RD) y escritura (write, WR) son bidireccionales. Cuando la entrada de cesin de canal (BG) es O, la CPU puede comunicarse con los registros de DMA por medio del canal de datos para leer de o escribir en los registros DMA. Cuando BG = 1, la CPU ha entregado los canales y el DMA puede comunicarse directamente con la memoria al especificar una direcci6n en el canal de direcciones y activar el control RD o WR. DMA se comunica con el perifrico externo mediante lneas de solicitud y reconocimiento al utilizar un procedimiento preestablecido de reconocimiento mutuo. El controlador de DMA tiene tres registros: un registro de direccionamiento, un registro de cuenta de palabras y un registro de control. El registro de direccionamiento contiene una direccin para especificar la localidad deseada en la memoria. Los bits de direccionamiento van a travs de bffers al canal de direcciones. El registro de direccionamiento se incrementa despus que cada palabra se transfiere a la memoria. El registro de cuenta de palabras contiene la cantidad de palabras que se van a transferir. Este registro se decrementa en uno con cada transferencia de palabras y realuia una prueba interna en busca de cero. El registro de control especifica el modo de transferencia. Todos los registros en el DMA aparecen ante la CPU
"
.e
m4
( 1 0 -
irlncs'UM
,
*
nl
NI
o, urop
b lr n ,,
d h f m
448
CAP~WLO ONGE
OrganizAciSn de entrada-salida
como registros de interface de E/S. Por lo tanto, la CPU puede leer o escribir de datos. Primero, la CPU inicializa el DMA. Despus de eso, el DMA empieza - -, , ,-- - ,- y contina la transferencia de datos entre la memoria y la unidad perifrica hasta que se transfiere un bloque completo. El proceso de inicializa-- - - - cidn es esencialmente un programa que consiste en instrucciones de E/S - - --- - . que incluyen la direccin para seleccionar registros DMA particulares. La d C ,#,,-a CPU inicializa el DMA al enviar la siguiente informacin por el canal de _ _ - - - - --* datos: . L, ' E. - -1
r-
r
I
!-
7 ,
1 I
i z T . L
-.
'
]--N
- -
tb..
1 , -
1 .l $ direccin inicial del I ) l t e . d e memoria en donde estn disponibles los datos (ppp lectura) o donde se van a almacenar los datos - - -gr escritura). Ir i l ----! 2. (para La cuenta de palabras, qpe es el nmero de palabras en el bloque de memoria. .., --3. Un control para especificar el modo de transferencia como de lectura : o de escritura. *... -f.' 4. Un control para iniciar la transferencia DMA.
-
113
m ~, A-'
LI1 r
m!
.>
S I
v.
.
,(
(
',,
8
1,
. ,.
S
IA l!
:
# ,.-,
'
1'8.n~ L
l, 1
-,\
8
: - 7
S
, 1'
..I,. ... . ,b a r
,
La direccin inicial se almacena en el registro de direccionamiento. La cuenta de palabras se almacena en el registro de cuenta de palabras y la informacin de control en el registro de control. Una vez que se inicializa el DMA, la CPU detiene la comunicacin con el DMA, s6lo que reciba una seal de internipcin. o que desee comprobar cuntas palabras se han transferido.
.
3,
.i
4pi
..
; e*
Ir(-[
- I I I ~
!S-
.,
p,'
.l
>
Da posicin del controlador DM enke los otrdki ~com~onentes .en un sistema I ! c l . ..# a e computadora se ilustra en la figura 11-18:'La CPU se comunica con el irr18 7 C f g DMA mediante los canales de direccin y de datos como con cualquier r, 1 1 unidad de interface. El DMA tiene su propia direccin, la cual activa las li.rill 13 , lneas DS y RS. La CPU inicializa el DMA por medio del canal de datos. L'L ' .1 ~frl-l, 1-1 Una vez que el DMA recibe el comando de control de inicio, puede comenr , ~ zar la transferencia entre el dispositivo perifrico y la memoria. ,Y - ; - , - U I ~ ~,l I .I; . Cuando el di*spositivo perifrico enva una solicitud al DMA, el contro- *: '7 lms lador de DMA activa la lnea BR, informando a la CPU que ceda los canales. fiiYi'i8 1 18. - a La CPU responde con su lnea BG, informando al DMA que sus canales ' : 1 estn deshabilitados. Despus el DMA pone el valor de su registro de t ~ mm-n ? . d'rreccionamiento dentro del canal de direccin, activa la seal RD o WR y + ciw. - .! 'JI~-:~ enva un reconocimiento DMA al dispositivo perifrico. Ntese que las lneas ,I, - * l - a:' ~: 1 RD y WR en el controlador DMA son bidireccionales. La direccin de la r11, v i ~~i+Jr,i,,. transferencia depende del estado de la lnea BG. Cuando BG = O, RD y WR c ,, . .-le, I ~ ~ I : son lheas de entrada que permiten a la CPU comunicarse con los registros I-''; j l - ~ jc r 7 9 internos del DMA. Cuando BG = 1, RD y W R son lneas d e salida del
Ir,<
N
.,,l.wll
; .
, .,r'1
l d ~ r a n g f e r e n c i a ~ ~ ~
r;
:-'.~!
ii
1 1 ~ ' -
t . t.
.i
-13
a,
,<$
449
-
: Interrupcin
+ BG
CPU
* BR
RD
WR Direccin Datos
ri
RD
WR Direccin Datos
Control de leaura
1 1
ir
1
Seleccin de direccin
Control de escritura
7 Canal de datos
y
i
A Canal de direcci6n
7
RD
+ DS
Y
Rec6nocimiento DMA
4
WR Direccin Datos
-- RS
BR BG
controlador DMA a la memoria de acceso aleatorio para especificar la operacin de lectura o escritura para los datos. Cuando el dispositivo perifrico recibe un reconocimiento de DMA, coloca una palabra en el canal de datos (para escritura) o recibe una palabra del canal de datos (para lectura). Por lo tanto, el DMA controla las operaciones de lectura o escritura y proporciona la direccin para la memoria. En seguida, la unidad perifrica puede comunicarse con la memoria por medio del canal de datos para una transferencia directa entre las dos unidades mientras la CPU est momentneamente deshabilitada. Por cada palabra que se transfiere, el DMA incrementa su registro de direccionamiento y decrementa su registro de cuenta de palabras. Si la
menta de paIabras no alcanza cero, el DMA comprueba la linea de solicitud que proviene del @rico. Para un dispositivo de alta velocidad, la lnea estarA activa tan pronto como se termine la transferencia previa. Despuk se inicia una segunda transferencia, y el prweso continda hasta que se ha transferido todo el bloque. S i la velocidad dei perifhrico es mas lenta, la h e a de solicitud DMA puede venir un poco mis tarde. En este caso, el DMA deshabilita la h e a de solicihd de canal para que la CPU pueda continuar ejecutando su programa. Cuando el perifrim solicita una transferencia, e l DMA vuelve a solicitar los canales. Si el registn, de cuenta de palabras llega a cero, eI DMA detiene cualquier transfemcia posterior y retira su solicitud de canal, Tambibn informa a la CPU de la terminacin mediante una interrupcibn. Cuando la CPU responge a la intempcidn, lee el contenido del registro de cuenta de palabras. El valor cero de este registro indica que todas las palabras se transfirieron exitosamenk. La CPU puede leer este registro en cualquier momento para comprobar la cantidad de palabras que ya se han transferido. Un controlador DMA puede tener m6s de un canal. En este caso, cada canal time un par de sefales de control para seales de solicitud y reconocimiento que est4n conectadas a dispositivos perifkrims separados. Cada canal tambin puede tener su propio registro de direcciondento y registro de menta de palabras dentro del controlador DMA. Puede establecerse una prioridad entre los canales @ra que los canales con alta prioridad sean atendidos antes que los canales de priaridad menor. l a transferencia DMA es muy til en muchas aplicaciones. Se utiliza para transferencias rApidas de informaei6n entm discos magn&cos y memtF na. Tambih es t i l para actualizar la pantalla en una terminal interactiva. D e manera tpica, una imagen de la pantalla de la t a n h a 1 se conserva en la memoria y puede actualizarse bajo el control del programa. E1 contenido de la memoria puede transferirse a l a pantalla en forma peridica, mediante una transferencia de DMA.
pmwaniierrto
de WS
E i IOP es sidar a una CPU, excepto que esta diseado para manejar los detalla del p t o de E/S. A diferencia del controlador de DMA, que debe s e r inicializado por completo por la CPU, el IOP puede buscar en memoria y ejecutar sus propias instn-iccionea Las instrucciones T O P estn qecficamente disefiadas para facilitar las transferencias de E/S. Adems, el IOP priede ejecutiir o.kas tareas de pmmmientob como aritmtica, lgica, k a n s f e d de control y traducci6n de cbdigo. El diagrama de bloque de una computadora con dos procesadores se muestra en l a figura 11-19. La unidad de memoria ocupa una posicibn ~entral y puede comunicarse con cada p-dor mediante acceso directo a memoria. L a CPU es responsable del prmesamiento de datos necesarios en k solucin de tareas eomputaciortales. El IOP proporciona una trayectoria para traneferencia de datos con diversos dispositivos pmWic08 y la unidad de memoria. Por b general, la CPU tiene i a tarea de inicializar un programa de E/S. En lo sucesivo el IOP opera en forma independiente de la CPU y contintra transmitiendo datos de dispositivos externos y la
memoria.
.
E l B
Unidad de memorla
enuadasddm WP)
w de
Canal de E/S
Los formatos de datos de ios dispositivos pe&rims difieren de ioe formatos de datos de la memoria y la CPU.El IOP debe estructurar palabras de datos de muchas fuentes difemtes. Por ejemplo, puede ser necesario tomar cuatro byks de un dispositivo de entrada y guardarloa en una palabra de 32 bits antes de la transferencia a memoria. I m datos se renen en el IOP a la veiddad del dispositivo y a ia capacidad de bits mienkas la CPU ejecuta s u propio pmgrama. Despus de que los datos 'se renen en una palabra de memoria, se transfieren del IOP directamente dentro de la memoria a). "robar" un c i c l o de memoria de la CPU. D e igual manera, una palabra de salida tFansferida de l a memoria al X O P w ditige del IOP al diqmativo de salida a la velocidad del dispositivo y a sil capacidad de bits.
La comurllcacidn entre el IOP y los dispositivos conectados a l es similar al metodo de'transferencia decmtrol del programa. L a comunicacin con la mhoria es similar al mtcdo de a directo a memoria. i a manera en la c u ~se l comunican la CPU y'el IQP depende del nivel de sofisticaci61-1 incluido 'en el sistema. En computadoras a mala muy grande, cada procesador es independiente de lbs demas p cualquiera puede iniciar una operad6n. En k mayorla de sistmas rompuhclo~b81~, 1a CPU es el amo que dirige mientras el IOP es bn pmesador esclavo. Se asigna a la CPU la tarea de iniciar d a s las operaciones, p r o las instnieciones de E/S se ejecutan en e l IOP. Las instrucciones de CPU proporcionan operaciones para iniciar una transfenmcia de E/S y tambin para probar condiciones de estado de E/S mcesarias para t m c decisiones sobre varias actividades de E/S. A su vez,
comandos
el IOP solicita la efbci6n de la CPU mediante una interrupci6n y responde a la solicitudes de la CPU al colocar una palabra de' atado en una localidad determinada de 1 . memoria, que se examinar4 despus, iin programa de la CPU,Cuando se desea una oizeracidn de E/S, la C W informa al IOP d6nde encontrar el programa de E/$ y despues deja los detalles de la transferencia a1 IOP. Las instrucciones que un IOP lee de la memoria en ocasiones se denominan comandos, para distinguirlos de las instrucciones que lee la CPU. De cualquier manera una instnrccidn y un comando tienen funciones similares. Los comndos son preparados por programadores experimentados y s e almacenan en I a memoria. Las palabras de comando constituyen e l programa para e l IOP. La CPU informa al IOP dBnde encontrar los comandos en la memoria cuhdo es hora de ejecutar el programa E/S.
Comunlcaci6n CPU-IOP L a comunicacl6n entre la CPU y el IOP puede tornar diferentes formas, dependido de la computadora particular considerada. En muchos casos, la
unidad de memoria acta como un centro de mensajes en donde cada procesador deja informacin para el otro. Para apreciar la operacibn de un IOP tpico, mostraremos un ejemplo especifico del mgtodo con e1 que se comunican la CPU y e l TOF. Este es un ejemplo simplificado que omite muchos detalles operativos para un panorama de los conceptos bsims. L a secuencia de operaciones puede realizarse como se muestra en el diagrama de f l u j o de la figura 11-20,La CPU enva una instmcci6n para probar la trayectoria de IOP, E 1 IOF responde al insertar una paIabra de estado en la memoria para que la CPU h compruebe. Los bits de la palabra de estado Mitan la condicin del IOP y d dispditivo de E/S. Por ejemplo una eon-dici6n que sobmarga de IOP, dispositivo oCupado con otra transferencia o dispositivo preparado para una transferencia de E/S. La CPU hace referencia a la palabra de estado en la memofia para decidir quR hacer enseguida. Si todo d t en orden, la CPU enva la instruccibn para comenzar
-W~BB
del IOP
'
p i o h r tray&rla
del IOP
p
~ f w i r p a h b r de a atado a upa localidad de memoria
b E/S al IOP
el pmgrama IOP
La CW contina
, aim z
la transferencia de E/S. ia direcci6n de memoria recibida con esta instniccibn le dice al I O P en dnde encontrar su programa. Ahora la CPU puede continuar con otro programa mientras el IOP est ocupado con el programa de EtS. Ambos programas hacen referencia a la memoria mediante una transferencia DMA. Cuando el IOP termina la ejecuci6n de su programa, enva uqa solicitud deirikrrupci6n a h CPU.La CPU v n d e a la inferrupci6n a l emitir una htnrccibn para leer d estado de1 IQP. El IOP responde al calocar el contenido de s u xeporte de estado dentro de una locaiidad de memoria especffica, La palabra de estado indica si ha terminado la transferencia o s i ha ocurrido cuaiquier emir durante eiia. De
la inspeceibn de ios bits en la palabra de estado, la CPU determina si l a operacibn de E/S ha terminado satisfactoriamente s i n errores. El 1OP cuida todas ias transferencias de datos entre varias unidades de E/S y la memoria mientras la CPU prwesa otro programa. El T O P y la CPU compiten por el uso de la memoria, por l o que se h i t a el n b e r o de dispositivos que pueden estar en operacin por el tiempo de acceso a la memoria. En la mayoda de los sistemas no es posible saturar la memoria mediante dispositivos de E/S porque la velocidad de estos es mucho menor que la de la CPU. Sin embargo, aIgunas unidades que son riipidas, como las diseos magnticos, pueden u t i l i z a r una aprkiable cantidad de los ciclos de memmia disponibles. En ese caso, la velocidad de Ia CPU puede deteriorarse porque con frecuencia tendr4 que esperar que el IOP conduzca transferencias de memoria.
se denomina a n a l . Una configuraci6n de sistema de computadoras tpico incluye vanos canales y cada uno de ello5 est conectado a uno o m s dispositivos de E/S. Existen t r e tipos de canales: multiplexor, selector y bloque rnultipIexor. El canal multiplexor puede conechrse a varias dispositivos de velocidad lenta y media y puede operar con varios dispositivos de E/S en forma simultnea. El canal selector est diseado para manejar una operacibn de E/S a la vez y se usa normalmente para controlar un dispositivo de alta velocidad. El canal de bloque multiplexor combina las carackkticas de los canales multiplexor y selector. Proporciona una conexin a varios dispositivos de alta velwidad, pero todas las transferencias de E/S pueden c o n d u h en un bloque de da- completo a diferencia de un canal multiplexor, que slo puede transferir un byte a la vez. La CPU se comunica en fonna directa con los canales por medio de heas de control dedicadas e indirectamente por medio de h a s de almacenamiento reservadas en la memoria. L a figura 11-21 muestra los formatos de palabra asociados con la operacidn del canal. El formato de instrucci6n de E/C tiene tres campos: c6digo de operaci6n, direccidn del canal y diici6n del dispositivo. El sistema de computadora puede tener varios canales y a cada uno se le asigna una direcci6n. De igual manera, cada canal puede estar conectado a varios dispositivos y a cada dispositivo se le asigna una dwcu6n. E l cdigo de operacibn especfica una de ocho instrucciones E/S: iniciar E/S, iniciar envio raipido de Ef S , probar E/S, borrar E/S, detener E/S, detener dispositivo, probar canal y almacenar identificaci6n del canal Los canales direocimados responden a cada una de las instrucciones de E/S y las ejecutan. Tambin establecen uno de cuatro c 6 d i p de condici6n en un registro de pmsador llamado palabra de estado del procesador (PSW). La CPU puede comprobar el c6digo de condicin en k PSW para determinar el resulado de i a operacibn de B/S. El significado de los cuatro cbdigos de
SECCI~N11-7 Procesador
de entrada-salida (IOP)
455
condicin es diferente para cada instruccin de E/S. Pero, en general, especifican si el canal o el dispositivo estn ocupados, si son operacionales o no, si hay interrupciones pendientes, si la operacin de E/S comenz exitosamente y si se almacen una palabra de estado en la memoria por medio del canal. El formato de la palabra de estado del canal se muestra en la figura 11-21(b). Siempre est almacenado en la posicin 64 en la memoria. El campo de clave es un mecanismo de proteccin utilizado para evitar el acceso no autorizado por parte de un usuario a la informacin que pertenece a otro usuario o al sistema operativo. El campo de direccin de la palabra de estado proporciona la direccin de la ltima palabra del comando utilizada por el canal. El campo de cuenta proporciona la cuenta residual cuando se termin la transferencia. El campo de cuenta mostrar cero si la transferencia se termin exitosamente. El campo de estado identifica las condiciones en el dispositivo y el canal y cualesquiera errores ocurridos durante la transferencia. La diferencia entre las instrucciones iniciar E/S e iniciar envo rpido de E/S es que la ltima requiere menos tiempo de CPU para su ejecucin, cuando el canal recibe una de estas dos instrucciones, hace referencia a la localidad 72 de la memoria para la direccin de la primera palabra de comando del canal (CCW). El formato de la palabra de comando del canal se muestra en la figura 11-21(c). El campo de direccin de datos especifica la primera direccin de un bffer de memoria y el campo de cuenta proporciona la cantidad de bits que participan en la transferencia. El campo de comando especifica una operacin de E/S y los bits de bandera proporcionan
Figura 11-21 Reiaci6n de formatos de palabra. E/S de ia IBM 370
Clave
Direccin
Estado
Cuenta
Cdigo de comando
Direccin de datos
Banderas
Cuenta
456
informacin adicional para el canal. El campo de comando corresponde a un cdigo de operacin que ]especifica uno de seis tipos de operaciones E/S:
1. Escribir. Transferir datos de la memoria a un dispositivo de E/S. 2. Leer. Transferir datos de un dispositivo de E/S a la memoria. 3. Leer en reversa. Leer una cinta magntica cuando se mueve en
reversa.
4. Controlar. Se usa para iniciar una operacin que no implica transferencia de datos, como rebobinar una cmta o pasicionar un mecanis, mo de acceso a disco. 5. Detectar. Le informa al canal qie transfiera su palabra de estado de , canal a la localidad de memoria 64. 6. Transfw'r en el canal, Sic utiliza en lugar de una instruccin de brinco. Aquf el campo de direccin de datos especifica la direccin de la siguiente palabra de comando que va a ejecutar el canal. Un ejemplo de un programa de canal se muestra en la tabla 11-3. Consta de tres palabras de comando. La priiiera produce una transferencia dentro de una cinta magntica de 60 bytes desde la memoria comenzando en la direccin 4000. Las siguientes dos palabras de comando ejecutan una funcin similak con una porcin diferente de la memoria y de cuenta de bytes. Las seis banderas en cada palabra de control especifican ciertas interrelaciones entre las palabras de comando. La primera bandera se activa en 1 en la primera palabra de comando para especificar "encadenamiento de datos". Da como resultado la cambinacin de 60 bytes de la primera palabra de tomando con los 20 bytes de su sucesor dentro de un registro de 80 bytes. Los 80 bytes se escriben en cintas sin ninguna separacin o salto, aunque se utilizaron dos secciones de memoria. La segunda bandera se activa en 1 en la segunda palabra de comando para especificar "encadenamiento de comandos". Le informa al canal que la siguiente palabra de comando utilizar el mismo dispositivo de E/S, en este caso, la cinta. El canal le informa a la unidad de cinta que comience a insertar un intervalo de registro en la cinta y avance a leer la siguiente palabra de comando de la memoria. Despus se escriben los 40 kytes de la tercera palabra de comando en una cinta como un registro separado. Cuando todas las banderas son igual a cero, significa terminar las operaciones de E/S para el dispositivo de E/S particular.
TABLA 11-3 Ejemplo de programa de canal de IBM370
-
Comando
P
Direccin Banderas
Cuenta
100000
010000 000000
60 20
40
Unidad de memorfa
458
la posicin 64. Cuando ocurre una interrupcin, la CPU puede hacer referencia a la posicin de memoria 64 para la palabra de estado.
IOP de Intel8089
El procesador de E/S Intel8089 est contenido en un encapsulado de circuito integrado de 40 bits. Dentro del 8089 hay dos unidades independientes llamadas canales. Cada canal combina las caractersticas generales de una unidad de procesador con las de un controlador de acceso directo a memoria. El 8089 est diseado para funcionar como un IOP en un sistema de microcomputadora en donde el microprocesador 8086 se utiliza como CPU. La CPU 8086 inicia una operacin de E/S al construir un mensaje en la memoria que describe la funcin que se va a ejecutar. El IOP 8089 lee el mensaje de la memoria, realiza la operacin, y notifica a la CPU cuando ha terminado. En contraste con el canal IBM 370, que slo tiene seis comandos de E/S bsicos, el IOP 8089 tiene 50 instrucciones bsicas que pueden operar sobre bits individuales o sobre bytes, o sobre palabras de 16 bits. El IOP puede ejecutar programas de manera similar a la CPU, excepto que el conjunto de instrucciones se escoje en forma especfica para proporcionar un procesamiento eficiente de entrada-salida. El conjunto de instrucciones incluye instrucciones de transferencia de datos generales, operaciones aritmticas y lgicas bsicas, operaciones de transferencia condicional e incondicional y posibilidades de llamar y retornar subrutina. El conjunto tambin incluye instrucciones especiales para iniciar transferencias de DMA y emitir solicitudes de interrupcin a la CPU. Proporciona una transferencia de datos eficiente entre dos componentes conectados al canal de sistema, como E/S a memoria, memoria a memoria o E/S a E/S. Un sistema de microcomputadora que utiliza el par de circuitos integrados 8086/8089 se muestra en la figura 11-23. El 8086 funciona como la CPU y el 8089 como el IOP. Las dos unidades comparten una memoria comn mediante un controlador de canal conectado a un canal de sistema, que Intel denomina "multicanal". El IOP utiliza un canal local para comunicarse con diferentes unidades de interface conectadas a dispositivos de E/S. La CPU comunica con el IOP al habilitar la lnea de atencin al canal. La lnea de seleccin la utiliza la CPU para seleccionar uno de los dos canales en el 8089. El IOP obtiene la atencin de la CPU al enviar una solicitud de interrupcin. La CPU y el IOP se comunican uno con el otro al escribir mensajes mutuos en la memoria del sistema. La CPU prepara el rea de mensaje y la seala el IOP al habilitar la lnea de atencin del canal. El IOP lee el mensaje, ejecuta las funciones de E/S requeridas y ejecuta el programa de canal conveniente. Cuando el canal ha terminado su programa, emite una solicitud de interrupcin a la CPU. El esquema de comunicacin consta de secciones de programa llamadas "bloques", las cuales se almacenan en la memoria como se muestra en la
459
figura 11-24. Cada bloque contiene informacin de control y parrnetros, al igual que un apuntador de direccin a su bloque sucesor. La direccin del bloque de control se pasa a cada canal IOP durante la inicializacin. La bandera ocupado indica si el IOP est ocupado o preparado para ejecutar una nueva operacin de E/S. La CPU especifica una palabra de comando de canal (CCW) para indicar el tipo de operacin requerida del IOP. La CCW
CPU 8086
1
Controlador de canal
1
Sistema de canal
Unidad de memoria
I
IOP 8089
4
Canal local
1
Interface
Ld
b
Dispositivo de entrada Dispositivo de salida
Bloque de control
Bloaue de tareas
Direcci6n PB
de IOP
Figura 11-24 Posicin de la informacin en memoria para operaciones de E/S en el sistema de rnicrocomputadora Intel8086/8089.
1IP
1
t .
en el 8089 no tiene el mismo significado que la palabra de comando en el canal de IBM. Aqu, la CCW se parece ms a una instruccin de E/S que especifica una operacin para el IOP, como iniciar operacin, suspender operacibn, reanudar operacin, y parar programa de E/S. El bloque de parimetros aontiene datos variables que el programa IOP debe utilizar para realizar su tarea. El bloque de tareas contiene el programa real que se va a ejecutar en el Ii3P. La CPU y el IOP trabajan juntos por medio de los bloques de control y de parmetros. La CPU obtiene el uso de la memoria compartida despus de comprobar la bandera de ocupado para asegurarse que el IOP est disponible. Despus, la CPU lleria la informacin en el bloque de parmetros y escribe un comando de "comenzar operacin" en la CCW. Despus de que se han inicializado bloques de comunicacin, la CPU habilita la seal de atencin del canal para informar al IOP que comience su operacin de E/S. Despus, la CPU contina con otro programa. El IOP responde a la seal de atencin del canal al colocar la direccin del bloque de control dentro de su contador de programa. El IOP hace referencia al bloque de control y activa la bandera de ocupado. Entonces checa la operacin en la CCW. Ce transfieren las direcciones PB (bloque de parmetros) y TB (bloque de tareas) dentro de los registros IOP internos. El IOP comienza a ejecutar el programa en el bloque de tareas utilizando la informacin en el bloque de parmetros. Las entradas en el bloque de parmetros depende del dispositivo de E/S. Los parmetros listados en la figura 11-24 son convenientes para transferencia de datos hacia o desde un disco magntico. La memoria de direccin especifica la direccin inicial de un buffer de memoria. La cuenta de bytes proporciona la cantidad de bytes que se van a transferir. La direccin del dispositivo especifica el dispositivo de E/S particular que se va a usar. Los nmeros del canal y sector ubican los datos sobre el disco. Cuando se termina la operacin de E/S, el IOP almacena sus bits de estado en la localidad de la palabra de estado del bloque de parmetros e interrumpe la CPU. La CPU puede hacer referencia a la palabra de estado para comprobar si la transferencia se ha completado satisfactoriamente.
5!i
11-8
Comunicacin serial
Un procesador de comunicacin de datos es un procesador de E/S que distribuye y recoge datos de muchas terminales remotas conectadas mediante el telfono y otras limeas de comunicacin. Es un procesador de E/S especializado diseado para comunicar directamente con redes de comunicacin de datos. Una red de comunicacin puede contener cualquiera de una amplia variedad de dispositivos, como impresoras, dispositivos interactivos de exhibicin visual, censores digitales o una opcin de computacin remota. Con el uso de un procesador de comunicacin de datos, la computadora puede dar servicio a fragmentos de cada demanda de red de manera intercalada y
461
por lo tanto tener un desempeo aparente de servir a muchos usuarios a la vez, D e esta manera, la computadora puede operar eficientemente en un ambiente de tiempo compartido. La diferencia m s notable entre un procmdor de E/S y un procesadar procssador de de comunicaci6n de datos es la manera en la que el procesador se comunica comunicadn cbn 10s dispositivos de E/S. Un procesador de E/S se comunica con los de datos h i r i i pmifricos a traves de un canal de E/S comn que consta de muchas lneas I de datos y de control. Todos los periMricos comparten e l canal comn y lo m'& utilizan para transferir informacin h a c i a y deede el procesador de E/S. Un procesador de coneunicacidn de datos se comunica con cada terminal por medio de un solo par de cabIes. La informacin de control y de datos se transmite de manera serial con el resulbdo de que la velocidad de transferencia es mu&o mis lenta. L a tarea del procesador de comttnicacin de datos es transmitir y recoger informaci6n diiital hacia y desde cada terminal, determinar si la informacibn es de datos o de control y responder a todas las solicit~desde acuerdo a procedimientos establecidos con anticipaci6n. Es obvio que e l procesador tambin debe comunjcarse con la CPU y Ia memoria de la misma manera que cualquier procesador de EIS. La manera en que esten conectadas ias terminales remotas a un procesador de comunicacin de datos es mediante lneas telefbnicas u otras opcioneg de comunicaci6n privadas o pbIicas. Como las lneas de comunicacidn ataban diseiradas originalmente para la comunicaciSn de canal y las computadoras se cotrtunican en tminos de seales digitales, debe utilizarse alguna forma de conversihn. Los convertidores se .denominan conjuntos de mddem datos, sicopladores adsticos o rnddems (de "modulador-demdulador").Un mdern convierte las seales digitales en tonos de audio que s e transmiten por lneas telefbnicas y tambin convierten tonos de audio de la lnea a seales digitales para el uso de la mdquinzi. Se utilizan varios esquemas de modulricibn al igual que diferentes grados de medios de comunicacibn y velocidades de transmisi6n. Una Lnea de comunicaci6n puede estar conectada a una interface sncrona o asncrona, dependiendo del mgtodo de transmisibn de la terminal remota. Una interface asncrona recibe datos seriales con bits de inicio y paro en cada carkter, como 'se muestra en la figura 11-7. Este tipo de interface es simiIar a la unidad de interface de comunicaci6n ashcrona presentada en la figura 11-8. la transmisi6n srtcrona no utiliza los blts de inicio y paro para delimitar los caracteres y por lo tanto usa el enlace de comunicacibn de manera mas eficiente. Los dispmitivos de alta velocidad utilizan l a transmisi6n slncmna para &tener esta eficiencia. h s mdems utilizados en la transmisi611 sincrona tienen relojes internos que se inicializan a la frecuencia que se estn transmitiendo los bits en la lnea de comunicacin. Para una operacibn adecuada, s e necesita que los relojes en los rndems transmisor y receptor estn sincronizados en todas las ocasiones. S i n embargo, la lfnea de comunicaci6n contiene s610 10s bits de datos a partir de los cuales debe obtenerse la informacidn de reloj. La sincronizaddn de la secuencia la consigue el
trans-a de bloqw
CRC
de W que ocurren en los datos reciiidos. Cualquier cambio de secuencia que puede.ocurrir entre los relojes transmisor y receptor se ajusta continuamente al mantener e1 reloj receptor en la frecuencia del flujo de bits que Uega. E l modem transfiere los datos recibid= junto con ei reloj a l a unidad de interface. La interface o terminal en el lado transmisor tambin utiliza la infomddn de reloj de su m6dem. De- esta manera, se mantiene la misma velocidad dedbits en el transmisor y en el receptor, A diferencLa de la transmisi6n asincrona, en la cual cada carkter puede enviarse en forma separada con sus pmpios b i t s de inicio y paro, Ia transmisin s h m a debe enviar un mensaje continuo para mantener h s i n nizacibn. E i pensaje consta de un grupo de bits transmitidos en forma seniencial coma un bloque de datos. Todo el bloque se transmite con caracteres de cm401 -les al comienzo y al final. del bloque. Los caracteres de control al inicio del bioque proporcionan la informaci6n necesaria para separar los bih que 1Jeganen caxacterw individuales. Una de las huicionw de1 psocesador de comunicaci6n de d a b es verificar la presencia de errores de k'ansrnisi6n. Puede detectarse un error al comprobar k paridad en cada cardcter recibido. O t r o procedimiento utilizado en terminales asinmnas en las que interviene un operador humano es escuchar el eco de 1- c a m El procesador mcomn 10s caracteres transmitidos del teciado a la computadora y loa retransmite a la impresora terminal. E l operador debe darse cuenta .de ,que ha ocurrido un error durante la trmmisibn si el caracter i m p r e s o no es igual a la tecla que se ha oprimido. En la transmisi6n sinmona, en l a cual se transmite un bloque de caracteres completo, cada ear6cter tiene un bit de paridad que debe verificar el receptor. Despus de que se envfa el bloque completo, el transmisor enva un carcter ms que constituye una paridad sobre la longitud del m e n s a j e . @ t e caracter se llama una wmprobaci6n de redundancia longitudml (longitudid r e d d a n c y check, LRC) y es h acumulaci6n de las OR exclusivas de todos los caracteres recibidos. L a estacin receptora calcula la LRC conforme recibe caracteres y h compara con la LRC transmitida, Las LRC calculadas deben ser iguaies para que los mensajes no contengan error. Si el receptor encuentra un error en el bloque transmitido, le informa a quien envia que retransmita el mismo bloque de nuevo. Otra mCtodo utilizado para comprobar errores en la transmbi6n es la comprobad611 de redundancia cclica (ciclyc,dundfancy check, CRC). Este es un c6digo de polinomi0 que se obtiene de l o s bits de mensaje al pasarlos a traves de un registro de corrimiento retroalmentado que contiene varias compuertas OR exclusivas. & t e tipa de c6digo es conveniente para detectar errores de rfaga que ocurren en el cmal de comunicacibn. Pueden kmmi* datos entre dos puntos en tres modos diferentes: stnphx, W C i p l e x a dpiex completa Una h e a s f m p k transmite informa&n s b en una d i 6 n . Este modo se utiliza rara vez en comunicaC;6n de datos p o q w el receptor no puede comunicarse con el transmisor para
mdem receptor de las fransiciones
SECCI~N11-8
Comunicacin serial
463
dplex completo
protocolo
indicarle la aparicin de errores. Los ejemplos de transmisin smplex son la programacin de radia y televisin. Un sistema de transmisin semidplex es uno que puede transmitir en ambas direcciones pero slo pueden transmitirse los datos en una direccin a la vez. Se necesitan un par de cables para este modo. Una situacin comn es la de un modem que acta como el transmisor y otro como receptor. Cuando termina la transmisin en una direccin, el papel de los modems se invierte para habilitar la transmisin en sentido opuesto. El tiempo requerido para cambiar una lnea semidplex de una direccin a otra se llama tiempo de vuelta. Una transmisin dplex completa puede enviar y recibir datos en ambas direcciones simultheamente. Esto puede lograrse mediante iin enlace de cuatro cables con un par de h e a s diferentes dedicadas a cada direccin de transmisin. Alternativamente, un circuito de dos lneas puede soportar comunicacin dplex completa si el espectro de frecuencia se subdivide en dos bandas de frecuencia no sobrepuestas para crear canales de recepcin y transmisin separados en el mismo par de lneas fsico. Las lneas de comunicacin, los mdems y otro equipo utilizado en la transmisin de informacin entre dos o ms estaciones se denomina enlace de datos. La transferencia de informacin ordenada en un enlace de datos se consigue mediante un pmfocolo. Un profocolo de control de enlace de datos es un conjunto de reglas que siguen las computadoras y terminales interconectadas para asegurar la transferencia de informacin ordenada. El propb sito de un protocolo de enlace de datos es establecer y terminar una conexin entre dos estaciones, identificar al transmisor y al receptor, asegurarse que todos los mensajes pasen en forma correcta sin errores y manejar todas las funciones de control implcitas en una secuencia de transferencias de datos. Los protocolos se dividen en dos categoras principales, de acuerdo a las tcnicas de ordenamiento de mensajes. Estos son el protocolo orientado a caracteres y el protocolo orientado a bits.
ri m
464
S i m S i m ' b o l o
Significado
Funcibn
SYN SOH
STX
ETX EOT
ACk
NAK ENQ
El3 DZE
Iriaclivo sirlaono kricia de enealmado inicio de texto Pin de texta Fin de trammisi6n Reconocimiento Reconocimiento negativo comulta F i n de bloque de transmisibn lhape de enlace de datos
Establece sincronismo Encakado de mensaje de bloque Antecede un bloque de texto Termina un bloque de texto Concluye una bansrnisin Reconwimiento afiiativo Reconacimiento negativo Cmsdasilataminaleatencendida Fin de bloque de datos Cmicter de control ~speciai
~adcter SYU
h a s . El papel de carActc?r en el control de l a transmisidn de da- se explica m fomia breve en la columna de fumih de la tabla. El car6cter S Y N sirve como un agente de sincmnizaci6n entre el transmisor y e l receptor. Cuando se utiliza el cdigo AXII de 7 bits con un bit de paridad impar en la posicidn m8s significativa, el car6cter SYN asignado time el d i g o de 8 bits OOOlOllO que tiene la propiedad que, ante la acwrencia de un corrimiento circuiar, se repite a s mismo &lo despuh de un ciclo de 8 bits completo, Cuando d transmisor empieza a enviar caracte res de 8 bits, enva primero unos cuantos caracteres, y despuhs envh el mensaje real, La serie continua de bits iniciales que acepta ei receptor se comprueba en busca de un carcter SYN. En otras palabras, con cada p h de reloj, el receptor comprueba los tililtimos 8 bits recibidos. Si no coinciden los bits del carActer SYN e l receptor acepta el siguiente bit y rechaza el bit anterior de orden superior y vuelve a comprobar los riltimos 8 bits recibidos en busca de un cardcter SYN. Esto se repite despuds de cada pulso de reloj y despus de cada bit recibido hasta que se reconwe un caracter SYN. Una vez que se detecta un caricter SYN, el receptor ha "armado"un caracter. D e ah en adelante el receptor cuenta cada 8 bits y los acepta como un slo cadcter. Por l o general, el receptor comprueba dos caracteres S Y N consecutivos para que no exista i a duda que e l primero ocurri6 como resuitado de una seal de ruido en la inea. Adems, cuando e l transmisor est desocupado y no tiene ningunos caracteres de mensaje que enviar, emplea una serie continua de caracteres SYN. El. receptor reconoce estos caracteres como una cmdiin para sincronizar la lnea y pasa a su estado inactivo sncrono. En a t e estada, las dos unidades son sinanas en bits y caracteres, aunque no se comunique infomaci6n significativa. L . o s mensajes s e transmiten por el enlace de datos con un formato establecido que consiste en un campo de encabezado, un campo de texto y
SYN
SYN
Tato
ETX
BCC
un campo de compmbacin de error. Un formato de mensaje tpico para un protocolo orientado a caracteres se muestra en la figura 11-25. Los dos caracteres S Y N aseguran la sincmnizaci6n adecuada al inicio del mensaje. &pus de b s caracte~s S Y N est e l encabezado, que comienza con cariicter SOH (inicio de encabezado). El encabezado consiste en uifomaun de direccidn y control. El carcter STX te& el encabezado y significa e l comienzo de la transmisidn del texto. ta parte de texto del mensaje es variable en longitud y puede contener malesquiera caracteres ASCII, excepto los caracteres de control de comunicaci6n. El campo de texto termina con J carActer ETX. E 1 ltimo campo es un caracter de comprobaci6n de bloque (block check character, BCC) utilizado para la comprobacibn de error. Por 10 regular, es una comprobacibn de redundancia Iongitudinal (longifudinal redundancy check, LRC) o una comprobaci6n de redundancia cclica (cyclic redundancy check, CRC). ES1 receptor acepta el mensaje y calcula su propia BCC. Si la BCC transmitida no coincide con l a BCC calculada por e l receptor, el receptor responde con un cadcter de reconocimiento negativo (NAK). Despuk eI mensaje se retransmite y se vuelve a comprobar. Lo normal es que se intente retransmitir varias veces anks de que se conside que h h e a est defectuosa. Cuando la CC transmitida coincide con la que calcula e l receptor, la respuesta es un recanocimiento positivo utilizando eI carActer ACK.
Ejemplo de kansmisibn Para apreciar la funci6n de un procesados de comunicacibn de datos, veamos m d k t e un ejemplo especifico el &todo con d cual se comunican una terminal y el procesador. La comunicaci6n con l a unidad de memoria y h CPU es similar a cualquier procesador de 'B/S. Un mensaje tipico que podrla enva= de una terminal al procesador se lista en la tabIa 11-5. h lobservar este mensaje s e descubre que hay varios caracteres de control que se usan para la formacin del mensaje. Cada carActer, incluyendo los caracteres de control, se transmite en forma serial como un c6digo binario de 8 bits que consta de un c6digo ASCU de 7 bits ms un bit de paridad impar en l a octava posicin ms significativa. Se utilizan los dos caracteres SYN para. sincronizar el receptor y el transmisor. El encabezado comienza con e l carhcter SOH y contina con dos caracteres que especifican la d i i b n de la temimi. En este ejemplo particular, 1. direcci6n es T4, p r o en g e n e d pueden tener cualquier conjunto de dos o mbs caracteres grAficoe. Q caracter STX termina el encabezado y comunica
TABLA 11-5
-
C6digo
ShMo
SYN SYN
Comentarios
SOH T
4
STX
~ ~ de sddo de la
cuenta
No. 1234
K m
LRC
el comienm de la transmisin de texto. Los datos de texto que nos interesan aqu son "solicitar EI balance la cuenta 1234". Los caracteres individuales para este mensaje no se listan en la tabla porque ocuparan demasiado espacio. Sin embargo, debe recordarse que cada carActer m el mensaje tiene un cdigo de 8 bits y que cada bit se transmite en forma serial. El carcter de control El"X significa la terminacin de h c a r a c m de texto. El siguiente carkter despus de ETX es una comprobacin de redundancia longitudinal (LRC). Cada bit en este cadcter es un bit de paridad calculado de todos los bits en la misma columna en la seccin de cdigo de la tabla. E l p m a d o r de comunicacin de datos recibe este masaje y avanza a a n a k l o . Usa la terminal T4 y almacena el texto asociado con el mensaje.
m i b e los caracteres, el proeesador comprueba la paridad en cada carkter y ta&iQi calcula la paridad longitudinal. La LRC calculada se compara con el carActer LRC recibido. S i los dos coinciden, se envia de r e p m a la terminal un reconocimiento positito. S i no coinciden ae retorna a la terminal un reconbcimiento negativo (NAK) que iniciara una retransmisi6n del mismo bloque. Si el procesador encuentra que el mensaje no tiene errores, lo transfiere dentro de la memoria e inkrrumpe la CPU. Cuando la CPU reconme la interrupcin, a n a h el mensaje y prepara un mensaje de t a t o para responder a l a solicitud. La CPU enva una instniccih al procewdor de municacin de datos para que ende el mensaje a la terminal. En i a tabla 11-6 se lista una =puesta pica del procesador a la krminal. Despus de dos caracteres SYN, e l procesador m o c e el mensaje p * con un c d c t e r ACK. La lnea continua inactiva con un carkter SYN
Mmtrhs
SYN SYN
ACK
SYN
Primer caricter sincronizado cargcter sincconizado E l procesad01 mmmce ei mensaje -o La lnea inactiva
..
SYN
SOH T
4
STX
ETX
L E
en espera de la respuesta. E l procesador amgIa en el formato apropiado el mensaje recibido de la CPU al insertar los caracteres de contro1 n m n m antes y despub del texto. El mensaje tiene e l encabezado SOH y l a djreccibn de la tenninal T4. El mensaje de texto informa a la terminal que el balasice es $100. Se calcula un carActer LEC y se envla a la temiinal. Si la terminal responde con un cargcter NAK, d procesador xetransrnite el mensaje. Mientras el procesador cuida esta terminal, tambin est a p d o procesando otras tenninalea. Camo los se en fomia s e r i a l , ce m i t a cierta cantidad de tiempo para recibir y rewiir un d & r de 8 bita Durante esbe tiempo el pmxsador est r n u l t i p l ~ o todas las o t m lneas de comunicadh y atien$e a cada una por hma. ia wlddad de las k m h a b motas es atmmkwnte h t a en comparacin con la ve-d del proce wdor, Esta propiedad permite mdtiplexar a muchos usuario8 para eonsegiiir una mayor efectividad en un -S de tiempo compartido. Tambin permite que muchos usuarioe operen simuitheament mientras w atiende a cada uno de d o s a velocidades comparables a la respwta humana n o d
E l protorola orientado a c a r a c m = desam1i6 originalmente para comunicarse con teclados, impresora y dispositivos de arhiiirin visual que utilizan
Transparencia de datos
carbcter RLE
&lo caracteres alfanumricos. Conforme se ampli el campo de comunicacin de datos# se h a necesario transmitir informacin biaria que no fuera texto AXII. Esto sucede, por ejemplo cuando dos computadoras remotas envlan programas y datos una a la otra por un canal de comunicaci6n. Un patr6n de bib arbitrario en e l mensaje de1 texto se convierte en un problema en el protocolo orientado a caracteres. Esto se debe a que el receptor interpretar8 de manera errnea cualquier patrn de 8 bits que pertenezca a un cargcter de control de comunicaci6n. Por ejemplo, si los datos binanos en la parte del texto del mensaje tiene el patr6n de 8 bits 100M1011, el receptor interpretar& &te como un car6cter ETX y considerar4 que se ha alcanzado el fin del campo de texto. Cuando la longitud de la parte del texto del mensaje es 'variable y contiene bits que se van a tratar sin ninguna xekrencia a algn cdigo particular, se dice que contienen datos transparentes. Esta caracterstica requiere que la lgica de reconocimiento de caracteres del receptor se apague para que Ios patrones de-datos en el campo de texta no SE interpreten accidentalmente como informacibn de control de cornunicaci6n. La transferencia de datos se consigue en b s protocoIos orientados a caracteres al insertar un cariicter DLE {data link escape, escape de enlace de datos) antes de cada cardeter de control de copunicacin. Por lo tanto, se detecta el comienzo de un encabezado del cari5cter doble D E SOH, y el campo de texto se termula con el cadcter doble DLE E I X . Si murre el patr6n de bits DLE OOOlOOOO en la parte de texto del mensaje, el transmisor inserta otro patrn de bits DLE despus de l. El receptor quita todos los caracteres DL,E y despus comprueba el siguiente paMn de 8 bits. Si es otro patr6n DLE, el receptor lo considera como parte del texfo y contina recibibndolo. D e otra manera, el r e q t o r tona el siguiente patrbn de 8 bits como un caracter de control de comumicacibn. Lograr la transparencia de datos mediante el carsicter DLE no es eficiente y resulta complicada de implantar. Por lo tanto, se han desarroIIado otros protorolo3-para hacer d s eficiente la transrnisibn de datos transpawtes. Un protocalo utilizado por Digital Equipment 'Corporatian emplea un campo de cuenta de bytes que proporciona l a cantidad de bytes en el mensaje que sive. Despus el receptor debe contar la cantidad de bytes recibido6 para Uegar al final del campo de texto. El protocalo que se ha usado coxr mayor fwmertda para resolver el problema de transparencia (y otros prdblemas asociados con el protocolo orientado a caracteres) es el protocolo dentado a bi'b. rr?lF; -
Protocolo orientado a bits E1 protorolo orientado a bits no utiliza caracteres en su campo de control y es independiente de cualquier o particular, P d t e la transmisi6n de un flujo de bib serial de cualquier longitud sin implicar lmites de caraderes. LDS mensajes m organhn en un fonnato especial llamado cuadro. Adems
469
insercin de cero
del campo de informacin, un cuadro contiene los campos de direccin, control y comprobacin de error. Los lmites del cuadro los determina un nmero especial de 8 bits llamado bandera. El SDLC (synchronous data link control, control de enlace de datos sncrono) utilizado por IBM. El HDLC (high-leve1 data link control, control de enlace de datos de alto nivel) adoptado por la International Standards organizadon, y el ADCCP (admnced data damun2catio~contml p~ocedure,procedimiento avanzado de control de comunicacin de datos) adoptado por el American National Standards Institute son ejemplos de protocolos orientados a bits. Cualquier enlace de comunicacin de datos implica al menos dos estaciones participantes. La estacin que tiene la responsabilidad para el enlace de datos y que emite los comandos para controlar el enlace se llama la estacin primaria. La otra es una estacin secundaria. Los protocolos orientados a bits consideran la presencia de una estacin primaria y una o ms estaciones secundarias. Todas las comunicaciones en el enlace de datos son de la estacin primaria a una o ms de las estaciones secundarias o de la estacin secundaria a la primaria. El formato del cuadro para el protocolo orientado a bits se muestra en la figura 11-26. Un cuadro comienza con una bandera de 8 bits 01111110 a la que le sigue una secuencia de direccin .y control. El campo de informacin no se limita en formato o contenido y puede tener cualquier longitud. El campo de comprobacin del cuadro es una secuencia CRC (yclic redundancy check, comprobacin de redundancia cclica) que se usa para detectar errores en la transmisin. La bandera de terminacin le indica a la estacin receptora que los 16 bits que recibi constituyen los bits CRC. Al final del cuadro puede seguir otro cuadro, otra bandera o una secuencia de nmeros 1 consecutivos. Cuando dos cuadros estn uno tras el otro, la bandera que interviene es simultneamente la bandera final del primer cuadro y la bandera inicial del siguiente. Si no se intercambia informacin, el transmisor enva una serie de banderas para conservar la h e a en estado activo. Se dice que la lnea est en estado inactivo cuando ocurren 15 o ms nmeros 1 consecutivos. Se envan algunos cuadros con ciertos mensajes de control sin un campo de informacin. Un cuadro debe tener un mnimo de 32 bits er.tre dos banderas para alojar la direccin, los campos de comprobacin del cuadro, la direccin y el control. La longitud mxima depende de la condicin del canal de comunicacin y su capacidad para transmitir mensajes largos sin error. Para evitar que ocurra una bandera a la mitad de un cuadro, el protocolo orientado a bits utiliza un mtodo llamado insercin de O. Este
Figura 11-26 Formato de marco para protocolo orientado a bits.
Bandera 01111110 Direccin 8bits Control 8bits informacincualquier cantidad de bits Comprobaci6n Bandera decuadro O I ~ l I 1 1 0
16 bik
470
c a v o de control
requiere que la eshcibn que transmite inserte un O despuk de que se sucedan cinco nmeros 1 continuos. El receptor siempre quita un O despus de una sucesin de cinco nmeros 1. Por lo tanto el patrn de bits O111111 se transmite como O l l l l l M y el receptor lo restablece a su valor original al quitar el O que le sigue al quinto nilunero 1. Como c o ~ e n c i a j,a d s se transmite un paMn 01111110 entre las banderas inicial y final. Despub de la bandera esa el campo de direccih que utiliza h estacin primaria para designar la direccin de la estaci6n secundaria. Cuando una estad611 s e a m h i a transmite un cuadro, la direccin le dice a la estacibn primaria cual eshcin secundaria originb el cuadro. Un campo de direccin de 8 bits puede especificar hasta 256 direcciones. Algunos protmlos arientados a bits permiten que se use un campo de direccidn ampiiado. Para hacer esto, se desactiva m O el bit menos sigruficativo de un byte de dwccin si le sigue otro byte de direacibn. Se usa un nmero 1 en el bit menos significativo de un byte para reconocer d ltimo byte de direccibn Despu& del campo de direcci6n esta el campo de control, E l campo de control viene en ires formatos diferentes, como se muestra en la figura 11-27. El formato de transferencia de infarmaci6n se utiliza para h transmisi6n de datos ordinarios. Cada cuadro transmitido en este formato contiene cuentas de envio y recibo. Una estacibn que transmite cuadros en secuencia cuenta y numera cada cuadro, Esta cuenta la proporciona la cuenta de envo N, Una wtaci6n que recibe cuadros 8eeuenciados cuenta cada marco sin error que recibe. Esta cuenta la proporciona la menta de recibo N, La cuenta N; avanza cuando se comprueba un cuadro y se encuentra que no contiene
Figura 11-27 Formato de ampo de control en proPorolo orientado a bits.
P/F
E
-binario
tinal
/
errors. El receptor mnfinna que se han aceptado los mareos de informacibn numerada al retornar s u cuenta N, a la estaci6n que transmite. La estaci6n primaria utiliza el bit P/F para encuatar a una estad611 secundaria que solicite que inicie la transmisi6n. La estaci6n secundaria la utiliza para indicar el cuadro transmitido final. Por lo tanto, el campo P/F ae Iiama P (poll, encuesta) cuando transmite la estacihn primaria, pero se denomina F (final) cuando transmite una estaci6n secundaria. Cada cuadro que enva la estacin primaria a la estacibn secundaria tiene un bit de P inactiv~en O. Cuando la estacibn primaria tennina y est preparada para que responda a la estacibn secundaria, el bit P se activa en 1, despus Ia estad& secundaria responde con una cantidad de cuadros en la cual el bit F se desactiva en O. Cuando la estaci6n secundaria enva e l ltimo cuadro, activa el bit F en l. Por lo tanto, se u t i l i z a el bit P/F para determinar &do ha terminado la transmisi6n de datos de una estaci6n. ' El f b a t o supervisor del campo de control se reconoce porque los dos primeros bits son 1 y O. Los dos bits siguientes indican d tipo de comando. A esto le sigue un bit P/F y una recepcibn de menta de cuadro de secuencia. Los cuadros del formato supervisor no contienen un campo de informaci6n. Se usan para ayudar en la transferencia de infomaci6n porque confirman la aceptacibn de lcs cuadros anteriores que Uevan infonnaci6n, comunican condiciones preparado u ocupado y reportan errores en la numeracibn de cuadros. el formato sin numerar porque los dos primeros bits son Se 11. L . m cinco bits de c6digo disponibles en este formato puede especificar hasta 32 comandos y respuestas. L a estacibn primaria utiliza el campo de control para +car un comando para una estacibn secundaria. La estaci6n secundaria utiliza el campu de control para transmitir una respuesta a la estaei6n primaria. Las cuadros de formato sin numerar se emplean para iniciaIizar funciones de enlace, reportar errores de procedimiento, colmar las estaciones en modo desconectado y otras operaciones de control de enlace de datos.
11-1.
1 1 2
Las diredones asignadas a cuatro registros de h interface de E/S de l a figura 11-2 son iguales al equivalente bmario de 12,13,14 y 15. Mwstre el circuito externo que debe mneetapseentre la direcci6n de E/S de 8 bits de la CPU y las enkadas C$,RS1 y RSO de la interface. Sleis unidadea de interface del t i p ~ Q se R mumtra en la figura 11-2 m m c h d a s a una CPU que utilia una direccin de E/S de 8 bita Cada una de las seis entradas dedeceih de inte@ao (CS) est conectada a una h de di& diferente. Por lo m , la lnea de M n de orden superior es& wnectada,a la entrad4 CS de la primera unidad de y la sexh llneade diFemdnesi m& a la entradaCSde la sexta unidadde interface.
a , , ,,
Las dos Ineas de direcci6n de orden menor estan conectadasa las M 1 y RSO de bs seis unidades de interface. Determine la direcci6n de 8 bits de cada registro en cada interface. perifrieos que produzcanuna salida aceptablepara 11-3. Liste cuatro dispositiv~s que la comprenda una p w n a . 11-4. Eacrih su nombre completo en ASCn uthndo 8 bits por carsckr y con el bit de la extrema izquierda siempre O. incluya un espacio entre los nombres y un punto despub de una inicial del wgundo nombre, 11-5. Cul es la diferencia,entre E/S independiente y E/S mapeada en memoria? Cules son Ias ventajas y desventajas de cada una? 114. Indique si los siguienke constituyen comandos de control, de estado o de traasferencia de dabas. a. Omitir la siguente instrucci6n si ~ t activa la bandera. b. Buscar cierto tegistm e i una cinta magdtica. C. Comprobar si est preparado el dispositivo de E/S. - d. Idover papel impreco para %ciar en siguiente pgina. e. Leer interface de registro de estado. 2 1 1 7 . Una unidad de interface comercial utiliza diferentes nombres para las lneas de reconocimiento a*ciadac con la transferencia de datos del . . & A dispositivo de E/S dentro de la unidad de interface. La lnea de reconocimiento de entrada de interface se etiqueta STB (habilitacin, estroboscopio)y la Ilnea de reconocimiento de saljda de interface se denomina IW (buffer de entrada ileno). Una seal de nivel bajo en Si3 carga datos vi! del canal de E/S dentro del registro de datw de la interface. Una seal 4 de nivel alto de i3F indica que la interface ha aceptado los datos. IBF va a nivel bajo despues de una seal de Lectura de E/S por parte de i a CPU cuands Iee e l registro de dabs. l w a . Dibuje un diagrama de bloques que m e g h e la CPU, la interface y e l dispositivode E/S junto w n las hterconexionespertinentesentre las tres HA unidades. . h a . . b. Dibuje un diagrama de ternporizaci6n para l a transferencia de reconmia miento mutuo. c, Obtenga un diagrama de flujo de secuencia de eventos para la kademncia del dispitivo a la interface y de la interface a la CPU. 11-8. Una CPU con un reloj de 20 Mhz esta conectada a una unidad de memoria cuyo tiempo de acceso es de 40 nc. Formule diagramas de temporizacibn para l-ra y escritura utiIizando un pulso de habilitacidn READ y un pulso de habilihci6n WRlTE. Induya la directi6n en el diagrama de tempari_zau6n. 11-9, La interface de eomunieacih asincrona que se muetra en la figura 11-8 est conectada entre tma CPU y una impmra. Diiujje un diagrama de flujo que d d b a la -enda de operacionew en la parte transmisora de la interface, cuando la CPU envia caracteres que se van a imprimir. 11-10. Proporcione al menos aeis condiciones de estado para la especificacin de bits individuales en el regisw de estado de una interface de comdcacibn asncrona.
-I
--"
Problemas
473
tCdnt& bits hay en el registro de oorrimiento transmisor de la figura 118 cuando la ,interfaceesta conectada a upia terminal que neeesita un bit de alto? Liste los bib en el registro de paridad niando se trasmite h letra W utilizando ASCII con paridad par. Cuntos caracteres por segundo pueden ixansmirse sobre una lnea de 1200 baudios en cada uno de los siguientes modos?(Considereun &diga de caracteres de ocho bib). a. Transmisidn s&al dincrona, b . Transmisibn serial aslncrona con dos bits de alto. c. Trammisi6n &al asinmons con un bit de alto. Se inserta i n h c i 6 n denkm de un bffer FiFO a una velmidad de m bytes por segundo. La informacin se borra a una velocidad de n bytes por qundo. L a mxima capacidad de bdffer es k by@. a Cunto tiempo se necesita para llenar un buffer vado cuando m > n? b. ~Cudnta tiempo se necesita para que se vace un bffer lleno cuando m < n? c Seneeesifa el brlifkr FIFO s i m = n? L a s bits en el registro de control de la FZtY)que se muestra en la figura 11-9 son F,F$JQ = 0011. Proporcione la secuencia de operaaones internas cuando se borra un dato de la FiFO y se inserta despuh un nuevo dato. ~Culw son los vakres de entrada preparada, salida preparada y los bits de control del F1 a1 F4 en la figura 11-9cuando:
Ell y 5 f f e rest vado? b. $3 bCiffer est lleno? ' c El bilffer contiene dos datos?
a,
Muestre un diagrama de bloques similar a la figura 11-10 para la transferencia de datoa de la CP a la interface y despuds a un dipositivo de E/S. Determine un procedimiento para especifiw y limpiar el bit de
bandera.
Usando la conguraci6n establecida en el problema 11-16, obtenga un diagama de.fkujo(similara la de la figura 11-11) parad programa de CPU para sacar datos. Cul es Ia ventaja bhsica de utilizar transferencia de datos iniciada por InterrupEihsobre la transferencia bajo eI wntrol del programa sin interrup
aones? En la mayora de las computadoras se reconoce una internipcibn &lo despuh de la ejecuci6n de la instnieeih. Considere la posibilidad de noxr la internipci6~1 en cualquier momento durante la ejecuci6n de la instnieci6n. Analice la dificultad que puede surgir. Qu& sucede en i a interrupcibn de prioridad de lazo de margaritas que se muestra en la figura 11-12cuanda el dispositivo 1 soiicita una interrupcin, despus que e1 dispositivo 2 ha enviado una solicitud de interrupei6n a la CPU, pero antes de que la CPU responda con el reconocimiento de interrupci6n7
Gwisidere una computadora s i n eircuitera de interrupci6n de prioridad. Cualquiera de muchas fuente3 puede interrumpir a ia computadora y cualWW-1 &quier solicitud de inhrupcibn da como resultado e l aimacenamiento de la d d b n de retorno y la transferencia ,a una rutina de intwrupci6n comn. , , ,Explique e6mo puede establecerseuna rioridad en el programa de servicio 'm -4 de intemipri6n. 11-22 Utilizando tcnicas de disefio de c h u i b s mmbinacionales,derive las expresiones booleaw listadas en la tabla 11-2 para el edificador de prioridad. Dibuje el diagrama lgico del circuito. 11-23. una cimiitera de interrupcibn de prioridad paralela para un sistema -w con ocho fuentes de interrupcibn m r m t i l 11-24. Obtenga la tabla de verdad de un d%cadorde prioridad 8 X 3. Considere que las t r e s q z del codificador de prioridad se utilizan para proporcionar una d i d d n de vector de la forma 1 0 1 w . Liste las ocho direcciones de vector, comenzando con la de ms alta prioridad. 11-25. ~ Q u 4 debe hacerse en la figura para hacer que los cuatro valores VAD sean iguala al equivalentebinario de 76,77,78 y 79 11-26. Cules pasos de programaci6n se requieren para comprobar cuando una fuente interrumpe a la computadora mientras todava est siendo atendida mediante una solicitud de interrupei6n previa de la misma fuente? 11-27. Por q d son bidhccionales las lneas de conkm1 de lectura y escritura en un controlador DMA? Bajo qu& condiciones y para qu& propsito se utilizan como entmdas? @ajo qu& condiciones'y para qu propsito se usan como salidas? 11-28. Es necesario transferir 256 palabras de un disco magntico a una seccibn de memoria que comienza en la direccin 1230. I a transferencia es mediante DMA, como se muestra en la figura 11-18. a. Prupotelone los valore inicialesque debe transferir la CIW al controlador DMA. mb . Propbcione la cuenta paso a paso de las acciones que se toman durante I1 - e ~ u ltL1 a la entrada de las primeras dos palabras. 11-29, Un controlador DMA transfiere palabras de 16 bits a la memoria utilizando el ,robe de ciclo. Las palabras se,ensamblan de un dispositivo que g i trasmite caracteres a una velocidad de 2M0 caracteres por segundo.La CPU recupera y ejecuta instrucciones a una velocidad de un rnill6n de instrucciones por segundo. Cunto se frenara la CPU debido a una transferencia DMA? el DMA tiene prioridad sobre la CPU cuando ambos solicitan una 11-50. ~Porqug kamfereneia de memoria? 11-31. Dibuje un diagrama de flujo similar a la de la figura 11-20,que describa la comunicacin de canal CPU-E/S en la IBM 370. 11-32 L a direcci6n de una terminal conectada a un procesador de comunieaci6n de da& ronda de dos letras del alfabeto o una letra y uno de diez nmeros. i C ~ h t a direcciones s diferentes Pueden formularse?
6Y .J
t h
-A
-
11-21.
-m
Referencias
475
11-33. Liste un procedimiento de linea y la meentia de caracteres posibles para la comunicaci6n entre un proeesador de comunicacibn de datos y una terminal remota. El procesador pregunta si la terminal es operativa. L a terminal responde sl o no, Si la respuesta es si, el procesador envfa un bloque de texto. 1134. Un erace de comunicacin de datos emplea el ptmolo controlado por caracteres con t r a n s p a d a de datos, utilizando el ear&ckr D L B . E l mensaje de texto que enva el trasmisor entre SiX y FIX es como sigue:
1. Gorsline, G.W., Computer Orgatrhtion: Hnrdwre/Soptaare, 2 a . ed. Englewood Clifb, NJ: Prentice Hall, 1986. 2. Hays, J. F., Compter Arckit~hre nnd Organiuith, 2a. d. Nueva York: McGraw-W, 1 9 8 8 . 3. HiII, F . J., y G.R.Peterson, DigItaI Systm: hlnrdware Orgatiktion and Design, 3a.d. Nueva York: JohnWiley, 1 9 8 7 . 4. Hwang, K,, y F.A. Briggs, ComputerArchitecturemd Paralki P m i n g . Nueva York McGraw-m, 1984. 5. Lippiatt, A. C., y G . L Wright, The A ~ h i k t u r e oJ Smnll Computer Sptms, 2a. d. Englewood Cliffs, Nj: M t i c e Hall, 1985. 6 . Pattwson, D.A. y J. L. Hemessy, Compufer Arckitechre: A Quantifatizre Appoach, San Mateo, CA:Morgan Kaufmann PubIishers, 1970. 7. PoUard, L. H . , Compukr Vesign md Ardiitactuw, Englewood Uiffs, N: Prmtice
H a l l , 1 9 9 0 .
8. R a f i q m m n , M . , y R.Chandra, W e r n Computer Archikhcte, S t . Paul, MN: West
Publishing, 1988. 9 . Toy, W , y B. Zee, Compter H a r d w a r e m r e Arckit~hre. Englewood Cliffs, Prentice Hall, 1986. 1 0 . Wakerly, J. F . ,M i c m p u t e r ~rchikture nnd Progrumming. Nueva Ymk JohnWiley,
. 1981. 1 1 . Ward, S .A., y E H Halstead, Jr., CottPpufafion Stmctures, Cambridge, MA:MIT Pms,
1 9 9 0 .
EN ESTE c~PfTuI.0
32-1
12-2
12-3
124
12-5 12-6
12-7
Jerarqulade la memoria Memoria principal Memoria auxiliar Memoria amciativa Memoria cachd Memoria virtual Chcuitera de administracidn de la memoria
''-
r ( s i l -#m
memoria cach
-r,1r,:,t~4~,r,r,r
III~/T!
- -
que se u~~ con ms fkcuerda en los sistemas de computadora son los ~ w o9 s cintas ~ g x 6 t i C a ~ CO . twan para almacenar progra&as del sistema, pmdes imhivos de-datos y otra hfomci6n de respaldo. 5610 los programas y datos que necesita en ese momento el procesador residen en la p@cipaL F$a; L cid-S jpfomcin se almacena en la memoria de. &&hefe a irhemoda principal cuando se necesita. b capa~bdadtotal de memoria da una computadora puede considerar& cornoLqna jera::::::::&& de Cdmponentes. 81 sistema de jerarqua de memoria consiste en todos los sistemas de almacenamiento que se emplean en un sistema de computadora; desde la memoria auxiliar, que es lenta pero de gran capacidad, hasta la memoria principal, que es relativamente ms rpida o, tal vez, una memoria cache ms rpida y pequea, y resulta accesible para la 16@~3 de procedimiento de alta velocidad. La figura 12-1 ilustra los componentes de una jerarqua tpica de memoria. En la parte baja de la jerarqua estn las cintas magnticas, que son relativamente lentas y que se usan para almacenar archivos removibles. Despus, estn los discos magnticos que se utilizan como almacenamiento de respaldos. La memoria principal ocupa una posid6n central al poder comunicarse directamente con la CPU y con Iw dkpositivos de memoria auxiliar, mediante un procesador de E/C. Cuando la CPU necesita los programas que no residen en la memoria principal, se transportan de la memoria auxiliar. Los programas que no necesita en ese momento la memoria principal, se transfieren dentro de la memoria auitil'iar, para proporcionar espacio a los programas y datos que se usan en ese momento. En ocasiones, se utiliza una memoria especial de muy alta velocidad, llamada cach, para aumentar la capacidad de procesamiento al poner disponible para la G$&qf ppgraqlpp g , m p w l e s a una velocidad rdpida.
-I
--
j i ~
o r n
'>IJJIIT~-
S ,R
-,b
-4
La memoria ca& se ~ F I M en los sistemas de computadora para eompensar la dikm& =de velocidad qntipe el tiwnpo de acceso a la memoria principal y h Qica de p r w d o r . Por h general, la lb+ de la CPU es $iBs dpida que e l tiempo de acceso de la memoria principal, con lo que resulta que 4 velocidad de pmcesasniento e t & h i t a & principalmente, por la vdwidad de la gnwnoria principal. U n a W c a que se utiIiza para compensar b dffemcia entre las vdcxidades- de operaci611, es emplear una pequea cach, exbudamente ~Apida, entre la CFU y la memoria principal, cuyo tiemp de a m suma a un tiempo de ciclo de reloj de lgica de p m d o r . Se usa la tache para almacenar segmentos de programas que se ejecutan en,ese momenb en lar CPU y para guardar datos temporales que se necesitan con h e n c b en los clculos preaenteo, Al poner disponibles' los progamas y los datos a gran vdddad, es posible incrementar la velocidad de h i ~ n a m i w i t o de la compubdora. MientTa~el pwesador de WS administra h transferencias entre las memorias principal y auxiliar, la o r g a n h c i h de sachd se interesa en la trwfexmcia de hfmuudbn entre la memoria y la CPU.Por l o tanto, cada una relaciona con un nivel diferente en el &tema de jerarquas de memoria. La para tener dos o t m jerarqufas de memorias es el aspecto econ6mico. ConFome .auXnenb la capacidad de l a memoria, disminuye el cato para d m e e n a r infomciba .biiria y se alarga d tiempo de acceao a l a memoria. La memoxia a& .tieneuna gran capacidad de almacenamiento y es relativamente barata, pero Gene baja velwidad de acen comparaci6n con la memoria principal. La n a m o k cachk es muy pequeifa, relativamente cara y time una velocidad de a nuy alta. Por lo tanto, conforme a w e n t a l a v e l a d de acceso a memoria, de igual manera se incrementa el eosto. El pmpsito g p m d de u una jerarqua de meme ria es obtener la velocidad de acceso promedio m s alta posible, en tanto se minimiza el costo total de todo el sistema de memoria. Las memorias auxiliar y mch4 se para .8ifqmtes prop6sitos. La cachd contiene aquellas partes de programas y datos que se usan con mayor huwiSia, Jniwtras que la memoria am&r contiene aquellas partes que no utiliza actuahente,h CPU. Ademiis, la Crm time amem directo tanto a la memoria cache como a la pcincipal, pero no a la memoria auxiliar. La kansfemc:lade lis memoria auxiliar a la -pBncipal, por lo general se realiza median& el aaeew ,&m@a memoria de pandes bloques de daba-La r d n de tiempo tfpica entre 4 memo& ca&4 y la memoria principal es de alrededor de 7 a 1 . Por ejemph, una, memo+ cacb6 tpica tiene un 6rmpo de accew de 100 ns, mientras que d a p o de aeeeso de la memoria pude ser de 700 ns. H l tiempo de -a p h m d o de 1 s w o r i a awiliar, por lo general es 14 veces el de la memoria pxhcipal. El -o de bloque de la &O& apx$ar,'uaria de 256 a 2048 paiabraq en tanto que el de blque de ca& regulannqte es da 1 a 1 6 palabras. Mu* shtemas opativas ean ck-mdps para habilitar a la CPU -m&,ad con el fin de que prwq v h o s pmgrnaas independientes en forma concu-
wr
489
mwltiprogrdmacidn
rrente. Este concepto, denominado multiprogrami6n, se refiere a la existencia de dos o m&s programas en diferentes jerarquas de memoria, al mismo tiempo. De esta manera, es posible tener ocupadas todas las partes de la computadora, al trabajar en varios sistemas en secuencia. Por ejemplo, supongamos que se ejecuta m programa en la CPU y que se necesita una transferencia E/S. La CPU inicia e1 procedimiento B/S para que comience a ejecutar la transferencia. Esto deja la CPW libre para ejecutar otro programa. En un sistema de tnultiprogramarcin, cuando un programa espera una transferencia de entrada o salida, hay otro programa preparado para utilizar la CPU. Con la multiprogramaci6n surge la necesidad de correr programas parciales, para variar la cantidad de memoria que utiliza cierto programa y para mover los programas por la jerarquia de programas. En ocasiones, los programas de computadora son demasiado grandes para alojarse en el espacio total disponible de la memoria principal. Adems, el sistema de computadara utilka muchos programas y no todos los programas pueden residir en la memoria principal en todo momento. Normalmente, un programa reside en la memoria auxiliar, junto con sus datos. Cuando se va a ejecutar un programa o un segmento de programa, se transfiere a la memoria principal para que lo ejecate la CPU. Por lo tanto, podra pensarse que la memoria auxiliar contiene toda la informacin almacenada en el sistema de la computadora. Es una tarea del sistema operativo mantener en la memoria .principal la ,parte de esta informacin que est activa en ese momento. La parte del sistema de la computadora que supervisa el flujo de informacin entre la memoria auxiliar y la memoria principal se denomina sistema de aclministracin de memoria. La circuitera para un sistema de administracin de memoria se presenta en la seccin 12-7.
12-2
Memoria principal
La memoria p~incipal es la unidad de almacenamiento central en un sistema de computadora. Es una memoria rpida y relativamente grande y se utiliza para almacenar programas y datos durante la operacin de la computadora. La tecnologa fundamental que se utiliza para la memoria principal se basa en los circuitos integrados semiconductores. Se dispone de la RAM en circuitos integrados en dos modos de operacin posibles, estticos y dinmicos. La RAM esttica consiste esencialmente en flip-flops internos que almacenan informacin binaria. La informacin almacenada es vlida mientras la unidad est encendida. La RAM dinmica almacena la informacin binaria en forma de cargas elctricas que se aplican a capacitores. Unos transistores MOS son los capacitores en el C.I. La carga almacenada y los capacitores tienden a perderse con el tiempo y los capacitores deben cargarse en forma peridica al "refrescar" la memoria dinmica. El refresco se realiza al hacer circular las palabras durante un ciclo cada pocos microsegundos para resta-
blecer la carga que se pielde. i . a BAM dinrnica ofrece consumo de energa pducido y mayor capacidad de a l m a d e n 5 0 en un & l o C.I. de memoria. La RAM esttica es m s fdcil de usar y tiene ciclos de lectura y escritura mas coztos. Gran parte de la menioria principal, en una computadora de propsito general, esa formada de circuitos integrados de RAM,. pero una parti? de la memoria estii formada por la ROM, Originalmente, se utilizaba RAM para hacer referencias a una memafia de acceso aleatorio, pero ahora se utiliza para mpreswrtar una memoria de lecturaleaeritura.y diferenciarla de una memoria de s61o lectura, aunque una ROM es tambin de acceso aleatorio. Se u t k la PAM para almacenar la mayor parte de los procesos y datos que estn sujetos a cambio. S e utiliza la RQM para almacenar programas que residen en forma permanente en la computadora y para tablas de constantes que no cambian de valor una vez que se termina la pmgramaei6n de la computadora. Entre o t a s cosas, la parte ROM de la memoria se necesita para almacenar un programa inicial llamado cargador de inkh1i;iacibn (htsfrap &). EI cargador de inicializacin es un programa cuya funcin es iniciar la operacin de l a programacibn de la computadora cuando se enciende la unidad. Como la RAM es volbtil, su contenido se destruye niando se demnech la corriente. El contenido de l a ROM na afecta despues que se apaga y enciende la unidad. E l arranque de una computadora consiste en encender la corriente y comenzar la ejecucin de un programa inicial. Por lo tanto, cuando se enciende la corriente, la circuikda de la computadora establece el contador de programa en la primera direccin del cargador de inicializacin. El programa de inicializaci6n carga una parte del sistema operativo del disco a la memoria principal y despus se transfiere el control al sistema operativo, el m 1prepara h computadora para su uso general. h C.I. de RAM y ROM estan disponibles en diferentes tamafios. Si la memoria que necesita h computadora es mayor que la capacidad que un C.L, es necesario combinar varios para formar el tamao de memoria requerido. Para mostrar esta inkrconextt~n, pongamos un ejempIo de una memoria de 1024 X 8 construida con C.T. de RAM 123 x 8 y C.I. de ROM 512 x 8.
canal bidireccional
C.I. de RAM y de ROM Un C.]. RAM es m8s adecuado para la comunicacin con la CPU si tiene una o mits entradas de control que lo seleccionen d o cuando se neaesita. Otra .~aracteristica comn es un .canal (o bus) de datos bidireccional que p~mite la transferencia de datos de la memoria a la CPU, durante una operacin de lectura, o de la CPU a la memoria, durante una operacibn de escritura. Puede construirse un canal bidireccional con acopladores de tres estados. Puede colocam la salida del amplador de tres estados en uno de tres stados p i b l a . Una seal equivalente al 1 Lgico, una seiial equivalente al O 16g1co o un estado de alta impedatcia. El 1 y el O 1se;lcos son
dfgitale~normale. E 1 estado de alta impedancia acta como un circuito a & , la que signifm que la salida no roaduce una y no tiene irnprtaneia l*ea. E l diagrama de bloque de un C.I. RAM se muestra en la figura 12-2. La capaddad de la memoria es de 128 palabras de 8 bits (un byte) por palabra. Ekto q u i e r e una direcci6n de 7 bits y un canal de d a b bidirecc h a l de 8 bits. Las entradas de lectura y escritura especifican h operach de memoria y las dos entradas de control & seleccibn de integrados (CS) son para h a b i l i t a s d C.I. & l o cuando e l miewprmdor lo selecciona. La d i ~ ~ d de a una d o m s entradas de control para seleccionar el C.T. facilita la d d i f i c a b b n de hs lneas de direccih, cuando se usan miiltiples C.I. en la hiicrocomputadora. En ocasionesI se combinan las entradas de k&na y d t u r a en m shea llamada R/W. Cuando se sekciona e lC I . , los dos estados binarios en Bta Enea especifican las dos operaciones de lectura o e d t u r a . L a tabla de funcin que se lista en la figura 12-2 (b) especifica la operacihn de la RAM La unidad est en opera~in &lo cuando CC1 = 1 y CS2 = O. La barra encima de la segunda variable de seleccin indica que esta entrada est habilitada cuando es igual a O . Si las entradas de seleccibn de integrado no estn habilitadas, o si atAn habilitadas pero las entradas de lectura o escritura no lo estn, la memoria se inhibe y su canal dedatos R encuentra en un estado de alta impedancia. Cuando CS1 = 1 y CS2 = 0,
figura 12-2 Integrado de RAM Hpico.
C S I ~ R D WR(
Furridn de
memoria
Btadodecanal de data
Alta i m p h d a Al" m i-
lnhlblsidn
b) Tabla de fundgnes
SECCI~N 12-2
Memoria principal
483
puede colocarse la memoria en modo de escritura o lectura. Cuando se habilita la entrada WR,la memoria almacena un byte del canal de datos dentro de una localidad ecpecificada por las lneas de entrada de dwccidn. Cuando se habilita la entrada RD, se coloca el contenido del byte seleccionado dentro del canal de datos. Las seales RD y W R controlan la operacin de la memoria, as como los acopladores de canal asociados con el canal de datos bidireccional. Un C . I .de ROM se organiza en lo externo de manera similar. Sin embargo, como una ROM slo puede leerse, el canal de datos slo puede estar en modo de salida. El diagrama de bloque de un C.I. de ROM se muestra en la figura 12-3. Para un C.I. del mismo tamao, es posible tener mAs bits de ROM que de RAM, porque las celdas binarias internas en el ROM ocupan menos espacio que en RAM. Por esta razn, el diagrama especifica un ROM de 512 bytes, en tanto que el RAM slo tiene 128 bytes. Las nueve lneas de direccin en el C.I. de ROM especifican cualquiera de los 512 bytes almacenadosen l. Las dos entradas de seleccin de integrado deben ser CS1 = 1 y CS2 = O, para que opere la unidad. De otra manera, el canal de datos se encuentra en un estado de alta impedancia. No hay necesidad de un control de lectura o escritura, porque la unidad slo puede leer. Por lo tanto, cuando se habilita el C.I. mediante las dos entradas de seleccin, el bit seleccionado por las lneas de direccin aparece en el canal de datos.
484
cApInita
Orpkacin de la memoria
S e w i 6 nde integrado 1
%leodikide integmdo 2 4
CS2
512.X 8
CSI
.h+bn
de 9 MD
ROM
AD9
L C h a l de data de 8 blts
n d t a 9 keas de direccimarnienb. Las x s e asignan siempre a las h e a s de canal de orden inferior: Jas lfneae del 1 al 7 para la RAM y las lineas del 1 al 9 la ROM. No es necesario hacer una diferencia entre los cuatro C.I. de &4M para asignar a cada uno c l k e c c i ~ diferentes. En este ejemplo particular ewogimos las beas de canal 8 y 9 para que representen cuatro combinaciones b W a s diferentes. N&se que puede elegirse para este pro@sito cualquier otro pax de ineas de canal sin utilizar. La tabla muestra claramente que las 9 h e a s del canal de orden inferior constituyen un espacio de memoria para RAM = 2 ' = 512 bytes. La diferencia entre una direccin RAM y ROM se establece con otra Ihea del canal. Aqu seleccionamos la lnea 1 0 para este propsito. Cuando la h e a 10 es O, la CPU selecciona una RAM y niando sta k e a es 1 , aelewiom la ROM. La direccin hexadecimal equivalente para cada C.I. se obtiene de la infomaci6n baja la asignaci6n del cana1 de direcciones. las lneas del canal de direcciones ae subdividen en grupas de cuatro bits cada una, para que cada grupo pueda representarse mediante un dgito hexadpcimal. El primer dgito hexadecimal qresenta las lineas de la 13 a la 16 y es siempre O. E l siguiente digito hexadecimd rep-ta las heas 9 a 12, pero las lneas 11 y 12 son siempre O. El racigo de direcciones Madeciffiales para cada comprinente se detemina de las x asociadas con &l. Estas x representan un nmero binario que puede vadar de valor desde .todos O a todos 1.
Conexi6n de la memoria a la CPU b s C.I. de RAM y ROM estn cowtados a la CPU por medio de los canales de datos y de d i d 6 n . Las h e a s de orden inferior en el canal de direccibn seleccionan el byte dentro de los C.I. y otras lneas en el canal de direcciones seleccionan un C.I. particular por medio de sus entradas de selecci6n de integrado. La conexidn de los C.I. de memoria a l a CPU se muestra en la figura 12-4, Esta codiguraci6n proporciona una capacidad de memoria de 512 byte de RAM y 512 bytes de ROM. Implanta el mapa de memoria de la tabla 12-1.Cada RAM recibe los siete bits de orden inferior para seleccionar uno de 128 bytes posibls El C.I. RAM particular seleccionado se determina
P .
.-
Direccibn
C o m t e
hexadPdmal
10 9
8 7 6 5
O x x x
l O 1 x x x x x x x x x x
4 3 2 1
RAM 1
RAM 2
RAM 3 M M 4
O 0
O 0 O 1 O 1 1 x
x x x x
x x x x x x x x x x x x x x x x
008WMFF
01W17F
01WIFF 02HM3FF
x
x x
ROM
de las heas S y 9 del canal de direcciones. Esto se hace mediante un dec&icador 2 X 4, cuyas salidas van a las entradas CS1 en cada C.I. M M . Por l o tanto, cuando las heas de dimcionamiento 8 y 9 son iguales a 00, se selecciona e l primer C.I. de RAM. Cuando son 01 se selecciona el segundo y as1 sucesivamente. las salidas RD y W R del microprocesador se aplican a las entradas de cada C.1. RAM. La selecci6n entre RAM y ROM se hace por medio de la h e a 10 del canal. Se seleccionan las RAM cuando e l bit e n esta h e a es O y las ROM cuando es 1. L a otra entrada de seleccibn de integrado en la BOM esta conectada a la h e a de control R D para que se habilite el C.I. de R O B A glo durante una operaci6n de lectura. Las b e a s 1 al 9 del canal de direcciones se aplican a la dwcci6n de entrada de ROM sin pasar por el decodificador. Esto as& las direcciones O a 511 a RAM y de 512 a 1023 a ROM. E I canal de datos del ROM s610 tiene capacidad de salida,
mientras que e l canal de datos conectado a las RAM puede transferir informaci6n en ambas direcciones. El ejemplo que se acaba de dar proporciona una indicaci6n de la complejidad de intemnexi6n que puede existir entre los C.I. de memoria y la CPU.E d w 'm85 C.I. se conecten, se necesitan m s decodificadores externos para seleccionar entre los C.I. El diador debe establecer un mapa de memoria que asigne direcciones a los diferentes C.L, a partir de las cuales se determinan las conexiones requeridas.
SEaIdN 12-3
Memoria auxiliar
487
ser muy complejas, sus propiadades Lgicas pueden caracterizarse y compararse mediante unos pwos parmetrtw. Las caracteristicas importantes de cuaiquier dispositivo son su modo y tiempo de acceso, veIo2idad de transferencia, capacidad y costo. El tiempo promedio requerido para llegar a una localidad de alma* narniento en la memoria y obtener su contenido se denomina tiempo de acceso. En los d$ositivos electromec4nicos con partes mviks, como las cintas y los d i i s , el tiempo de acceso consiste en un tiempo de bdsqueda, requerido para posicionar la cabeza de lechrraeseritura sobre un lugar y un tiempo de transfmcia para trasladar datos hacia o desde e l dispositivo. Como eI tiempo de bsqueda, por lo general, es mas largo que el tiempo de transferencia, el almacenamiento auxiliar se organiza en registros o bloques. Un registro es una cantidad especifica de caramres o palabras. Siempre s e hace la lwtuca o ewxitura de registros complek La velocidad de hansfe m c i a es la cantidad de caracteres o palabras por ~ g u n d oque puede transferir el dispositivo, despus que se ha colocado m el inicio del registro. Las tambores y discos m a g n t i c o s son muy similares en su operacin. Ambos constan de superficies rotatorias de alta velwidad cubiertas con un medio magnktico de grabacibn. La superficie rotatoda del tambor es un cilindro y la del disco un plato d o n d o plano. La superficie de grabaci6n giw .a velocidad uniforme y no se &ende o apaga durante las operaciones de a . Los bfts se graban como puntos magn&hs sobre la superficie, conforme pasan por un mecmhmo estacionario llamado cabeza de escritura. Los bits almacenados se detectan mediante un eambi~ en el campo m a g d &o producido por un punto grabado en la suprficle, conforme pasa por una cabeza de ledura. I;a cantidad de superficie para grabar en un disco es magarequeen un tambar de igual tam& fisico, Por l o tanto, puede almac e n a mayor ~ infomiaci6n en un d i w que en un bmbor equivalente, Por esta raz6nJ los discos han sustituido a los tambores m las computadoras ms modernas.
Discos magri6ticos
o pUstico cubierto con material magnetizado. Con frecuencia se usan a m b s lados del disco y pueden apilarse varios d i en un eje con cabezas de lectura/tritura disponibles para cada superficie. Todos lm discos giran juntos a alta velocidad y no se detienen para propsitos de acceso. Los bits se almacenan en la suwcie magnetizada m p u n h a lo largo de &culos concnhieos llamados pistas. Por lo general, Ias pistas se dividen en wciones llamadas 6iectores. En la mayora de ios sistemas, la cantidad mInima de i n h a c i b n que puede transferirse es un sector. La subdivisi6n de una superficie de disco en pistas y sectores se muestra en la f i p a 12-5. Algunas unidades utilizan una cabeza nica de lectura/dhrra para cada superficie de di=. En esh tipo de unidad, los bits de dUecci6n de
.a*.
C4hl
1
r m &' .
-8.
' . ~ L " L Y
ba!-d
&*!P
ara
T i s i r ; ib*,
m &l
G a ~ 6 d
,.
' 7
!pn-*
> U.
.~,:fft,:
3dAl I-,*
,ili pista los utiza un ensambG mec&rucopara mover h cabeza a la posici6n : y ~..,i de pista especificada antes de la lectura o escritura. En otros sistemas de ndi-e d i , & proporcionan cabezas de Iechira/escritura separadas para cada pista en cada superficie. Los bits de h i 6 n pueden seleccionar despuds una pish particular en forma electrnica, por medio de un circuito decodificador. Este tipo de unidad es ms cara y slo w encuenba m sistemas de compu&doras muy grandes. Se utiYh canales de temporizacibn permanentes en 10s discos para sincmizar los bits y reconocer los sectores. Un sistema de disco se d i i c i * M mediante bits de dhmcin que especifican el nmero de disco, la s u p ficie del di-, el nilmero del sector y el canal dentro del sector. Despus, se colocan las cabezas de lectura/escritura en e1 canal especificado. E 1 sistema tiene que esperar hasta que e 1 disco rotatorio llega al sector especificado, debajo de la cabeza de lectura/escritura. b transferencia de infomaci6n es muy rpida, una vez que se ha alcanzado el inicio de un sector. Los discos pueden tener cabezas mltiples y transferencia de bits simultnea de varios canales al misrno tiempo. Una pista en cierto sector cerca de la circunferencia es mayor que una pista cerca del centra del d k o . Si se graban los bits con igual densidad, algunas pistas contendch m k bits grabados que otm. Para hacer de igual longitud todos los registros en un mtor, aigunos dimos utilizan una densidad de grabacidn variable, con mayor densidad en las pistas cerca del centro que en las pistas cerca de la circunferencia. Esto quilibra Ia cantidad de bits en todas las pistas cie4eierto sector. . Los discos que estn conectados en forma permanente al ensamble de unidad v que no puede quitar el usuaria ocasional se llaman dixos duros.
H
-k&%qm
-b MO, m--
de la memoria
memoriir
dim+$onabb
par cmterrido
unalestrategia para dexionar una ~umcisr de diredanes, leer e l contenid~ de 4 memoria en Gada dimci6k-i y comparar l a infonnaci6n que se lee con el &to que se busca, hasta que coincidan. ta cantidad de accesos a meyno* &pende de la po""6n del conjunto de datw y de la eficiencia del algomitmo de b w e d a . Se han desaml4do muchos algoritmos de bqueda para b mtialad de accesos mientras bumn un conjunto de datos en una memoxia de acceso secuenciala o aieabrio. El tiempo querido pana encontrar. un -junto almacenado en la memoria puede reducirse mucho si pueden espaifmrse los datus almacenados, para su acceso, mediante el contenido de los datos mismos, en lugar de mediante una direccidn. Una unidad de memoria sicaesada por su contenido se depomina memoria &tim o 7 a i h diremhzbie por contenido {Conten5 Adrewabie Memory, CAM). Este tipo de memoria se acceaa w forma simylGnea, y en paraleloI,coa base en el contenido de los datos, m s que en kn o .poG&n v i f i a d a . Cuando aa & una palabra en una memo& asociasiv& no se proporciona una dh46n L a memoria puede encontrar una p k i b n va& sin usar para almacenar la palabra. Cuando se va a .leex una palabra de una m ~ ~ ~ a-tiw, r i a se e + F m el contenido de la paiabla o parte de da, i a memoria-1 i d a s las palabras que coinciden con el contenido especificado y las marca para ledura. W i d s a es@ m p h d n , la memoria asdativa &lo es conveniente para b c e r bbqudas paralela5 mediante asociaciQn de datas. Adems, pueden hac e m e ~ e d a wna s ~plabra.mmpbm un campo e s p e c h de L # palabra. Una memo& a d t i v a es ms cara que una memoria de acceso hbiSp.pquecada d d a debe Wner rnpidadde dmammmhto y &mitos 16gbs p h c a d d d k su conhido un argumento externo. Por esta r&n, en las memonias amktivas se usan aplicaden las que e l tiempo de bsisqueda es muy importante y d& s e r corto.
Oqgmbacibhu de la cireuikria E l &ade b I q w de una memoria aswiativa se muestra en la figura 12-6.W t a de ,unl o de m m o k y l a l6gica para m palabras, con n bits por palabra. Ri registm de argumentos A y d registro de claves K tienen cada uno n bits, uno por cada bit de una palabra. El registro de coincidencia M time m bits, uno para cada palabra de memoria. Cada palabra en la memoria s e compara en ,~mleln:wn el wgis&o de arg&nmtos. Las palabras que c6WdFen ton los bits del registro de argumentos activan el bit correspndknte m d +SWO de,.aoiricidmda. k p & s del proceso de buscar ~ i d e m c i a s l& , bib acti~adog en el registm de coincidencia, indican que
aon igeibsirs pahbrw correspondientes. Se hce la lectura mediante un ~ ~ s e e u w i cai menoria d para aquelias palabras euym bits correspondient m en el q$sW de mhiderrcia m han activada. 'El &stm de chvea -&na una miscara para elegir un campo o dave p * en la palabra de argumento. 5e mhpara tcdo el argumento
Una unida&de disco con discos removibles se lima de disco flexible. Los discos que se atizan con una unidad de disco fledble son pequeos discos que se pueden- quitar, hechas de plstico eon una cubierta de material ma&n&tico de grabacihn. Por lo,general se usan,dos tamaos, con diimetros de 5.25 y 3.5 puedas. Los discos de 3.5 pulgadas son m& pequeflos y pueden almacenar m6s datos que los de 5 , s pulgadas. Los discos flexibles se usan ampliamente en las computadoras, personales, como medio para distribuir programacin a los usuarios.
Cinta magntica
12-4
Memoria asociativa
Mucbs apIicacione8 de p r o c e ~ e n t ude datos requieren la bsqueda de conjuntas ,de datos en una tabla almacenada en l a memoria. U n programa ensadlador busea la tabla de direccin de smbolos para extraer el equivalenk binario del simhiu. hede buscarse un ndmero de cuenta en un archivo, para deteminar el nombre del propietario y d estado de la cuenta. La manera establecida de buscar en una tabla es almacenar todos los datos donde puedan dlreccianarse en m e n c i a , El prwedhiento de bsqueda es
c o i n d *
Entdalc ArregIoy -de memoria asociativa
m palabras
con cada palabra de memoria si el registro de claves contiene s610 dfgitos 1. De otra manera, se comparan A 1 0 aquellos bits en el argumento que tienen dgitw 1 en l a posicin cqmpondiwte del.re&tro de claves. Por lo tanto, l a clave proporciona una rn4scara o una pieza de informad6n de identificacin que e6pcXca c6mo 8e hace la referencia 4 memoria. Para mostrar un ejemplo numfico, supongamos que el registro de argwentos A y el registro de claves K tienen la eonfiguraci6n de bits que se muestra enseguida. S610 s e comparan los tres bits de la extrema izquierda de A con palabras de memoria, porque K tiene digitos , i en estas posiciones.
&&,-
A
u - .
K
Palabra 1 Palabra 2
La palabra 2 coincide con el campo de argumento s i n enmascarar porque son iguales los tres bits de la extrema izquie-dq del argumento y la palabra. La relacibn entre d arregI8 de memoria y los registros externos, en una memoria asdativa, se muestra en la figura 12-7.Se marcan Ias celdas en el arreglo mediianti3 la letra C con dos suk~dices. El primer subdice pmprcima el n h r o de palabra y el s e k d o especifica ia posicin de bit en la palhra. Por l o tanto, la celda Cyes la celda para el bit j en la palabra i. Un bit Al en el registro de a q p n e n b s e compara con todos los bits en la
492
A"
1
~~1
I
Ki
14 1
p l
Ir
m
p l
Bit 1
1 ; .
4 P C " ' 1
M,
Palabrai
P 1 I4 1
p l
Bit
mnhn
4 1
M m Bit e
columna j del arreglo, siempre y cuando ki = 1. Esto se hace para todas las columnas j = 1 ,2 , n. Si ocurre una coincidencia entre todos los bits de argumento sin erunascarar y los bits en Ia palabra i ,se activa en 1 el bit Mi correspondiente en el registro de coincidencia. Si no coinciden uno o mAs de los bits de argumento sin enmascarar, M Ise desactiva a O . La organizaci6n interna de una celda Cii tpica se muestra en la figura 12-8. Cohsta de un elemento FTil de almacenamiento, un flip-flop, y los circuiw para leer, escribir y hacer coincidir la celda. E i bit de entrada se transfiere a la celda de almacenamientb durante una operaci6n de escritura. El bit almacenado s e lee durante una operacihn de lectura. La lgica de coincidencia compara el contenido de la celda de almacenamiento con el correspondiente bit de argumento sin enmascarar y proporciona una saiida para Ia 16gica de decisi6n que activa el bit en Mi.
...,
Ldgica de coincidencia
Puede derivarse la lgica de coincidencia para cada palabra, del algoritmo de comparacin para dos n h e m s binados. Primero, nq consideramos los bits de clave y comparam& el argumento en A con lm bits almacenados en las teldas de las palabras. La palabra i es igual al argumento en A s i Aj = Fq para j = 1, 2, .., n. Dos bits son iguales si ambos son 1 o O. La igualdad de dos bits phede expresarse en foma ldgica mediante la funcin booleana:
Entrada
Al
Escritura
i
Fn
dec6incldendam
meica
o.
Paya que una palabra i &a igual al argumento en A debemos tener todas las variables xi iguales a 1. Esta es la condici6n para activar el. bit de coincidencia correspondiente Mi en 1. L a funci6n booleana para esta condici6n e s :
--
y constituye #a opraci6n AND para todos los pares de bits que coinciden en hna palabra. Ahora in,cldmos d bit de gbve K, en l a lgica de comparacin, El requisito es que si = O, los bits correspondientes de Al y Fq no necesitan comparacin. Slo cuando KI = 1, deben compararse. &te requisito se pnsigue al aplicar la ~hinri@nOR a c& termino con K> por l o tuito:
Cuando
=1
tkhino (xj Kjl) estad en el estado 1 s i su par de bits m s e comparan. k t o es necesario porque a cada trmino se le aplica una h c i h AhJD ,con .todo8 los otros tmtiris para que una salida de 1 no tenga efecto. La comparacin de los bits tiene e f e c t o slo cuando =l.
Y X p l = 1. Un
494
caPPrura m
&
de la memoria
La 16gica de coincidencia para la palabra i en la memoria e a t i v a puede expresarse ahora ~ediante la siguiente funcin booleana:
Cada trmino serd igual a 1 s i su correspondiente Kj = O. Si KI = 1, e l trmino ser4 O o 1, dependiendo del valor de xp OcurrirA una coincidencia y Mi sera igual a 1 , si todos los trminos son iguales a 1. Si sustituimos h. definicibn original de xi, la funcibn boolmna anterior puede expmase cbmo sigue:
es un srnboio de producto que representa l a operaci6n AND de todos los Mnninos n. Necesitamos n de tales funciones, una para cada palabra i = 3, 2 , 3, m.
donde
E l circuito para hacer coincidir una ;alabra se muestra en la figura 12-9. Cada celda kquiere dos compuertas AND y una OR Se necesitan inversores para Aj y Ki, uno para cada columna y se usan para todos los bits en la columna. La salida de todas Ls compuertas OR en las celdas de la misma
Eiigliri 12-9
...,
palabra, van a la entrada de una compuerta AND c o m h para generar la sefial de coincidencia para Mh Mi ser& un 1 lbgico si m r r e una coincidencia y O si no ocurre. Mbtese que si el rsgisho de &ve contiene slo cerosl la salida Mi ser un 1, sin considerar el valor de A o de Ia palabra. Debe evitarse que esto ocurra durante l a opsracidn normal.
Operacihn de lectura
Si ms de una palabra de memoria coincide con el campo de argumento sin enmascarar, todas las paiabms cyie mincidm tenddn 1 en la posicibn correspondiente del registro de coincidencia. @S necesario revisar l o s bits del registro de coincidencia, uno a la vez.) Las que coinciden se leen en secuencia al aplicar una &al de k h r a a cada lnea de palabra cuyo bit Mies un 1. En la mayora de Iris ,aplicaciones, la memoria asociativa almacena una tabla sin dos da- idnticos bajo una cierta clave. En este caso, s61o una palabra puede coincidir con el campo de argumento sin enmascarar. Al conectar la salida Mi directamente a la h e a de lectura, en la misma posicibn de palabra (m lugar del registro M), el contenido de la palabra que coincide se presentarA en forma autometica en las lneas de salida y no ser6 necesaria una sefid de comando de lectura especial. AdemAs, si excluimos las palabras que kntieneri cero, una salida de todos cero indicar& que no ocurri6 una coincidencia y que el dato buscado no ~ t disponible 8 en memoria.
Operaci6n de escritura Una memoria asociativa debe contar con la posibilidad de escribir para almacenar la informacin que se va a buscar. Escribir en una memoria asociativa puede tornar diferentes formas, dependiendo de la aplicacidn. Si se carga la memoria con nueva informadbn una sola vez, antes de una operaci6n de bhqueda, despus puede escribirse al direccionar cada localidad en secuencia. Esto har6 del dispositivo una memoria de acceso aleatorio para escribir y una memoria de canfenido dhmhable para k r . La ventaja aqu, es que puede decodificarse la direccin para entrada como en una memoria de acceso aleatorio. Por l o tanto, en lugar de tener m lneas de d i i i 6 1 1 , una para cada palabra en la memoria, puede reducirse la cantidad de lheas de direcci6n mediante el dwodificador a d lneas, en donde m = r! S i tienen que borrarse paIabras no deseadas e insertarse nuevas palabras una a la vezl se necesita un registro especial para diferenciar ias palabras activas e inactivas. Este registro, en aIgunas ocasiones llamado fegiskm d~ identifimidn, kndrla tantos bits comopalabras en la memoria. Para cada palabra activa almacenada en la memoria, el bit correspondiente en el registro de identificacin se activa en 1. Se borra una palabra de h memoria al borrar su bit de identificacibn a O. las palabras se almacenan en la memoria al revisar e l registro de etiqueta hasta que se encuentra el primer bit 0. Esto proporciona la primera palabra inactiva disponible y una posici6n
496
C & W L O
organizacin de la memoria
para escribir una nueva palabra. Despuh que se almacena una nueva palabra en la memoria, se activa su hit de identificacibn a 1. Cuando se borra una palabra no deseada de la memoria, pueden desactivarse todos a O si este valor se usa para especificar una localidad vaca. Adems, las palabras que tienen un bit de identifiacih cero deben estar enmascaradas (junto con los bits KJ con la palabra de argumento, para que &lo se comparen hs palabras activas.
12-5
Memoria cach
referencias a memoria en cierto intervalo de tiempo, tienden a c~nfinarse dentro de unas cuantas reas localizadas en la memoria. Este fenmeno se conoce coma la propiedad de locali&d de r$erencin. La razn de esta propiedad puede entenderse considerando que un programa tpico de mmputadora fluye en forma de Iinea recta con ciclos de programa y solicitudes de subnitina que se encuentran con frecuencia. Cuando se ejecuta un ciclo de programa, la CPU hace referencia repetidamente al conjunto de instrucciones en memoria que constituyen el ciclo. Cada vez que se dicita cierta subrutina, este coyunto de instrucciones se recupera de la memoria. Por lo tanto, los c i d o s y las subrutinas tienden a localizar la referencia a memoria para recuperar instnicciones. En un grado menor, las referencias de memoria a datos tambibn tienden a estar ubicadas. Los prmedimimtm de bsqueda en tabla hacen referencia, con frecuencia, a Ia porcin en la memoria donde ~ t almacenada la tabla, Los procedimientos repetitivos hacen referencia a localidades de la memoria comunes y bs ~+(xs de nmeros ein confinada3 dentro de una parte 1 1 de la memoria. El resultado de todas estas observaciones a la propiedad de localidad de referencia, la cual establece que durante un corto intervalo de tiempo, las direcciones que p e r a un programa tipico, con h e n cia hacen referencia a unas pocas &as de memoria localizadas, en tanto el w t o de la memoria 9e accesa con relativamente paca f m & . Si las partes activas del programa y datos se colocan en una memoria pequefia y rdpida, puede reducirse el tiempo promedio de acceso a memoria y, por I o tanfs, se reduce el tiempo total de ejmci6n del programa. Dicha memoria rpida y pequea se denomina memoria ea&. Est colocada entre la CPU y la memoria principal, como se ilustra en la figura 12-1. El tiempo de acceso a la memoria cacht5 es menor que e l tiempo de aeeeso a la memoria principaI en un factor de 5 a 10. La cachb es el componente miis rApido en l a jerarqua de memoria y se aproxima a l a velocidad de los componentes de la CPU. La id- fundamental de la organizaci6n de cach6 es que al conservar las bkucciones y datos que se accesan con mayor frecuencia en la memoria cach, que es raipida, e l kiempo de acceso a memoria promedio s e acercad d tiempo de acceso al cach. Aunque la ca& es slo una pequea parte
razdn de acierfo
U
mapeo
del tamao de i a memoria principal, una gran parte de las solicitudes de memoria se encontrar4 en la memoria rpida cach, por la propiedad de localidad de referencia de los programas. 1 La operacibn bdsica de cachb es la siguiente. Cuando la CPU m i t a accesar memoria, se revisa la cach. Si se encuentra la palabra en cach, s e lee de la memoria rpida. Si la palabra direccionada de la CPU m se encuentra en cach, se accesa ia memoria principal para leer la palabra. Despuks, se transfiere un bloque de palabras que contiene la que se acaba de accesar, de la memoria principal a la memoria cach. El tamao del bloque puede variar de una palabra (la que se acaba de accaar) a cerca de 16 palabras adyacentes a la que se acces6. En esta maneraJae transfieren algunos datos cachk para que las futuras referencias a memoria m e n h e n la palabra querida en la memoria dpida m&& El desempefio de la memoria cacht con Fmencia se mide en trminos de una cantidad llamada r d n de acierto. Cuando la CPU hace referencia a memoria y encuentra la palabra en el ca*, s e dice que produce un acierto. Si no se encuentra la palabra en el cachd, est en la memoria principal y se cuenta como una falla. La razn de la cantidad de aciertos dividida entre la cantidad total de referencias de la CPU a h memoria (aciertos m s fallas) es la radn de acierto. Experimentalmente, la raz6n de aciertos se mide mejor a! correr programas representativos en la computadora y medir ia cantidad de aciertos y fallas durante un cierto intervdo de Eiempo. Se ha reportado razones de acierto de 0 . 9 y mayo-. Esta faz6n de acierto demuestra la validez de la propiedad de localidad de referencia, El tiempo promedio de acceso a memoria de un sistema de computadora puede mejorarse mucho al w cach. Si la razbn de acierto es bastante alta para que Ia mayor parte del tiempo la CPU accese l a cach6 en lugar de i a memoria principal, e1 tiempo de acceso promedio se acerca mas al tiempo de acceso de la memoria r6pida cach, Por ejemplo, una computadora con un tiempo de acceso a cach de 100 ns, un tiempo de acceso a memoria principal de 1OOO ns y una raz6n de acierto de 0.9 produce un tiempo de a c promedio de 200 n s . Esto es una mejora considerable sobre yna conputadora similar sin una memoria cachJ cuyo t i de acceso es 1 O O O ns. La caracterstica bsica de la memoria cach6 e su tiempo de acceso rpido. Por lo tanto, no debe gastarse tiempo o debe dedicarse muy poco a i a bJsqueda de palabras en cach. A la transformacin de los datos de l a memoria principal a la memoria cach se le denomina proceso de mpeo. Tres tipos de procedimientos de mapeo son de inteds pr6etic0, cuando se considera la organizacin de la memoria cachk
1 . Mapeo asociativo 2 Mapeo directo 3. Mapeo de conjunto asociativo Para ayudar al anlisis de estos tres procedimientw de mapeo, utilizaremos un ejemplo especfico de una organizaci6n de memoria como la que se
muetta en l a figura ii-10. L . m&bria prhcipal puede almacenar 32K palabras de 12 bits cada una. La cachk puede h a c e n a r 512 de estas palabras .& cuaiquier momento dado. Para cada palabra ahcenada en ca&, hay una copia duplicada en la memoria @+al. La CPU comunica con ambas memorias#Primero q y i a ,una direccibn de 15 bits. al cachk. Si hay un acierto, la CPU acepta los d a b de 12 bits del cacM. Si hay una falla, la CPU lee l h .. . , , p!abra,di, $ $neg,0@~~$9ci13 .d_epu&s_!a palabra se transfiere al cachg.
m
' I . 1 . q
'P.
, h,qc; 9t4.
ecJf
,. ,!,;'30A* .I . :* -- .L., ,11!t '1.: Mapeo asocraPivo La organizacibn de cach6 ms rpida y flexible utiliza una memoria a m i a F-
Memoria
491)
Mapeo directo t a s memorias asociativas son caras en mmparaci6n con las memorias de acceso aleatorio debido a la lbgica agregada que se asocia con cada celda.
La posibilidad de usar una memoria de acceso aleatorio para cachk se investiga en la figura 12-12. La direcci6n de CPU de 15 bits se divide en dos campos. tos nueve bits menos significativos constituyen el campo de ndice y los seis bits restantes forman el campo de identifiaci6n. La figura muestra que la memoria principal necesita una direccin que incluye los bits de identificaci6n y de ndice. La cantidad de bits en el campo de ndice es igual a la cantidad de bits de direccin requeridos para accesar la memoria cach4.
& & Fiiura 12-12 eladones de d i r e c a d e n t o enbe las memorias prindpal y a
6 bits
campo rle
identi$caeibtr
9 bits
%o
memoria
En 4 ,casogeneral, hay 2k palabras en la memoria cachk y 2* palabras en la &emoda principal. La direcci6n de memoria de n b i t s se divide en dos campos: k bits para el campo de ndice y n - k bits para e l campo de idenfifica@i6n. h organizacidn de cache de mapeo'diredo utiliza la direccibn de n bib para atcesar b memoria principal y el ndice de k bits para accesar
el cadhb. La organizaci6n interna de las palabras en la memoria cach&se muestra en la figura 12-13(b). 'Cada palabra en el cacM consis.te en la palabra de datm y su gdentificaci6n amiada. Cuando se trae por primera vez una nueva palabra dentro de ea&&, los bits de identifisaci se almacena11a un lado de los bits de datos. Cuando la CPU @era una solicitud de memoria, se usa el campo de ndice para que la d i w i 8 n accese cach6. El campo de identificacibn de la direcci6n de CPU se compara .conla identificacihn en la palabra que se lee del cacht Si coinciden las dos etiquetas, existe uuii acierto F b l a paiabm de dabe d e d a esti4 en. d ea&&. Si no coincide, existe uiia falla y la palabra querida se lee de la memoria prncipal. Despuds se almacena en e l cachb junto con la nueva Identificacibn, sustituyendo un valor previo. La desventaja del mapeo di& es que' la r a d n de acierto puede disminuir considerablemente si se accesan con frecuencia ,doso m4s palabras cuyas direcciones tienen el mismo indice pero identificaciones diferentes. Sin embargo, se minimiza esta posibilidad por e l hkho de quk tales palabras estAn
a p diwto.
"'M
de memolla Datos de memoM
0011
a) Memoria principal
S E C E I 124 ~
Memoria c a &
501
relativamente distantes,m ' e lrango de direccin (muplos de las 512 posiciones en este ejemplo). Para ver c h o -era la organbacihn d~ mapeo directo, consideremos e l ejemplo numrico que se muestra en la figura 12-13. La palabra en la direccfn c m e~dmaeenada en ese momento en cachd (indice = 000, idmtificacibn = 00, datos = 1220). Supongamos ahora que la CPU desea a la( paiabra en b d i i 6 n 02000. La d i r d n de ndice es 000, por l o que se usa: para accasar el rachd. Se Comparan las dos identificaciones. ta : etiqueta de cach es 00 pero la etiqueta de direcci6n es l2, l o que no produce una coincidencia. .Por kvtanto, se accesa la memoria principal y l a palabra de datos 5670 se transfiece a la CPU.La palabra de ,cach& en la direccibn de ndice 000-se sustituye despus con una identificacin de 02 y datos de 5670. E l sfe111p10 de mapeo directo que se acaba de describir utiliza un tari.rao de blqqm de unst~palabra, En la figura 12-14 se muestra l a misma organizaci6n pero utilizando un tamao de bloque de ocho palabras. E 1 c a n p de M o r * sk divde ahora en dos paitea, El q p o de blyue y e l campo de palabpa. En m each de 512 palabras hay 4 bloques de ocho palabras aada uno, porque 4 a<: 8 = 542. E 1 ndmero de bloques se especifica con un campo de 63bik y la palabra dentro del bloque s e especifica con un campo de 3 bits. El campo de identificacidn almacenado dentro del cachk es comn a las ocho palabras del mismo bloque. Cada vez que ocurre una fallsi, debe transktirae un btoque ,completo de ocho palabras de la memoria principal a la memoria aach& Aunque esto requiere tiempo extra, es muy probable que la razn de acierto mejore con urr bloque de mayor tamallo, debido a la W r a I e z a .secuencia1 de los poga&s de mmpu@oCa.
Figura l2-14 Cach6 de mapeo directo cnn tamao de bloque de 8 palabras.
Bloque 63
CAFQTKO m Q p h c i n de la memoria
Mapeo de conjunto ~ociativo Se mencionb antes que la desventaja del mapeo d k t o es que dos palabras con el mismo ndice en sus d i i i o n e s , pero con &ferente5 valores de identificacin, no pueden residir al mismo tiempo en la memoria cach. Un tercer tipo de organizacibn de cach, llamado mapeo de conjunto asociativo, es una mejora sobre la organizacidn de mapeo dwcto, en la que cada palabra de cachd puede almacenar dos o ms palabras de memoria bajo la
misma direccidn de identificadn. Cada palabra de datos se a k e n a junto aon su idenMcaci6n y se dice que el n h e m de conjuntos identificacidn-dat o s ,en una palabra de ea*, fonna un conjunto.Un ejemplo de organizaci6n de cach4 de conjunto asociativo para un tamafio de conjunto de dos ce muestra en la figura 12-15. Cada direccin de ndice hace referencia a dos pababras de datos y sus identificaciones asociadas. Cada etiqueta requiere seis bib y cada palabra de datas tiene 12 bits, por lo que la longitud de la palabra es 2 (6 + 12) = 36 bits. Una direcci6n de hdice de nueve bits puede alojar 512 palabras. Por lo tanto, el tamao de la memoria cachb es 512 X 36. Puede alojar 1024 palabras de memoria principal porque cada palabra de cach contiene dos palabras de datos. En general, un cach6 de conjunta asociativo de tamafio k alojara k palabras de la memoria principal en cada palabra de cach. Los nmeros oetales que se iistan en la figura 12-15 hacen referencia a los que contiene la memoria principal que se ilustra en la figura 12-13(a). L a s patbras almacenadas en las direcciones 01000 y 02000 de la memoria principal se almacenan en Ia memoria cachb en la direccidn de ndice MX). De igual manera, las palabras en las direcciones 02777 y 00777 se almacenan en cachd en la direcci6n de indice 777. Cuando la. CPU genera una solicitud de memoria, el valor de ndice de la diceccibn se usa para accesar la cach4.
1 2 5 Memoria ea&
503
Despus, se compara Acampo de idmtificacidn de la direccin de la CPU con ambas identificaciones en la cach para deknninar s i ocurre una coincidencia. La comparaci6n lgica se hace mediante una bsqueda asociativa de las etiquetas en el conjunto, similar a una bsqueda de memoria asociativa: de ah el nombre de conjunto asocbtivo. La raz6n de acierto mejorar6 conforme aumenta el tamailo de conjunto porque pueden residir en el ea&& ms palabras con el mismo hdice pero con etiquetas diferentes. Sin embargo, un aumento en el tamafio del conjunto aumenta la cantidad de bits en las palabras de cach y requiere una 16gica de comparaci6n mas compleja. Cuando ocum una falla en una c a e de conjunto asociativo y el conjunto est completo, es necesario sustituir uno de los conjuntos identificacindatos con un nuevo valor. lios algoritmos de sustitucin que se usan con mayor frecuencia son: sustituci6n aleatoria, primero en entrar, primero en salir (IWO) y el uso reciente mnimo (lmt recmfly used, LRU). Con la poltica de sustitucihn aleatoria, el control elige un conjunto identifieacibndato para sustituirlo al azar. El procedimiento FXFO &cima para sustituci6n el conjunto que ha estado ms tiempo en el conjunto. El algoritmo LRU selecciona para sustituci6n el conjunto que la CPU us hace ms tiempo. Tanto FZH)como LRU pueden implantarse al sumar unos cuantos bits extra m cada palabra de cach.
Escritura en la cach Un aspecto importante de la organizacibn de cach se relaciona con las solidtudes de escritura a memoria. Cuando h CPU encuentra una palabra
durante una operacih de lectura, la memoria principal no participa en la transferencia. Sin embargo, si la operaci6n es de escritura, hay dos maneras en las que puede prweder d sistema. E l procedimiento ms sencillo y de uso ms comn es actualizar la memoria principal con cada operacidn de exrihrra en memoria, y la memoria cacM = achialia en paralelo si contiene le palabra en la direceidn q e c i f ~ a d aEsto . se denomina eI rmdtodo de esmmtsrra simulfntn. Este m& todo tiene la ventaja( de que la memoria principal siempre contiene los mismos datos que el cachk. Esta caracterstica es imporbnte en sistemas con msfereneias de a c m directo a memoria. Asegura que los datos que reciben en la memo* principal son vAlidas en todas las ocasiones en que un dispositivo de E/S que se comunica,con D A d a los datos actualiados de manera mds reciente. E l segundo procedimiento se ]denominamdtdo de m ' f u r n al retorno. En =te mtodo s610 se actualiza la operaci6n de cachg mediante una operaci6n de mcritura. La localidad ae marca despus mediante una bandera para quef ms tarde, cuando l a palabra se quite de cach4 s e copie a la memoria principal. L i razn de este d h d o de escritu~a al retorno es que durante d tiempo que m palabra reside en el cachd, puede actuslizarse varias veces, Sin embargo, mientras la palabra W e z c a en el m&, no importa que
escritura iinnrltdnea
e w ' t u r a al retomo
504
de~ la memoria ~
la copia en la memoria principal-no est actualizada,,porque las solicitudes de esa palabfa se atienden desde mcRA $610 -&ando se quita la palabra de ea&& se necesita volver a d b i r una copia correcta en la memoria principal. Los multad& maliticw indican que h cantidad de escrituras en memoria en un programa tpico varian de 10 a 30 por ciento de las referencias totales a- memoria.
bit vdfido
Otro aspecto por considerar de la organizaci6n de cacM es el problema de la inicializacibn. La memoria cach&se inicializa cuando se enciende la computadora 'o cuando se carga la memoria psincipal con un conjmb de instrucRQne8 cornphto de l a memoria a u x i l i i hspuds de la inicializaribn sie considera que la cachk estA vaca, pero de hecho contiene algunos datos no vlidos. Se acostumbra incluir con cada palabra en el cach4 un'bit vlido para indicar s i la pa1;mbra rontiene datos vAlidos o no. Se inicializa tache al borrar todos los b * v8lidos a O. El bit valido de una palabra de cach6 paficular s e activa en 1 la primera vez que se carga esta palabra de la mermorisl pritlcipal y permanece alrtivado, a menos que la cachg tenga que inicializarse de nuevo. La htroducci6n del bit vlido significa que una palabra e n cach4 no se sustituye con otra palabra, a menos que e l bit vzilido se active en 1 y orrurra una no coincidencia de identif~caciones. Si el bit vAlido liega a ser 0, la nueva palabra sustituye m forma automtica l o s datos no viilidos. Por lo tanto, la condich de uiicializadbn tierie el defecto de forzar las fallas de1 eachk hasta que se llene con datae vAlPdas.
Memoria virtual
espado de diwccibn
espacio de memoria
Espacio de direccionamiento y espacio de memoria. A una direcci6n que usa un programador se la llamar&direccidn uirhurt y al conjunto de tales direcciones, espaczb virtual. A una diremi611 en la memoria principal s e la llama localidad o direcndn p i c a . El conjunto de tales localidades se llama espacio de memoria. Por l o tanto, e 1 espacio de direccionamiento es el conjunto de direcciones generado por los programas, conforme hacen referencia a instrucciones y datos; el espacio de memoria consiste en las localidades reales de Ia memoria principal que se pueden accesar directamente para procesamiento. En la mayora de las computadoras los espacios de direccionamiento y de memoria son idnticas. Se permite que el espacio de direccionamiento sea mayor que e l espacio de memoria en computadoras de memoria virtual. Como ejemplo; consideremos una computadora con una capacidad de memoria principal de 32 K palabras (K = 1024). Se necesitan quince bits para Supongaespecificar una direccibn fidca en la memoria porque 32K = 215. mos que la computadora tiene memoria auxiliar disponible para almacenar 220= 1024K palabras. Por lo tanto, la m e m o r i a auxiliar tiene capacidad para almacenar informacibn equivalente a la capacidad de 32 memorias principal e s . Al representar el espacio de direccionamiento por N y e l espacio de memoria por M, tenernos para este ejemplo N = 1024K y M = 32K. En un sistema de computadora de multiprogramaci6nI se transfieren las programas y datos a y de la memoria auxiliar y de la memoria principal con base en las demandas que impone la CPU. Supongamos que e l programa 1 se ejecuta en ese momento en Ia C m . El programa 1 y una parte de sus datos asociados se mueven de la memoria auxiliar a la memoria principal como se muestra en la figura 12-16. Las partes de programas y datos no necesitan estar en localidades contiguas en la memoria, porque la informaci6n se mueve hacia adentro y hacia afuera y pueden quedar espacios vacos en partes no adyacentes en la memoria. En un sistema de memoria virtual, se les dice a los programadores que tienen a su disposicin todo el espacio de direccionamiento. AdernBs, el campo de direccibn del cdigo de instruccin tiene una cantidad suficiente de bits para especificar todas las direcciones virtuales. En nuestro ejemplo, el campo de direcci6n de un c6digo de inshccibn consistirA en 20 bits, pero las direcciones de mernoria fsicas deben especificarse con s61o 15 bits. Por lo tanto, la CPU har referencia a instrucciones y datos con direcciones de 2 0 bits, pero la informacibn en esta direccih debe tomarse de la memoria fsica, porque el acceso al almacenamiento auxiliar para palabras individuales sera prohibitivamente largo. (Recuerde que para transferencias eficientes, el almacenamiento auxiliar mueve todo un registro a la memoria principal.) Entonces se necesita una tabla como la que se muestra en ia figura 12-17, para mapear una dira~ci6n virtual de 20 bits a una direcci6n fsica de 15 bits. E 1 mapeo ec una ~ a c i b n dinmica, lo que significa que cada direccin se traduce inmediatamente, conforme la CPU hace referencia a una palabra. --
M6
cmwm ~
~rga&a&n E de la memoria
&$agio de memoria
M = 1024K=200
Figura 12-16 Re!acih entre espacios de direccih y de memoria en un sistPma de memoda vimial.
La tabla de mapeo puede ahacenarae en una memoria varada, como la figura 12-17 o en la memoria prirreipal. En el primer caso, se necesita una unidad de memoria adicional y un tiempo de acceso a memoria extra. En e l segundo caso, la bbla toma espacio de la memoria principai y se n-itan dos accesos a memoria con el programa corriendo a media velocidad. Una tercera alternativa es utilizar una memoria asociativa a m o se explic antes.
se muestra en Figura 12-17 Tabla de.mernoria para mapear una direccibn virtual.
Tabla de
Memoria principal
Mapeo de direcciin usando paginas ta hplantaciha (detabla del mapeo de direcciones se simplifica si la informacin en d espacio de direcci6n y en el espacio de memoria se divide cada una en grupos de tamaiio fijo. La memoria %ira se separa en grupos de
p&inas v bbaues
madm de pd&a
igual tamafio llamados bloquesr que puedes variar de 64 a 4096 palabras cada uno. E 1 trmino pgim se refiere a grupos de espacias de dwcei6n del mismo tarnafio. Por ejemplo, s i una pagina o bloque consta de 1K paiabras, entonces, usando e l ejemplo anterior, el espacio de divisi611se divide en 1024 pA@as y la memoria principal en 32 bloques. Aunque una pagina y un bloque se dividen en grupos de 1K palabras, una p w a hace referencia a la organizacin de espacio de dicercionarmiento, mientras que un bloque hace referencia a la organizacibn de espacio de memoria. h s programas tambih se consideran divididos en dos pginas. Se mueven partes del programa de la memoria auxiliar a la memoria principal en registros iguales al tamafio de una p6gina. En ocasiones se utiliza el tdmino "Cuadro de pbgina" para denotar un bloque. Consideremos una computadora con un espacio de d i c i b n de 8K y un espacio de memoria de 4K Si dividimos cada uno en grupos de 1K palabras, obtenemos ocho paginas y cuatro bloques, como se muestra en h figura 12-18. En cualquier momento dado, pueden residir en la memoria principal hasta cuatro pginas de espacio de diredonamiento en cualquiera de los cuatro bloques. E 1 mapeo del espacio de d@cionarniento al espacio de memoria se facilita si cada direccidn virtual se considera representada mediante dos nilmeros: una diremi611 de nilimero de piigina y una lnea dentro de la p8gina. En una computadora con 2 p palabras por piigina, los bits p se usan para especificar una direcci6n de lhea y los bits de orden superior restantes
Figura 12-16 Separacin de -patios de direccibny de memoria en grupos de 1K palabras.
508
de la direccidn -virtual especifican el nmero de pAginas. En el ejemplo de l a f' a 1248,yna direccibn virtual tiene 13 bits. COMOcada pdgina consta de 1024-palabras,los bits de orden superior de una dimi611 virtual eepecXcarn una de las who p4ginas y 1 - 10 bits de orden inferior proporcionarfin la, diremi611de lnea dentro de la p-a. Mtese que la direecibn de h e a en.el espacio de direccionamiento y en el espacio de memoria es la misma; el nico m a p que se n d t a es de u 1 1 nmero de p6gina a un
y=
niimero de blque. La organizacibn de la tabla de mapeo de memoria en un sistema paginado se muestra e i la ~ figura 12-19,La tabla de pginas de memoria .comiste en ocho palabras, una para cada phgina. ta direccibn en la tabla de paginas r e p m t a el niunera de pggina g el contenido de la palabra proporciona el nmem de bloque que almacena tal p@a en la memoria principal. L a tabia muestra que las pdginas nmero 1, 2 , S y 6 esth disponibles ahora en l a mqoria principai.en los blogues 3, 0, 1, y 2, respectivamente. Un bit de presencia en cada b l i d a d indica si la pagina se ha transferido de la memoria a d i a r a la memoria principal. Un O en el bit de pmmcia indica que esta pagina no est dis~onibleen la memoria principal. La CPU hace referencia a una palabra en la memoria con una d-ih v w a l de 13 bits. Las tres bits de orden superior de la d h x i h n virtual especifican un nmero de pagina y tambi6n una direcci6n para la
Figufa i2-19 Tabia de memoria en un sistema paginado.
Tabia de
, Bit de
pmrsFia
001
l
1L
pmpal
Bloque O
Blque I
sique 2
Bloque 3
MBR
509
tabla de pAgina de memoria. E l contenido de la palabra en la tabla de pgina de memoria en la misma direcdbn de nmero de p@a se lee al registro intermedio (buffer) de la tabla de memoria. S ie l bit de presencia es un 1, entonces el nitmero de bloque se transfiere a los 2 b i t s de orden superior del registro de direcci6n de la memoria principal. El niimero de h e a de l a direccidn virtud se transfiere dentro de las bits de orden inferior del registro de direccidn de memoria. Una seal de lectura a la niemoxia principal transfiere el contenido de la palabra al registro intermedio (buffer) de la memoria principal preparado para que lo use la CPU. Si el bit de presencia en la palabra leida de la tabla de pagina es O, esto significa que el contenido de la palabra a que hace referencia la direccin virtual no reside en la memoria principal, Entonces se genera una solicitud al sistema operativo para recuperar la pagina querida de la memoria awiliar y colocarla en la memoria principal antes de reanudar fa computacihn.
aieatorio no es eficiente en rehcibn al uso de almacenamiento. En el ejemplo de la figura 12-19, observamos que s e necesitan ocho palabras de memoria, una para cada pdgina, pero al menos cuatro palabras siempre se marcarn vacias porque la memoria principal no puede alojar m8s de cuatro bloques. En general, un sistema con n pginas y m bloques requerira una tabla de pginas de memoria de n localidades de las cuales hasta m bloques estaran marcadas con nmeros de bloque y todas las d d s estaran vacas. Como un segundo ejemplo num&ico, consideremos un espacio de direccionamiento de 1024K palabras y un espacio de memoria de 32K paiabras. Si cada pA@ o blque contiene IK palabras, la cantidad de psginas es 1024 y la cantidad de bloques 32. La capacidad de la tabla de pginas de memoria debe ser de 1024 palabras y d o 32 localidades pueden tener un bit de pmsencia igual a 1. En cualquier momento dado, al menas 992 posiciones estarn vacas y sin usar. Una manera ms eficiente de organizar la tabla de peginas sera construirla m una cantidad de palabras igual a la cantidad de bloques en la memoria principal. De esta manera, se reduce el tamaiio de la memoria y cada posici6n se ut&a por completo. Este m b d o puede implantarse m e diante una memoria asociativa en donde cada palabra en la memoria contenga un nmero de pgina junto con su nmero de bloque correspondiente. Hi campo de p2igina en cada palabra se compara con el nmero de p d g h en la memoria virhial. Si &une una coincidencia, se lee la palabra de la memoria y se extrae su ndmero de bloque correspondiente. Volvamos a considerar el caso de ocho pAguias y cuatro bloques como en el ejemplo de la figura 12-19, Sustituimos la tabla de pagina de memoria de acceso aleatorio con una memoria asociativa de cuatro palabras como la que se muestra en la figura 12-20. Cada entrada en el conjunto de memoria aswiativa consiste en dos campos, b s primeros tres bits especifican un
510
Orgarhein de la memoria
PAgina No. 4
campo para almacenar e l nmero de pginas. L m itimos dcs bits mnstihiyen un campo para aimaeenar el,nmera de bloque La direccin virtual se colma en ei registro de argumentos. h bits de nmero de en el registro de argumentos se compara con todos los nmeros de pginas en e l campo de pgina de la memoria a d t i v a . Si se encuenha el nthero de p , se lee de la m e m o r i a la palab~ade S bits. E l n h e m de blque correspondiente, que est m la misma palabra, s e bamfiem al registro de dhxi6n de la memoria phcipai. Si no una coincidencia, se genera una solicitud al sistema operativo para traer la pAgina requerida de la memoria a d i a r .
ph , +@@a
Sustitucibn de pgina Un sistema de memoria virtual es una combinacin de tcnicas de circuitera y de programaci6n. El sistema de programaci6n de administraci6n de memoria maneja &as las operaciones de programadh para e l uso &ciente del espacio de memoria. Debe decidir: 1) c u a b pginas en la memoria principal deben quitarse para abrir espacio a una nueva pdgina, 2) cundo E va a transferir una nueva pagina de la memoria auxiliar a la memoria principal y 3) d6nde se va a colocar la phgina en la memoria principal EI mecanismo de mapeo por circuiterfa y junto con la programaci6n de administracin de memoria constituyen la arquitectura de una memoria virtual. Cuando un programa comienza su ejecucin, se transfieren una o ms pginas a la memoria principal y la tabla de p+ se activa para indicar su posicibn. El pprograma se ejecuta de la memoria principal hasta que intenta hacer referencia a una p A @ que todavia est en la memoria awriliar. Esta condicin se llama &fa de pdgina. Cuando ocurre una falta de pAgina, se
de administracin de la memoria
susp-
FIFO
*l
2 n ;
'
' .
- t
)-,lIl:.
- . ;
, . '
' '
'.
LRU
I
1
-.,
.'1( '
la ejecucibn del programa actual hasta que se trae la (pgina requerida a la memoria principal. Como la carga de una pgina de la memoria auxiliar a la memoria principal es bsicamente una operacin de E/S, el sistema operativo asigna esta tarea al procesador de E/S. Mientras tanto, se transfiere el control al siguiente programa en la memoria que espera que lo ha asigna& y la procese la CPW. Respub, cuando d bloque de memoria transferencia ha concluido, el programa principal reanuda su operacin. Cuando ocurre una falta de pgina en un sistema de memoria virtual, significa que la pgina a la que hace referencia la CPU no est en la memoria principal. En seguida, se transfiere una nueva pgina de la memoria auxiliar a la memoria principal. Si la memoria principal est llena, sera necesario quitar una pgina de un bloque de memoria para abrir espacio para la nueva pgina. La poltica para elegir las pginas que se van a quitar la determina el algoritmo de sustitucin que se usa. El propsito de una poltica de sustitucin es intentar quitar la pgina que tiene menos probabilidades de que se haga referencia en el futuro inmediato. Dos de los algoritmos de sustitucin de uso ms comn son el primero en entrar, primero en salir (FIFO) y el uso reciente mnimo (LRU). El algoritmo FIFO selecciona para su sustitucin la pgina que ha estado ms tiempo en la memoria. Cada vez que se carga una pgina en la memoria, se empuja dentro de la pila FIFO su nmero de identificacin. FIFO estar completo cuando la memoria ya no tenga bloques vacos. Cuando deba cargarse una nueva pgina, se quita la pgina que hace ms tiempo que se carg. Se determina con facilidad la pgina que se va a quitar porque su nmero de identificacin est en la parte superior de la pila FIFO. La poltica de sustitucin FIFO tiene la ventaja de ser fcil de implantar. Tiene la desventaja de que, bajo ciertas circunstancias, se quitan y cargan pginas de la memoria con demasiada frecuencia. . 1' : J I La poltica LRU es ms difcil de implantar pero tiene mayor atractivo porque se considera que la pgina que se us hace ms tiempo es mejor candidato para su remocin que la pgina que se carg hace menos tiempo como en la FIFO. El algoritmo LRU puede implantarse al asociar un contador con cada pgina que est en la memoria principal. Cuando se hace referencia a una pgina, se inicializa su contador asociado a cero. A intervalos fijos de tiempo, los contadores asociadas can todas las pginas que en ese momento estn en la memoria se incrementan a 1. La pgina que se us hace ms ,tiempo es aquella con la cuenta ms alta. Con frecuencia los contadores se denominan registros de edad, pQrque su cuenta indica su edad, esto es, hace cuanto tiempo se ha hecho referencia a las p%g&as asociadas.
>
.o
'3
En u 4 1 ambie~~te de multipr~gramaci6n en el que residen muchos programas en la memoria, se hace necesario mover daros y programas por la memoria,
1
WCE Orgmkcih
de fa memoria
para variar la cantidad de &a que utiliza cierto programa y para evitar que un programa mcdifique otros programas. La8 demandas de memoria de computadora que ha acarreado la multiprogramacibn han creado la necesidad de un s i s t e m a de administracin de memoria. Un sistema de administracin de memoria es un conjunto de procedimientos de circuitera y programaci6n para administrar los diferentes programas que residen en memo&, La programaci6n de administracibn de memoria es parte de un sistema operativo general disponibIe en muchas computadoras. Vamos a hablar aqu de la unidad de c i m M a asmiada con el sistema de administraci6n de memoria. Los componentes 'Msicosde una unidad de adminbtraci6n de memoria 1 11 - r,
' .
1
'
1 . Una opcin para reubicacidn de almacenamiento dinmico que mapea las referencias a memoria lbgica dentro de direcciones de memoria ffsica. 2. Una provisin para que diferentes usuarios compartan programas comunes almacenados en la memoria. 3. ta prokcd6n de la infomaci6n en contra del acceso no autorizado entre. usuarios y evitar que los usuarios cambien las funciones del
sistema operativo,
TA circuiterla de reubicacin de almacenamiento dindmico es un praceso de mapeo simiIar al sistema de paghacih descrito en Ia secci6n 12-6. El tamao de pBgina fijo que se usa en un sistema de memoria virtual produce ciertas dificultades en relaci6n con e l tamao de los programas y la estructura ldgica de dos. l% ms conveniente dividir lm programas y datos en partes lgicas denominadas segmentos. Un segmento es un conjunto de instruccionsa relacionadas de manera lgica o elementos de datos asociados con un cierto nombre. h segmentos puede generarlos e l programador o el sistema operativo. Aiguntw ejemplos de segmentos son una subrutina, un arreglo de datos, una tabla de shbolw o un programa de usuario. Compartir programas comunes es parte integral de un sistema de multiprogramauin. Por ejemplo, varios usuarios que desean compilar sus programas Fortran deba poder compartir una sola copia del compihdor, en lugar de que cada uno tenga una copia separada en la memoria. Otros .progxamas del sistema que residen en la memoria tambin los comparten todos los usuarim en un sistema de multiprogramaci6n sin tener que p m ducir copias mtiltiples. 1 E 1 tercer aspecto en la muItiprogramaci6n es proteger la interaccibn no deseada de un programa con otro. Un ejemplo de interaccin no deseada es la bpia no aubrk&a por un usuario del programa de otro usuario. Otro aspecto de la protecci6n se relaciona con evitar que el usuario ocasional 4ecllte W o n e s del sistema operativo y por l o tanto interrumpa la secuencia ordenada de las operaciones e n instalaci6n de computadoraa La
513
Mapeo de pgina segmentada Ya se menciond que la propiedad de espacio lgico es la que utiliza segmentos de longitud variables. Se permite que la longitud de cada segmento crezca y disminuya de acuerdo con las necesidades dei programa que se ejecuta. Una manera de especificar la longitud de un segmento es asociarla con una cantidad de pginas del mismo tamao. Para ver c6mo se hace esto, consideremos la direccin l6gisa que se mustra en la figura 12-21. La direccin 16gica se divide en' tres campos. El campo de segmento especifica un nmero de segmento. El campo de pdgina especifica la pgina dentro del segmento y el c o de palabra proporciona la palabra especifica dentro de la pd@na. Un campo dq p $ @ de k bits puede especificar hasta 2K pginas. Puede asociarse un n6rnez-0 de xgmento con una sola pgina o hasta con 2k pginas. Por b tanto, 18 longitud de un segmento variarla de acuerdo con la cantidad de p i @ a ~ que se le asignan. E l mapeo de la dimci6n I6gica dentro de una direccidn fsica se hace mediante dos tablas, cdmo se muestra en la figura 2 2 1 [ a ) .E l n6mem de segmento de la dmcibn lgica ~ i f i c la a direccibn para la tabla de segmento. ta entrada en la tabla de &gmento>es una direccin de apuntador para una base de tabla de pigina. La base de tabla de pagina se agrega al nmero de pagina proporcionado en la di-ibn 16gica. La suma produce una direccin de apuntador a una entrada en la tabla de pgina. EI valor que se encuentra en la tabla de phgina proporciona el nhnem, de -bloque en la memoria fisica, La concatenaci6n del campo de bloque con el campo de palabra produce la direccin fsica mapeada f i i . Las dos tablas de m a p b pueden almacenarse en 'dos memarias pequeas separadas o en la memoria principal. En cualquier caso, una referencia a la memoria por parte de la CPU requerir4 tres accesos a memoria: uno de la tabla de segmento, uno de la tabla de paigina y el tercero de la memoria
314
DiFeCcibn fsica
a) Mapeo de d ' i i b n 16gica a fkka
b) Buffer
Figura 12-21 Mapeo en una unidad de admhiitracin de memoria de pgina qmentada,
principal. Esto podrla hacer lento el sistema de manera muy significativa cuando se compara con un sistema convencional que &lo requiere una referencia a memoria. Para evitar esta insuficiencia en la velocidad, se utiliza una memoria rfipida as~ciativa para contener las entradas de tabla a las que
515
se ha hecho referencia en forma mAs miente. Este tipo de memoria s e denomina en ocasiones bu& de p'edicckh de truslaeitln (traslation lookaside buffer, TLB). La primera vez que se hace referencia a cierto bloque, se uitrcduce su valor junto con el segmento y nmero de pdginas correspon-
dientes dentro de la memoria asociativa, como se muestra en la figura 12-21(b). Por lo tanto, primero se intenta el proceso de mapeo mediante bsqueda ascieiativa con el qmento y el nmero de pginas dados. Si tiene xiko, el retraso de mapeo es d o el de la memoria asociativa. Si no ocurre coincidencia, e l mapeo de la tabla ms lenta de l a figura 12-21(a) se utiliza y el multado transforma en la memoria asdativa para referencias hturas.
Ejemplo num6rico Un ejemplo numkrico puede aclarar la operacin de la unidad de adminisQaci6n de memoria. Consideremos la direcci6n lbgica de 20 bits especificada en la figura 12-22(a). EI nmero de xgmento de 4 bib especifica uno de 16
segmentos posibles. El nmero de pggina de 8 bits pude especificar hasta 256 pAginas, y el campo de palabra de 8 bits implica un tarnaiio de pgina
de 256 palabras. Esta configuracibn permite que cada segmento tenga cualquier cantidad de p6ginas hasta 256. E l segmento m s pequefio posible tendrZi una o 256 palabras. E l segmento mAs grande posible tendri5 256 paginas, para un total de 256 X 256 = 64K palabras. La memoria ffsica que s e muestra en la figura 12-22@) consta de 220 palabras de 32 bits cada una. La direccibn de 20 bits se divide en dos
&un 12-22 Un ejemplo de di4
8 '
lgicas y fiaica.
8
. Segamo
a) Formato de
1
t
Pagina
Palabra
~~iglca: 16 v
m de 256 p4ginaa
b) Pormto de d i
camps: un nmero de bloque de 12 bits y un nmero de palabras de ocho bits. Por l o tanto, la memoria fiica se divide en 4096 bloques de 256 palabras cada uno. Una pfigina en una direccin 16gica tiene un bloque correspondiente en la nlemoria fsica. Nbtese que las direcciones lbgica y fisica tienen 2 0 bits, En ausencia de una unidad de administracin de memoria, la direccibn de 20 bits de la CPU puede usarse para acceder a h memoria fisica
Hl~direct&
Consideremos un programa cargado en la memoria que quiere cinco p i e a s . El sistema operativo puede asignar a este programa el segmento 6 y las piiginas O a la 4, como se muestra en la figura 12-23(a). E l rango de direcci6n lbgica total para e l programa es del hexad~imal6M300 a &MFR Cuando se carga el programa en la memoria fsica, se distribuye entre cinco blques en la memoria fisica en los cuales el sistema operativo encuentra espacios vaclos. La correspondencia ente cada bloque de memoria y el nCimero 16gico de paginas se irrtrduce despus en una tabla como se muestra en la figura 12-23(b). La infomaci6n de esta tabla se introduce en el segmento y las tablas de pagina, como se muestra en la figura 12-24(a).
'
p Asignad&
de di-
1 4 -
b) Pagina de m
Ahora consideremw la direcci6n 16gica especfica proporcionada en la figura 12-24. La direccidn de 20 bits se lista como un ndmero hexadecimal de cinco digitos. Hace referencia al nmero de palabras 7 E de la pdgina 2 en el segmento 6. La base del segmento 6 en la tabla de pAgina est en la direccin 35. E l segmento 6 tiene asociadas cinco pAginas, como se muestra en la tabla de pgina en la dkcci6n 35 a la 39. I a pgina 2 del segmento 6 estA en la direccin 35 4- 2 = 37. En la tabla de piigina se encuentra que el bloque de memoria fsica es 019. La palabra 7E en el bloque 1 9 proporciona la direcci6n fsica de 20 bits 0197E. N6tese que la pagina O del segmento 6 mapea dentro del bloque 12 y la pagina 1 mapea dentro del bloque O. La
12-7 chui&de
I r
administracin de l am - ~
51f
_,
'
~ 16gia4 (en h a t na d d )
(6
802
7E
Blogue O
Bloque 12
-Palabra de 32 biis~r
ir
b) Memorls m l a t i v a VLB)
Figura 12-24 Ejemplo d em p e o de memoria Mgia a &iFP [tdm las a m qtn ~ ~.m
hexadecimd).
memoria asociativa en la figura 12-24@) muestra que se ha hecho referencia antes a las pginas 2 y 4 del segmento 6 y por lo tanto sus n h e r o s de bloque correspondientes estn almacenados en la memoria asociativa. De este ejemplo debe resultar evidente que el sistema de administracin de memoria puede asignar cualquier cantidad de pdginas a cada segmento. Cada pagina 16gica puede mapearse dentro de cualquier bloque en la memoria fisica. 'las p8gins pueden moverse a diferentes bloques en la memoria, dependiendo de los requisitos de espacio en la memoria. L a nica actualizacibn que se necesita es el cambio de nmero de bloque en la tabla de pigina. Los segmentos pueden crecer o encogerse en forma inde pendiente, sin afectarse uno al otro. Diferentes segmentos pueden usar el mismo bloque de memoria si se nececita compartir un programa con muchos usuarios. Por ejemplo, puede asignarse al bloque ndmero 12 en la memoria fisica una segunda d i i i 6 n 16gica FOOOO al FWFF. Esto especifica un n h e r o de segmento 15 y pgina 0,lo cual mapea el bloque 12, como se muestra en la figura 12-24(a).
Protecci6n de memoria Fuede asignarse proteccibn de memoria a la d i i c i 6 n fsica o a la direccin lbgica. La protecci6n de memoria a travs de la direccibn fisica puede hacerse al asignar a cada bloque en la memoria varios bits de proteccin que indican el tipo de acceso que se permite a su bloque correspondiente. Cada
vez que se mueve una pdgina de un bloque a otro sera necesario actualizar los bits de p W c i b n de bloque. Un lugar mucho mejor para aplicar protecci6n es en el espacio de direccibn lbgica en lugar del ecpacio de direcci6n fisica. Esto puede hacerse al incluir infomci6n de protecci6n dentro de la tabla de segmento o en el circuito del registro de segmento de administracibn de memoria. E 1 contenido de cada entrada en la tabla de segmento o en un registro de segmento se llama un descriptor. Un descriptor tpico contendra, adems del campo de d k i 6 n base, uno o dos campos adicionales para protecci6r-t. Un formato tipico para un d d p t o r de segmenta se muestra en la figura 12-25. El campo de direccihn base proporciona la base de la direccibn de tabla de psigina en una organizacin de pgina segrnentada o la direccibn base de bloque en una organizacibn de registro de segmento. Esta es la d h x i 6 n que se usa en el mapeo de una direccibn lgica a fisica. La longitud del campo proporciona el tamao del segmento al especificar la cantidad mxima de paginas asignadas al segmento. Se compara la longitud de campo
Figura 12-25 Formato de un d ~ i i p b w de segmento tpim.
contra el nitmem de paginas en la direccibn 16gica. Ocurre una violacin de tamaio si el nmero de pginas es mayor que el limite de longitud del segmento. Por lo tanto, un programa y sus datos no pueden accesar la memoria que e1 sistema operativo no les asigna. El campo de protecci6n es un descriptor de segmento que especifica los derechos de acceso disponibles al segmento particular. En una organizacin segmentada en pginas, cada entrada en la tabla de pgina puede tener su propio campo de pmteccibn para descrhir los derechos de acceso de cada psgina. La informaci6n de protecci6n se establece dentro del descriptor mediante el programa de control maestro del sistema operativo. Algunos de los derechos de acceso de inters que se utilizan para proteger los programas que residen en la memoria son:
l. Privilegios de lectura y ~ r i t u r a completos. 2. S610 lectura (protecci6n de escritura). 3. S610 ejecucibn (pmteccibn de programa). Q. S610 de sistema (proteccidn de sistema operativo).
Se proporcionan a un programa privilegios de lectura y escritura completos cuando estd ejecutando sus propias instrucciones. La proteccibn de escritura es til para compartir programas de sistema como programas de utilera y otras rutinas de biblioteca. Estos programas de sistema se a h c e nan en un ares de memoria en donde pueden compartir los muchos usuarios. Todos los programas pueden leerlos, pero no se permite escribir en ellos. Esto las protege de que los cambien por otros programas. L a condicin de &lo ejecuci6n evita que los programas se copien. Llmita la referencia a un -mento &lo durante la fase de biisqueda de instruccihn pero no durante la faae de ejecuci6n. Por lo tanto, permite al usuario ejecutar las instrucciones del segmento de programa, pero evita que se lean las instrucciones como datos para copiar su contenido. Algunas partes del sistema operativo residirdn en la memoria en cierto momento. Estos programas de sistema deben protegerse hacindolos inaccesibles a usuarios no autorizados. La condicin de proteccibn del sistema operativo se coloca en los dscriptores de todos los programas de sistemas operativos para evitar que el usuario ocasional accese l o s segmentos del sistema operativo.
. cuntos C.I. de M M 128 X 8 se necesitan para proporcionar una 12-1. a capacidad de memoria de 2098 b y b ? b . CuntasUneas del dde dkccione deben utilizarse para accesar 2048 bytes de rnqmorial ~Cu6ntas de estas ineas serAn comunes a todos los CS.?
520
w c Organizaci6n ~ de
la memoria
c, CuntasIiiraeas e & de codificarse para la celecei6n de intepdo? Especifiqueel bmailo de los dedifiadores. U n a computadora utiliza C.I. de RAM con capacidad de 1024 X 1 . a. Cuntos C.I. se necesitan y c6mo deben conectarse sus llneas de dldonamiento para proporcionar una capacidad de memoria de 1024
U-5.
12-6.
12-7.
T ,
pista.
12-8.
R = velocidad de rofaQ6nde disca en revoluciones por d o . N, = cantidad de bits por pista. N, = cantidad de bits por sector. Calcule e1 tiempo promedio T,que se necesitara para leer un sector. Cual es la velcicidad de transferencia de una cinta rnagnetica dc 8 pistas cuya velocidad es 120 pulgadas por segundo y cuya densidad es 1600 Mts por
pulgada? 12-9. Obknga la funci6n complcmcnto para la lgica de coincidencia de una palabra en una memoria asociativa. En otras palabras, muatre que Mi' es la
suma de funciones O R exclusivas. Dibuje el diagrama 16gico para M', y m i n e l a con un inversor para obtener.MP 12-10. Obtenga la funci6n boaleana para l a lwca de coiricidencia de una palabra en una memoria asociativa que toma en wnsideraeibn un bit de identificaci6n que indica s i la palabra est activa o no. 12-11. ~ Q u d lgica adicional se requiere wcproporcionar un resultado de no coincidencia para una paiabra en una asociativa, cuando todos los bits de &ve son O? 12-12. a. Dibuje e l diagrama l6gic0 de aodas las d a s de uria paiabra en una memoria asociativa. inciuya la l6gica de lectura y escritura de la figura 12-8y la 16giq de coincidencia de la figura 129. b . . Dibuje el diagrama 16gieo de todas las celdas a l o largo de una columna c a l (columna J') en una memoria asociativa. Incluya una h e a de salida corndti a todos los bits en la misma columna. e. A partir de las diagramas en a y b demuestre que, si la salida Mi est conectada a la lnea de lectura de la misma palabra, despus l a paIabra que coincide se leera, siempre y cuando d i o una paIabra coincida w n e l argumento de enmascaramienta.
12-13. b i con palabras y mediante un diagrama de bloque e6mo pueden leme mililtiples paiabras que coinciden fuera de la memoria de una memoria
asociativa.
Derive la 16gica de una celda y de una palabra completa para una memoria asociativa que tiene un indicador de salida cuando e l argumento sin enmascarar es mayor que (pero no igual a) la palabra en la memoria d a t i v a . 12-18 Una memoria caehk asociativa de dos sentidos utiliza bloques de cuatro palabras. ia caeM puede acomodar un total de 2048 palabras de la memoria principal. E l tamao de la memoria principI as de 128K X 32. a, Formule toda la informaci6n pertinente necesaria para construir la memoria cach. b . Dequ8 tamafio es la memoria cach? 12-16. E l tiempo de acreso a una memoria cach es de 100 ns y el de la memoria principl es de 1000 m. Se estima que el de las solicitudes de memoria son para lectura y el 20%restante es para escritura. La raz6nde acierto para accesos de lectura ea de slo 0.9. Se utiliza un procedimiento de escritura simultnea. a. Cul es el tiempo de acceso promedio del sistema comiderando d o ciclos de lectura de memoria? b. Cul ese1 tiempode a e m promedio del sistema para bs solicituda de lectura y d t u r a ? c, Cul es l a raz6n de acierto considerando los ciclos de escritura?
12-14,
12-17. Una m ~ o r i a c a & de conjunto a d t i v o de cuatro sentidos tiene cuaba palabras en cada conjunto. Un p d i m i e n t o de sustitucin basado en el algoritmo de uso recientemiimo se hplantb mediante contadoresde 2bits amciadas con cada palabra en el conjunto. Por lo tanto, se graba u nvalor en el rango O a 3 para -da palabra. Cuando mun a&&, el contador
522
Organizacin de la memoria
asociado con la palabra a la que se hizo referencia se activa en O. Aquellos contadorescon valores,originaimentemenores que aquel al que se ha hecho referenaa se incrementan en 1 y aodQs los dems permanecen sin cambio.Si ocurre una falla, la palabra coq un valor de contador 3 se quita, se pone la nueva palabra en su lugar y su contador se estable en O. Los otros tres contadoresse incrementan en 1. Demuestre que este procedimiento funciona para la siguiente secuencia de referenciasde palabra: A, B, C, D ,B, E , DI A, C, E ,C, E (cumience con A, 0, C, D ,romo las cuatro palabras iniciales, y que la palabra A sea la de menor uso reciente).
12-18.
Una computadora digital tiene rura unidad de memoria de 6 4 . X 1 6 y una memoria cach de lK palabrac. L a cach usa e l rnapeo directo con un tamao Be bloque de cuatro palabras. a. ~CuBntocbits hay en los campcs de identibcibn, Indice, bloque y palabra del formato de direccih? b. ~Cuaintosbits hay en cada palabra del cach6 y c6mo se dividen en funciones? Incluya un bit vdlido. c. Cuntos bloques puede alojar el cachb?
Un espacio de didonamiento se especifica mediante 24 bits y el espacio de memoria correspondiente lo especifican 1 6bits.
a. ~Cu&ntzts palabras hay en el espacio de didonamiento? b. Cubntas palabras hay en el espacio de memoria? c. Si una pgina consta de 2K palabras, cu&ntas piginas y bloques hay en , el sistema?
12-19.
12-20.
Una memoria virtual tiene un tamafia de pgina de 1K palabras. Hay 8 pginas y 4 bloques. 1 a tabla d e pgina de la memoria asociativa contiene las siguientesentradas:
~ag~ia
BIO~U~
Elabore una lista de todas las direcciones virtuales ( en decimal) que produc i i n una Hrdida de p&im s i las usa la CMI.
12-a3, Un sistema de memoria virtual ticnene un espacio de dirnridn de 8K palabras, un espacio dc mmnaria dc 4K palabras y tamaos de p6gina y bloque de 1K
palabras (vbsc la figura 12-18). Qcurxen 10s siguientes cambiosde referencia de pgina durante cierto intervalo de t i e m p ~ ( & l o w listan los cambios de pAgina; s i se hace referencia de nuevo a la misma pgina, no se lista dos
veces).
Referencias
523
Determine las cuatro paginas que residen en la memoria principal despus de cada cambio de referencia de pagina si el algoribno de sustitucin utilizado es: a) FEO; b) 3)U. 12-22. Detemhe la dos direcciones lgicas a partir de la figura 12-24(a) que accesadn la memoria Ksica en la direccibn hexadecimal Ol2AF. l espacio de direeei61116gicaen un sistema de computadora consta de 128 12-23. E segmentos.Cada segmento puede tener hasta 32 phginas de 4K palabras en cada uno. i a memoria fsica consta de 4K bloques de 4K palabras en cada uno. Formule los formatos de direcci6n igica y fsica. 12-24. Proporcione el ndmem biiario de la direcci6n Mgica formulada en el problema 12-23 para el segmento 36 y el nmero de palabra 2000 en la
pagina 15.
1. Baer, J. L . , Computer S y s t m Archikcture. Potomac, MD:Computer Ccience Press, IW. 2. Dasgupta, S . , C m p u k r Architecture: A Mdem Synthesis, Vol. 1 Nuwa York: John Wiley, 1989. 3. Gibson, G. A., Computer Syslemq Cmc& g . d h i p .Englewd Cliffs, Prentice Hall, 1991. 4 . Hamacher, V.C, 2 .G. Vranesic y S. G. Zaky, Computer Orgatttratiorr,3a. ed. N u e v a York: McGraw-Hill, 1990. 5. Hwang, K . ,y F.A. Briggs, Computer Architecture arnd Paralle1 Proceccitig. Nueva York McGraw-Hill, 1984. 6. Kain, R., Computer Architecture: Sopurare and Hardmre, Vol. 1 . EngIewmd Cliffs, NJ: Prmtiee Hall, 1989. 7. Langholz, G., J. Franeioni, y A. Kandel, EIentents oJCompukr Orpiurtion. Englewood Cliffs, EJI: Prencite Hall. 1989. 8. Murray, W .D . ,Computer and Digital System Architecture. Englewood Clifh, NJ: Rentice Hall, 1990. 9. Fatie m n , D .A,, y J. L.Hennesgy, Computer Architcfure: A QuatitativeAppmch. San M a b , CA:Morgan Kaufmann Publishers, 1990. 10. Pollard, L.H . , Cmnputer h i g n and Architecture.E n g l e w d Cliffs, NJ: Prentice Hall,
1990.
1 1 . Sione, H.S. (ed.). Introduct&n fo Camputer ArchitecFure, 2a. ed, Chieago: SciResearch w t e s , 1 9 8 0 .
EN ESTE C O
13-1
13-2
13-3
134
13-5
Czra&rlsticas de mdtipmmadores Estructuras de interconexi6n Arbitraje entre procesadores Comunicaci6n y sincronizacibn entre procesadores Coherencia de cach4
micmprocesador
nsi 1
4b
procesadores y t d o s lbs componentes del sistema cooperan en la soluci6n de un prblema. Aunqiie algunas computadaras de gran tamafio incluyen dos o d s CPU en su sistema p e r a l , e1 surgimiento del microprocesador es l o que ha pducido la mayar mtivac8n para las sistemas multiprocesadores. EI hecho de que los microprocesadores m p a n muy poco espacio fsico y son muy baratos acarrea la posibilidad de interconectar una gran cantidad de microp~~~esadores dentro de un sistema. La tecnologia de circuitos integrados a muy gran escala (VISI) ha reducida d costo de los componentes de computadora a un nivel tan bajo que el concepto de aplicar procesadores mltiples para cubrir necesidades de desempeo del sistema se ha convertido en una atractiva posibilidad de diseo. El m u l t i p ~ a m ' i e n t omejora la confiabilidad de1 sistema, por b que una falla o error en una parte tiene un efecto Imitado en el resto del sistema. Si una falla hace que un procesador deje de funcionar, puede asignarse un segundo procesados para ejecutar las funciones del procesador inhabilitado. El sistema completo puede continuar su funcionamiento de manera correcta, b l vez ron cierta perdida de eficiencia. El beneficio que se deriva de una o~gankcibn de multiprocesadores es un desempefio mejorado de sistema. El sistema deriva. su alta desempeo del hedio de que los clculos pueden avanzar en parale10 en una de dos maneras.
m
Una funcidn general puede dividirse en varias tareas que cada p m e sador puede man$ar en forma individual. Fueden asignarse tareas del s i s e ma a procesadores de prop6sito especd cuyo diilo esti optimizado para ej-tar ciertos tipos de procesamiento en forma eficiente. Un ejemplo es un sistema de computadom en el cuaI un prmesador ejecuta los clculos para el control .de un prwe 3 industrial, mientras otro monitorea y controla 10s d$erentes parmetros, como la temperatura y la velocidad de flujo. Otro ejemplo es una mrnputadora en la cual un p m d o r ejecuta dlculos matemhticos de punto flotante a alta velwidad y otm cuida tareas rutinarias de pmesamiento de datos. EI multiprocesamiento puede mejorar el desempefio al descomponer qn programa en tareas paralelas ejecutables. Esto puede lograrse en una de dos maneras. E i usuario puede ,declarar en fonna explicita que ciertas tareas del programa se ejecuten en paralelo. Esto debe hacerse antes de cargar el programa, al especificar los segmentos paralel- ejmtableg. L a mayora de los fabricantes de multiprocesadores proporcionan un sistema operativo con comandos de iengvaje de programacin convmien~ para especificar el procesamiento paralelo. La otra manera, mas eficiente, es proporcionar un compilador con programa para multipmsador que pueda detectar en
forma automdtica el paralelismo en un programa de usuario. El compilador comprueba la dependencia de data$ en un programa. Si un progxama depende de datos generados en otra parte, la parte que emite los datos que se necesitan debe ejecutarse primero. Sin embargo, dos partes de un programa que no u t i l i n datos generados uno por el otro, pueden correr en forma concurrente. El compilador de paralelizaa6n comprueba todo el programa para detectar cualesquiera dependencias de datos posibles. Despuds, los que no tienen dependencia de datos ae consideran para la pmgramacibn concurrente en varios procesadures. Las multip~ocesadores se clasifican por la manera en que se organiza trrultipocesador de su memoria. Un sistema rnultiprocesador con memoria compartida comn nwmot.Ia ~ompadida se clasifica como' multiproce~dorde mmnria compartida. E s t o no evita que cada procesador tenga su propia memoria local. De hecho, la mayora de los procesadores de memoria compartida proporcionan una memoria cachk con cada CPU. Adernss, hay una memoria comn global que pueden accesar todas las CPU.Por lo tanto, la informacihn puede compartirse entre las CPU al colocarla en la memoria global comn. Otro modelo de microprocesador a el sistema de memoria distribuida. memoria distribuida Cada elemento del procesador en un sistema de memoria distribuida tiene su propia memoria local privada. Los procesadores se enlazan mediante un esquema de conmutaci6n diseado para dirigir idformacin de un procesadm a otro, a travks de un esquema de paso de m e n s a j e s .tos procesadores proporcionan programas y datos a atros procesadores en paquete. Un paquete consta de una d-ireccidn, el contenido de datos y algtin c6digo de deWi6n de error. tos paquetes se pmpdrcionan a un procesador especifico o toman el primer procesador disponible del sistema de comunicacibn usado. h sistemas de memoria distribuida s o n ms eficientes cuando la interaccih entre las tareas es minima, m i e n t r a s que los sistemas acoplados con precisidn pueden tsIerar un mayor grado de interaccibn entre tareas.
Canal comlin de tiempo compartido Un sistema multipromsador de canal c o m h consta de varios procesadores
conectados mediante una trayectoria mmdn a una unidad de memorias. Un canal mmdn de tiempo compartido para cinco procesadores s e muestra en la figura 13-1. En cualquier momenta dado s610 un procesador puede comunicarse con la memoria o ron otro procesador. Las operaciones de tfansferencia las controla el procesadpr que controia el canal en ese momento. Cualquier otro procesador que deea iniciar una transferencia debe detenninar primero el estado de disponibilidad del canal y, slo despuk de que el canal quda disponible, puede el procesador d k c i o n a r la unidad destino , para iniciar la transferencia. Se emite un comando para informar a la unidad destino cul operaci6n se va a ejecutar, La unidad que recibe reconsu direccibn en e l canal y responde a las seales de control de la unidad que las enva, despues de lo mal ke inicia la transferencia. El sistema puede mostrar conflictos de transferencia, dado que todo los procesadores comparten un canal comn. Estos conflictos d b resolverse al incorporar un controlador de canal que ectabl-a prioridades entre las umidades solicitantes. Un sistema de canal comn nico est limitado a una transferencia a la vez. Esto significa que cuando otro procesad~r s e est comunicando con la memoria, todos los otros procesadores estn ocupados con operaciones internas o deben estar inactivos en espera del canal. Como consecuencia, la velcicidad de transferencia total dentro del sistema est limitada a la velocidad de la trayectoria nica. Con frecuencia, los procesadores en e l sistema pueden mantenerse ocupados por medio de l a implantaci6n de dos o ms
Figura 13-1 Organizacin de cana1 comn de tiempo compartido.
Unidad de memoria
#U
CPU 2
CPU 3
IOP 1
IOP 2
Canal I d
Canallocal
canales independientes, para permitir transferencias de cana1 simultheas y mitiples. Sin embargo, mtcd incrementa el costo y la complejidad del sistema. Una irnplantacibn mAs econ6mica de una estructura de doble canal se muestra en la figura 13-2 Aqu tenemos varios canales locales, cada uno conectado a su propia memoria local y a uno o mbs procesadores. Cada canal local puede estar conectado a una CPU, un IOF o una combiici6n de prrrcesadoies. Un controlador de canal de sistema entaza cada canal loca a un canal de sistema comn. Los dispositivos de E/S conectados al IOP locai, a1 igual que a Ia memoria local, estn disponibles para el procesador local. La memoria conectada al canal de sistema comn la comparten todos los procesadores. Si un IOP e s t conectado en forma directa al canal de sistema, l o s dispositivos de E/S conecbdos a 8, pued'en quedar disponhl~para todos los procesadores. Slo un procesadgr puede comunicarse con la mememoria c # m p ~ d i d # moria compartida y otros recursos comunes a travs del canal de sistema, en cualquier momento dado. Los otros procesadores se mantienen ucupados comunicndose con su memoria lmal y sus dispositivos de E/S. Parte de la memoria local puede disearse como una memoria cach conectada a h CPU (vkase la secci6n 12-6). De esta manera, puede hacerse que el tiempo de acceso promedio de la memoria local s e aproxime al tiempo de ciclo de la CFU a la que est conectada.
Memoria multipuerto Un sistema de memoria multipuerto em&a canales separados entre cada mddulo de memoria y cada CPU. Esto se muestra en la figura 133 para cuatro CPU y cuatro mduIas de memoria. Cada canal de procesador e s a yiqcb$o a rada mbdyio de,memoria. Un canal! de pmcesador consta de la dhwbn,, l q datos y las b s control requeridas para comunicarse con 1 s memoria. Se dice-, que el rnbdlo de memoria * e cuatro puertos y cada puerto uriw de b s cawleri. E i m6dulo debe tener 16gica de control interna para determinar cual puerto tendr acceso a memoria en cierto momento. Los confkbs. de acceso a memoria se resuelven al asignar prioridades fijas ,a cada p u b de memoria. La prioridad para acceso a memoria
asociada con cada procesador puede establecerla la posicibn fsica del puerto que ocupa su 1 en cada mdulo. Por lo tanto, la CPU 1 tendrii prioridad s o * la CPU 2, la O U ' 2 & & A prioridad sobre h a U 3 y la CPU 4 tendr I a @ a d meno,
Figura 13-3 OrganW6n de memoria de multipuertos.
velocidad de transferencia que puede conseguirse debido a las trayectorias mltiples entre los procesadores y la memoria. La desventaja es que requiere una J6gica de control de memoria cara y una gran cantidad de cables y
conectores. Como consecuencia, esta estructura de intermnexibn, por 10 general es apropiada para sistemas con un n h e r o reducido de pmesadorrs.
Conmutador de bama de cruz L a organizacidn de conmutador de barra de cruz consta de varios puntos de cruz que se colocan en intersecciones entre los canales de procesador y las trayectorias del mdulo de membria. La figura 13-4 muestra una interconexin de conmutador de barra de cruz entre cuatro CPU y cuatro m6dulos de memoria. El pequdo cuadro en cada punto de cruz es un conmutador que determina la trayectoria de un procesador a un mdulo de memoria.
Figura 134 Conmutador de barra de auz
M&iuias de memoria
i
>
7
'
Datos
P
Mbdulo
Muiiiplexo~~ y lgica de
arbitmje bbilitar
a
>
1 1
J
:1
Cada punto de conmutador tiene 16gica de control para inicializar la trayectoria de transferencia entre un p b o r y la memoria. Examina la direccin que est colocada en el canai para determinar s i se est direccimando
su maula particular. Tambin resuelve solidtudes mlltiples de acceso al mimo mdulo de memoria, con base en una prioridad predeterrninada. L a figura 13-5 muestra e l d i e o funcional de un conmutador de barra de cruz conectado a un m6dulo de memoria. El circuito consiste en multiplexores que wleceionan los datos, la direcci6n y un control de una CPU para la comunicaci6n con el mdulo de memoria. Los niveles de prioridad se establecen mediante la I6gica de arbitraje, para seleccionar una CPU cuands dos a m s de elias intentan accesar la misma memoria. Los multiplesrores s e controlan con el c6digo binano que genera un codificador de prioridad dentro de la 16gica de arbitraje. Una organizaa6n de conmutador de barra de cruz soporta las transfmcias simultheas de todos lm m6dukis de memoria parque hay una trayectoria =parada asociada can cada rnMuio. S i embargo, la circuiha necesaria para implantar el conmutador puede resultar bastante grande y compleja.
El componente bhsico de una red de etapas mciltiples es un conmutador de intercambio de dos entradas, dos salidas. Como se .muestra en la figura 13-6, el conmutador 2 X 2 tiene dos entradas, A y B y dos salidas, O y 1. Hay dos seales de control (que no se muestran) asociadas con el conmutador
que est+I.ew la interconqi6n entre las terminales de entrada y salida. El conmutador tiene la capacidad & conectar b entrada A a cualquiera de las
Figura 1 3 7 A r h i binario mconmutador 2 x 2. '
A 0 0 0
1001
2 010
1 0 11
salidas. la terminal B del conmutador se comporta de manera similar. E l conmutador tambih tiene la capacidad para proporcionar arbitraje entre solicitudes en conflicto, $i h s entradas A y B solicitan h miam terminal de salida, s61o se conectar&una de ellas; la otra se bloquear. Al usar el conmutador 2 X 2 como un bloque de constnicci6n, es posible desarrollar una red de etapas mdtiples que controle la com&icacibn entre varias fuentes y destinas. Para ver c6mo se hace esto, consideremos el rbol binario que se muestra en la figura 13-7. Los dos procesadores P1y P2 se conectan mediante conmutadores a ocho mddulos de memoria marcados en binario del 000 a 111. La t r a v r i a de una fuente a un destino la determinan Jos bits binarios del nmero destino. El primer bit del nmero destino determina la salida del conmutador en el primer nivel. El segundo bit especifica la salida del conmutador en el -do nivei. Y el kmr bit especifica la salida del conmutador en el tercer nivel. Por ejemplo, para conectar P1 a la memoria 101, es necesario formar una trayectoria de P1 a Ia salida 1 en el conmutador de p b nivel, a la salida O en el conmutador de segundo nivel y a la salida 1 en el conmutador de tercer nivel. Est claro que PZy P2pueden conectarse a cualquiera de las who memorias. Sin embargo, ciertos patrones de solicitud no pueden satisfacerse en forma simultAnea. Por
Figura 13-8 Red de conrnutaci6nomega 8 X 8.
535
'
red omega
ejemplo, si P, est conectado a uno de los destinos 000 a 011, Pl puede conectarse a s610 uno de los destinos 100 al 111. Se han propuesto muchas topologias diferentes para las redes de conmutacin de etapas mGItipIes, con el fin de controlar la comunicaci6n procesador-memoria en un sistema de multiprocesador de memoria compartida o para controh la comunicacin entre los elementos de procesamiento en un sistema de memoria distribuida. Una de esas topologas es la red de conmutacin omega que se muestra en la figura 13-8. En esta configuraci611, hay exactamente una trayectoria de cada fuente a aalquier destina paxticular. Sin embargo, algunos patrones de s o l i c i t u d no pueden conectarse en f o m sirnultbnea. Por ejemplo, cualesquiera dos fuentes no pueden conectarse en forma simultnea a los destino8 000 y 001. La fuente inicia una solicitud particular en la red de conmutacibn a1 enviar un patrn de tres bits que representa el nmero destino. Conforme e l patrn binario recorre la red, cada nivel examina un bit diferente para determinar la posicibn del conmutador 2 X 2. El nivei 1 revisa el bit mAs significativo, el nivel 2 revisa el bit inte~rnedio y el nivel 3 revisa el bit menos significativo. Cuando la solicitud llega a cualquier entrada del conmutadar 2 X 2, s e dkciona a la salida superior s i el. bit especificado es O o a la salida inferior si el bit es 1. En un sistema multiprocesador de memoria compartida, la fuente es un pmesador y e l destino es un m6dulo de memoria. La primera pasada por Ia red estable la trayectoria. Se utizan pasadas sucesivas para transferir la direcci6n dentro de la meaigria y despus transferir los datos en cualquier direccin, dependiendo de si l a solicitud es una lectura o una escritura. En un sistema multiprocesador de memoria distribuida, la fuente y e1 destino son elementos de procesamiento. Despus de que se estabIece la trayectoria, el procesador fuente transfiere un mensaje al procesador destino.
Interconexi6n de hipercubo La estructura de procesadar de hipercubo o cubo n bhario e5 un sistema de memoria distribuida compuesto de N = 2 ' procesado^^ interconectados en un cubo binarb de n dimensiones. Cada pxocesador forma un nodo del cubo.
Aunque se acostumbra decir que cada nodo tiene un procesador, de hecho, no 6610 contiene una CPU, sino tambikn memoria local e interfaces de E/S. Cada procesador tiene trayectorias de comunicaci6n directa a n procesadores vecinos. Estas trayectorias corresponden a los lados del cubo. Existen 2'
dwccioves binarias de n bits distintas que pueden asignarse a los procesadores. Cada direcci6n de procesadar es difemte de cada una de sus n vecinas en exactamente una pmici6n de bit. La figura 139 muestra la estructura de hipexcubo para n = 1, 2, 3. Una estructura de un cubo tiene n = 1 y 2" = 2. Contiene dos procesadores interconectados mediante una trayectoria nica. Una estructura de dos cubos tiene n = 2 y 2 " = 4. Contiene cuatro nodos inknmnectados en un cuadro.
Un cubo
I ) o s cubos
Tres cubas
Una estructura de
ires cubos tiene ocho nodos interconectados como un cubo. Una estructwa de n cubos tiene 2' nodos y un procesador residiendo en cada nodo. A cada nodo se le asigna una direccin binaria, de manera que las direcciones de dos vecinos sean diferenb en exactamente una posici6n de bit. Por ejemplo, tos tres v d m del nodo con Ia direccin 100 en una estructura de &es cubos son 000, 110 y 101, Cada uno de estos ntimexos binarios es diferente de l a dimi611 1 0 0 en un valor de bit. Enrutar mensajes a travs de una estructura de n cubos puede requerir de uno a n enlaces de un nodo fuente a un nodo destino. Por ejemplo, en una estructura de tres cubos, el nodo 000 puede comunicarse directamente mn el nodo 001. Debe cruzar iil menos dos edaces para comunicarse con 011 (de MX) a 0 0 1a 0 1 1 a de 1300 a O10 a 011). Es necesario recorrer al menos tres enlaces para comunicarse del nodo 000 al nodo 111. Puede desamiiarse
un procedimiento de direccionamiento al calcular ia OR exclusiva de la direcci6n del nodo fuente con la direccin del nodo d&tino. E 1 valor binario resultante tendr un bit que correspondo a los ejes en los cuales son diferentes los dos nodos. Despuks el mensaje se enva por algunos de los ejes. Por ejemplo, en una estructura de tres cubos, un mensaje en 010 que va a 001 produce una 08 exclusiva de las dos direccione iguales a 011. El mensaje puede enviarse por el segundo eje a 00D despus recorrer el tercer eje a 001. Un representante de la arquitectura de hipercubo es el complejo de computadoras Intd m.Consta de 128(n = 7)microcomputadoras conectadas mediante canales de comunicacibn. Cada nodo consta de una CPU, un procesador de punto flotante, memoria local y unidades de interface de comunicacin serial. Los nodos individuales operan en forma independiente sobre los datos almacenados en la memoria local, de acuerdo con los programas residentes. Los datos y los programas s cada nodo provienen de un sistema de paso de mensajes, de otros nodos o del administrador del cubo.
SECCI~N 136
537
Se cisarmllan y m p @ n b p w g r w de aplicacioiaw en el administrador del cubo y despuCs se cargan en los nodos individdes. Los cAlculos se distribuyen por el sistema y se ejecutan en forma concurrente.
canal de sistema
de B/S para transferir ulfomci6n hacia y desde dispositivos de entrada y salida, Un canal que conecta los componentec principah en un sistema de multiproesador, como las CPU, 10s IOP y la memoria, se denomina un canal de sistema. LQS circuitos flsicos de un canal de sistema estn contenidos en varias tarjetas de circuito impreso idhticas. Cada tajeta en el sistema pertenece a un m6dulo en particular. Una tarjeta consta de circuitos conectados en paralelo por medio de mnectores. Cada terminal de cada conector estA conectada mediante un alambre a la terminal correspondiente de todos los otros conatores en otras tajetas. Por lo tanto, cualquier tajeta puede conectarse en una ranura en el plano p~sterior(backplane) que forma el canal del sistema. Los procesadores m un sistema multipraeesador de memoria compartida solicitan acceso a h nwmoria comdn o a otros recursos comunes por medio del canal del sistema. Si ningn otro prowsador utiliza en ese m e mento el canal, puede concederse el acceso de inmediato al p m a d o r que l o solicita. Sin embargo, el procesador que solicita debe esperar si otro p-ador utiliza en ese momento el canal del sistema. Adems, otros procesadores pueden solicitar el canal del sistema al mismo tiempo. Entonces debe realzarse un arbitraje para resolver esta peticibn mltipIe de los recursos compartidos. La 16gica de arbitraje serla parte del controlador del canal del sistema c a h d o entre el canal local y el canal del sistema, s e @ se muestra en Ia figura 13-2.
Canal del sistema Un canal de sistema tipico consta de aproximadamente cien lneas de s & a h &tas Uneac se diyiden e n tres grupos funcionalles: datos, direcciommhto y control. Adems, existen linear. de distribuch de corriente que proporcionan l a ahmtaci6n para 1 - c o m p o Por ~ ejemple, e l sistema muiticaml estndar 7% tiene 16 lineas de d a b , 24 h a s de diredcionamiento, 22 heas de control y U i s de amentaci6r1,para un total de 86 h s . Las lineas de dakos proporcionan una trayectoria para la transferencia de datos entre los procesadores y una memoria comn. l a cantidad de lneas
canal sfncnitio
canal adnrrono
de datos por lo general es un mltiplo de 8, y los mds comunes son 16 y 32. Las lneas de direccionamiento se utilizan para identificar una direccihn de memoria o cualquier otra fuente o destino, como un puerto de entrada o salida. La cantidad de heas de direccionamiento determina la mhxima capacidad de memoria posible en el sistema. Por ejemplo, una direcci6n de 24 h e a s puede a {hasta224(16 megas) palabras de memoria. Las heas de datos y de direccionamiento se temihan con acopladores de tres estados (vase la figura 4-5). Los acopladores de direccionamiento son unidirm50nales del pmesador a l a memoria. Las h e a s de da- son bidireccionales (vase la figura 12-31, lo que permite la trabferencia de datos en cualquier direcci6n. Las transferencias de datos por el canal del sistema pueden ser sncronas o asincronas. E i un canal sincmno, los datos se transfieren, durante una porcibn de tiempo conocida con anticipacidn, por las unidades fuente y destino. Se consigue la sincronizaci6n al rnanejar ambas unidad- a partir de un reloj comn. Un procedimiento alternativo es tener relojes separados de la misma frecuencia aproximada en cada unidad. Se transmiten seales de sincrrinizacin en forma peri6dica para mantener el mismo paso en todas los rdlojes del sistema. En un canal asincrono, a los datos que se transfieren les acompaan seales de control de reconocimiento mutuo (v4aase la figura 11-9) para indicar cundo transfieren 10s datos de la fuente y los recibe e l destino. Las h e a s de control proporcionan d a l e s para controlar Ias transk mcias de infomci6n entre las 'unidades. tas seiiales de temporizacin indican Ia validez de la iramaci6n de datos y direccin Las seales de comandos especifican operaciones que se van a ejecutar. Las l h s de control tpicas incluyen seales de transferencia como lectura y eescritura de memoria, reconocimiento de una transferencia, solicitudes de interrupci6n, seiiales de control del canal como solicitud y cesin y seales para pmedimientos de arbitraje. ta-tabla 13-1 lista las 86 l s disponibles en el multicanal lEEE estndar 796. Incluye 16 i de datos y 24 lneas de direccionamiento. Todas las seales en el multicanal estAn activas o se habiiitan en el estado de nivel bajo. Las sei3aIes de controI de transferencia de datos Incluyen lectura y escritura de memoria al igual que lectura y escritura de B/S. En consecuencia, las lneas de direccionamiento pueden usarse para direccionar espacios de E/S y memoria separados. La m&oria o las E/S responden con una 1 de reconocimiento de transferencia cuando terrnina la transferencia. Cada pracesador conectado al mdticanal tiene hasta ocho salidas de solicitud de interrupi6n y m lhea de entrada de reconocimiento de inkrrtlpci6n. Por lo general; se apllcan a un controlador de prioridad de interrupciones similar al que se desclrh en la figura 11-21. Las seales miscelneas de control proporcionan posibilidades de temparizaci6n e inicialikaci6n. En particular, la de rana1 asegurado es esencial para aplicaciones de multiprocesador. Esta &al activada por procesador sirve para evitar que otros procesadores
sECa0N
539
Datos y +eccik + S de datos fiIineas) ' Lneas de dMon-imiento (24 ineas) Transferencia de datos Leetuta de memoria Emitura en memoria' Lectura de E/S Escritura de E f S Reconqcirnientb. de transferemia Control de intenupci6n Soicitud de Imterrugwih (8 lineas) Reconocimiento de intenvpdbn C o n W rnisoeUneo Reloj maestro Inidalizacidn del sisterq Habilitacibn dei byte aIto Inhibici6n de memoria (2 lineas) Seguro de canal Arbitraje de canal %licitud de anal' Solicittxd de canal f i n . Canal mapado Reloj de canal Pno~idad de en@& al canal Prioridad & aafida del canal Corriente y tierra (20 lneas)
+
RATAeDATAlS ADRSO-ADRS23
MRDC
MWTC IORC
IOWC TACK
INTD-INW iNTA
CUK
1NIT
BHEN
INHl-WH2
LOCK
BREQ CBRQ BUSY
BCLK
BPW,
BPRO
conkrole~!~ el canal mientras ejecuta una instnicci6n de probar y activar. Se necesita esta funsitjn para una sincmnibcibn de procesador adecuada (vbase Ia swci6n 13-4). Las seis seilales de arbitraje de cana1 se utilizan para arbitraje entre procesadores. Estas senles se explicarAn mAs adelante despuks de a n a h r . los procedimientos de arbitraje serial y paralelo.
Procedimiento de arbibaje serial Las pmcedimientos de arbjtraje a renden todas hs solicitudes del procesador con base en prioridades estabIecidas. Puede establecerse una tcnica de
resoluci611 de prioridades de canal por circuiteria mediante una conexin serial oparaIela de las unidades que solkihn'el control del canal deI sistema. La tcnica de solricin de prioridad serial se obtiene a partir de una conexi6n de cadena de margaritas de los circuitos de arbitraje del canal similar a la
lgica de prioridad de interrupciones presentada en la seccibn 11-5. Se asigna prioridad a b o procesadores conectados al canal del sistema de acuerdo con su posicibn a l o largo de la lnea de control de prioridad. Se aoigna la prioridad ms alta al dispositivo mAs cercano a l a lnea de prioridad. Cuando mfiltiples dispositivos soliutan en forma concurrente el uso del canal, se m c e d e el a al canal al dispositivo con t prioridad m s alta. La figura 13-10 muetra la conexi6n en cadena de margaritas de cuatro Arbitras. Se considera que cada procesador tiene su propia lbgica de arbitro de canal con lneas de salida de prioridad y de entrada prioridad. la salida de prioridad (PO)de cada drbilro est conktada a la entrada de prioridad (Po del siguiente rbitro de prioridad inferior. la Pi de la unidad de prtondad ms alta se mantiene en un valor 1 lgico. Za unidad de prioridad ms alta en el sistema siempre recibid el acaso al canal del sistema cuando l o solicite. I_a salida PO para un Arbitro particular es igual a 1 s i su entrada PI es igual a 1 y el p-dor asociado con la lgica de srbitro no solicita el control del caiiaL As se pasa l a prioridad a la siguiente unidad en h cadena. Si el procesador solicika el control sobre el canal y d Arbitro correspondiente encuentra que su entrada PI es igual a 1 , activa su saiida PO en O. Los Iirbitros de prioridad menor reciben un O en PI y p w a n un O eii PO.Debido a eso, el procesador cuyo Arbitro tiene una PI = I y PO = O es e l que recibe el control del canal del sistema. Un procesador puede estar a la mitad de una operacitjn de canal cuando un procesador de prioridad mayor solicita el canal. E 1 procesador de prioridad menor debe terminar su operaci6n de canal antes de entregar e l control del canal. La lnea de canal ocupado que se muestra en la figura 13-10 proporciona un mecanismo para una transferencia de control ordenada. La lnea de canal acupado proviene de circuitos de colector abierto en cada unidad y proporciona una conexin OR 16;ica de lliieas internas. Cuando un rbitro miIx e l control del canal (porque su Pl = 1 y PO = O), examina la Enea de canal ocupado. Si la h~ea esd inactiva, s i p i f i a que ningn otro prmaador est usando el canal. El Arbitro activa la lnea de canal ocupado y su pnxeadox toma el control del canal. Sin embargo, s i el 6rbitro encuentra que la lnea de
Fiiura 11-10 Arbitraje serial (cadena de margaritas).
GLrd
0
PI
PO
Arbitro l
- - canal
Canal
PI W Arbitra 2
Prioridad
mas baja
Alsiguiente rbitro
PI
PO
Arbllro 3
PI PO Arbitm 4
h d e mpado d
canal mpado est activa, significa que otro p ~ d o usa r en ese momento d 1 . El CrbitrP sigue examinando h linea de d mpado mienhas el p-dgx de phridad menor que pierde el control del canal termina su operadh. Cyando la Unea de canal wpado retoma a su estado inactivo, el &itro. de prioridad.mayor habilita la l ocupado y su proce~dor correspondiente puede entonces conducir las bmskmcias de canai requeridas.
Lbgica de arbitraje paralelo 'La tcnica de arbitraje de canal paralelo utiliza u r ~ cdficador de prioridad
un decodificador c m o se muestra en la figura 13-11.Cada rbitro de canal en el esquema paraleio time una h e a de solicitud de canal y una h e a de entrada de rec~nacimiento de canal. Cada hrbitro habilita a la inea de solicihid cuando su procesador soiicita el acceso al canal del sistema. E 1 pmesador toma el control del canal si se habilita su inea de entrada de reconocimiento. La lhea de canal ocupado proporciona una transferencia de control ordenada, como en el caso de la cadena $e margaritas. La figura 13-11 muestra las lineaa de solicitud de-cuatro Arbitros que van a un codificador de prioridad 4 X 2. La d i d a del codfiicador genera
externa y
un cdigo de 2 bits que representa la unidad de prioridad 'ms alta entre las que solicitan el canal. L tabla de verdad del edificador de prioridad puede encontrarse en la tabIa 11-2 (vase la seccin 11-5). E l cddigo de dos bits de la salida del cudificador maneja un demdificador 2 x 4 que habilita la linea de reconocimiento a p r ~ i a d a para conceder el aeeeso al canal a Ia unidad de prioridad m& alta. Ahora podemos explicar la funci6n de las seales de arbitraje de canal que se listan en tabla 13-1. ta entrada de pnondad del canal (bus priwity-in, BPRN) y la salida de prioridad dei canal @mpridrity-out, BPRO) se usan para una conexi6n en cadena de margaritas de los circuitos de arbitraje de canal. La seiial de canal ocupado (bus busy signal, BUSY) es una salida de eoledor ab'irto que se usa para dar instrucciones a todos los drbitros cuando el canal esta ocupado conduciendo una transferencia. La solicitud de canal com6n (common bus request, CBRQ) es tambin una salida de colectbr abierta que sirve para dar instrucciones al arbitro si hay otros &bitros de prioridad menor que solicitan el uso del canal del sistema. Las sefiales utilizadas para construir un procedimiento de arbitraje paraldo soft la solicitud de canal (BREQ) y entrada de prioridad d e l canal (BPRN), que corresponden a las seales de solicitud y reconocimiento de la figura 13-11.Se utiliza e l reloj de canal (BCLK) para sincronizar todas Ias transacciones de canal.
cuota de tiempo
encuestar
AIgoritmos de arbitraje dingmico Los dos procedimientos de arbitraje de canal que se acaban de describir, utilizan un algoritmo de prioridad estatiea porque la prioridad de cada dispositivo esta fija por la manera en que est conectado al canal. En contraste, un algoritmo de prioridad dindmica proporciona a1 sistema la posibilidad de cambiar la prioridad de los dispositivos mientras opera el sistema. Ahora discutiremos unos cuantos procedimientos de arbitraje que utilizan algoritmm de prioridad dinmica. El algoritmo de nrofa d tiempo asigna una porci6n de tiempo de longiQd fija del tiempo del canal que se ofrece en forma secuencia1 a cada procesador formando un ciclo que los incluye a todos. El eervicio que se proporciona a cada componmte del sistema con este esquema, es inde pendiente de su posicibn a l o largo del canal. No se da preferencia a ningn dispositivo particular porque a cada uno se le asigna la misma cantidad de tiempo para comunicarse con e l canal. En un sistema de canal que utiliza encuHfri, h d a 1 de mibn de canal se sustituye con un conjunto de lneas llamadas lneas de encuesta que estn conectadas a todas las unidades. El controlador de canal uflua estas heas para definir una direccin para cada dispositivo conectado al canal. E l controlador de canal recorre en secuencia las direcciones en una manera preestablecida. Cuando un procesador que requiere el acceso reconoce su diremi&, activa la Iinea de canal ocupado y despua accesa el canal. Despuds
543
de varias ciclos de canal, el pmeso, de encuesta conthSia al eiegir un procesador diferente. Por lo general, e s programable la secuencia de encuesta y, como resultado, puede alterarse la prioridad de seleccidn bajo e l 'euntrol del programa. El algoritmo de uso reciente mnimo (least m n t i y uced, LRU) proporLRU ciona la prioridad mAs alta al dispositivo que no ha usado el canal durante el intervalo ms largo. Las prioridades se ajustan despub de varios ciclos de canal, de acuerd~ con el algoritmo LRU, Con este procedimiento, no se favorece a ningn pmesador spbre otro, porque las prioridades se cambian en fonna dinitmica para proporcionar a cada dispositivo una oportunidad de accesar el canal. En el esquema primero en mtrar, primuo m atenderse, las solicitudes se atienden en .el orden recibido. Para implantar este algoritmo, el controlador de canal establece una lista de espera arreglada de acuerdo con el tiempo en el que llegan las so1icitudes de canal. Cada procesrtdor debe esperar su turno para usar el canal con base en primero en entrar, primero en salir (FIFO). cadena de magan'tas El procedimiento de mdena de margarifas rotatoria es una extensidn mtateria dinamita del algoritmo de cadena de margaritas. En este esquema, no hay un controlador central de canal y la l i e a de prioridad e s u conectada de la salida de prioridad del l h o dispositivo de regreso a la entrada de prioridad del primer dispositivo en un ciclo cerrado. Esto es similgr a las m e xiones que se muestran en h f i i r a 13-10, excepto que la salida PO del Arbitra 4 est conectada a la entrada PJ del A~bitro1. Cualquier dispositivo que tiene acceso al canal sirve como controlador de canal para el siguiente arbitraje. Cada prioridad de Arbitro para un cierto ciclo de canal estd determinada por su posici6n a l o largo de la lfnea de prioridad de canal dei arbitro,cuyo procesador controla en ese momento el canal. Una vez que un rbitro entrega un canal tiene la prioridad ms baja.
reslden en la memoria comn se utilizan, por lo general, para indicar la condici6n del buzn, si tiene informacibn significativa y a cual pxocesador estA dirigida.,El procesador que recibe puede comprobar de manera peridi-
para d ~ si hay mensajes ~ vdlidm r para 121. El tiempo de respuesta REEI este prmedimimto pude s e r muy largo, porque un procesador reiconmerd una solicitud &la cuando hace una encuesta de mensajes. Un procedimiento mfts eficiente para el p m d o r que enva es avisar al proca ei buzbn
cesado~ que mibe en forma dimediante urna seal de inkrrupci6n. Esto puede conseguirse por medio de una interrupci6n entre procesadores iniciada por programa con una Uistrumibn en el programa de un pmcesador, el , cual, cuando se ejecuts produce una comdici6n de hterrupci6n externa en un segundo promsador. Esto avisa al proceaador in-pido de que el procesador que interrumpe insefkb un nuevo mensaje. AdemAs de la memoria compartida, un sistema multiprocesador puede tener otros recursos compartidw, Por ejemplo, una unidad de almacenamiento de disco mgn6tico wnechda a un IQP puede estar disponible para todas las. SPU.Esto pmporciona una opcin para compartir programas de sistema aimacenados en el disco. Puede establecerse una trayectoria de comunicaci6n enhe dos CPU por medw de tn enlace entre dos IOP asociados con dos CPU diferentes. Este tipo de enlace permite que cada CPU trate a la otra como un &positivo de E/S para que el mensaje pueda transferirse por medio de 19 trayectoria E/S. &a evitar un uso conflictivo e los reeurws compartidos por varios procesadores d e h preverse h asignacibn de los recursos a los procesadores. Esta se asigna al sistema operativo- Existen tres organizaciones que deben usarse en el diseo de sistemas operativos para multiprocesadores: configuraci6n amoggclavo, sistema operativo separado y sistema operativo &&tribuido. En un modo am-lavq, un p m d o r , denominado el amo, ejecuta siempre las funciones del sistema operativo. tos procesadores restantes, llamados essiqvosJ no ejecutan funciones del sistema operativo. Si un proa+ sador esclavo necesita un servicio del sistema operativo, debe solicitarlo al interrumpir al mamtro y esperar hasta que pueda intemimpirse el programa
~ctyai.
En una organizacin de sistema operativo separado, cada procesadar puede ejecuta las rutinas de sistema opsrativo que necesita, Esta organizacibn & m8s conveniente para sistemas de memoria distribuida en los cuales cada procesador puede tener su propia c q i a de todo el sistema operativo. En la organkci6n de sistema operativo distribuido, las rutinas de sistema operativo se distribuyen mediante los pmadores disponibles. S i n embargo, cada funci5n de sigtema operativo particular se asigna a un solo procesados a 4 vez. &te tipo de orgadzacidn se denomina tarnbsn sistema o~tivo fi~tanbe,porque las rutinas flotan de un pxocesador a otro y la ejqucin de las nitinas pwde asignarse a difemntes procesadores en diverws momentos. En un sistema de multiprocesadar de memoria distribuida, se distribuye la memoria entp los p m d o r e s y no hay memoria compartida para pasar infomci6n. La eomunicccin entre los pmeaadoms es mediante el
545
paso de mensajes a trav& de canales de E/S. La comunicaci6n la inicia un prmesador que solicita un prodimiento que reside en la memoria del psador con el que se deea comunicar. Cuando el procesador que envh y el procesador que recibe se nombran uno al otro como fuente y destino, se establece un canal de com~caci6n. Despub se envia un mensaje con un encabwdo y varios objetos de datos usados para comunicarse entre nodos. Puede haber. varias trayectorias posibles disponibles para enviar el mensaje entre cualesquiera dos nodos. E 3 1 sistema operativo en cada nodo contiene idonnaci6n de direcciwmmiento que indica las trayectorias alternativas que se pueden. usar para enviar un mensaje a otros nodos. Lit eficlench de comunicacidn de la red de prwaadores depende del protocolo de direccionamiento de comunicaci6n, la velocidad del pmcesador, la velocidad de enlace de datos y la topologia de la red,
Sincronizaci6n entre procesadores El conjunto de Whccimes de un multiprocesador contiene instrucciones bdsicas que se utilizan para implantar la camunicaci6n y la sincronizacibn entre procesos que cooperan. La comunicaei6n se refiere al intercambio de datos entre procesos diferentes. Por ejemplo, los pariimetros que se pasan a un procedmiento en un pmcesador distinto constituyen una comunicacin entre procesadores, La sincronizaci6n se refiere al caso especial en el cual los datos que se usan para comunicar entre procesadores son infonnaci6n de control. Se necesita la sincronizaci6n para imponer la secuencia de pro=os c o m t a para asegurar el acceso mutuamente exclusivo a datos compartidos que se pueden escribir. Los sistemas multipmcesador por lo general incluyen varios mecanismos para manejar la sincronizaci6n de los recursos. La circuitera implanta en forma directa primitivas de nivel bajo. Estas primitivas son los mecanismos'bLsicos que imponen l a exclusin mutua para mecanismos ms comple jos implantados en programa. Se han desarrollado varios mecanismos de circuiteria para la exdusi6n mutua. Uno de l o s metodos miis populares es el uso de un semforo binario.
I l . I I
I
I
I
I
mecanismo de s e p r o
I
Una variable binaria llamada sembfm se utiliza con frecuencia para indicar si un procesador ejecuta o no una secci6n crtica. Un semaforo es una bandera controlada por el programa que esG almacenada en una imalidad de memoria que pueden accesar todas los procesadores. Cuando el semgforo es igual a 1, significa que un procesador ejecuta un programa crtico, por lo que la memoria compartida no est disponibles para los otros procesadores. Cuando el sem4foro es igual a O, Ia memoria compartida est4 disponible para cualquier procesador que lo solicite. Los procesadores que comparten el mismo segmento de memoria aceptan no utilizar el segmento de mwioria a menos que e l m6fom sea igual a O, 10 que indica que esa memoria est disponible. Tambin aceptan activar el semforo en 1, cuando ejecutan una seccin crtica y desactivarlo a O cuando terminan. Probar y activar el d f o r o es, por s i misma, una operadon critica y debe efectuarse como una operacihn ifnica indivisible. Si no, dos o ms procesadores pueden probar e1 semforo al mismo tiempo y despuh cada uno activarlo, lo que permitirla que ambos entraran a una secci6n crtica al mismo tiempo. Esta acci6n permitirla la ejecuci6n simultnea de secciones criticas, lo que producirla una iniciakaci6n errnea de l o s parmetros de control y la pCrdida de alguna informaci6n esencial. mtede iniciazarse un semforo mediante una instruccibn de probar y activar junto con un mecanismo de seguro por la circuitera. Un seguro por la circuiteria es una seiial generada por el procesador que sirve para evitar que otros procesadores utilicen el canal del sistema mientras la seal est activa. L a instrucci6n probar y activar prueba y activa un semforo y activa el mecanismo de seguro durante el tiempo que se ejecuta la instrucci6n. Esto evita que otros procesadores cambien el semiiforo entre el tiempo que el procesador lo prueba y el tiempo en que lo activa. Consideremos que el sem&foroes un bit en la posicibn menos significativa de una palabra de memoria cuya direcci6n se representa mediante SEM. Sea el mnem6nico TSL el nombre de la "operacibn probar y activar mientras est asegurado. La instrucci6n
TSL
SEM
se ejecutarA en dos ciclos de memoria (el primero para leer y el segundo para escribir) sin interferencia, de la m e r a siguiente:
R tM[SEM] MISEMI t1
despus se activa en 1, E l valor en R determina que hacer despugs. S i el pxocador encuentra que R = 1, sabe que el semforo estaba activado originalmente, (el hecho de que se vuelva a activar no cambia el valor dd semforo). Wsto significa que o t r o procesador ejecuta otra secci6n crtica, por lo que el procesndor que prob6 el d f o m no accesa la memoria compar-
tida. Si R = 0, eso significa que la memoria comn (o e l recurso compartido que representa el semdforo) est6 disponible. E i semforo se activa en 1 para evitar que atros procesadores accesen la memoria. Ahora el p-dor puede ejecutar b seccibn crtica. La dltima instmciSn en el programa debe desactivar la localidad SEM a 0, paca entregar e l k u r s o compartido a otros procesadores. Nbtese que la seal de seguro debe estar activa durante la ejecucidn de la instrucci6n probar y activar. No tiene que estar activa una vez que se activa el semforo. Por 10 tanto, el mecanismo de seguro evita que otros procesadores accesen la memoria mientras se activa d semforo. El semforo mismo, mando esta activado, evita que otros procesadores accesen la memoria compartida mientras ejecuta una secci6n crtica.
Memoria principal
mos de irnpasicibn de coherencia de cache. Para mostrar el problema, consideremos l a configuracibn de tres procesadores con cach4 privadas que se muwtra en la figura 13-12. En algn m~mentodurante la ejecucin, un elemento X de la memoria principal se carga en l o st r e s procesadores, Pl, Pz y P3. Como consecuencia, tambien se copia en las cachd privadas de los tres procesadores. Por simplicidad, consideramos que X tiene el valor 52. Al cargar X en los tres procesadores da como resultado copias consistentes en las ca&4 y en la memoria principal. Si uno de los procesadores ejecuta un almacenamiento a X, las copias de X en las cach w vuelven inconsistentes. Una carga por alguno de los otros procesadores no regresarii el valor mAs reciente. Dependiendo de la politica de actualizaci6n de memoria utilizada en el cach, la memoria principal puede tambin ser idconsistente en mlaci6n con el cach4. Esto se muestra en la figura 13-13.Un almacenamiento a X (del valor 120) dentro del cach del prmsador P1 actualiza la memoria al nuevo valor en una politica de n escritura simulthnea. Una politica de escritura simultAnea mantiene la consiskncia entre la memoria y el cachC de origen, pero los otros dos tache son inco~16istentesporque todava contienen d valor anterior. En una politica de escritura al retorno, la memoria principal no se actualiza en e l momento del almacenamiento. Las copias en las otras dos cach y en la memoria principal son inconsistentes. Eventualmente, se achraliza la memoria cuando los datos modificadas en e l cachg se copian a ella. Otra configuraci6n que puede producir problemas de consistencia es una actividad de acceso directo a memoria (DMA) junto con un 101) conectado al canal del sistema. En e l caso de entrada, d DMA puede modificar las localidades en la memoria principal que tambin residan en ca&& sin actualizar cach#. Durante una salida DMA, las localidades de memoria pueden leerse antes de que se actualicen del cacM cuando se usa una poltica de escritura al retorno. Puede superarse la incoherencia de memoria basada
Canal
slrnulthea
Canal
Figura 13-13 Confi uracidn de cach6 des u& e ento ~ X d i a n t e el pru>cesadiiiPi,w r . & y - n . ~ ~ ~ 4 & ~
,imar( m
,
bd
I
i#wd:'w&*.'tWb
8
flldldlnrim
I
'
e q E/S, al hacer que e l IOP participe en la solucin coherente del cach4 que & adopta en el sistew .8 ' .
' 4
de coherencia de cach Soluciones al Se han propuesto varios esquemas para resolver el problema de c o h e ~ c i a de cachb en muItiprocesadores de memoria compartida. Aqu analizamos algunos de estos esquemas brevemente Vae las referencias 3 y 10 para un anlisis ms detallado, Un esguema simple es no permitir cach privadas para cada pmesador y tener una memoria ca& compartida asociada con la memoria principal.
Cada acceso de datos se hace a la cacM compartida. Este mtodo no respeta el principio de cercana de la CPU al tache y aumenta e l tiempo de acceso a memoria promedio. Bn efecto, este esquema resuelve el problema witndolo.
coittrolador wiificndbrde
Por consideraciones de desempefio es deseable conectar una cach6 privada a cada procesados. Un esquema que se ha usado permite que sblo se almacenen en cachd datos no compartidos y de sblo lectura. Tales datos se Uaman apropUldos pava ea&. Los datos wmpardidos que se pueden escribir no son adecuados para cach. E i compilador. debe sehlar los datos como adecuados o no para cachh y la circuitera del sistema asegura que 4 1 0 se almacenen en las cachk datas adecuados. Los datos no adecuados permanecen en la memoria principal. Este m6todo restringe el tipo de datos almace nados en cachfi e introduce una sobrecarga de programacibn extra que puede degradar e l desempeio. Un esquema que permite que existan datos que se pueden escribir en, al menos, una cach es un mtodo que emplea una tabla global centralizada en su compilador. El estado de los bloques de memoria se almacena en Ia tabla global central. Cada bloque se identifica como de slo lectura (RO) o de lectura y escritura (RW). Todas las tache pueden tener copias de los bloques identificados como RO. S610 una cachk pude tener una copia de un bloque RW. Por lo tanto, si se actualiian las datos en cadi6 con un bloque RW, no se afecta a las otras cach porque no tienen una copia de este bloque. El problema de coherencia de cach6 puede resolverse mediante una c9mbimaci6n de programacidn y circuitera o 9610 mediante esquemas de circuiterla. h dos rnfdos mencionados antes, utilizan procedimientos basados en programaci6n que requieren la capacidad de sealar infomaci5n para deshabilitar el almacenamiento en cach de los datos compartidos que se pueden escribir. Las soluciones s610 de circuiterla las manqa aubdticamente la circuitefh y tienen h ventaja de una mayor velocidad y transparencia del programa. En L solucibn de circuitera, e1 controlador de cachg est disefiado especialmente para permitirle rnonitorear todas las solicitudes de canal por parte de la CPU y los IOP. Todas las cachd conectadas al canal monitomn constantemente la red en busca de posibles operaciones de escritura. Dependiendo del mtodo usado, deben depues actualizar o invalidar sus propias copias de =he cuando s e deteda una coincidencia. El controlador de canal que monitorea esta accin se denomina controlador ver@ador S () de wchk. Esta es basicamente una unidad de circuito diseiiada para mantener un mecanismoFde verificaci6n de canal robre todas las tache conectadas a 41. Se han propuesto varios esquemas para resolver el problema de coher e de tache medinte m protocolo verificador de cach6. El mtodo mZis simple es adoptar una poltica de ~ r i t u r a simulhea y usar el procedimiento siguiente. Tdos los controladores veriffcadores vigilan el c m 1 en busca de operacion- de almacenamiento. Cuando se actualiza una palabra en cachg al escribirla, la localidad correspondiente en l a memoria principal E
actualiza tarnbih Los controladores verificadores locales en todas las otras cach comprueban su memoria para deteminar s i tienen una copia de la palabra sobre la que s e ha d t o . S i existe una copia remota en un cacM, se mxca la laralidad como hv4lida. Debido a que todas las cach4 verifican todas las escrituras de canal, cadh vez que se eccribe una paiabra, e l efecto neto es actualizarla en la cach6 o r i w y en la memoria principal y quitarla de las otras cach4. Si ,ena l g h momento f u b un procesador accesa el dato inviilido de su cach, la respuesta es equivalente a una falIa de cachk, y e l dato actualizado se transfiere de la memoria principal. D e esta m e r a , se evitan las versiones inconsistentes.
Analice la d i f e r d a entre los multiprocesadorescon memoria distribuida y los de memoriacompartida del punto de vista de organizacinde circuitera y M c a s de programacin. 13-2. Cul es el prop6sito del controlador de canal de sistema que se muestra en la figura 13-2'1 Explique como puede disehrse el sistema para distinguir entre las refermcias a memaria local y las referencias a memoria compartida
13-1.
eomcui.
13-3.
Cuntospuntos de conmutador hay en unmi red de conmutador de barra de cniz que wnectan p pmmadores a m mdulos de memoria?
La red de conmutacidn omega 8 X 8 de la figura 138 tiene tres etapas con cuaim conmutadores en cada etapa, para un total de 12 conmutadores. ~Cuhtas etapas y mutadores por etapa se necesitan en una red de comutaci6n omega TI X tr? a linea entre el conmutador en el primer renglbn, 13-5, Supongamos que se rompe l segunda columna y d conmutador en el segundo renglbn, tercera columna en la red de conmutau6n omega de la figura 13-8.Cules trayectorias se descon~iui? 13-6, C o h y a un diagrama para una red de conmutaci6n omega 4 X 4. Muestre las especificaciones de conmutador requeridas para conectar la enbada 3 a la salida 1. i una red de interconexin 13-7. Se usan tres tipos de conmutadores para d de etapas rnWipJm un conmutador de hbcambio con dw entradas y dos salidas como en la figura 13.6, un conmutador de arbitraje con dos entradas y una salida y uneonmutado~ de distribucincon una entrada y dos didas. aM u e s t r e &o operan los eonmuhdores de arbiiraje y distribuci61~ b . Utilizando conmutadores de arbitraje e intercambio, comtniya una red 8 x 4 con UM trayectoria n i o entre cualquier fuente y cualquier destino. c . Utiihndo conmutadoma de distribucin e intercambii, consiruya una red 4 X 8 con una trayectoria nica entre cualquier fuente y cualquier dcstino.
134.
Dibuje un diagrama que mue6tre la eshuctura de una red de hipercubo de cuatro dimensiones, Liste todas las txay-rias disponibles del nodo 7 al nodo 9 que utiaen la n@au cantidad de nodos intermedios. 13-9~ Dibuje I IJ L diagrama 16gim utihndo compuerbs y fiip-flopsque muestren el circuito & etapa de rbitro de ,canal en el esquema de arbitraje de cadena de margaritas de la figura 13-10. U-10, Al principio, el canal controlado por k 16giea de arbitraje paralelo que se muestra m la 'figura 13-11 asta inactivo. Despub, los dispositivos 2 y 3 . solicitan el canal al mismo tiempo. Especifique los valor- binarios de entrada y salida en e l aodificador y dekodificador y determine cual rbitro
de canal se reconoce.
l3-8.
13-11. Mueshe e6mo puede modificarse la lgica de arbitraje e la figura 13-10 para proporcionar un procedimiento de arbitraje de cadena de margaritas circular. Explique c6mo se determina la prioridad una vez que se deshabilita la lnea de canal. 13-12 Considere una bpologfa de canal en la cuai dos procesadores se comunican a travs de un amplador en la memoria compartida. Cuando un procesador desea comunicarse con el otro, pone la infomacibn en el acoplador de memoria y activa una bandera. Peri6dkammte,.el otra procesador eomprue ba las banderas p a determinar si tiene informacin por recibir. Quepuede hacerse para asegurar la sinmnizacibn apropiada y minimizar e l tiempo entre el envio y la recepci6n de la inforrnaci6n? a) exclu13-13. k r i b a la siguiente terminologa asociada con rnultip-dores: sin mutua; b) d 6 n crtica; c) seguro de cimritela; d) semforo; e) instrucd6n probar y activar. 13-14. Quees coherencia de cach y por qu es importante en sistemas de muItiprocesadore de memoria compartda?Cmo puede resolverse el problema con un controlador verificador & cach?
1 . Dasgupta, S . , Computer Arehitmture: A M o d m S y n t h i s , Vol. 2 Nueva York John Wifey, 1989. 2. Megama, A. L, Paralkl pForiessing ArChitecture Md VLSI f i r d m . Englewd C i i f s ,NJ: P~entice Hall, 1989. 3. Dubois M.C., Scheurich, E A. Biiggs, "Cynchronization,Coherente and Event Ordering h . M u l t i p ~ r s "IEEE . C~mpte~, Vol. 2 1 ,No.2 (Febrero1 9 8 8 ) , pp 9-21.
NJ:Prentice Hall, i 9 % . 6. Hays,L F./Conrpukr Architechrre Otprbtim, 2a. e d . Nueva York McGraw-Hi, 1988.
Referencias
553
7. Hwang, K , , y F. A. B * , Camputer Archtecture and Parallel Pro~essing. Nueva York M&raw-Hili, 1984. 8. Kain, R . ,Cmptlkr Architechrre: % * r e and Hardware, Vol. 2 Engiewood'C~iffs, N: Prentice Haii, 1989. 9. Langhoh, G . ,J. Franaoni,y A. Kmdel, Elem@nfs OfCoquter OrganUntimi.bglewood Cliffs, N:Prentice Hall, 1989. 1 0 . Stenstrom. P . , "A survey of Cache Coherenee Schemes for Multipc#sorsf'. 1EEE C-t, Vol. 23, No. 6 (Junio lW], pp. 12-24. 1 1 . Stone, H .S,Higk-Pe@minnce Cmputer Architecttire. 2a. ed. Reading ELA: AddisanWesley, 1990. 1 2 . Tabak, D . , M u l t i p r w w m . EngIewd Cliffs, NJ:Prentiee Hall, 1990.
i e
,,nim-* id r * - 4 P P w r t ) l i i f
b't
M.
A
AC (Acumulador}, 134
algonbm de suma:
complemento a 2 con signo, 84, 361-62 magllitud mll signo, 3574) niinieewi decimales, 3 8 7 ,S 9 7 punto flotante, 382-84 aiiieadn del dividendo, 386 almaamar, 156 dh impedancia 106 ALU {Arithmetic L.ogic Unit, ver unidad d W c a lbgica), 124-26, S!XO
+*b M
acarreo, 21, 81 acarreo de entrada, 114 acarreo final 81 accesa directo a la memoria, 4452% controlador, 4 4 4 4
tmnsiermch, 448-50
aooplador de tres estados, 106 divamiento selectivo, 118 aevar, 24 activar el bit, 267 acumulador Registro, 13639
d k o dei, 173-75
m 5-6
de
a~umuiador,134 eigebra b o o k , 7 1 1
dgoritmo arimeo, 356 aigoribm de M, 26649 algmilmo de cimiterla, 356-57
direcch) arbitraje, ! S 7 arbitraje de canal, 539-43 arbiiraje dinmico, 542 arbitraje entre m , rbol b i d , 534
537
aigorib, 3 % algoritmos de arbitraje, 542 algoribnos de la divisi6n: magnitud can signo, 372-75 * o con n?stakI&iento,377 mido de aimparacidn, 371 mbtodo sin restablmvnienb, 377 nmeros decimales, 3991100 punta flotante, 386-87 dgoribnos de la multipli6n: algoritmo de Booth, 3 & 9 complementa a 2 con sigrio, implanta0611por programacibn
(mhre), m magnitud con signo, 36365 niimerr>s decbmk, W-94 punto flotante, 384-86
divisibn, 3 9 9 4 0 muitiplii6n, 397-99 suma y resta, 395 arquitectura de la mmputadora, 4 arquikhwa paralola a r i M m , 32g30 arquitectura paralela para instmcciones, 33136 arquibpchua paralela para punta flotante, 32830 aquiiechira paraiela, 322-27 arihnelica, 328-30 en RISC, 33741 inshdbn, 33136 arquitectura, 4 arreglo de p m d o r e s , 349 arreglo de p m d o m conectado,
algwitrnos de la resta: c o m p h t o a 2 m signo, 94,36142 magnihid ain signo, 35741 nIunerrrp d h a l e s , 391-98 nhwmi sin signo, 81 punto flotante, 38244 algoriimcs de reemplazamiento, W 1 1
34950
intemnectado, 349-50 SIMD, 350S1 l o multiplidor, 369-7l Asen, TB9,194,409-11 autod-b, 27 autohmmento, 278
d s h n o , 538
k k e w RISC L 3WJliI
77-8,
~~
*te,
.63
u, 43,481-82
c a d a de mqpritise mtatoria, 5ba cadena de ntargariiw, 437, 540 CA?d(Contrrnt Addmsable Memory: ver m m d direcxionable por
campo de wwntarios, 189 m p a de d'irefain, 2 3 9 w p o de la 9qu&, 499 campo de modo, 2777; 2% canal, 104, S37 m i ~ ~ f p de, nI W de k a c~mputadoraMBica. 13-39 entrada/tAida, 412-33 mema* 48e3 canal a~indmim, 538 carral corndn, l W , 1 3 7 - 4 0 , ~ sanal de dabe 44749 d de d i e b n , 44749 canal de 1/O, 951 -1 de memoria, 414, 4-85 canal de timp compartido, 527-29 canal de tres esiadm, 1 W canal del sidana, 529,53739 canal dobk 52960 dIBM, w-57 canal l d t s P 3 0
464 del registra, 59 carga diferida, 335, 339-40 carga paralela, 57 cargador de la i n i ~ ~ 6 481 n , cid0 de instniociones, 148,331-33 ddo de instrudones de la computadera, 148 ciclo de inietrupcin, 163-65,4414 cido de memoria, 147 cido de reloj, 145,325 &te magntica, 409,489 cinta, 409,489 ciicuikrla de la computadora, 1 drniiterla, 23,183 .aimiit~ antmetie~, 112-15 h i t o combmatorio, 19 adiisis, 20 diseo del, 20 circuito de coctriminto combinatorio, 125 circuito integrado, 4345 &niiio M ~ o D ,117 drniib secumcial cronometrado, 23 Eimiito s e e r i d , 29 diselio del, 34-38 circuitos integrados digihles, 43 cIsc (Compiex btructim Set q~ombter, ver computadota can CMCS, 4 5 d a d o r de pdoridad, Wl codificador, 49 &digo ~ u m r i c o 7492,409 , oddigo autrrc~mplementank,Pi ' d i g o de caracteres, 78 &digo de condiCiSn, 291 cddigo de detecci6n de emir, 92 d i g o de exrrw-3, 91-2 &ligo de Eray, 90 &digo de insurriones, 131, 140 &ligo de aperacibn, 132, 270 &digo hexadecimai, 141, 187 obdigo ponderado, 91 ci6digm billar&, 77, 89 alfanum8h, 78 ASCU,78 BCD, 77-76 de ~ X O ~ S O3, , 91-92 deteccin de error, 92 Gray, 8940 abdigos decimales, 90 c o h c i a de c&, 54750 comando de control, 413 comando de estado, 413
, 413, 452
comparador de magnitud, 358 ownpiledor, 2QO q w i p e 3!B-!3 mpJemento a 2 con signo, 83 mbrefl*, a corhpl~to del bit 287 ~ ~8elPbiv0, 119 t o wnplementq 11, 78-81 m t am , 81 mmpuertaAN0,M compuerta de acoplamiento, 54,106 -puerta h a ,
d i & del, 3Ma cwitrni de carga, 53,137 control de memoria, 225-26, 244 mbl por cimitera, 14% 22a
cwrimiento mitmiico, 121-22,288,369 aobrenuio, 1 2 2 cm-dmhto cimjar,209 wnimienb lgico de memoria &tribuida, 121, 288 dmiento, m 2 2 a, 3, CRC (Cydic RPdundarq Chedr. ver veriacih de redundancia ddica), 462 euadroaep8gina,5W cuadros adyacentes. 13
compuerta 05 5 6 mpwrtae 16gic%s de control, 1 7 U oompuarl&SI o g i w ,4 EQmperh4 4r computadora bsica, 131 4 comn, 137-33 ciclo de instru@=iones, 148, la, 267
cpnk~l, 144-48
* ,
decimal codicado en b M o , 77, M 1 declaracionms de hnsfemncia del registro, I M a r i d h s , 108-9 mnhi condicional, 102
corrimieiito?l a
e-, 137-168
resumen tabular, 169 aimpuiadora con conjunto reducido de instnia, m a r q u i w a paralela, 336-40 E Q T ~ S 302~ , insbywlmes, 274-75, 30607 computadora 4e wnjunto mmpiejo de inshiCFi0nes (CISC), MM2 computadora digitai, 1 comunicacih aslnarina, 525-27 comunid6ai de &tos, 461 e~municaein enire procesadoms, 543 c~munkaci6n A a I , 460 corlu5sISri e d, 4 4 6 condici6n sin importancia, 17
wnditiom de transferencia, 293 d c t o de r e c u w , 334 conflictos en Iio q u i k t u r a paralela, ~XI mnjunto de datos, 461
~onmutadcy de arbitraje, S51 ~pnmutadorde barras d a s , 53133 ~onmutador de intercambio, 533 ommutador distribuido, 551 m u l t a de la tabla, 197 contqdor Kmario, 5961 con Earga paraieia, 6142 del d34-38 contad01
M i p t o r del , 51&19 d d p @ r , 51&19 d e t d 6 n de cero, 292 ~ de i error, ~ 198 . d'igrill~ de bloques, 19 *ama de a p d o tiempo, 32526 diagrama de estado, KM4 diagrama de flujo para la computadora bhiea, 1 8 diagrama, de hporizadbn, 27,418 diagrama lgico, 7 digid 1 dkccin de memoria, 63,138 d i n de W o , 157 4d&n de vwtores, 438 d i directa, 134-35, 278 dimcibai efecava, 134,278 d k c i 6 n Wca, 513 d M 4 r r piapeo, 507 d W 6 n hbblica, 189 d M 6 n virtual, 506 d k c i h , 63,138 dkionarniento indexado, 279 direceinam&to indirecio, M,246,
localiizaeidn, 1%
disoo, 409,489
disea de m i m i , 170-74,24445 divno la computadora bsia, 1 W 6 diseo e la computadora, 4, 168-76 d i s p o s i t i v o ,4118
dividendo, 372 divisor, 372 DMA @irrct Memoxy A , mke acceso d i a la memoria) doble precisibn, 20T DR (Pata Register, registro de da-) dfiplex (doble) completa, 463
fiip iop#
amwsclavo, 28
EKDIC (Extended BCD Interchange Codel. 92 ECL (Erni&~ou~led Logic, Ibgia de emisor acoplado), 45 ecuaci6n de entrada, 30 EEPROM (Eleckically Erasable PROM), 67 ejecucih de un solo ciclo, 337 en &a, 408 encuesta, 4 3 6 ,! x 2 enlam de datos, 463 enlace de parmeiro, 213
lIip flop disparado por flanco, 26 flip flap SR, 24 flip flop T . 26 flops, 348 flujo de datos, 321 flujo de instrucciones, 321 finmata de las insbuccirinea, 270,344 formato de 4 6 5 FOMlUN ( W h u l a TRANslatar), 188-89. fumi6n h i e a n a , 7 krnci6n de conhol, 102 funcibn Impar, 7, 93
me,
habilitar entrada, 47 HDLC (FEgh-leve4 Data Link ConW, conh1 de enlace de datos de alto nivel), 4 6 9 hipemibo, 53536
503
entrada salida) I/O &lada, 414 I/O iniciada por inkrru@n, 434 I/O m a m o en memoria, 41516 110 programada, 93034 I C htegrated Cdt, circuito integrado) impresora, 408 Finario, 111-12 inmmentador, 111-12 incmnenbo, 6 1 , 110, 115
I/O(input-Output, &se
m 1
instrucciones e corrimiito, 395-97 instrueeiwies de I/O, 161 h i r u & m de ia mmputadora, 14041,185 inrihccimei de la pila, 27475 ins-dedpdacihdeblbc,;186.8i9 inetrucciom de manipuIsci&n de da&,
284.89
15%3
m, 335-36
2 8 3 8 5
h t e l # 5 9 IQP,458 interblqueo por circuiterla, 3 3 3 inkcunain de l a -dores, 52736 interface de comunicacin en serie, 160
interface de I/O, 411-14 inberfaceI 412,416 inkmpcin del programa, 16365,217, 297 interrupcin externa, 299 interrupih interna, 299 hberrupeich por p rama, 2 in-pcih U< inbemipfibn IW,299,43542
insh-ud~n& igicas, 281939 ins&udones, 14142, 185 integraEi6n a g r a n -da, 44 inkgabbn a mediana -la, 44 inkgrzda a ppquea -la, 44
entrar, primero en d i ) l l m i k de h pa, 266 llamada a la subruha, 158, 2 1 1 , 295 llamada a subnitina, 211 lwalidad de rrkmck, 4% lgica de arbitraje paralela, 54143 Iogica de. coinddena'a, 492 -1 de &r acopbdo, 4 5 lgica e entrada, 24-49 i g k de prioridad, 4 3 9 16gics de trahsterenba, 231 1Sgk transistor-tramistor, 44-85 LRC (Longitudinal Redundancy Check),
462
t o a
prioridad de, 4 % tipos .de,2%3m vectoriaI, 434 X O P (laput-output Prmsmr, aease procesadar de entrada salida) IR ( r d o n Register, *se registro de
i n s M )
palabra de moria), magnitud, W magnitud m s e , 83 martejo de la memwia, 511-15 manipulde c a r a c h s , 215 mantisa, 8 8 . 3 7 8 mapa de dkccione8 de memoria, 483-84, 486 mapm asociativo de conjunto, m m a p asociativo, 498 mapa directo, 4 9 9 rnapeo, 229, al, 497 matriz de la memoria, 34446 meanismo de =guro, 546
(Memory Wod, &se
memoria:
fK j ~1, p
m, asd
CJ,al-82
a & , 49MM de aieatorio, 64,# de lectura solamente, 65,483 dipeeEionable por contenido, 490
r c ,m, w
3 4 6
memoria
&,m
memoria virhial, 504 *-MptaClora, 5% -6n, 226 hbinariir,293-44 forma BimWlia, 238-42
brmabs,
implfato, 277 inddo, indirecto por registm, 277 idreato, 13435,278 inndlaio, 134-277 mgisi~o base, 280 registro, 277 relativo, m mdwi de transferencia, 430-31 d u l o de la memoria, 530 monitof, 4 8 m o n i t o r de video, 408 MOJ (Metal-Oxide Cemimnductor, &se metalddo), 44.45 MSI (MediumScale Integration), 44 hultiplexor, m 2 , 104 multiplimcibn matricial, 344
mi-acih AND, 116-17 s h h l o especiai, 116 4 6 1 1 de &tura, 109 mimqeracibn de lectura, 108 dmwperaci6n de mta, 109-11
miampxeci6n de suma, 1W10 mimmpracin OR, lV-18 simbolo espciai, 115-16 micrmperacin, 99,1W9,236.260-61 a r i W a I 1W-10 commiento, I D 2 3 writura, 108 lectura, 108
A
multiplicador, 953 multiplicando, 363 muloprwwdor, 525 arbitraje, 53743 cwmnimi6n, 593 inhmmxin, 527-36 simmhddm, w 7 m u l a p w d o r de memoria compartida,
527
nriaooper~ de mmhiento, 120 implanbcih en circuitera, 122-23 mhmperacione @cap, 115-17 implairtiicih en cimiiterla, 117 lista de, 11617
control de, 2 4 3 4
ejemplo:
m , -m i
SlmMlim, ZYWu
2464.8
dinmica, 226 MiMD (Muitiple Inslmcon Stffam, Mdtiple Data 1 -, 321,' 525 mifiuendo, 360
madera, 461
n a b e binario, 535 NQR dwivo, 5 4 nomialiaacibn, 89, m 7 9 nota* infja, 267 notacin piaca inversa, 2#69 ' expteiones ariimti~as,26949 mrhEi$n Fiara, 267 n h e m binarics, 2 , 72 n h e m Qon signo, 83 n m m decimales, 72,8647 nhmon 72-74 &cado en forma b i 75 conversih S binario 74 niimeros & , R-76 codificado en forma binaria, 74-75 c o n d n a binario, 74 nilmema ain s & m , 81
resta de, 8142
m o d o ~ p r r e g i s ~ , m
OR
tPmtabo de mensaje, 467,468 orientado a bib, 468.471 orientado a wacks, W praorientado a bita, & % % proorientado a faracteres, 4 6 . 3
pwmmcibn de la computadora, 2,1# PIlOM @-ble md4y 66 proporcin de acelerdn, 325-26 pnikdn de la memoria, 518 prok&n, S18 prode comunicacibn de dabas, 463 * ? l o # 465-68
protwaio, 46? prueba y activamiento, W pe&, 416 pwrto de X/O, 436 p u h de control de habilikibn, 418 punto bi-no, 82 punb fijo, 82 m t a c i b n binaria, M r e p m m t d h decimal, 86-87 punto Rotante, 8, 37781 normalizaabn, 88, 378, 382 operaciones aritmticas, 38247
Pgginao -fa de control, 226, 257-59 palabra de memoriaf 6 3 ,1 M palabra del -estado del programa, 297 palabra, paquete, 527 p a r h t m s de la subniha, 211 paeo del mensaje, 527 PC (Brograrn Counk, contador del programa) perif&im, 408 peticin de canal, 495-46 petiQdn de intemipci6n, 447 pila de memoria826466 pila de registro, 26244 pib, 261 pie&, 488 primero en entrar, primero en salir,
428-3a prioridad de intmupciwia, 9 3 5 4 cadena de margaritas, 43738 en paralelo, 439-40 nitinas de programaci6n, 4 4 2 4 procesador aritmtim, 355 profesador de entrada/ealida, 850-% o t paralelo, 319 proopsarniento vectoriaI, 342 m en arquitectura paralela, 319 praducto de sumas, 15 produao interno, 344 producto p a d 363,365 prodiicbo, 363
ralz, 72 RAM, 63,48041 -0 de intermpabn, 439 mmwhknto mutuo, 41% 42-23 m p e r a c i n desde la pa, 263 red de computadoras, 525
p p m a de inknipdbn, Zl7-19 p-ama de la subrutina, 210 programa de multipc~cin, Z4-W programa de srewkio, 442 pmgema fuente, 1%'
m, 229 regbb de c o m i m i ~ t o bidireccii 5 w&tm de corrimiento, 55 q i s t f o de cuenta de palabras, 447 regi8im de datas, 137-39 regiihu de dkdonamienbo, 137-39 registro de direoei~narniento~ 271 negislro de esiado, 632 q i s h de instrucciones, 137 mghtro dein pci611,U
, i , de l i x h a , . 2 3 3
Wo b i e h ,1 1 9 4
registro de < *
4 4 0
~ V O
regr i e
d e la mputadora, 136
~
&&mica, ~ &
512
kstadm, 11Gl1 retorno de la subrutina, 211, 295% mbmo desde 1a subruna, 296 rirsc W k e d lbtniction Cet Computer,
&&puladora cim donjunio reducido de ihstcu+ones), 3oM14 arquifWuh paraleIa, 33742 insWoftw, 27475, 1 0 r o b de ciclo, 4 4 6 m65, w, 24% 483 RPN W P o l i s h Notaon, x&ae
sistema d i i g i t a l ,1 sistema numrico, ?Z &tema opxdivo, 4 7 9 , 519, !i44 sobreflujo de la divisi6n, 374 &flujo de la suma, 358 flujo, 856,122 software de I/O, 434, 44142 soporte del mmpiIador, 338 SP (Stack PoinW, viIwse apuntador de la piu SS1 (SmalIsfale integratiun), 44 stlbptina, 209, 296-97 ~ubmbreflujo, 379-80 subebendo, 3
suma de productos, 15
suma de irminos mnimos (miniMiminos), 12 sumador BCD, 389-92 sumador binario en paralelo, 110-11 sumador binario, 11041 sumador completo, 21-23, 110 sumador decirmi, 389-92 sumador en paralelo, 358-99 surnador m t a d o r , 111 sumador y circuito 16gic0, 139, 176
sumador, 110
sumando, 360 supenrnnputadora, 347 salvar en la pa, 2 6 1 4 S a E ,469
Emi6n*595
a , 488
546
ec8firil, lM-06 se1dbn de integrado, 482 sdecta~' .dedatw, S1 lmAfa10,5& semlconducior de meial-6xid0, 45 mid*lex, 4 @
%h,
tabla taracteristia, 24-26 tabla de estado, 31-32 tabla de dtaci6n, 28,35 tabla de pginas de la memoria, 507-14 bbla de pginas, 509
193
tambor,487
tambor magn&iw, 49 tarea, 325 tasa de acierto, W
klado, 408
semisumador, 21 seal Mnaria, 4 &iaI de awrtrd, 145147 seRa1. de t i , 145-147 seal digital, 4 , 23 BefiilL 4
dguknt estado, 24,3132
d m h h flcos, 24-25 SIMD @M& istruction S , Multiple Data Stream), 3 2 1 , 349-50 simpla, 462 s w f i c a S 6 n pbr mapa, 11-19 h a o n h c i h (entre procesadores. 595
s i m r d z u c i h , 545
SED (Singie htruction Stream, Sin* Data S , ) 321 sistema de memoria compartida, W-29
tempodmdn y cantml, 144 teorema de DeMorgan, M 1 Mrmima mnimos, 12 tiempo de el 4%' tiempo de acOvari6n, 27 tiempo de retenddn, 27 tiempo de segtnentacibn, 542 tiempo t*iriscurrido, 422 t i p de datas, 71, 286' TL3 (Tmnslatim Lmk-aside Buffer, uase bdfer de predicci6n), 515 irampa, 299 transterrncia, 156, 293 tradermda asIncrona, 414 423 transfemda d i c i o n a l , 231, 293
r t
pd&
54
&m 424
v e W en bsiudios, 425 w n t a n a s de tradape de pegisko, 303-05 4cdh de dundancia dcca, 462 v d k b r de paridad, S 9 5 vematil'idad del -junto de h ~ o n e s 143.44 , W (Very-brg&cde hbegraiion), 44, 526
UART, 425
iiltimo en entrar, primero en d r , 281 unidad a r i b n k d&aL 387-94 unidad m i W c o I6gic. 124, 25840 unidad de coniml microprogramada,
226-27
100 OOC :uaiantes y resronales han aprendido los principios del diseio de iistemas digital,, j de la arqu..--tura de compuradoras con los textos de M. Morris M--. ercera edicibn de ArquHwtura de Computadoras, contina esta tradicin de amplia divulgacidn. La claridad de la presentacibn, el cuidadoso desarrollo de los principios bhsicos y la progresibn h-mi- +hcnicasavanzadas no decepcionaren a tos lecro. que esperan altos estandares de c 3 o r parte de Mano.
vies oe
:on una actualizacibn temhtica miriuciosa, la tercera etiicion conriene un 85% de material iuevo o revisado, incluso nuevos problemas en la mayor parte de los captulos. Los primero siete capltulos abarcan el material necesario para la comprensin de la organizacion y et diseo de computadoras, al igual que la programacibn de una computadora modelo, utilizando los componentes bhsiccls 1.0s seis tltimos captulos presentan la organizaciuri arquitectura de las unidades f u ~ c i i les inde dientes de la computadora digital, con nfasis en tos temas avanzados.
miceo d@W,-segunda edicidn (1991) igenieria Coinputacionat ( 1988) Sgica digital y diseno de computador