'Al

-

-7 JTAL ,

ARQUITECTURA DE COMPUTADORAS
TERCERA EDTCI~N

M.- Morris Mano
Universidad Estatal de Califoda en LOS Angeles

TRADUCCI~N:

MIGUEL ANGEL MART~NU SARMIENTO
~ S I TWNICA: ~ N AGUST~NSUAREZ FERNANDEZ
Departamento de Ingeniería Ektrica Universidad Aui6noma Metropolitana Iztapalapa, Mdxico

M&Argentina Brasil Colombia Costa &a Cbiie Ecuador España Guatemala Panamá PerG Puerto Rico Uniguay *Venezuela

.Acquisiti*mkditoi: P & Jamm Wuction editor: ]en* W m

1

*eE

.sherep C o o d m

editor: hrbnr'i

-

MORRIS MANO: AXQWlX€TUM DE COMPUTADORAS 316d.
Traducido de la terreta d i del ingiés: COMPUnR SYSTEM ARCkmEmuRE

Rohibida la repducción total o parcial ,de'esta obra, pc e¿ib.

m
A

lisr d

i o

o m e i d o sin auborización por d t o del

1 % resa I a @a edición en espaiiol pubiicada por: PRENTICE HALL ~ A N O ~ C A N A ~ , Q , .

DEüECH05 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

¿e

h la' '4

'ItP

b

Original

Copyright O 1993 Al1 Righb Reswvd

by Prentice Hall Lrsc.

ARQUITECTURA
DE COMPUTADORAS

Prefacio

CAPfRiLO UNO Circuitos de Idpica digital

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 FíipfZop 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

1

2-1

2-2

Circuitos integrados Decodificadores

2-3

DecodiJcad~ de eompmia NAND Expancidn del demdi$imdm 48 Cod$cadores 49 Multiplexom

2-5

B&gistn>s & c o ~ i e n t o Registro de -miento bidimcional con carga
+la 56 Contadores binarios
Unidad de memoria Memariadewmwv&t& Menimin d i o de ¡dura Tipos de ROM 66 Problemas Referencias
m n k m q m 3
i

2-6
2-7

I.u

&4
EX

63
65

I
!
1

m

CAP~TUD TRES

Representacihn de datos
3-1

Tipos de datos Sistmw numéricoc

m

w

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 Rép-tadh de'*piuitofijo ) i l P R e p r e s e n M de enteros 83 unhetia 84*-a34#9 Resfa arifmética 85 ha--SobrgIt~jo 85 -~ Y L Rqmsmtación del punto fijo den'nral Representación con p.unto.flotante
Otros códigos bina&

1

* 1

3-6

C6digo Gray 89 Okm d i g m decimales 90 Otros digas dfirnr~mdrh 92 Cbdigos de detección dé emir - 1 Problemas mReferencias

1

w
m

d

-

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

-1nmentadoT b i m h 112 Circuito arit rnético 113 4-9: Microoperaciones 16giras
Lista de micrqueracion& I @ h s Implantsición de h r d w r e TI 7 Algunas aplicaciónts 118 Microoperaciones de corrimiento Implantación dd hardwre 122 Unidad de corrimiento 16glco aritmétiao Problemas
Referencias

44
4-7

C A P ~ W CINCO )

Organización y. diseño bhim&

a*.
1

cogpu@doras
133

Códigos de instrucción d Organkiún de un programa almacenado

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 decdjficanóff 248 A Determinnción del tipo de instruccibn 150 Iris-de r.fera?cia a r @ t m 153 ~trucciones de referencia a memoria Ejecución de l a itzstrucción A N D n AC 255 Ejecución 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 dirección de ~m 157 r s ESZ: Incrementa y b r i w si es c m 258 %grama 05flujo & mnfrol 159 a

b3

u!

a

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 común 172 DiseAo de un +aundador 16gico Control &l regisha AC 174 Circuito s u & y Mg¿w 175 m r~ Problemas Referiencias

CAP~%EO SUS

Prograrnaci6n básica de la computadora
6-1
6-2

63

n , 64

Intducción 1 ALenguaje de máquina 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

a

W 4~&-*&-.-~ 2 9 8 6-7

Subditinas

6-8

Pardmtros de subrufina y enlace de datos Programación 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

Ejemplo de un m i c q q r a m a C u n t J ~ d e l a c o m p u k r d o r a 233 Fmto&i h mbuim235 Mjdnstnmbm sirnMicns 238

7-4

Dkfio de la w d a d de control Semmciador de r n h p r o p ~ Problemas ReferenQas

246

wi
-a

1

i

!l
U P OCHO ~

Unidad centrál de pmcesamiento

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 Instruccioñes 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 numérico

280

Transferencia y manipulación de los datos Instruccbnes de W f e r e n c i a de los htcs 283 Inshdones de mnnipulnción de los dafos 284 Instruccbms ariiméticas 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 Reíerencias .,t

&#3m $ 33 ti--' k m !-

WPW,~VE F;aralelismoy procepniento de vector
9-1 Procesamiento paralelo b 9-2 A r q a paralela Cdrtsideracidnes generales 9-3 Línea paraiela aritmética 9-4 h paralela de instnimone6 Ejemplo: L f m puhlela de instrucciones de m h segmhtos 332 D+encUi de IÚs &tos 334 Manejo de las insh-s de fransfmch de m h I 335 P 5 Arquitectura paralela RISC Ejemplo: Línea paralela de instru&es de tres segmentos 338 Carga pospuesta o rehrdudu 339 ' Transferencia pospuesta o retardada **"

* .r*rr
w
w

r

9-7

Amgio de procesadot S K M D A~10dr.pmcnadamnSl~0 M' Arreglo de p m + SIMD 350 Problemas

cA~h"LzL0 DIEZ
Aritmttica de computadoras

10-1 10-2

Introducción Suma y mta

377 tt Operaciones aritmdtieas de punto flatante Consiikrncidnes hfiiaas 378 Corofigumcibn de registros . 11-2 Dispositivos periféricm Caructers nlfanu&s ASCII Interface de entrada-salida Canal de E/S y rnúdulos de i nt* E/S versus canal de rnenrcirin 409 412 414' ..xii contenla0 10-3 357 Suma y resfa con &tos d~ mpititd Eon signo Implantación 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 . 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 aritméticas decirnies R.Bmth 372 Sobreflujonldividk 374 Algm'lmo hardware 375 m signo Otros algoritmos 10-5 rfe W . mur'** - a bdn! CAP~~ULQ ONCE Organizaci6n de entrada-salida 11-1 .. . W! Suma y m t a 395 CL Multipliuwión 397 Diarisidn 399 Opacimres & punto flPtante 4~ Problemas Referencias & . t .

ce de comunkwibtt mfnrrwra 425 Buffer prUnero m enirar.~~ xiii 11-3 Transferencia a s h n a de daC o n t d de habilitación 419 Remm'mimfo mutua 420 Trnmfeencia d l asfntnrro~ul 423 Int. de RAM y de ROM 481 483 Mapa de direcci6n & memoria .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.rf. primero en wlir M d u s de trmfemch Ejemplo & E/S p r o g r a d 431 €/S iniciacta por interrupción 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 Acceso directo a memoria @MA) 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 .

ca& 504 + +' " ' 1 ' : I\ -. .ciotzpmiento y espdí5u de mm.. 489 & i --' U4 Memoria asociativa 2 Organización de l u circüitmía 490 ~1-i ?.Conmutador de barra de cruz ~ernork rnultipuerto' 5 3 ' 0 3i j l n t n m i b n de hipercub 13-3 ' ñed de mrnuhcidn de efsipns múltiples 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- . l .i Ugim dr c&ncLiniM 492 m ~ c i & nde t Ieclura 495 Operacián de esmmSura 495 ' .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 Protección de memoria Problemas Referencias 9 13-1 *m CAP~TULQ TRECE 1 w.cnché 503 Inicklizacibn del.. . 126 12-7 Memoria virtual Espacio de direc. -. Discos mpéflcos Cinta mugtdticn .s de interconixi(in Caml común de tiempo compartido E528 531 .dm --+ 1 . 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 .--. 12-3 '6 m e .. -4 Multipmcesadores 13-2 Características de multiprocesado~5rnichir.=-=a .Memoria auxiliar 1 q.

Soluciones al probIm de c o h m h de mchd Pmblemas Referencias Condkhnes p r a incoherencia 547 549 .13-4 13-5 Comunicaci6n y sincronhcibn entre procesadores Sincronuandn entre -es 545 Exclus& mutiut m sm@m 545 Coherencia de cachd .

? .! cibn y diseíio de computadoras digitales. 11< '? & 1 ' .' Y ! 1111 iI U f..b . se han revisado por completo para actualizar el . *.1 7 1 .. LQS últimos seis capítulos pre .a n / .'i . Se apegaron dos novedades: el w t I . . E i capítulo 5 se revi& par completo para simpWar y hacer más chro e1 ll1 . .. Los capítulos del 8 a l 10 examinan la l'l. ' f' 1 . N a 'i 3> N a "r .-. El diseño de computadoras a n a k el desarrollo de la circuitwfa de .. i 1. La arquitedura de computadoras se interea por la e1 * l a 7 estructura y desempeño de los diferentes m 6 d h funcionales de la computadora y cómo interacthn para atender las necesidades de proeesamiaito del i~it: ' usuario.- w 4 . a I 1 . y . L m capitulas del 5 a l 7 muestran 1. . E l capitulo 13 aclara el concepto de multiprmesamiento. . * de una computadora elemental. I a organización de las computadoras studia l a manera en que se 1 1 .1 . 1 r organizacibn y arquitectura de l a unidad de procesamiento centrd LQS capítulos 11 y 12 estudian la organizacibn y la arquitectura de entradadda. N ' .' S . # . I~UI a El libro proporciona e l conocimiento básico necesario para comprender -.-tan la org&ci&n y arquitectura de Ias unidades f u n c i o d qaradas 1 1 de la computadora di@. *I = it ' .u YIL. 1 excepto dos (el 6 y e l lo).# S : .rirt* macibn de una computadora digitar simple. capitulo 9. I + l - 1 I 1. M :- 4 ' J 1 e v7 1 .- m). -a material y hacer mAs clara su presentaci6n. acerca del procesamiento por arquitectura paralela y vedores. . = . ' . cmectan los componentes de la circuipara formar un sistema computacb S a*-.ñ e l capitulo 13. disefío y progra1.. la tercera d c i b n ofrece b. . Dos mimes tratan acerca de 4. I 1- 19. 1 l computadoras. Los capítulos del 1 al 4 ' + presentan los diferentes componentes digitales que se usan en la organiza. * ? * * y de la memoria.w nal.. 4 necesario para e l conmimiento bhsico de ía organizacibn. . . " Hiy 1 Este libro trata de ia arquiwtura de5computadoras ?'de la organización y diseno de computadoras. " la operacibn de h cimiitería de computadoras digitales y cubre los tres temas asociados con la circuiterfa de computadoras.4. -huevos temas en relaci6n con fa segunda edieih Todos los capítulos. E l libro se h e r e primero al material más sencillo y dapub aborda temas m á s avanzados. 'i*- . . e n f a b d o loa kmas más avanzados. los primeros siete capitulos cubren el Riaterial .3 . . . tomando en consideraddn un cierto conjunto de ~ c . acerca de multipmdores. P * ~ T! . Por lo tanto. la computadora que incluye un conjunto d u c i d o de inetnicciones m. * r 1* En esta tercera edici6n e l materiai está organizado como en la segunda y muchos de los temas no cambian. Sin embargo. en detalle los pasos que debe recorrer un d i i d o r para preparar las basea .

en los qistroe de l a computadora. alguna expiencia en la progromacin de lenguaje ensamblador con unn miuncomputadora facilitar&Ia comprwisi6n del material. 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. 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 más grandes en Im capitulo9 siguientes. 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 básicos necesario^ para el diseAo de digitales construidw con base en compuertas y flip-flop d i . m E 1 CapihSh 5 p m t a la organización y e l d i o de una computadora digital básica. lbgicas y de corrimientu. 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. S e enfatiza la repmentaci&nde los números 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. Se dqmoila una unidad aritmtfica-lúgii y de corrimiento compuesta para demostrar e l disefío de la circuitería de las mimooperaciones más . E l capítulo 4 introduce un lenguaje de transferencia de registros y mueskra cbrno se usa para expresar mierooperaciones en forma simb6lica. 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 . .P iones y las mciones ae conrroi en fonna simb6lic. los circuitos combinatonos y secuenciales. sin embargo. abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispodtivo de propbsito v a l con programas almacenados. Cubre el Algebra booieana. Aunque 3a computadora es aericilIa comparada m las mmputadoras comerciales. El capitulo 2 explica en detalle la aperaci6n iópca de los componentes digitah más m u n a incluye decudifndofes.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 &tería y El libro no plantea un eonocirniento previo de la circuiterla de mmputadoras y el material puede entenderse sin nhgh requisito previo. El capitulo 3 muestra cómo se repmmtan en forma binaria b s diversos tips de datos que se encuentran en las computadoras digitales. no obstante. la computadora bhica utiliza el mismo conjunto I . % ! definen SfmboIcxs paza microoperaeiones aritméticas.

incluyendo h circuitsofa para el secuenciador de microprograma. Se presentan unidades de interface para mostrar cómo interachh el p-dm con los perif&kos extern a Se explica el pmdhiento para transferencia asincrona de d a b senales o paralel. multiplicaci6n y divisi6n y muestra los procedimientos para implantarlos con circuiterla digital. 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 implantación. Explica ia operaci6n de una pila de memoria y se muestran algunas de sus apiicaciones. a1 usar una conducción de instrucciones eficiente junto con técnicas de carga y transfewncia de control del programa propuestas. Re* en detalle el diseño de la unidad de control.(m) y analiza sus caracterZsticas y ventajas. resta. junto con una explicacidn de su funci6n. El capitulo 7 intduce el concepto de microprogramaci6~Ademdq desarrolla una unidad c a de control m ~ a r n a d o para . Se explica el concepto de arquitectura paralela y se muestra con varios ejemplos cómo puede acelerar e l procesarnimto. E l capitdo 6 utiliza las 25 inshmciones de la computadora básica para mostrar técnicas que se usan en la programación con lenguaje ensamblador. Hace una relacidn de las instrucciones m8s comunes que se encuentran en las computadoras. transfe- . b seccih presenta. Se muesh cbmo los procesadures RISC pueden ejecutar instrucciones de ciclo 6nic0. es nuevo en la tercera edición (el material sobre operaciones aritmdticas 'de la segunda dici6n se pas6 al capihdo 10). E l capitulo 11 analiza las tecnicas que usan !as computadoras para comunicarse m dispositivos de entrada y salida. Se explica mediante ejemplos k reIación entre programas binarios y d i g o simbúlico. Se desamoflan p&i&ntos pqa ndmeros de punto fijo de complemento a 2 con signo y de magnitud con signo.junto con diversos modos de dkccionamiento. Se presentan. . Se considera Ia arqui-a paralela aritm4tica y de ihstrucciones. Ilustra diferenb formatos de instrucciones. Se introduce el procesamiento de vedo= y se muestran ejemplos de operadones de punto flotante usando procedimientos paralelos. acerea de p-miento de F t o r y por arquitectura paralela. Se analizan las operacionm bhsicas de un ensamblador de cbdigo simb6lico a un programa b i r i o equivalente. mostrar un ejemplo de cbmo escribir un micrw6digo para un conjunto de instrucciones tipico.ejemplos de programación para varias tareas de p t o de datos. la computadora con conjunto reducido de instniccion. para números binarios de punto flotante y para n6mem binarios codificados en dmimales (BCD).de instrucciones de la xgunda edicih. E l capitulo 10 p m t a los algorihos arihdticos para suma. El capitulo 8 trata acerca de la unidad de p-iento cmtral (CPU). 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 diseño que se prem~tan en este capítulo.A n a h cuatro modos de transhcia: E/S programada. La W . El capitulo 9. e l estudiante podrá comprenda el -1 :i1 id -m funeionarniento interno de las computadoras digikles.

y al profesor Scott F. al profesor Murray R BerWtz. para ingen i e .ecto a memoria y el uso de pnxemdores de entradadida. en K a n w City. j u n t o con algunas posibles aolucione3. de1 Instituto Politémico de V i a . Explican en detalle la orgmizaci6n y la operaci6n de las meme rias asociativas. ilustra h e proeedimientos para trmmbibn de datos mides. al profesor Cem Ersoy. El sapihdo í2 presenta el concepto de jerarquia de memoria. que cubm las cinco unidades funcionales de las computadoras digihles. Con ejemplos espedñaos. Algunas partes del libro pueden usarse de diversas maneras: como un primer curso sobre ciGcuitería de computadoras al cubrir los capltuios del 1 ai 7. la unidad de procesamiento (capitulas 8 y 91. en particular al p b i Thomas L Casavant. Asimismo. E l libro ea eanvdente para un c m de sistemas de circuitería de computadora. Cada capitulo incluye un conjunto de problemas y una lista de referencias. pzesenta varias estnictuqs de inbconexih. Otros son de naturaleza m4s compleja y pretenden ofrecer una manera de practicar en la-mlucidn de problemas asociados.Morris Muno .con la arquitectura y e l dis&o de circ2uitería de computadoras. de de lavensidad Gemge Mason. Este libm también es conveniente para e l autoaprendizaje. al profesor Upkar Varshney. de Ia universidad polit&ka de Brookly". acceso dii. las opaciona aritm&tias (capítulo lo). M i gratitud a aquellas personas que tevisaron el texto. en las Areas de ingeniería eléctria y mmputacional o ciencias de la informática. comunicaci6n y s h n i z a a b n . como un curso en organbción y arquikhira de computadoras. Analiza la neeesldad de arbitraje entre prmaadores. memoria principal y memoria auxiliar como d b magnéticos. Midkiff. mediante la representacihn de los requisitos de circuitería para un sistema de una memoria caché y una memoria vithiat E i capitulo 13 demibe Ias caracte~ticasbásicas de los multiprocesadores. al incluir el controI (capitulo 7). Por otra parteg introduce el concepto de administracibn de memoria. al repasar el capítulo 4 y +u& cubrir lo^ capítulos del 5 al 13. como un curso de organizacibn y diseño de computadoras. de la a 1 universidad de Missouri. la entrada-salida {capitulo 11) y la memoria (capltulo 12).rmcia iniciada por intmmpción.-Algunos de los pmbIerna8 sirven fomo ejercicios para el material cubierto en el capitulo. M. de la miversidad de lowa.y cientfms que necesitan adquirir conacimientos básicos de la circuiteda de arquitectura de computadoras. SE explica el problema de la coherencia de cachk. al profesor Karan Watson de la unirnidad de Texas ABrM. con conmimientos previos de d i o de l ó g i c a digital. mmpuesta de memoria c a e .

por ejemplo. que tiene dos dígitos: O y 1.. las computadoras digitales funcionan mbs confiablemente si d o se usan d o s esMos. Estos valores se procesan internamente por componentes que puedm mantener un número limitado de estados discretos. . 2 . De esta apbcacibn ha surgido el término computadora digital. Los &@tos decimales O. h palabra digital implica que la información en la computadora se representa por variables que toman un número limitado de valores discretos. proposiciones de cierto o falso. Las primeras computadoras electr6nicas di@akj desarrolladas a finaIes de los años 40.EN ESTE CAP~"~WO 1-1 1-2 Id 1 4 1-5 1-6 1-7 Computadoras digitales Compaertas 16gieas Algebra booleana Simplificación por mapas Circuitos wmbinatorios Flip-flqs ~Circuitossecuenciales 1-1 Computadoras digitales La computadora digital es un sistema digitai que ejecuta diversas tareas de computación. s io n o ) . En este caso los elepentos discretos son los dí@toB. 1. 9. En la grActica. l o s componentes digitales que están restringidos a tomar valores d h t o s se restringen a ú n mis a tomar s61o dos valores y -se dice que mn binaribs. A un digito binario s e le llama bit. Por la restricci6n flsica de las componentes y porque la 16gica humana tiende a ser binaria (por ejemplo. proporcionan 10 valores discretos. La informaci6n bit .. se usaron principalmente para c6mputos numbricos. h s computadoras digitales emplean el sistema r(urn6rico binario..

Los datos que son manipulados por el programa constituyen la base de datos. l o s grupos de bits desarrollan conjuntos completos de instrucciones para ejecutar distintos tipos de cómputos. El cliente que compra un sistema de computadora necesitaría. A una secuencia de instrucciones para computadora se le llama programa. el número binario lOO1011 representa una cantidad que puede convertirse a un número decimal multiplicando cada bit por la base 2 elevada a una potencia entera como sigue: b s siete bits 101011 representan un número binario cuyo equivalente decimal ec 75. Un sistema de computadora se subdivide a veces en dos entidades funcionales: hardware y software. cualquier software dispc- . los números binarios constituyen un sistema en base 2 con dos dígitos: O y 1. Tambih puede representar un cbdigo de control para especificar alguna decisi6n Mgica en cierta computadora digital.2 C M ~ O NO Circuitos de 16gici se represen-9 en las computadoras digitales en grupos de bits. este mismo grupo de siete bik representa la letra K cuando se usa junto con un c6digo binario para las letras del alfabeto. Un sistema de computadora está compuesto por su hardware y el software del sistema disponible para su uso. sino tambikn otros símbolos discretos. En contraste con los niimeros decimales comunes. El software consiste en ¡as instrucciones y l o s datos que la computadora manipula para ejecutar las diversas tareas de procesamiento de datos. Se distinguen de los programas de aplicación escritos por el usuario con el prop6sito de resolver problemas particulares. se puede hacer que los grupos de bits representen no s61o los números binarios. El software del sistema de una computadora consiste en una colecci6n de programas cuyo propbito es hacer un uso m6s efectivo de la computadora. como los dígitos decimales o las letras del alfabeto. Esto es similar al concepto de que las mismas letras de un alfabeto se utilicen para construir diferentes lenguajes. En otras palabras. como el inglk y el francés. pero el compilador que traduce el programa en lenguaje de alto nivel a lenguaje de mequina es un programa de sistema. A los programas incluidos en un paquete de software de sistema se les c o n a como sistema operativo. que emplean el sistema en base 10. Por ejemplo. Sin embargo. El hardware de computadora consta de todos los componentes electrbnicos y dispositivos electromecánicos que comprenden la entidad física del dispositivo. 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. Por ejemplo. los grupos de bits en una computadora digital sirven para representar muchas cosas diferentes. Usando juiciosamente los arreglos binanos y diversas tkcnicas de dificación. ademis del hardware. Con diversas técnicas de codificaci611. El equivalente decimal de un número binario se puede encontrar expandiendo éste en una serie de potencias en la base 2.

S E C C ~ ~1 N 1 Computadores digitsles 3 orgaeizaci6n de la complrfadora nible necesario para k operaci6n eficaz de la computadora. unidades de diseos magndticos y otros dispositivw de comurticaci6~ Este libro proporciona el conocimiento básica para entender las opraciones del hardware de un ~istema de computadora. varios registros para almacenar los datos y cirmitos de control para leer de la memoria y ejecutar instrucciones. t i ' L 1 . E l procesador de entrada/salida (XOP. La memoria de la computadora almacena las instrucciones y los datos. dependiendo del interés del investigador. central processing unit) contiene una unidad aritmdiica y 16giea para la manipulaci6n de datos. El softwam del sistema es una parte hdispe~l~able del sistema total de la computadora. su diseño y arquitectura. Se supone que los diversos componentes están 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. Cuando se trata del hardware de la computadora. como se muestca en Ia figura 1-1. Su funcibn es compensar las diferencias que existen entre las necesidad. impresoras.del usuario y la &pacidad de1 hardware. El hardmre de la computadora se divide por lo general en tres grandes partes. terminales. La unidad central de procesamiento (CPU. input output prcicessor) contiene circuitos e l d n i c o s para comunicarse y controlar la transferencia de información entre la computadora y el mundo exterior. es costumbre distinguir entre lo que se refiere a la organizacihn de computadora. 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 tema se considera a veces desde tres diversos puntos de vista. Lcw dqositivos de entrada y salida conectados a la computadora incluyen teclados. Se le llama memoria de acceso aleatorio (RAM. 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.

en cualquiera de loe dos estados reconocidos. En los sistemas de computadora digital se utiliza por l o general una variedad de compuertas lógicas Cada compuerta tiene un simbolo gráfico distinto y su funcionamiento puede describirse por medio de una expresibn algebraica. el conjunto de instrucciones y las M i c a s para kcionamiento de memoria. Las sefiales eléctricas tales como los voltajes existen en todas partes de la computadora. Las teminales de entrada de los circuitos lbgicos aceptan señaies binarias de 3 y 0. Una vez que se formulan las especificaciones de la computadora. tales como los procesadores y la memoria. Incluye los formatos de i n f o M n .5 volts y los circuitos responden en las terminales de salida con h l e s de 3 y 0. La manipulación de la informacibn binaria se hace mediante circuitos 16gicos llamados wmpilertas. y de estructurarlos conjuntamente en un sistema de computadora. Los dos estados representan una variable biaria que puede ser igual a 1 o a O. Los capitula 8 y 9 tratan de la arquitechira de la unidad central de procesamiento. Por ejemplo. El diseño de la computadora se ocupa de h determinaci611de qué hardware debe usarse y c6mo deben conectarse las partes. es tarea del disefiador desarrollar e l hardware para el sistema. Este aspecto del hardware se conme a veces como impfantaciún de la cimput&ra. en forma algebraica o tabular. 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. Ia d p u l a c i b n y el procesamiento de la infomacibn binaria. ta arqtdtectitua de la computadova se ocupa de la estructura y comportamiento de la computadora desde el punto de vista del usuario.4 NO Circuitos de -1 digital E l d&& & la compufadma se ocupa del diseito del hardware de la computadora. E l de la arquitectura de un sistema de computadora a ocupa de las especificaciones de los varios mbdulos funci* nales. una computadora digital en particular puede emplear una sefial de 3 volb para representar el 1 binario y 0.5 volis para representar e l O binario. respectivamente. Este libro trata de los tres temas asociados con el hardware de la domputadora. 1-2 Compuertas 16gicas La informacibn binaria se repregenb en las computadoras digitales por cantidades físicas llamadas sdahs. Las compuertas son bloques de hardware que producen sefiales del 1 o el O binarios cuando los requerimientos lógicos de entrada son satisfechos.5 voltios para representar la entrada y saIida binarias correspondientes a 1 y 0. Sirve para describir. En los capitulas del 1 al 4 presentamos los distintos c o m p rientes digltales usados en la organización 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 diseñar y7prograrnar una computadora digital elemental. La 16gica binaria I t a de las variables biarias y con las operaciones que asumen iin significado 16gico. La relación de entrada/salida de las variables .

El circulo en la salida del símbolo gráfim de un inversor designa un complemento 16gico. la salida es O. y la salida es siempre el complemento de la función AND u OR. Produce la funcidn NOT o complemento. El símbolo de operaci6n algebraica para la funci6n AND (Y) es el mlsmo que el simbolo de multiplicaci6n de la aritmética ordinaria. Estas condiciones tambih se especifican en la tabla de verdad para la compuerta AND. Cada compuerta tiene una o dos variables de entrada binarias designadas con A y B y una variable binaria de salida designada por x. la salida es 1 si la entrada A y la entrada B son ambas igual a 1. que consiste en un shbolo gr4fim AND (Y) seguido de un circulo. y por defmici6n. mientras que la barra &re la htra se resma para designar una micmoperaci6n complemento como se define en el capitulo 4. prop6sito del aeoplador es manejar a otras compuerkas lo cual requiere una cantidad de potencia mayor. Ia c~mpuertaOR {O) produce la funcibn 0 R (0) inclusivo. esto es. de otra manera.circuito hversor NAND NOK binarias para cada compuerta puede representarse en forma tabular por una tabiu de &d. la salida es 1 si y s61o si todas las entradas son 1. E l circuito inversor invierte el sentido lbgico de la señal binatia. compuerta AND (Y) produce la función I6gica AND: esto es. 10s símbolos grAfieos. k salida es O. Sin embargo. de otra manera. El simbolo a l e r a i c o que se utifua para el complemento 16gico es símbolo de prima ('1 o una barra sobre la variable. las funciones algebraicas y las tablas de verdad de las ocho compuertas 16gicas s e listan en la figura 1-2. Este circuito sirve nada m8s para la amplificacibn de h potencia. similar al de la suma aritm4tica. La tabla que muestra i a salida x es 1 6610 cuando la entrada A y la entrada B son ambas 1. un acoplador que utiliza 3 voltios para el 1 biario producirii una salida de 3 voltios cuando la entrada sea de 3 voltios. Tanto la compuerta NAND como la NOR pueden tener mas de dos entradas.respectivamente. Un simbolo de kihgu10 por s í mismo designa un acoplador o registro intermedio. La funci6n NAND es el eomp~emento de la funcibn AND (Y). Las compuertas OR (O) pueden tener mbs de dos entradas. Por ejemplo. la salida es 1 si la entrada A o la entrada B o ambas entradas son 1. Las compuertas AND (Y)pueden tener mas de dos entradas. la cantidad de potencia elgctrica necesaria a l a entrada del acoplador es mucho menor que la potencia producida a la salida del mismo. la salida es 1 si cualquier entrada es 1. El principal. Un acoplador no produce una funci6n 16gica particular. y por definicihn. tos nombres. La compuerta MOR es el complemento de la compuerta OR (O) y lleva un simbolo grsifico OR seguido de un chulo.acomose indica con su simbolo grdfico. . Podemos usar un punto entre las variables o bien concatenar las variables s i n ningh símbolo de operaci6n entre ellas. En este libro usamos el simbolo de prima ('1 para el complemento 16gico de una variable binaria. La designacih NAND se deriva de abreviar NOTAND. ya que el valor biario de su saiida es el. mismo que el valor binano de su entrada. El símbolo algebraico de h funcibn OR (O) es + .

#=A NAND 0 B x x = [AB)' .* . * e". OR A B - x=A+B 3 1 0 m tnwm Buhr A+-.* . ?=(m+ P xm A'B'+AB Figura 1-2 CompuertasMgicas digitales."" x a'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 . .m U N Cirmib de lsgiea digital Shhh Nombre @ ! Fuaci6a dgebrnb Tabla tde wrM ANP nx ". .

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. hay ocho combinaciones distintas posibles para asignar los bits a las tres variables x. l función booleana E 1 AIgebra boohna h d d n boolea~a tabla de vedad La función F es igual a 1 si x es 1 o si tanto y' como z son igual a 1. Una función bmleana puede expmrse algebraicarnente con variables bmrias. Las compuerbs OR (0) exclusivo y NOR exclusivo se encuentran comúnmente disponible con dos entradas. de otra manera. podemos decir que F es igual a 1 si x = o s i yz = 01. Un nombre mh apropiado para la operaci6n XOR sería la funci6n impar. por ejemplo. la funci6n booleana puede ser 1 o O. en una funcibn XOR de tres entradas (impar). Por lo tanto. O R y compuertas inversas. Como se muestra en la figura 1-3{a). las variables de la funci6n se toman como . Las tres operaciones lbgicas basicas son AND. E 1 diagrama ldgico para F se muestra en la figura 1-3(b). La funcibn XOR tiene su propio sImbolo algebraico o puede expresarse en tCrminos de AND. Considere. OR y operaciones complemento como s e muestra en la figura 1-2. OR y complemento. y y z. su salida es 1 s i un número impar de entradas es 1 . x y y. los simbolos de operaciones l6gicas. La relacib entre una funci6n y sus variables binarias se puede rep-tar en una tabla de verdad. 1-3 kgebra booleana trata de las variables binarias y las operaciones 16gieas.La compuerta OR exclusiva (XOR)tiene un símbolo gc6fieo similar aI de l a compuerta OR. En un diagrama ldgico. la salida es 1 si s610 una entrada es 1 o si ias tres entradas son 1. como lo indica el drculo en su símbolo gcáfim. La salida de esta compuerta es 1 sblo si ambas entradas son igual a 1 o ambas entradas son igual a O. F es igual a O. La funci6n F es igual a 1 para aquellas combinaciones diagrama ldgtco donde x = 1 o yz = 01. esto es. si cualquiera de Ias entradas es 3 pero excluye la combinacidn cuando ambas entradas son 1. La salida de esta compuerta es 1 . 8. Asi. y sólo rara vez se encuentran con tres o m8s entradas. Para un valor dado de las a variables.El NOR exclusivo es e l complemento del XOR. Para representar una funci6n en una tabla de verdad necesitamos una lista de las 2" combinaciones de las n variables binarias. Las variables se designan con letras como A.excepto por una iínea cuma adicional del lado de la entrada. Hay una compuerta AND (Y) para el término y'z.-Hay un inversor para i a entrada y para generar su complemento f. paréntesis y signos de igualdad. Pero decir que y' = 1 es equivalente a decir que y = O ya que / t es el complemento de y. una compuerta OR se usa para combinar los dos términos. es igual a O para todas las demás combinaciones.

A u 3.$-lm -. Las primeras d o identidada muestran la relación besica entre una sola variable y si conjuneidn de las constantes binarias 1 v O. las entradm del c h i t o y el símbolo de la variable de la funcibn se toma como la salida del circuito. Expresar @n' f o m algebraica la relacibn de entrada/calida de los diagrams16gicos. Encontrar circuitos m6s simples para ia misma función. Una funei6n booleana especificada por una tabla de verdad puede expresarse algebraicamehte~de muchas imaneras diferentes. primero debemos estudiar las capacidades de manipulación del Algebra booleana. . m . 2. se puede obtener una expresibn @ S simple que requiera menos compuertas. E l propósito del Algebra booleana es facilitar el afi5lisis y el diseño de los circuitos digitale.a (15) (x +y)' = x'y' (17) (x')' = x (8j f X. s r (12) x(yz) = (xy)z (14) x 3.X' = xy = Y o m ~ d . yx = ( x y)(z (16) (xy)' = x' y' + + + z) .A U Tabla de verdad y d i p a m albgic~ para f = r - 16gim + fz. Para ver c6mo se hace esto. Todas las identidades de la tabla pueden probarse por medio de las tablas -de verdad. Manipulando una expresidn erpregibn booleatta bmleana de acuerdo con las reglas del dlgebra bmleana. Expresar en fonna'algebratca la relaci6n de la tabIa de verdad entre las variables binarias. La tabla' 1-1 enlista Ias identidades mAs biisicas del álgebra booleana.3 Tabla de verdad Fig~1 u4 @:.o =9 ( ~ ~ z + x ~ = I p)x+yay+x (11) x + ( y + z ) = (x +'y) (13) #(y + E) = ry + . cr TABLA 1-1 Identidades básicas de Mgebra booleana (1) x + o = x (2) x . Proporciona una herramienta pr6ctica para: 1 .

El sfmbolo AND invertido para la compuerta NOR se sigue del teorema de DeMorgan y de la convenci6n de que los &culos pequeiíos denotan mpI&entaci6n. .Por esta raz6n las compuertas NOR y NAND tienen dos distinb shbolos grS~cos. uno obtiene el valor origina1 de la variable. Por ejemplo. Andlogamente. 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. considere k siguiente expmidn algebraica hleana: AB' 4. Así la expresibn puede reducirse a sólo dos t é r m i n ~ M' teorema de DeMorgait tas + + C'D + A'B + C'D = AB' + C'D 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'. que se tratan abajo. De la identidad 5 de la tabla 1-1 encontramos que x + x = x.Las siguientes cinco identidades (9 a 13) son similares a las del algebra ordinaria. NOR y N Figura 1 4 i h sfmboloei g r á i i ~ ~ para a la compuerta NOR Figura 1-5 l h sfmbolos grAficw para la compuerta NAND. t a s identidades 15 y 16 se llaman teoremas de DeMorgan.como se muestra en las *ra 14 y 1-5. Análogamente. pero es muy íttil en la manipuhción de expresiones hleanas.la expresi6n puede escribirse como x + x. La última identidad afirma que si una variable se complementa dos veces. En lugar de representar una compuerta NOR con un simbolo g r & OR (O)seguido de un circulo. La identidad 14 no s6 aplica en el 4igebra ordinaria. podemos reprexatarlo por un simbofo gráñco AND precedido de clrculoa en todas sus entradas.C'D + AB' + C'D Si x = AB' CD. una funci6n NAND puede expmrse por o ($ + ?J).

considere el diagrama 16gico de la figura ld(a). Para ver cómo se emplea la manipulacibn del 4lgebra booleana para simplificar circuitos digitales. como s e muestra en la figura 13. Cada término corresponde a una compuerta yl a compuerta OR forma l a suma lógica de los tres téminos. Se necesitan dos inversores para complementar A' y C'. La salida del circuito puede expresarse algebraicamente como sigue: F = ABC + ABC' + A'C m. El diagrama 16gico de Ia expresidn simpIiicada se dibuja en la figura l-6(b).10 m UEJO Circuitos de lógica digital la compuerta NAND tiene dos símbolm distintos. P . L a expresi6n puede simplificarse usando e l áigebra booleana.A'C = AB + A'C Nótese que (C + C ' ) = 1 por la identidad 7 y AB 1 = AB por la identidad 4 en la tabla 1-1. F = A13C + ABC' T A'C = AB[C + C ' ) i. Requiere sólo cuatro compuertas en lugar de las seis del circuito de Figura l-ó l hdiagrama ldgicos para la misma W n hleana.

m h expresibn complemento se obtiene intercambiando las operaciones AND y OR y complementando cada variable individual. + xj + x. considere la siguiente expresibn y su complemento 1 Y . La expresión puede simplificarse por medio de las relaciones bAsicas del Algebra booleana. f -1 h r u -- PII 1-4 Simplificación por mapas UlIni y& =S e La complejidad del diagrama lógico que implanta una funcibn bmleana se relaciona directamente con la complejidad de la expresihn algebraica a partir de la cual se implanta tal funcibn. Cuando la funci6n se expresa en forma algebraica. Como un ejemplo. La forma general del teorema de DeMorgan puede apresarse como sigue: ( x ~ X ~ X ~ . . ' f x. A h -&' A -Del teorema general de IkMorgan podemos derivar un prdimiento s h 1 mrtlmiple para obtener el complemento de una expresión algebraica. ta represen'tacibn de la tabla de verdad de una M 6 n es Cinica. Los dos circuitos son equivalentes y producen la misma relaci6n de tabla de verdad entre las entradas A. El mgtodo de WI . 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. Sin embargo. . B. 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 número rnhimo de t4minos necesa~ios . bl h -iWI ' complemento de una huicion El complemento de una función 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. m p * L . Note que el complemento de C ' es C . mapas proporciona un procedimiento sencillo y directo para simplificar las b expresiones h1eanas.+ A- F = AB + C'D' + B'D F'= ( A 1 +B')(C + D)(B t D') *-a.la figura 19(a). 1-- . el complemento de una función puede derivarse por medio del teorema de DeMargan. C y la salida F.T. p r o la funci6n puede aparecer en muchas formas difermtes cuando se expresa algebraicamente. ) x.. ~= . ese procedimiento es algunas veces difícil porque carece de -las especificas para p r e d d cada paso sucesivo en el proceso manipulativo.

Los nombres de las variables se enlistan a ambos lados de la línea diagonal. Reconociendo los diversos patrones y combinando los cuadradas marcados con unos en el mapa. equivalentes a los 2" números b h r i m obtenidos de n bits. Este término mínimo r e p p senta un valor para las variables binarias A. a lo largo de las orillas izquierda y superior del mapa. que puede obtenerse del 1 en el segundo renglón concatenada m el 01 de la segunda columna. Por ejemplo. tres o cuatro variables se muestran en la figura 1-7. de las cuales se selecciona la más conveniente. el t6rmino mfnimo 5 en el mapa de tres variables es 101 en binario. para algunos téminps mhimos y O para otros. la tabla de verdad de la ñgura 1 3 puede expresarse como sigue: Las letras en paréntesis indican las variables binarias en el orden en que aparecen en la tabla de verdad. La variable con símbolo de prima (complementada) aparece en i a mitad restante de l o s cuadrados. Por ejemplo. Por ejemplo. en la esquina del mapa. B y C .12 cAPmno&O Circuitos de lógica digitd t6rtnino mínimo mente la funcih. b s cuadrados correspondientes a los términos 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. y cada uno de éstos representa un término minimo. Cada variable den. Imi thninos mhimw ausentes de la lista s o n los que producen O para la funcibn. Cuando se expresa en una tabla de verdad una función de n variables tendri T témiinos m i n h . es posible derivar expresiones algebraicas alternas para la funci6n. la tabla de verdad de la figura 1-3 contiene ocho términos minimos. E l término mínimo representada por un cuadrado se determina por ias asignaciones b i n a h de las variables.de las Uaves contiene la mitad de los cuadrados del mapa donde la variable aparece sin dmbolo de prima ('). La informaci6n de una tabla de verdad puede expresarse en forma compacta distando los equivalentes dechales de aquellos térniinos núnimos que pdueen un 1 para la funci6n. E l método de mapas se conoce también como mapa de Karnaugh o mapa K Cada combinación de variables en la tabla de verdad se llama Mrmino mínimo. Los 2 ' téminos mínimos se listan con un número decimal equivalente para una referencia f d d . Una funcidn boofeana es igual a f. Los ceros y los unos marcados a la largo de cada renglbn y cada columna designan el valor de las variables. Los números de término minimo se asignan en un arreglo ordenado tal que los cuadrados adyacentes representen téminos m h h o s que difieran por &lo una variable. con A y C sin primas y . El sirribo10 sigma representa i a suma de los términos minimos que siguen en parénmis. ios mapas de funciones de dos. El mapa es un diagrama hecho de cuadros. i m términos mínimos que producen 1 para l a funcibn se enlistan en su equivalente decimal. El número de cuadros en el mapa de ñ variables es 2".

Lo mismo se aplica a los cuadrados superior e inferior de una columna. AB'C). Cada p p o de cuadrados representa un ténnino aigebraico y el OR de estas términos da una expmión algebraica simplificada de Ia función. a B con prima (eeb es. m y cuatro variables. De acuerdo c m esta definici6n de ser adyacente. excepto por una variable. Estos grupos deben contener un número de cuadrados que sea una potencia entera de 2. los cuadrados de las cuatro esquinas de un mapa tambih pueden considerarse como adyacentes. los cuadrados de los exttemos del mismo renglón horizontal pueden también considerarse adyacentes.m&igun - W Mapas para funcione de dos. . Los siguientes ejemplos muestran el uso de1 mapa para simplificar funciones boolearw. Como multado. ios cuadrados que contengan unos se combinan en grupos de cuadrados adyacentes. c) D Mapa de cuatm variabb -a- . el término mínimo 5 en e l mapa de cuatro variables representa un tkrmino & o para cuatro variables. que aparec'e compIementada en un cuadrado y sin complementar en e l cuadrado adyacente. Los grupos de cuadrados adyacentes combinados pueden compartir uno o más cuadrados con uno o más grupos. Por otro lado. El número binario contiene los cuatro Wts O101 y el término correspondiente que reprewnta es A'BC'D. los términos m í n i m o s de cuadrados adyacentes en el mapa son id& adyacentes ticos.N A 1 a ~ 1 4 S i m p l i f i d por mapas 4 v C b ) . 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.Mapa de hv & b h y . .

C)= Z (O.5. Esta columna pertenece tanto a B come a C y produce el término BC. . Estos cuadradoe pertenecen a los os minimos 3. C) = E (3. - figura í-9 Mapa para F(A. ~ c d l d l i i .4.6). 4. 2. t v Los cinco téminos mínimos están 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 ténnino C'.En el primer ejemplo simplificaremos la funcibn booleana E i mapa de tres variables para esta funci6n se muestra en la figura 1-8. 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'. * A L baww Figura 1 4 Mapa para F ( k B. 6 y 7 y se reconde la figura 1 7 @ ) . - r p m** dul . A i ~ A . Los cuadrados wtantes marcados con 1 prbme~ ~ L 1 ~ * ~ c . . La expresión algebraica simplificada para l a M b n es el OR de los das términ= EL segundo ejemplo simPl%ca'la siguiente función booleam . C 67). cada cual para los términos n . asl que producen el término AC'. I h cuadrados adyacentes se combinan en la tercera columna.Hay cuatm cuadrados marcados can ntuneros &os que produce un 1 para la M b uno. 8.

G.C e 4 i 1 r a F = BID' ~ + B'C' + A'CD' . Esto ee rpodble porque esto8 cuatro cuadrados m adyiteentes cuando el mapa se consWera con las orillas superior e inferior. La funci6n contiene unoe en las cuatro esquinas que. = C' + a'' El Wrcer ejemplo necesita 'unmapa de cuatro variables.8. 1. Con una rnodificacibn menor. de Ias propiedades básicas del AIgebra bmlieafiaiL Los unos del mapa Figura 1-10 Mapa para F(A.. P. Algunas veces es conveniente obtener f expresibn d@aira' para la función en una forma de producto de suma. El prucdmiemto para obtener h exptesión He producto de sumas se sigue. dan el t4rmUio B'D'.8.10) m el mapa cubierta por esta función de cuatro variables comiste de las madrados marcados con unos en la figura 1-10.10). B. Las sumas son tbrminos O R y el producto denata el'AND de estos términos.SCUdN 1 4 Simpliiicacióri por mapas 15 . C. D)= C (O. P(A. .2 6.mínimo 4 cen al término mhhor5 y pueden combinarse con e k cuadrado del término para producir e l ténnino AB'. El 1 *stanhen el cuadrado del tremitto minitn~ 6s e combina con el término mInimo 2 para dar el término A'CD'. 1 . D)= Z (O. ta funcidn simplificada es -Y ~implif icaci6n de producto de sumas L a s &presiones booleanas derivadas de los mapas en los ejemplos anteriores se expresaron en forma de suma de productos. la forma de producto de sumas puede obtenerse de un mapa.9.9. tomados como grupo. Lrw h5rminos de productos son tdrmincris con AND y la sumde116ta el 08 de estos términos.& 6. ta funci6n simpmcada es 9 El 4. 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 húwiar para que den el t é n i n o B ' C ' .

&tenemos la funci6n simplificada en la hfrna de producto de sumas: F = (A' + B1)(C'+ D1)(B' + DI b . La mejor m e r a de mostrar mto es con un ejemplo. expresión de suma de productos se implanta en la figura . Queremos simplificar l a siguiente función 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 términos mínimos no incluidos en F y por l o tanto denotan el complemento de F. Tornando el complemento de F ' produce una expresibn para F en la forma de producto de sumas. Combinando los cuadrados con unos nos da la M 6 n simplificada en la forma de suma de productos: F = B'D' + B'C' + A'C'D Si los cuadrados marcados con ceros se combinan. como se muestra en el diagrama.representan los t h h o s minios que prcdueen 1 para la funci6n. Si marcamos los cuadrados vacíos con c e m ~ y lo^ combinamos en grupos de cuadrados adyacentes.complemento de F ' . d i a g r a m 16@m de las dos expresiones simplificadas se muestran en la f i w a 1-12. obtenemos el complemento de la funcibn. Los cuadrados no marcados con 1 representan los h r ú n o s mínimos que producen O para la funah. obtenemos la funci6n complementada simplificada: a4 . t " F' = AB + CD + BD' Toman& el. F.

y el diagrama asi obtenido es equivalmte al que se muestra en la figura 1-12(b). una para cada uno de los b4miinos 0R. Hay tres Iíneas en e l diagrama con &culos en ambos extremm. Hay ocasiones donde no importa s i la funci6n produce un O o un 1 para un M i n o mínimo dado. los dos círculos Pueden quitame y e l diagrama resultante es equivalente al que muestra en la figura 1-12(a). los dos &culos a ambos ladm de cada h e a pueden quitarse. Una expresión suma de productos puede implantarse con compuertas NAND como se muestra en la figura 1-13(a). h s compuertas AND se conectan a una compuerta OR única cuando están en la forma de la suma de productos.SMXI~N 1-4 S i m p m por mapas 17 a) Suma de 4 - - b) Roductm de suma F = B'D' + B'C +A'C'D !Figura 1-12 Diagrsmas Id@ F = ( A ' + ~ '(C'+D')V'+D) ) c m compuertas AND y OR 1-12(a) con un grupo de compuertas AND.Ya que la funci6n puede ~r un O o un 1 . una expresidn de prcducta de sumas puede implantarse con compuertas NOR como se muestra en l a figura 1-13(b). Condiciones "no importai' Los unos y ceros del mapa representan los téminos mínimos que h a m que la funci. Otra vez. N 6 k e que l a segunda compuerta NAND se dibuja con el símbolo grsfico de la figura 1-5(b}. 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 estándar. decimos que no nos importa cuál pueda ser la gatida de la . Las salidas de las compuertas AND se conectan a las entradas de una compuerta OR iinica. h s compuertas OR se conectan a uaa compuerta AND única cuando esun en la forma de producto de sumas. así que no s e incluyen inversores. Los dos dyulos en la misma lhea designan e l doble complemento. una para cada uno de: ios términos AND. La segunda compuerta NOR se dibuja con el sfmbolo @fim de k figura 1-4(b). En cada caso se supone que Ias variables de entrada están directamente disponibles en su complemento. y puesto que (x')' = x.6n sea igual a 1 o O. Las salidas de las compuertas OR se conectan a las entradas de una compuerta AND Suiica. Anhlogamente. La misma funci6n es implantada en la figura 1-220 en la forma de producto de sumas con un grupo de compuertas OR.

Estas condiciones "no importanproporcionan una simpljficición adicional de la expresihn algebraica. Además. producen O para la funcibn. L L . funci6n para este t4rmino mínimo.. Los demás tkrmintw mhimos. El mapa se muestra en la figura 1-14. "cuandose e w o p cuadrados adyacentes para la funcibn en e l mapa.L X L . En cada caso. aquellos de d se marcan con X y los cuadrados restantes se marcan ceros. C) = (O. B. No es Figura 1-14 Ejemp10 de mapa eon condicionen "no importam. puede suponerse que las X sean O 0 1 . 4 y 7. Las términos minimae de F se marcan con unos.- 3 La=-- . considerese la simiente funcidn b e a r i a importa": F(A. enlistados con d prod&en un O o un 1 para la funcibn. la X no se necesita s i no contribuye a la simplificaci6n de la funcidn. .a) Con wmpuertas NAND 1 F 1 -.% 6 ) - . Los unos y las X se componen en cualquier manera práctica para incluir eI mayor número de cuadrados adyacentes. la elección depende &lo de la simplifiación que ejemplo. cualquiera que dé la expresibn m á s simple. .--- A- m-&- t é m i n o s mínimos "no importa". ios t h i n o s mínimos 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.

Lm. y entre éstas hay una interm-exihn de compuertas lógicas. La expresidn simplificada es i 1 0 dbt m F = A' + BC' N&se que el término mlnimo ''no importa" 5 no se induy6 porque no --m-contribuye a la simplificación de la expresibn.incluir > X. diagramu se muestra un diagrama de bloques de un circuito combinatorio. En la figura 1-15.d u n t o de entradas y salidas. El . Un circuito mmbirrato~o transforma la infor- .Al los h r i i n o s mhimos "no-importa" 1 y 3 m los unos en el primer renglón obtenemos el término A'. Esto se escogi6 así porque esta a s i v i 6 n produce la exgmión booleana más simple.a ' nwe'mm incI& bdas a algana de las -. . la expresihn Bynplificada para F sido u F c Q n - wL i Y" A'C' + BC' Esto requerida dos compuertas AND y una compuerta OR. 3 y 5 se espeeifiearon oomo condiciones "no importa"!# hemos escogido ios términos m h h o s 1 y 3 para producir un 1 y el término mCnima S para prcducic un O.2 5 *""*- 'Un circuito combinatorio es un arreglo de compuertas lógicas con un conm . -.2 y 6 y de los términos &irnos "no importa" 1 y 3.A a a i d - b t a eonsiste de los t4rmintis mínimo9 originales 0. Adbqbut8!dtb&P 1-5 Circuitos combinatorios r . c m . Nótese también que si los -tenminos mínimos "no importa" 1 y 3 no hubiesen sido induidos con los % o s . E l 1 restante para el término mínimo 6 m combina con el término mínimo 2 para obtener el tdrmino BC'. las m variables 'W --'--" ~ ldr d e salida b i a s van a un destino externo. que requiere d o una compuerta AljD (Y) y una compuerta OR (O).Wmho mhimo 5 no se incluye en la M b n . Las n de bloqaw variables de entrada W r i a s vienen de una fuente extema. los valores binarim de las salidas son una combinación binaria de las entradas. representa la funci6n bookana . E n cualquier momento dado. Puesto que los t h n h o s m h h o s 1 . función se determina completamente una vez que las X se asignan e l mapa a los unos o a los ceros. AsI la expreaibn . m q u e sf todos 1& m.en comparacibn la expmibn obtenida previamente. .

es necesario interpretar la operación del hito a partir de las funciones booleanas derivadas o de la tabla de verdad.M S . El procedimiento comprende h a siguientes pasos: C 1. Cada función de salida se expresa en términos de las n variables de entrada. 2 Se asignan símbolos literales (letras) a las variables de entrada y salida. La tabla de verdad enumera los valores biarios de salida correspondientes a cada una de las 2' combinaciones de entrada. Uii circuito d i n a t o r i o puede desctlbirse mediante una tabla de verdad que muestre la relación buiaria entre las n variables de entrada y las m variables de salida. . Estos circuitos sirven como b8sic~ de ~ construcción para ciscuítos a r i t d b s más complicados. diseño El d k d o de &mito&combinatorios parte del planteamiento verbal del problema y termina con iin diagrama de cirruito lbgiro. A - - Para demostrar el M o de h c i m u b combinatorios presentarnos dos ejemplos de circuitos atitm&ticossimples.las funciones booleanas simplificadas para cada salida. 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. 5. Se establece e1 problema.h binaria de los datos de entrada dadm a los datos de salida requeridos. las funciones booleanas o la tabla de verdad es suficiente para la verificacibn.m variables de d d a Rgura 1-15 Diagrama de bloque con circuito comb'mbria maci.una pot cada variable de salida. Se deriva la tabla de verdad que define la relacidn entre entradas y d a s . Si el circuito digitai va 'acompaiiado de una explicacibn verbal de su funQ6n. Se obtienen. 4. 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. 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. Se traza el diagrama 16gico. Un circuito combinatorio puede-se tambh con m funciones booleav ~ G . 3. Si la funclbn del circuito eskl en hvetigaci6n. El dxioo de tai investigación se realiza si uno tiene experiencia y familiaridad con circuitos digitales.

z. la salida S representa el bit menos significativo de la suma. . Las variables de salida se llaman suma y acarreo. Las dos salidas se designan por los simbolos ' S (por suma) y C (por acarreo). La variable binaria C da el acarreo de salida. 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.ddoiahab&dddc = ~ o . denotadas con x y y. ia tercera enkada. - --- -- Figura 1-36 Semisumador. Un circuito combinatorio que ejecuta la suma de dos bits s e llama un semisumadar. representan los dos bits lid significativos a sumarse. La tabla de verdad para el sernisumador se muestra en la figura 1-16(a). L a variable binaria S da el valor del bit . Lns funciones booleanas para las dos salidas pueden obtenerse directamente de la tabla de verdad: C . Las dos salidas son necesarias porque la isuma aritmética de tres dígitos bhrios fluctilia entre O y 3 y e l 2 o e l3 binario. menos sign&cativo de la suma. a menos que ambas entradas sean 1 . representa el acarreo de la -icibn menos significativa previa.Los - . necesitan dos dígitos. 1 A a - El)diagrama lógico se muestra la figura 1 1 6 @ ) . aumaaor compiero io btau El sumador compieto ea m circuito combinatorio que forma la suma aritm& tiea de tres bits de entrada. La tabla de verdad para el sumador completo se muestra en Ia tabla 1-2. Lis variables de entrada de un semisumador se llaman bits sumando y c&umando. El nombre anterior proviene del hecho de que s e necesitan dos semk+ufnadorespara implantar un sumadoc completo. Consiste de una compuerta XOR y una compuerta AND. & 9 * * t 1 & b& b ~ S = x ' ~ + x ? / . a) Tabla de verdad b)D+m+o . Uno que ejecuta la suma de tras bits (do6 b i b ~ignificativoo y el acarreo previo) s e llama sumador completo o total. Dos de las variables de entrada. La salida C es O. ' = x ~ i.+misumador El circuito aritm6tico digital más simple es el de la suma de dos dígitos binarios. Consiste de tres entradas y dos salidas.. que tiene &S ¿@tos. Es necesario especificar dos variables de salida porque la suma de 1 + 1 es el binario 10.

Una expresi6n posible para C -a C = Ay + (x'y + q ' ) z 6Y Pigun 1-17 Mps para semisumadbr. Zios unas en los cuadrados para 10s mapas de S y C se determinan dkedanwnte de los t&nninos mínimos en l a tabla de verdad..un a de 3.. Los cuadrados con unos para la salida S no e combinan en grupos de cuadrados . Los mapas de la figura 1-17 sirven para encontrar las expresiona algebraicas para las dos variables de salida.mmpieto Entiadas Salidas d - B:d . E l valor de ias vafiables $e aaiida s e determina de la suma aritmktiea de los bits de entrada. la salida S es igual a 1 cuando sblo una entrada es igual a 1 o cuando las tres entradas son iguales a 1. Lns cuadrados comunos para la salida C pueden combinarse en una variedad de maneras. Cuando todos l o s bits de entrada son 0.22 c&ITlLO UNO CtmJtos de lógica digital TABLA 1-2 Tabia de wrdad pat. si dos o tres entradas son igwles a 1. ¿Lasalida C tiene. Pero ya que la salida es 1 cuando un 4 -----número impar de entradas es 1 .a sumad~.adyacentes. S es una función impar y representa la Aci6n XOR de las.variabIes (véaae lo establecido al final de la s ~ d 6 n 1-21. & o &1' renglones baja las variables de &bada deignan todas las posiñles rrvn 9d I! combinaciones que pueden tener las variables binarias. .

el sumador completo (FA) se designara por un diagrama de bloque como se muestra en la *figura 1-18@). cimrttos secuedale6 Las elementos de -hacenamiento ernpkadas en los circuitas semenmluj ciales con reloj se llaman flip-flopp. ya que raramente maüieptan problemas de inntabilidad y i u LL . Los circuitos secuenciales stncronos emplean seiiales que afectan las elementos de almacenamiento s610 en instantes discretas de tiempo. cada iuio de los cuales puede considerarse separadamente. 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. 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.DhQona cuenta de que x'y + xy' = x @ y o incluyendo la expresi6n para la saiida S. L a sincronizaci6n I d se logra con Un dispositivo de tiempo llamado generador de pulso 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. Aunque es probable que cada sistema digital tenga un circuito combinatoh. El tipo más común de circuitos secuenciales es el tipo sínmno. Los circuitos digitales eonsideradus hasta aqyi han sido combinatorios.temporizaci6n le dexompone f4cihente en pisos dSsmetos independientes. N6tese que el circuito del sumador completo consta de dos semisumadores y una compuerta OR Cuando l o usemos . La a-d ' circuitos -endales shcronos con reloj son de los que m6s se emplean en la prbctica. L - . que produce un tren periodico de pulsos de reloj. Un flipflop es una celda binaria capaz '*. donde las 'salidas para cualquier tiempo dado son enteramente dependientes de las entradas que estén presentes en ese tiempo.en los rapltulos subdguientes.

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. la salida del circuito no puede cambiar independientemente de cuáles sean J w valores de las entradas S y R. el flipflop va al estado O (rwiicio). Las columnas de S y R dan los valores bimrios de las dos entradas. Un flipflop mantiene un estado binario hasta que es dirigido por un pulso de reloj para que cambie de estado. Si S = 1 y R = O cuando C cambia de O a 1 . La operaci6n del flip-flop es como si'gue. Si tanto S como R son O durante la transicih de d o j . de m ' m Flipflop SR a r z i m# El símbolo grsfico del flipflob SR se muestra en la figura 1-19(a). e l flip-flop va d estado 1 {inicio}. . Hay un pequeiio triángulo enfrente de la letra C . mipfiop SR. una para el valor normal . la salida Q s e "reinicia" o barra en O. La tibla característica mostrada en Ia figura 1-190 resume la operacidn del flipflop SR en forma tabular. Tiene una saIida Q . 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 después de la ocurrencia de una transicibn de reloj (referida como e1 estado siguiente). Si S = 10 y R = 1 cwiido C cambia de O a 1.d Figura 3-19. Tiene dos salidas. y a veces también tiene una salida compIernentada. R (reinicio o borrado) y C (para reloj). la salida es impdecihle y puede ser O o 1. una transici6n de reloj no produce un cambio de estado Iesto es. S (de i n i c i o ) . para designar una mtrada dimímica. la que se indica con uh círculo en la otra terminal de salida.Si S = O y R = 1. la salida Q se inicia en 1 . Abajo se presentan l o s tipos m k comunes de flipfbps. Tiene tres entradas. la salida no cambia. -- - . La diferencia entre los diversos tipos de fiipflops está en e l número de entradas que posean y la manera en la cual las entradas afeetan el estado Finario. Q{t $ 1) = Q@]. Si S = R = O. almacenar un bit de información.y una para el valor complementario del bit almacenado en 41. El simbolo indicador dinámico denota el hecho de que el flipflop responde a una transid6n positiva (de O a 1) de la señal de reloj. Cuando tanto S como R wm Iguak a 1 .+. S i no hay un señai en l a entrada de reloj C. Si S = 1 y R = O. .dependiendo de los retrasos de tiempo internos que ocurran dentro del circuito. .

La entrada D se muestra durante la ocurrencia de una transici6n de reloj de O a 1. Nótese 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 sólo una entrada (excluyendo a C). Esta condicih indeterminada hace al flipflop SR diflcü ¿e manejar y por 10 tanto. 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 . Un flip-flop SR se convierte a un flip-flop D insertando un inversor entre S y R y asignando el símbolo D a la entrada única. la salida del flipflop va a1 estado 1. Cuando las entradas J y K son ambas igual a 1.Las entradas J y K se comportan como las entradas S y R para iniciar y reiniciar el fiip-flop. la salida del flip-flop va al estado O. E l fiipfeop SR no debe &ir Flip-flop D El flip-flop D (datos) es una ligera modificaci6n del flipflop SR. pero si D = O.De la tabla característica notamos que el siguiente estado Q(t + 1) se determina de la entrada D. una transición de r e l o j alterna las salidas del fliprfl~p a su estado complementario. se usa rara vez en la practica. Fiip-flop JK Un flip-flop JK es un refinamiento del flip-flop SR en el sentido que la condición indeterminada del tipo SR se define en el tipo JK. La condici6n "sin cambio" puede llevarse a cabo deshabilitando la seiial de reloj o retroalimentando la salida en Ia entrada. respectivamente. tiene Ia desventaja de que su tabla caracteristica no tiene una condición Q(f + 1) = Q(t) "sin cambio". El simbolo gráfico y la tabla característica del flip-flop D se muestran en la figura 1-20. de manera que los pulsos de reloj conserven inalterado el estado del flip-flop.puhs de reloj--do S = R = 1 ya que produce un estado siguiente indekmimdo. La relaci6n puede expresarse por una ecuación característica: Esto significa que la kalida Q del flip-flop recibe su valor de la entrada D cada vez que la seííal de r e l o j pasa a través de una transición de O a 1. Si D = 1.

se obtiene del tipo JK mando las entradas J y K se conectan para proporcionar una entrad'a $ica designada por T. Figura 1-22 Flipflop T.1) = Q'(t) cuando tanto J como K s o n igual a 1.ei1mte a Ia entrada S (inicio} del flipflop SR. Cuando T = 1 U = K = 1) una transici6n de reloj complementa el estado del flip-flop. En lugar de la mndicih indeterminada. y la entrada K es equivalente a la entrada 8 ( r e i n i c i o ) . tiene sólo dos condicioms. que se muestra en la f p r a 1-22. . el flipflop JK tiene una ccmdici6n complementaria Q(t 4.por lo tanto. 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. La entrada J es equiv. Este @p-flop.El fiipfiop T. Cuando T = O (/ = K = 0)una transicibn de reloj no cambii el &tado del flip-ficp. Estas condiciones pueden expresarse por una ecuacibn característica: Flip-flqp disparado por el flanco El tipo más común de flipflop que sirve para sincronizar eI cambio de estado durante una transicidn de pulso de reloj es el flipfiop disparado por e ! sin cambio Limpiar en O Ekkablecer en 1 CwnplemPniar b) Tabla de cuaclerbtiws Figura 1-21 Hip-fiop JK. foggle).La figura 1-21 muestra el simbolo g r á k y la tabla caracterlstica del flipfbp IK.

La figura 1-23{al muestfa ia &tal del pulsa ae reloj en un flip-flop D disparado por e l borde positivo. . 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 salida no puede cambiar cuando . La transicibn positiva efectiva es pcir lo general una f r a d n muy pequeiIa del periodQ total del pulso de reloj.en el cual la entrada D debe permanecer en un valor constante antes de la transición. positiva e) Fiiphp D activado por ibnoo positiva de reloj negativa b) F l i p h p D activado por h .pulsasi.eI reloj esta en el niwl 1. Figura 1-23 Flipflop activado por Flanco. Ls figura 1-23@) muestra d shbolo gr6fm correspondiente y el diagrama de tiempos para un fiip-flop D disparado por el flanco negativo.tLansici6n positiva. La transieibn de reloj positiva efectiva incluye un tiempo mínimo llamado el tiempo de esfablecimimto. y un tiempo definido llamado tiempo.mnegativo . del nIoj e l borde. de retencidn. E n este tipo de flip-flop. E l símbolo gráfico incluye un círculo de negaci6n e~rentede1 indicador dh8&o de La entrada C . 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. En &e caso el flip-flop -nde a la t r d b n de Ia señal dd reloj del n i v e l 1 al nivel O. en el nivel O o en una transición del nivel 1 d nivel O. Cuando el nivel4 d d pulso de entrada excede este nivel de umbral. las transiciones de la salida m n a un nivel específim del pulso de reloj. üi valor en la entrada D ae transfiere a la salida Q cuando d reloj hace una. Esbo denota comportamiento disparado por el borde neptivo. en el cual la entrada D no debe cambiar despuCs de la transición positiva.

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 . Estas entradas son útiles para llevar los fiipflops a un estado inicial antes de su operación cronornetrada. Este tipo de circuito consta de dos flip-&s. Ei mdhdo es que la saiida cambia durante la trmsiciian de la h l del r e l o j de 1 a O. Estas entradas por para iniciar o borrat el fiipflop en forma asincrólo 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. al nivel fiiegativo del re1. Q(t) y Q(k i. 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.1) y wia columna para cada entrada para mostrar cómo se alcanza la transici6n requerida. Durarrte el d M o de los h i t o s secuenciales conocemos por 10 general h transición requerida dei estado presente al estado siguiente quisidramos encontrar las eondicie nes de entrada del flip-flop que causen la transición requerida.flfpflo~ ~mo*w~lawo *" a Otro tipo de fiipflop que se usa en algunos sistemas es el fiipflop amessclavo. i m fiipflops disponibles en c h i t c s integrados proporcionarh a veces terminales de entrada dca.q. TabIas de excitacibn Las tablas caracteristicas de los flip-Aóps especifican el estado siguiente cuando se conlas entradas y el estado presente. TABLA 1-3 Tabla de excitación para cuatro Eiip-flopc *OOP JK Flip-fiop T . Hay cuatro transiciones posibles del estado presente Q(t) al estado siguiente Q(t + 1 ) . La tendenaa es alejarse del uso del fiip-flop mo-esclavo y acercarse a los flipflops disparados por el flanco. Fa tabla 1 3 enlista las tablas de excita& para lm cuatro tipos de flipflop Cada bbia consta de dos oolumnas.

P Diagrama de blque de un circuito s e d 1 &mono con reioj. E s t e p m demuestra que las salidas externas de un circuito secuencia1 son funciones tanto de las entradas externas como del estado presente de los flipfIops. Las salidas de los fiipflops. En general. en un flipflop JK. En ambos m J debe sw O. a su vez.Las con'diciones de entrada regueridas para cada una de estas transiciones se derivan de la infonnaci6n disponible en las tablas caracteristias. Puesto que la transición requerida -4 eri cuaiquier caso. puede incluirse cualquier n-ro de flip-flops. pera K S O en el primer caao y 1 en el segundo. 1-7 Circuitos secuenciales Un circuito secuencid es una interconexión de fiipfiops y compuertas. E l shbolo X en las tablas representa una condicibn "no importa" esto es. Por ejemplo. no tiene importancia si la entrada del flipflop es O o 1. o ea lo d s conveniente. pero cuando se incluyen junto con los flipfiops. La compuertas por si mismas constituyen un circuito mbinatorio. 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. Adeds. el bloque del circuito combinatorio recibe seiíales binarias de las entradas exkmas y de las salidas de los flipflops. 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). Como se muestra en el diagrama. las safidas del circuito combinatorio van a las salidas externas y a las entradas de los flipflops. 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. se aplican a las entradas del circuito combinatorio y determinan el comportamiento del cjrcuita. el estada siguiente de T o s fipflops es también una funcidn del ~tado presente y de las entradas externa As& un circuito secuencia1 se A Figura 1-2. Consiste en un circuito combinatorio y un niimem de fíipfiops sincronízados por el reloj. 3 1 diagrama de blques de un circuito secuencia1 sincm nizado por el d o j se muestra en la figura 1-24. Las compuertas en el a d t o combinatorio determinan el valor binario que va a almacenarse en los fiipflops despubs de cada transicibn de reloj. circuito completo se clasifica como un circuito secuencial. . e].

Tiene una variable de entrada x. tfts intemonexiones entre las compuertas del circuito eombinatorio pueden especiücam por un conjunto de expresiones bleanas. en la figura 1-25.compuertas OR y el inversor forman la parte I&gicacombinatoria del circuito.matar el nombre de la variable de la ecuacidn de entrada y un subíndice para designar e l slmbolo escogido para la salida del flipflop. una variable de salida y y dos flipflops D cronometrados. tenemos dos ecuaciones de entrada) daignadas DAy ag. Adoptamos la n o m a de usar eI &bolo de entrada del fipflop para d. 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. ni'm d d ~ E-cuacioneede entrada de los fiip-floppUn ejemplo de un circuito secuencia1 se muestra en la figura 1-25. salidas externas y estados b W o s de los flipflop intemm. La primera letra de cada símbolo denota la I I L t l + q a m -- eeuaddn de entrada . Así. Las compuertas AND.especifica por una secuencia de tiempos de hs entradas extemas.

L a variable con subíndice es d nombm de una variable binaria para la salida de un circuito rombinatorio.una expresibn booleana para un circuito combiitorio. En circuitos menciales sincronizados por reloj. s p salidqs y el estado de los fiipfbps. en-. esfado siguiente y salida. ta seccidn de salida da el valor de y para cada estado presente y condición de entcada. escribimos la primera ecuación de entrada como donde A y B son laa salidas de los dos flipfiops y x es la entrada externa. Esta salida puede especificarse algeb'raicammte por la expresión y = A%' + Bx' De este ejemplo notamos que la ecuaci6n de entrada del fiip-flop e a . los estados siguientes como una funci6n de las entradas y de los estados L u presentes. Un &mito secuencia1 se espeeifica pw una tabla de estado que relaciona las salidas y i.La letra del subíndice es el nombre del símbolo del flipfl~p. En ' . la transicidn del estado presente al estado siguiente se aetiva por la presencia de una &al de reloj. Puesto que la salida de la compuerta OR se conecta a la entrada D del flipflop A. que es una funcidn de la variable de entrada y el estado de los flipflops. La sección de entrada da un valor de x para cada estado p m t e posible. E & salida siempre se coneda a la entrada de un flipflop. 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 .entrada D de un fiipflop D. Tabh de estado El comfiorhmiento de un ciEcuita secuencia1 se detemina por sus entradas. 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.las eamcions de entrada son funciones booleanas para Ias variables de entrada del flipflop y pueden deducirse por inspeeeidn del circuito. Tanto las salidas como el estado msiguiente mn funciones de las entradas y del estado presente. 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 también tiene una salida externa. ia tabla de estado paxa el circuito de la figura 1-25 se muestra en la tabla 1-4. La secci6n del estado presente muestra los estados de los flip-flops A y B en cualquier tiempo t. rotuladas estado presente. ta tabla consta de cuatro secciones.

ocurre despuh de la aplicación de la sefial de reloj. La transición del estado presente al estado siguiente . Los valores del estado siguiente se deducen entonces del diagrama lógico o de las eeuacioqes de entrada. 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.Salida A Entrada siguiétite' x A B B Y este caso tenemos & combinadones binarias &l QOO al 111. n columnas para las entradas. Por l o tanto.. D e manera similar. 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.. La ecuación de entrada para e l flipfíop 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. m columnas para e 1 estado siguiente y p columnas para las salidas. n variables d e entrada y p . la ecuación 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. Las columnas para el mtado preente y las entradas se combinan y bajo btas listamos las 2'- . un circuito aeruencial con m flip-fiops.TABLA Tabla de atado para el c k d t o de la'figura 1-25 &&do Esbdo ... h i & . lo mal hace que DAsea igual a 1.variables de salida conbendrg m columnas para el estado p-te. En generai. Esto ee muestra en l h tabla de estado con tres unas bajo la columna para el estado siguiente de A.

excepto por la manera de presentación. la salida se vuelve 1. No hay diferencia entre la tabla de estado y el diagrama de estado.-- b * combinaciones b i n d s de O a 2m" 1. E l diagrama de estado del circuito secuencia1 de la figura 1-25 ae muestra en la figura 1-26. Las líneas de conexión s e rotulan con dos números binarios separados por una diagonal. diagrama de etado proporciona la misma infonnacidn que la tabla de estado y se obtiene directamente de la tabla 1-4. El valor de entrada durante e l estado presente se etiqueta primero y el número que s i p a la diagonal da la salida durante e l estado presente. la iínea que conecta del estado 00 al 01 se rotula l/O. el estado se representa con un circulo y la transicibn entre estados se indica con lineas que conectan b s círculos.El. pero si I a entrada se queda en 1.. la seilida es O. La tabla de estado es mAs fácil de obtenerse de un diagrama lbgico dado. - Diagrama de estado diaprna de estado . significando que cuando el circuito secuencia1 e s a en el estado presente 00 y la entrada es 1 . h s columnas del estado siguiente y las salidas son funciones . l a salida permanece en O. el circuito pasa al estado siguiente 01. La misma transición de reloj puede cambiar el valor de entrada. . Si la entrada cambia a O. EI número binario dentro de cada circulo identifica el estado de les Gp-flops. Por ejemplo. Por ejemplo. Una línea que conecta a un círculo consigo mismo indica que qo ocurre n b g h cambio de estado. Esta infoma&n se obtiene del diagrama de estado a l o largo de las dos líneas que salen del circulo que representa el estado 01. En esk tipo de diagrama. Despuds de una transici6n de reloj. El diagrama de estado da una vista gráfica de las transiciones de estado y es la forma adecuada para l a interpretación humana de1 funcionamiento de un circuito. La uiformaci6n disponiñle en una tabla de estado se puede representar grgficaniente en un diagcama de estado. el diagraFimra 1-26 Diagrama de estado de un circuito eecuendal. y e l diagrama de estado se deduce directamente de la tabla de esfado.del estado presente y de b s valores de entrada y se derivan directamente del circuito o de las ecuaciones booleanas que deal circuita.

27.1 0 . partiendo del estado M. E 1 diagrama k dibuja para mostrar que los estados del circuito siguen el recuento binario con tal de que x = 1. El diagram a de estado se convierte entonces en una tabla de estado. Este circuito wencial no tiene salidas externas y por lo tanto 6610 el valor de la entrada se etiqueta en el diagrama. E1 estado del circuito permanece sin s u d o x = O. ~olrtador &ario. Queremos disehr un circuito secuencia1 sincronizado por reloj que pase a travds de una secuencia de estados binarioe repetidos 00. Este tip de circuito se Urna contador binario de 2 bits porque la secuencia de estado es idéntica a la secuencia de m e n t o de dos dígitrrs binarios. Ejemplo de diseño El procabiento para diseñar circuitos secuenciales se demostrará con un ejemplo específico. El diagrama de estado para e l circuito secuencia1 se muestra en la figura 1. D e la tabla de estado obtenemos la informacibn para conocer el diagrama del circuito 16gico. el cual causa8que el recuento se repita.m de estado de la figura 1-26 muestra claramente que. El estado de los flip-flops se cbnsidera como la salida del contador. E l estado siguiente de 11 es 00. la salida es O &tras la entrada perma-a en 1 . 11 cuando la entrada externa x sea igual a 1. El procedimiento de disefio consiste en traducir primero las especificaciones del ci~cuito a un diagrama de estado. . el estado del circuito permanece sin cambio. EI contador bbinario necesita dos flip-flops para representar los dos bits. La primera entrada O después de una cadena de unos da una salida de 1 y transfiere el circuito otra vez al estado inicial 00. La entrada x es la variable de control que especifica cuándo debe proceder el recuento. Si x = O. Figura 1-27 Diagrama de estado para contador bimrio. 0 1 .

con las condiciones de entrada que se especifican en la tabla 1 3 copiadas en el renglbn apropiado del flipflop particdar que se considera. puede transferirse del diagrama de estado a la tabla de estado. Las condiaones de entrada de los flipflops son función del tipo de flip-flop usado.flop JK especificado en la tabla 1 3 s e usa ahora para obtener la tabla de excitación del circuito secuencial. como función del &ado p m t e y de la entrada x. en e l primer rengión de Ia tabla 1-5 tenemos una Iransicibn del fiipflop A de O en el estado presente a O en el estado siguiente. La tabla de excitad611del circuito aecuencial ea una extensi6n de la tabla de estado. rYa tabla de ewrritacidn hemos asignado el simbolo x a la variable de entrada. 3 empleamos flip-flops JK. 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. Este proceso s e cunhtía para cada rengl6n de la tabla y para cada flip-flop. Esta extensión consta de una lista de excitaciones de entrada de los flipflops que causen las transiciones de estado requeridas. + + TABLA 1-5 Tabla de dtaci6n para mnbdor b a r i o .El segundo renglbn de lajtabla 1-5 muestra una transición para el f i i p fiop B de O en el estado presente a 1 en el estado siguiente. s e copian O y X en la primera hilera bajo JB y Kg.A Estado acaial üstado Entrada d m t e Enlradas de fipfbp B x A B JA h JB KB .. necesitarno5 columnas para las entradas J y K de cada flipflop. Asl 1 y X se copian en el segundo renglbn bajo JB y Kg. Las entradas de flip-flop A se designan por JA y KA y del flipflop B p r JB y Kg. I.respectivamente. Por ejemplo. El estado siguiente de A y B.*F@ 9 ~4 . 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. La tabla de exeitaci6n para el flip. Las primeras cinco columnas de la tabla 1-5 constituyen la tabla de estado.-. Ahora asignamos los simbolos A y B a las salidas de los dos flip-flops. W 1 H . 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. Así O y X se copian en el primer rengl6n bajo JA y Kk respectivamente.as entradas de asta tabla se obtienen directamente del diagrama de estada.

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. 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 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. Además. Las salidas son las variables Jh Kk JB y &.Analicemos ahora i a informach disponible en Ia tabla de excitaci6n como en Ia tabla 1-5. Para m flipaops y n entradas. Procedimiento de disefio E l diseiilo de los circuitos secuenciales sigue el outline descrito en el ejemplo anterior. Asignamos entonces letras para d-ignar todos los flipflops y las variables de entrada y salida. Así. pueden obtenerse ahora las funciones booleanas simplificadas para el circuito combinatoria. la función booleana que especifm un circuito combinatorío se deriva de Ia tabla de verdad que muestra la reiacihn entre entrada y salida del' circuito. 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 &. la tabla de estado consistirá en m columnas para e l -do p-k. B y x. Si tanto J como K son igual a 0. Sabemos que un circuito secuencial consiste en un número de fiipflops y un circuito combinatorio. Las salidas del circuito combinatorio se especifican bajo las columnas de "entrada del flip-flop". un renglh para cada una de las combinaciones binarias del estado . El número 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 círculos. y procedemos a obtener la tabla de estado. A s í . las entradas al circuito combinatoriu son la entrada externa x y los valores de estado presente de los fiipflops A y B. E i comportamiento del circuito se formula primero en un diagrama de estado. lias entradas son las variables A. La i n f o m c i h de la tabla de excitación se transfiere a los mapas?de la figura 1-28. cuando x = O.A& UM tabla de excitacibn transforma un diagrama de estado en una tabla de verdad necesaria para e1 disefío de la parte del circuito mbinatorio del circuito sxuencial. n columnas para las entradas y m columnas para el estado siguiente. el estado del flip-flop no cambia. esto es. El número de renglones en la tabla ser& hasta de 2"+". una S-1 de reloj no tiene efecto.

m~". .- m . -* I B B m' md X X i:w. .{.-í1 JL- J 4->C Q - B B kw Figura 1-29 Diagrama 16gioo de un contador b i i o de 2 bits. .' Y .eau . 1 Y i x *amy . Q A a . bu i r i i i m rWm % ' . . 1 KB= x Figura 1-28 Mapas para circuita wmbinatorio de y t a d o r .

constituye el circuito secuencial. Liste la tabla de verdad de una funcibn XOR (impar) de tres variables: x=A6B@C. Un conjunto de maciones de entrada de los flip-flops especifica un circuito secuencid en forma algebraica. Las columnas de estado presente y entrada constituyen las entradas de la tabla de verdad. AB + AB' c. ta tabla de excitacidn para el tipo de flipffop en activo puede encontrarse en la tabla 1-3. El procedimiento para obtener el diagrama Mgico del conjunto de ecuaciones de entrada de los flip-flops es un proceso directo. Sin embargo. En tal caso. La tabla de verdad para la parte del circuito combinatorio del circuito secuencia1 estA disponible en la tabh de excitacidn.De la información disponible en esta tabla e inspeccionando las transiciones del estado presente al estado siguiente en la tabla de estados. el circuito combinatorio también puede contener salidas externas. El circuito combinatorio obtenida de esta manera. junto con los flip-flops. L a tabla de estado se extiende entonces a l a tabla de excitaci6n incluyendo las columnas para cada entrada de cada flipflop. se m g e e l tipo de fip-flop que vaya a usarse en el circuito. Finalmente. Mediante la simplificación por mapas obbern~s un conjunto de ecuaciones de entrada de los flipflops para e l circuito combinatono. 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. Primero dibuje los flip-flops y rotule todas sus entradas y salidas. Para cada renglón Iistamos el siguiente estado como se espeeifrca por el diagrama de estado. A'B + AC + ABC' + ABC . En seguida. Determine por medio de una tabla de verdad l a validez del teorema de DeMorgompara tres variables: (ABC)' = A' + B ' + C'. Entonces dbuje el circuito combinatorio de las expresiones booleanas dadas en las ecuaciones de entrada de los flipflops. 1-1. a. Cada ecuaci6n de entrada de flip-flop especifica un diasama lógico cuya salida debe conectarse a una de k c entradas del flip-nop.presente y las entradas. obtenemos la eminf~maci6n para h s condiciones de entrada de los flip-flops en la tabla de excitación. A'BC d. 1-2 1-3. A +AB b. las funciones booleanas para las salidas extemas s e obtienen de la tabla de estado mediante las técnicas del disefío del circuito combinatorio. tas salidas de los flipflops se consideran a menudo como partes de las salidas del circuito secuenciaI. Simplifique las siguientes expresiones usando Algebra holeana.

@) compuertas NANX). b.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.6.1.15) Simplifique la~sigui&ntes exprwiones en (1) forma de suma de productos y en @) £0.6. y.3.5. a. 2 + + F(A. ~~undiagrama16gicodela~6n~plificadayeomparedn~~0 total de compuertas con el diagrama de la parte @). a. AB + A(CD CD') b.z) = (3.de producto de sumas. F { A . x'z' + y'z' yz' + xy b . O ) = (3. Dibuje un diagrama 16gico por medio de la expresi6n booleana original. 2 .4.7) d.y.6.13. c.2.2. B.7. A + A'B + A'B' = 1 Dada Ia expresibn booleana F = x'y + ryz': a Obtenga una expresión algebraica para el complemento F.C.1& 15) e.11. Simplifique la expmsi6n al@raia mediante el hlgebra booleaila. C ) = S ( 0 . B .7) (1.7. 1-11. Dada la funci6n booleana F = xy'z + x'y'z + xy a W t e la tabla de verdad para la W n . Simplifique las siguientes funciones h l e a n a s mediante mapas de tres e. s . Simplifique las siguientes funciones booleanas en l a forma de producto de sumas por medio de un mapa de cuatro variables. . 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- + m + 1-6. F(x. B.5. 3 .7. z) = 19. 6 ) Simplifique las siguientes funciones bleanas por medio de mapas de cuatro variables. F(A.9.6. C. C. F(x.2.D) = 2 (0. 14 Simplifique las siguientes expresiones usando &lgebra booleana: a.z) = 2 (0.4. C. Muestre que F F' = 1 . AC' B'D 1. b . @) compuwtas NOR. variables. (BC' . F(A.10. C .8. 4 . 2 1-10.14 1-5.5.D)=~(O. D I = 2 (4.5.B.11.3.7.10. F(A.13.y. F(A.t A'D) (AB' + CD') Siguiendo el teorema de DeMorpn. muestre que: a.15) b. e.15) d. Dibuje el diagrama lbgiw con (a) compuerh ANDOR.8. B .2.15) 1-12.1.7) b .11. F(x. (A + B)'(A' + 8')' = O b . Dibuje el diagrama lógico con (a) compuertas OR-AND.14.C. M u e s b que F F' = 0. D)= (0.

y y r y las tres salidas A.x. Cuando E = 1 y x = 1 . dos entradas: x y y. . 1-14. b . DiseAe un circuito combinatorio con tres entradas x.6 o 7 la salida binaria es uno menos que la entrada. muestre que S puede expresarse como el XOR de tres variables de enbada. Las ecuaciones de entrada de los flip-flops y la salida del circuito son como sigue: S . 10.11. Cuando x = O. Usando la informaci6n de la tabla característica del flip-fiop JK enlistada en la figura 1-21(b).6. Luego. De otra manera la salida es O. t ! .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. por una operacibn algebraica.7. oidm-db-~&dcmdosBipflopsJK:AyB. deduzca la tabla de exdtaa6n para el flipflop JKy compare su respuesta con la tabla 1-3.z) = 2 (2. 1-17. t i T . M DA = x f l l + X A i ) l s (B. Según la tabla 1-2. 01.I-n. . Este e~ un circuito secuencia1 con dos flipflop y una enhada x. el circuito permanece en el mismo estado a de1 valor de x. =rfB +xA . B y C. Diseñe una funY6n de mayorfa con tres entradas.14. y repeticián.5.M . Muestre que un flip'flop JK puede eonve~rsea un flip-flop D con un inversor entre las entradaa 1y K. Cuando a = 1. el circuito pasa a havk de transiciones de estado de M1a 01 a 10 a 11 y de vuelta a 00. D M í e un cantador d-dente de-dosbits. m 1-20. Dibuje el diagrama ldgico del circuito.ydosentrridas:E -m m y X.3. 11 y m ua d m fepetici6n. 1-19.3 4 &A F(w. y una salida z.y. deduzca la expresi6nh l e a n a para la salida S (suma) de un sumador completo en forma de suma de productos. Cuando E = I y x = O. Tabule l a tabla de estadm. 1 1-18. Una función de mayoría se genera en un circuito combinatorio cuando la d i d a es igual a 1si las variables timen más unos que ceros.4. el s l circuito pasa a havh de transicion.5. Q # d l i k @ > C * i Y am -iH z=B a. L e n & de estado es 11. 1-16.esde W a 11 s 10 a 01 y de vuelta a 00. Cuando la entrada binaria sea 4. 00.6n.a ---- . Si E = O. el estado de los fiip-flops no cambia.y W -epetiC.M 1-15. Un circuito secuencial tiene dos flip-flop D: A y E.

H. F. 1 9 8 8 . k Scoft.. Nueva Y o k MeGraw-Hill. . Eriglewood Cliffs. Hiii. NJ: htice Hall. 3. Jr. Petermn. MN: West Publishing. M. hilano. S. 1990. 6 . 1985. S. F . J. Mdm Digifef Decign. tercera edid6n.. 1990. G.. y G. Roth.. Paul. MA: M T h . terma edici6n. Wakerly. Shiva. y R.. Foresman. A . 7. Haistead. C. 1 m . 2. J. Nueva York: JohnWiley. Glenview. . Sandige. St. lntroduetim fo Logic Design.Referencias 41 1 . 1981.FundamtaIc oJ Lo@ Design. NJ: Prentice Hall..H. 1991. R S. Ward. DigitaI h i g n . Englewood Cliffs. Cambridge. . 5. s e p d a edici6n. Intrwluction to Switdring Tkory nnd Logical D e s i .CmnpuiutOon Sttuctures.M. R. Digitnl Design Principlec and P r a c t b . 4 .

Cada CI tiene una designad611numérica i m p m en la superficie del paquete. El microcircuito ce monta en un encapsulado de cerhica o de pldstico y las conexiones se sueMan con finos alambres de o r o . Las diversas compuertas se conectan dentro del microcircuito para formar los circuitos requeridos.EN ESTE cAP~TULO 2-1 2-2 2-3 C k c u h integrados 24 2-5 2-6 Deeodificadores ~ulfíplexores Registros de eorfifFliento Cmtadores binarios Unidad de memoria R e & - 2-7 2-1 Circuitos integrados Los circuitos digittaies se construyen con cikuitos integrados. i m componentes electrónicos para las compuertas digitdes. Un circuito intqpdo (abreviado C I ) es un pequefio cristal de silicio semiconductor. E i número de h i n a l e s puede fluctuar de 14 en un encapsulado pequeiio de Q hasta 100 o más en m encapsulado mayor. Conforme la tecnología de Ios circuitos inwgrados va mejorando. el número de compuertas que pueden fabricarae en un solo rnicrocircuito ha aumentado consideqablemente. La diferenciación entre los micmcircuitos que tienen ' m a s cuanlas compuertas internas y aquellm que tienen cientos o . para su identificaci6n. liamado m ~ ~ ' t que o contiene .a terminales externas para formar el circuito integrado. Cada proveedor publica un manual de d a b o un catálogo con la descripcibn exacta y la informacibn necesaria acerca de los circuitos integrados que fabrica.

scala d i a n a (MSI.A La familia lógica 'iTL ai l a m b popular y Sr funcionado muchos a y se considera como norma. TTL miles de dhs se ham con una ~ e f e f m h pwstablh. el número de compuertas es de tenninales dispo&les en el menor que ID y <se circuito integkddo. circuitos de memoria y m6dd~s programables. large-sude infegratim) contienen entre 200 y unos cuantos d e s de compuertas en un solo encapsulado. Estos inciuyen sistemas digitales. b s dispositivos de infsgracidtt m e#& peque% (SSI.. l o s dispositivos VLSI han revolucionado la tecnología del diseno para s i s e mas de computadora. Las entraelas y salidas de las compuertas se conectan directamente a las terminales $el encapsulado. Las siguientes son las m á s populares. Debido a su pequeiío W o y su baja costo. tos circuitos integrados digitales se clasifican no &lo por su funcionamiento I6gic0. Los ejempl? son las matrices de memoria grande6 y los circuitcs integrados para mici~~omputadma complejos. E l circuito básico de cada tecnología es una compuerta NAND. NOR o NOT. Cada familia lógica tiene su d i o circuito eleckóriico bdsico sobre e l que se dXseÍían circuitos dietales y funciones m8s complejas. los sumadores y los registros. Suelen ejecutar funciones digitales elementales q d c a s como ocurre con los d e codificadores. . - . como procesadores.my-largesale intepfion) contienen miles de compuertas en un sol^ encapsulado. small-scale infegratiarr) contienen distintas compuertas independientes en un solo encapsulado. Metal 6xido semiconductor metáiico Metal &ido hiemiconductor complementario k h M P -d *. Los dispositivos de integra& m escala muy grande (VLSI. 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. medium-sale los dispositivo integra&#) timen de 10 a 200 compuertas en un solo encapsulado. la fmüh ECL tiene ventajas en sistemas que .m ' SSI - f' MSZ y l % -: inte@aci6n a pequeña.da para d i i t i v o s de ECL MOS. sino también por la tecnologfa de circuitos a la que pertere cen. y la familia CMOS es preferible en sistemas que r6qfiikren bajo consuma de e n e . Los dispositivüs de integracm m escala gran& (LSI. dando a los diseiiadores l a capacidad de crear estructuras que no eran tan econhicas anteriormente. mediana y gran e s c h . CMOS Ldgica de transistor 'transistor Aioml ' a BI Ldgica de emisor acoplado k d .m- LB' requieren fumb~mientode aIta velocidad. La tecnoIogía de circuitos se conoce como fumilia Idgim digital. Por l o p e r a l . la familia MOC es apropiada para circuitos que necesitan una alta densidad de componenb.

donde ambos portadores existen durante el funcionamiento normal. E1 trar. los componentes mas basicos se introducen en este capitulo con una explicación de sus propiedades 16gicas. y la TT L Schorcky a v m & i . Para entender la organizaci6n y el diseino de las computadoras digitales. Al MOS de canal p se le conoce como PMOS y al de canal n como NMOS. condicibn que p d f e alcanzar retrasos de propagau611de 1 a 2 nanosegmdos.Esta tecnología se llamaba IiTL (diodetransistor logic).ECL La familia 1 a tran~istor-transistor (7TL}fue una evulucibn de una bmmlogía previa con base en diodos y transistores para. o sea.Hay divems variaciones de la familia además de la T T L ~~tándar. Fstos componenb proporcionan un cat41ogo de unidades funcionales. p r l o que el nombre de la familia Idgica se cambi6 a '1ágica transistor-tmnsistoi'. "1-a de di&transiskir". como la TTL de alta velocidad. Un d i g o binario de n bits es capaz de . una técnica de pmcesamien~ mas simple durante la fabricacidn y un funcionamiento m á s econ6mico debido a su consumo de energía más bajo. La familia ihgica de emisor acoplado (ECL) proporciona los h i t o s dital. l a TTL Schotkky de baja potencia. la TTL Schottky. digitales y elementales empleadas comúnmente como bloques básicos de construcci6n en el diseño de computadoras digíWes. Las ventajas más importantes de Ios CMOS sobre los bipolares son la alta densidad de integrad611de los circuitos. ta ECL se aplica en sistemas como supercomputadoras y procesadores de seiiales donde es esencial la alta velocidad. Por esta razbn. Los transistores de Ias compuertas ECL funcionan en un estado no saturado. Esto estA en contraste con el transistor bipolar de las compuertas TTL y ECL. es muy importante familiarizarse con 1 m diversos componen. NMOS es el que se usa c o m h e n t e en circuitos con un solo tipo de transistor M .encontra& en los circuitos integrados. la compuerta básica NAND.de más alta v e l d d en forma integrada. Posteriormente los didos fueron =plaza& por hnsistors para mejorar el funhmdento del c h i t o . ta tecnologia del MOC complementario (CM06) tiene transistores PMOS y NMOC conectados de modo complementario en todos los circuitos. los circuitos integrados sirven exclusivamente para proporcionar los diversos componentes digitales necesarios en el diseiio de los sistemas de computadora. 2-2 Decodif icadores Las cantidades discretas de informaci6n se representan en las computadoras digitales con chdigm b i r i o s . la TTL de baja potencia.5 voltios. Por sus muehas ventajas. 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.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).

genera una de las combinaciones binads. Sin embargo. y las saiidas. 'enlas lque cada una repmsgta una de las combinaciones de las tres variables binarias de entrada. Las k s entradas de datos Aw Al y A2 se d e ~ o d ~ c a en n ocho saiiddas. h decodificadores p~esentadmen esta secci6n se llaman d d i f i c a do= de n a m heas. Un decodificador tiene n entradas y m salidas y tambi& se le denomina un dedifiador de n X m. . m Componentes ditales repmxnhr hasta 2 ' elementos distintos de informaci6n codificada. LAS variables de entrada representan un número binario.Su pmpósitii es generar 2' (o menos) cumbinaciones binarha de las n variabIes deentrada. los tres inversores proporcionan el comple mento de h e entradas y cada una de las ocho compuwtas AND. los &O digitos del sistema numhrico octal.1 se muestra el diagrama 16gim de un d d i i c a d o r de 3 a 8 líneas.46: -. Una aplicari6n particular de este d d i f i c a do? & la conwrsidn de binario a mbl. . uii decodifimder de 3 a 8 líneas puede decdificar cuaIquier e6digo de 3 bits para proporcionar ocho salidas. el decodificador puede tener menas de 2' salidas. En la figura 2. donde m 5 T. 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 máximo de 2 F salidas únicas Si la informaci6n codificada en n bits tiene combinaciones de bits no usada. una para cada combinaci6n A e l código binano .

el decdicador funciona en forma normal. 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. Cuando la entrada de habilitaci6n es igual a 1. a pesar de las valores de las otras dos entradas. Cuando el circuito se desactiva. .. El funcionamiento del decodificador puede aclararse por medio de la tabla de verdad listada en la tabla 2-1. . En la figura 2-2 se muestra un decodificador de 2 a 4 líneas con una entrada de habilitación construida con compuertas UAND..entrada de habititacfiín Las decodificadores comerciales inc1uyen una o m2is entradas de habilitaci6n para controlar el funcionamiento del circuito. Cuando la entrada de habilitad611E es igud a O. ' AN'D. El decodificador de la figura 2-1 tiene una entrada de habilitacihn. 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.se construyen con compuertas NAND en lugar de * - _. todas las salidas son iguales a 0. resulta más económico generar las salidas del decodificador en su forma complementada. Para cada c o m b i c i h de entradas p i b I e .El circuito funciona con salidas complementadas y una entrada de habiiitacibn E complementada. Fmtradas Salidas ! ? A v Decodificador de compuerta NAND I A l p o s decodificadores. a pesar de los valores de las otras tres entradas de datos. La variable de salida cuyo valor es igual a 1 representa al número octal equivalente al número 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 líneas . ningu- . .- . . El ddificador se habilita o activa cuando E B igual a O. - -1 . . hay siete salidas que s o n igual a O y &lo una igual a 1. d o una salida es igual a O en cualquier momento. (8 . Ya que una compuerta NAND produce la operad611 AND con una salida invertida. Como se indica en la tabla de verdad. Uabifitaaón . Las X de la tabla designan las condiciones "no importatt.-. E... las otras tres saIidas son iguales a 1.

si se necesita un decodificador de 6 a 64 heas.b) Tabla de verdad Figura 2-2 Decodicador de 2 a 4 heas mcompuertas NAND. Así. Las salidas del decodificador inferior se vuelven inactivas con todas las salidas en O. El bit mEis significativo se conecta a la entra& de habilitaci6n de un decodificador y a través de un inversor a la entrada de habilitacidn del otro decodificador. (cuandoAa = O). ya que estos números binarios tienen un 1 en la posición AZ. Se supone que cada dmdificador se habilita cuando su entrada E es igual a 1. La entrada de habilitaci6n puede activarse can un nivel de señal O o con 1. Las salidas del decodificador superior generan las salidas de la Doa la Dy dependiendo de los valores de Al y A. Cuando E es @ a i aO . Cuando esto ocurre es posible combinar dos o más decodificadores con entradas de habilitaci6n para formar un decodificador mayor. Cuando Ap = 1. na de las salidas se selecciona y todas las salidas son iguales a 1 . Cuando A2 = O. Dos demdificadores de 2 a 4 líneas se combinan para Iograr un decodificador de 3 a 8 heas. el deeodicador superior se habilita y e l inferior se desactiva. ~d . el decodiicador se deshabilita y todas sus salidas atdn en d nivel 0 . La salida del dedíñcador inferior genera los equivalentes birios D4al D7. Expansión del decodificador Hay ocasiones en que se necesita un decodificador de cierto tamaño. l3n general un decodificador puede funcionar con salidas complementadas o s i n complementar. es posible construirlo con cuatro decodificadores de 4 a 16 líneas. Algunos d d c a d o r e s tienen dos o m á s entradas de habilitaci6n que deben miisfacer una condición 16gica dada para habilitar el circuito. Los dos bits menos significativos se conectan a ambos decodificadores. La figura 2-3 muestra cómo los decodificadores con entradas de habilitacibn pueden conectarse para formar un decodificador mayor. el decodificador inferior se habilita y el s u se d&abilita. pero d o están disponibles los más pequeiios.

Las heas de salida gmeran un c6digo binario correspondiente al valor de entrada binario. D. Condiciones similares se aplican las otras dos salidas.3 Demdificador 3 X 8 construido con dos d d f h d o 2~X da E l ejemplo demuestra la utilidad de i a entrada de habilitaci6n de los decodificadares o de cualquier otro componente lógico combinatario. de otra m e r a .+ D. Estas condiciones pueden expresarse por las siguientes funciones booleanas: e m i s r& ~ .= D. Las entradas de habilitación w n una caracterlstica práctica para intemnedar dos o m8s circuitos con el propósito de ampiiar e l componente digital para una funci6n similar. Un ejemplo de un codificador es e l eodificador de octal a binario. i D. . el circuito no tiene significado. pero con m6s entradas y salidas. y tres salidas que generan el número binario comspondienk Se supone que sólo una entrada tiene un valor de 1 en cualquier momento.Figura 2.r e A.+ D. una para cada digito &al. Un codificador tiene 2" (o menos) heas de entrada y n Iheas de salida. * El edificador puede implantarse con tFes compuertas OK. cuya tabla de verdad se da en la tabla 2-2.+ D64-D. El codificado? puede implantarse con compuertas O R (O) cuyas entradas s e determinan directamente de l a tabla de verdad. Codificadores Un codlficador es un c h i t o &@tal que ejecuta Ia operacidn inversa de un demdificador. T i e n e ocho erttradas. = 1 ' el dfgito oml de entrada es 1 o 3 o 5 o 7.= A.+ D. h salida es A..

Una manera más practica de describir el funcionamiento de los multiplexores es por . Para demostrar e l funcionamiento de1 circuito. Las dos entradas de selmi6n SIy So se decodifican para seleccionar una compuerta AND particular. Un muitiplexor de 2" a 1 tiene 2" h s ¿e datos de entrada y n líneas selección de entrada cuyas combinaciones de bits determinan qué datos de entrada se seleccionan + para la dida. La compuerta AND (Y) asociada con la entrada I2 tiene dos de sus entradas iguales a 1 . considere el caso cuando S1S2 = 1 0 . Las otras tres compuerbs AND (Y) tienen por lo -08 una entrada igual a O. Esta es una tabla excesivamente larga y no se mostrará aquf. U n a tabla de verdad que describa al circuito necesitará 64 renglon~.de entrada y la dirige a una h a de saiida Cinica. La salida de la compuerta OR (O) es ahora igual al valor de proporcionando asl un camino desde la entrada seleccionada a h salida. Un muitiplexor de 4 a 1 h e a s se muestra en la figura 2-4.TABLA 2-2 Tabla de d a d paia codificador oetai a bmario Entradas Salidas n7 D e D s D 4 4 D z Di Do A 2 Ai AO muitipkor Un multiplexor es un circuito combinatorio 'que recibe informaci6n binaria de una de 2" líneas de da. Cada una de las cuatro entradas de datos de Io a 1% se aplica a una entrada de la compuerta AND. Las salidas de las compuertas AND. EI multiplemr de 4 a 1 líneas de figura 2 4 tiene seis entradas y una salida. ya que seis variables de entrada pueden tener Z6 combinaciones binarias. La selecci6n de una línea de datos de entrada particular para la salida s e determina por un conjunto de entradas de &ccidn. La tercera entrada de la compuerta se conecta m 1. lo que hace sus salidas iguales a O. se aplican a una compuerta QR única para proporcionar la salida iinica.

Figura 2-4 selector Be datos A@&* dm medio de wia tabla de funci6n. Las comptiertas AND y las inversoras del multiplexor semejan un circuito demdificador.ta tabla demuestra la -relaci6n entre las cuatro entradas de datos y la salida h i c a como fumi6n de las entradas de 8elección SI y S& Cuando las entradas de selecci6n son iguales a 00. h abreviatura comrin del multiplexor es MUX 4 -- Multiplexor 4 a 1 Uneas 1 *L VFIIA -4 - TABLA 2-3 Tabla de fumbnes para multiplexor 4 a 1 lfneas L . BT multiplexor tambih se llama selector de datos. y de modo similar para las otras dos combinaciones. La tabla de funcibn para el multiplexor se muestra en la tabh 2-3. y en verdad d d i f i c a n las iheas de seleccibn de entrada. Esto Unplica que tambih contiene n Iííeas de =lección de entrada. la salida Y es igual a la entrada Ion Cuando las entradas de se1ecci6n son iguales a 01. ya que selecciona una de muchas entradas de datos y conduce la infomci6n binaria a Ia salida. 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 líneas de entrada y una salida tinica.A SeIeccibn S1 Salida so Y . En general. la entrada Il tiene un camino a la salida Y.

la salida Y. cada uno capaz de seleccionar una de dos beas de entrada. Como una ilustracidn.Así como sucede en los decodificadom. ~ ~ * ~ < d l m a ~ p Figura 2 4 Multiplexom Mit8druples 2 a 1 líneas.la unidad se habilita cuand&E = 1.7 b) Tabla de functwies . Las entradas de seleccidn y de habilitación en una conatruccibn de unidades múltiples suelen ser comunes a todos los multiplexores.i . el circuito funciona como un nli m 3 4 h R* 4- multiplaor nomial.- --- -- . La entra& de habilitaci6n es iitil para ampiiar dos o más mdtiplexores a un m u i t i p k ron un número mayor de entradas. puede tener el valor de Al o Bu y así sucesivamente. si S = 1. q ~ n * ~ i L . los multiplexores pueden tener una entrada de habilitacihn para controlar el funcionamiento de l a unidad. . Como s e muestra en la tabla de funci613. las salidas se deshabilitan. El circuito tiene cuatro multiple xores. o BI De modo simjiar. Las d d a s tienen tcdas cero a F cuando E = O. a pesar de los valores de S. La salida Yo puede seleccionarse para que venga de las entradas A. tambikn podemos pensar en 61 como en un circuito que selecciona una de dos h e a s de datos de 4 bits. las cuatro entradas B se aplican a las salidas. En algunos casos dos o mis multiplexores se encuentran en un solo circuito integrado. el &cama de bloques de un multiplexor cu4dniple de 2 a 1 heas se muestra en la figura 2 5 . La entrada de habilitadbn E debe estar activa para el funcionamiento normaL A pesar de que el circuito contiene cuatro multiplexofes. si S = O. Entonces. Una h e a de d d 6 n de entrada S selecciona una de las iíneas en cada uno de los cuatro muItiplexores. Cuando la entrada de habiilitaci6n está en el estado inactivo. y cuando está en el estado activo. Por otro lado. las cuatro mtradas A tienen camino para las cuatro salidas.

flops. Un registro de n bits es un grupo de n m a Aip-flops y es capaz de almacenar cualquier información biiaria de n bits. 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. donde cada flip-flop es capaz de . un registro consta de un grupo de flip-flops y compuertas que efectúan su transieibn. l l r d-Además de los fiip. Los flipflops retienen la infonnacibn binaria y las compuertas controlan cuándo y cómo se transfiere la nueva informaci6n ai registro. un registro puede tener compuertas combinatorias &que ejecuten ciertas tareas de prwaamiento de datos.. Divmw tipos de registros están disponible6 en el comercio. El registro más simple es aquel que a compone sólo de flip-flops. .Amacenar un bit de informaci6n.Un registro es un grupo de fip-flops. sin compuertas m x k m a s . La figura 2 4 muestca tal registro construido con cuatro flip-flops *e ---D. En su definici6n más amplia.

Nótese que la sefia1 de reloj habilita (activa) la entrada D pero la entrada borrar es independiente del reloj. es necesario hacer la entrada D igual al valor presente de su salida. Para dejar la salida sin cambio. se muestra un registiro de 4 bits m una entrada de control de carga que se dirige a travgs de compuertas y hacia las entradas D. La entrada para borrar va a una terminal especial en cada flipflop. L a entrada de carga determina si el pulso siguiente aceptar& h nueva infomaci6n o dejará la informaci6n en el registro intacta. En esta confguradón el reloj debe -se en el h i t o s i el contenido del registro debe pmanecer sin cambio. En la figura 2-7."la entrada para borrar debe m t e nerse en 1 Iógco durante la operaci6n sincronizada por reloj normal. la conexibn de retroalimentacibn de ia salida a la entrada es necesaria porque los flip-fiops D no tienen una eondici6n "sin cambio". Cuando la entrada de carga es O . Si t d o s los bits del registro ae cargan simultAneamente con una transici6n de pulsa de d o j común.m miga di? registro s e transfieren al registro de 4 bits. la entrada D determina el estado siguiente de la salida. Con cada pulso de reloj.Una sefía1 de control separada se debe usar para decidir qug pulso de reloj especifico tendrá un e k t o en un registro particdar. Cuando esta entrada va a O. ta entrada de carga en el registro determina la accih que va a tomarse con cada pulso de reloj. Nótese que los pulsos de reloj se aplican a las entradas C todo d tiempo. La transferencia de nueva inhmacl6n a un registro se llama carga del regkfro. los datos en las cuatro entradas se transfieren a1 registro con la siguiente transieihn ~ i t i v a del pulso de reloj. en paralelo. La compuerta de acoplamiento en la entrada de reloj reduce el requisito de potencia del generador de reloj. las entradas de datos se i n h r ' b e n y las entradas D de 10s flip-flops se conectan a sus salidas. Se requiere m e n o s potencia cuando el reloj se conecta a una d a compuerta de entrada en lugar dd consumo de energía que se requeriría para las cuatro entradas si no se usara el acoplador. Las cuatro salidas pueden mostrarse en cualquier momento para obtener la informaci6n binaria alrnaeenada en e l registro. tas entradas C r e c i h pulsos de reloj en todo momenh. a 1. El reloj amo actria como una bomba que suministra pulsos constantes a todas las partes del sistema. Una k'ansiel6n de rebj aplicada a las entradas C del registro de la figura 2-4 cargar4 las cuatro entradas de 1. 1 La entrada para borrar es útil para borrar e1 registro a ceros antes del funcionamiento sinmaizado por reloj. decimos que l a carga se hizo en paralelo. Registro con carga paralela La mayoría de los sistemas digitales tienen un generador de reloj amo que suministra un tren continuo de p b de reloj. Los pulsos de reloj se aplican a todos los Bap-flops y los re@troa del sistema. todos los flipfiops se borran en forma ashcrona. Cuando la entrada de carga es 1. La transferencia m t d a de carga .

de información de las entradas a los registros se hace simul&eamente con los cuatro bits durante una finita transicidn de pulso. La configuracidn 16gica de un registro de corrimiento consta de una cadena de flip-flops en cascada. 2-5 Registros de corrimiento Un registro capaz de desplazar su información binaria en una o en ambas direcciones se llama registro de corrimiento. con .¿ 13 M o f Figura 2-7 Registro de 4 bib con carga paralela.

es también posible proporcionar circuitos extra para controlar la operacibn de corrimiento a través de las entradas D de los flip-flops mhs bien que la entrada del reloj. Una operacidn de corrimiento a la izquierda y una línea de entrada serial asociada con el corrimiento a la izquierda. El reloj es común a todos los flip-flops. S i n embargo. 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. Otros pueden tener algunas de stas capacidades. 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. 1 . i u i -D Q-r. El registro de corrimiento mas geheral tiene todas las capacidades litadas abajo. 2 Una. E l registro de corrimiento más simple posible es aquel que usa s61o flip-flops. Una entrada para pulsos de reloj para sincronizar todas las operaciones. La m W swiaI determina qu4 va en la posición de la extrema izquierda durante el corrimiento. con cuando menos alguna opexacibn de co&ento. La calida w r k l se toma de la salida del fiipflop de la extrema derecha. operacidn de corrimiento a la derecha y un linea de entrada serial asociada con el corrimiento a la derecha. t la salida de un flipflop conectada a la entrada del siguiente flip-flop. Esto puede hacerse inhibiendo el reloj de la entrada del registro si no -queremos el corrimiento. como se muestra en la figura 2-8. 3. A veces es necesario controlar el corrimiento para que ocurra en ciertos pulsos de reloj pero no en otros. 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. Cuando se usa e1 regism de corrkni~to de 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. Cada flipflop recibe pulsos de r e l o j comunes que inician e l desplazamiento de una etapa a la siguiente. i L 2 -' c. e e-D $ QC -> > C -> C -> Salida serial 4 ~ M**q$m Reloj = - .entrada sedal .

supongase que ea necesario transmitir una cantidad de n bits entre dos puntos. 5. la operaci6n de corrimiento a la derecha desplaza los contenidos del registro en la dirección descendente. Una opera& de carga en paralelo y n h e a s de entrada asociadas con la transferencia en paralelo. La siguiente trmicibn de reloj transfiere a cada flip-fiop el valor b h r b que conteda previamente. Esto causa una operacidn de corrimiento a la derecha. 1 . dirigiendose los otros datos de entrada serial al flip-flop A3 y el contenido del flipfiop Ai + 1 transf~iéndose al fipflop Ai para i = 0 . Cada etapa consta de un flipflop D y un multiplexar de 4 x 1. N6tese que según la manera en que se dibuja el diagrama.f l ~resultando . 2.ias líneas de selemi611 controlan el modo de operacibn del registro de acuerdo con la tabla de M 6 n que se muestra en la tabla 2-4. en una operaci6n de carga en paralelo.4. Cuando el modo de control SISO= 00. Si la distancia enhe la fuente y el destina es muy grande. ascmdente. Cuando SISO= 11. 6.3. la terminal marcada con un 1 en cada multiplexor tiene una trayectoria a l a entrada D del correspondiente fiip-flop. transfiriéndose los datos de la entrada serial al fiipfiop A. y no o c m un cambio de estado. Un registro de corrimiento bidireccional de 4 bits con carga paralela se muestra en la figura 2-9. n keas de salida en paralelo. resulta una operaci6n de corrimiento a la izquierda. Las dos entradas de selección S1 y So ~eleccionanuna de las entradas de datos del multiplexor para el flip-flop D. la informacidn binaria de cada entrada lo a la I3 se bansfiere al correspondiente f i p . Esta condici6n forma una trayectoria de la salida de cada flip-flop a la entrada del mismo flip-fiop. mientras que la operacidn de corrimiento a la izquierda causa que el contenido del registro se desplace en l a direcci6n -. m Los registros de corrimiento se utilizan comúnmente para la interfaz de sistemas digitales situados remotamente unos de otros. se selecciona la entrada de datos O de cada multipfexor. Cuando SISO = 01. Un estado de control que deje la informacibn en d registro sin cambio aun cuando los pulsos de reloj se apliquen continuamente. y e l contenido de cada flipfiop Al transfiriéndose al flip-flop Ai para i = 1. Por ejemplo. Cuando SISo= 1 0 . 2. resultará TABLA 2 4 Tabla de funciom para los registros de la figura 2 9 Control de modo O O O 1 O 1 1 1 S i n cambio Desp+zamiento ñ la derecha {abajo) Desplazamiento a la izquierda (arriba) Carga paralela .

m usar n 1 para.í.y transmitir la informaci6n en forma serial un bit cada vez.~ mbces e I dato desde la &ea de salida 'acep'bard datO en f m a serial en e l registro de desplazaI d.tansmite . Puede ser más . Cuando la totaiidad de los n -..r . tra&&tir n bits en paralelo. .. serial..costo .* -. E l miento a trav&d& su:Iínea de entrad. r n 4 ~u o h una d d h e a . w . 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 ~ .

E l diseño de 10s contadores binarios puede llwarse a cabo por el procedimiento esbozado en la secci6n 1-7 para los circuitos secuenciales. Pasando a través de una secuencia de números binarios. @) complementando el bit de segundo orden porque e l primer bit de O111 es 1 .unos. como pue'de verse en l a figura 2-10. Se usan para contar el rimero de ocurrencias de un evento y son útiles para generar señales de tiempo al controlar la secuencia de operaciones en las computadoras digitales. como 0000. 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. (c) complemaitando el bit de tercer orden porque los primeros dos bits de O111 son unos. Los contadores binarios shcronos tienen un pamn regular. el contador puede controlarse con una entrada de habiiitación que pi ia o apague al contador s i n quitar la sehl de reioj de los flip-flops. 0011. M301. Por ejemplo. 0010. la secuencia binaría directa ks ia más simple y Ia más directa. 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 cuenta binaria de O111 (7)a 1000 (8) se obtiene (a) complementando el bit de menor orden. y (d) compIementando el bit de cuarto orden porque los tres primeros bits de O111 son todos . U n contador que sigue la secuencia de niuneros binarios se llama contador binario. Un circuito 'contador empleará usualmente flip-flops con capacidades complementarias. Pueden ocurrir a intervalos regulares o akatoriamente. Tanto los fiip-flops T como JK tienen esta propiedad. Un pmedidento de diseño alterno más simple puede llevarce a cabo por una inspección directa de Ia secuencia de estados que debe experimentar para alcanzar yna cuenta binaria directa. y así.1. De las diversas secuencias que puede seguir un contador. La salida de un flip-flop no cambia si J = K = O. tos p u h s de entrada pueden ser pulsos de d'oj o pueden originarse de una fuente externa. Así.enparalelo. de O a T . 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.Lis entradas C de todos los flip-flops reciben el . 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 bíts de menor orden son iguales a 1. Además. Los contadores se encuentran en casi todos 10s equipos que contengan 16gica digital. sucesivamente.bits se acumula pueden tomarse de las salidas del registro . 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.

La primera etapa A. 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. se complementa cuando su contador se habilita y d reloj pasa a través de una transici6n positiva.Relol Figura 2-10 Contador binario sincrono de 4 bits. todas las entradas . La cadena de compuertas AND (Y)generan la 16gica requerida reloj comiin. - y K se mantienen en O y la salida del contador no cambia. Si la habilitacibn de contea es 0.

pero la entrada de incremento puede ser O o 1 . Con ias entradas de borrad?. El control de carga de entrada. tos datos de entrada se cargan en los flipflops =do la entrada de control de drga es igual a 1. Si las entradas de carga y de borrado son ambas O y la entrada de incremento es 1. . carga e incremento todas en O. 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 .para las entradas 1 y K. Habilitando la entrada de condurante un periodo de reloj. 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). borrando así todos los flipflops con la siguiente transicibn de reloj. Cuando es igual a 1 la entrada de borrado lleva todas las entradas K a 1 . el circuito funciona como un contador binario.E i registra se borra a O sin que el control de borrado considere los valores de las entradas de carga e incremento. el contenido de un registro pude incremhtarse en uno. 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 Opwaciún - ? 7 ? i - 1 x 1 x x Sin cambio Incremento de cuenta en 1 Entradas de carga lo a 13 Limpieza de salidas a O incremento Los contadores con carga en paralelo son muy ÚtiIes en el d i s e ñ o de computadoras digitales. Si las entradas de borrado y carga se mantienen en O 16gie0. 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 número binario inicial previo a la operaci6n de conteo. cuando es igud a 1 . teniendo cada etapa un flip-flop adicional y una compuerta a AND.puede borrarse a ceros en-sincroníacon e l reloj. B1 funcionamiento del circuito se resume en la tabla 2-5. En capítulos subsiguientes nos referimos a ellos como registros con operaciones de carga e incremento. La figura 2-11 muestra el diagrama 16gico de un contador binario que tiene una capacidad de carga en paralelo y que tambikn. las salidas no cambian. La operación de inmmmfo suma uno a l contenido de un registro. con tal de que el borrado se deshabilite. aun cuando se apliquen pulsos a las terminales C . El acarreo de salida sirve para extender el contador mis etapas.

.

La comunicaci6n entre una memoria y su ambiente se logra mediante iíneas de entrada y salida de datos. sin importar la ubicaci6n física de las celdas en la memoria: de ahí el nombre de "acceso aleatorio". una palabra de 16 bits contiene dos bytes. M es igual a 2m y G es igual a y. Una palabra de memoria es un grupo de números 1 y O que puede representar un número. 64 K es igual a Z16. un código de imtrucci6r1. Memoria de acceso aleatorio En la memoria de acceso aleatorio (RAM). y una palabra de 32 bit5 está fomada de cuatro bytes. Se seI'ecciona una palabra específica en la memoria.por l o tanto. donde se hecesitan 32 bits de direccionamiento. Un decodificador dentro de la memoria acepta esta diraibn y abre las trayectorias necesarias para seleccionar los bits de la pahbra lespecificada. y memoria de s61o lectura ROM cread-only memory). La mayor parte de las memorias de las compu. hasta 2' . La capacidad de las memarias en las computadora~ comerciaIes por lo general se define como la cantidad totaI de bytes que pueden almacenarse. & tadora~utiiizan palabras cuyo número de bits es un múItiplo de 8. La estructura interna de una unidad de memoria estA especificada por el número de palabras que contiene y la cantidad de bits en cada palabra. las celdas de la memoria pueden accesame para la transferencia de informacih en cualquier p i c i d n aleatoria deseada. el proceso de ubicar una palabra en la memoria es igual y requiere la misma cantidad de tiempo. 2. Se acostumbra denominar la cantidad de palabras (o bytes) de una memoria can una letra K (kilo). uno o mds caracteres #Y . b memoria almacena infomacibn binaria en grupos de bits que se denominan palabras. hasta Z 3 ' palabras.malfanuméricos o cualquier otra infomci6n en ddigo binario. 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).SECU~N 2-7 Unidad de memoria 6Q 2-7 Unidad de memoria W 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. M (mega) o G (giga). llamado una direccibn. al aplicar la T direccibn binaria de k bits a las iíneas de direcci6n.1 donde k es la cantidad de líneas de dirección. que comienza en cero y continúa con 1 . K es igual a 2 1 ° . Unas h e a s especiales de entrada. seleccionan una palabra particular. 3. Esto es. líneas de selecci6n de dirección y lheas . Una palabra en la memoria es una entidad de bits que se introducen o sacan de1 almacenamiento como una unidad. A cada palabra en la memoria se le asigna un número de identificacibn. Las memorias de las computadora~ pueden tener desde 1024 palabras. l o cual requiere una direcci6n de 10 bits. por l o tanto. llamadas Uneas de direccionamiento. Un p p o de ocho bits se denomina byte.

Activar la entrada de . Las dos operadmes que puede ejecutar una memoria de acceso aleatorio son la lectura y la escritura. Las dos entradas de control especifican la direcci6n de transferencia que se desea. Aplicar la direccibn binaria de la palabra deseada a las líneas de dirercionamiento. ~ ' . Aplicar los bits de los datos que deben almacenarse en la memoria a las lheas de entrada de datos.! t J ~ ~ 3 .a C M ~ O Componentes digitales operaciones tik lecturaY de control que especifican la dirección de la transferencia. 2 . Figura 2-12 Diagrama de bloque de memoria de acceso aleaborio (RAM). A. . Los pasos que deben seguirse para que una nueva palabra se almacene en la memoria son los siguientes: 1.escritura. Activar la entrada lechrra. Los pasos que deben realizarse para sacar una palabra almacenada en la memoria son los siguientes 1. 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. 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. la efial de escritura especifica una operacibn de transferenda de entrada. y las n lineas de datos de d d a proporcionan la informaci6n que sale de la memoria. Y la &al de lectura e6pedica una opexacibn de transferencia de salida. 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. l o s circuitos internos de la memoria proporcionan la funcibn deseada. Aplicar la direccibn binaria de la palabra deseada a las Uneas de direccionamiento.* 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 I ~ de salida B de datas t . Al aceptar una de estas señales de control. ! .

El cankmida de la palabra seleccionada no cambiará después de que se lea. que se pueden programar para una configuración especifica. Las unidades de s61o Iectura vienen con fusibles electrónicos internos es-les. permanece dentro de la unidad. una memoria de sólo lectura (ROM) es una unidad de memoria que sólo ejecuta la operacibn de lectura. porque . Lb i ' l i -" Figura 2-13 Diagrama de b i o q u & % m O e &o ledura. -k líneas de entrada de direcdbn ROM i n x 71 (m= Zk} ri líneas de ~alida de datos . Una vez que s e estabiece el pakón. una ROM está limitada a leer palabras que están ahcenadas de manera permanente dentro de la unidad. y líneas de salida. aun cuando la corriente se apague y se encienda de nuevo. 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. Memoria de s6l0 lectura Como su nombre l o indica. d .. La ROM no necesita una h a de control de lectura. no tiene la posibilidad de escritura. La informacibn binaria que s e va a almacenar. Una ROM en circuito integrado tambibn puede tener una o más entradas de habilitacidn para ampliar la capacidad de la ROM en varios encapsu1ados.en cualquier momento las líneas de salida proporcionan en forma autorpátjca los n ROM =' lis d .m -d. la cual es especificada por el diseñador. Una ROM m x n es un arreglo de celdas binarias organizadas en m palabras de n bits cada una. 1 - La unidad de memoria tomarA los bits de la palabra que ha seleccio- -.mi& la W ó n y.lds aplicará en las h a s de salida de datos.SKC~N 2 7 Unidad de memoria 65 M m. una para cada bit de la palabra. una ROM tiene k h e a s de entrada de direcci6n para seleccionar una de zk = m palabras de memoria. Corno se muestra en el diagrama de bloque de la figura 2-13. m? integra en la unidad para formar el patrbn de interconexi6n requerido.

llamada memoria de sólo lectura programble o PROM. 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. 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. 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. Cuando se hace un pedrdo con estas condiciones. De manera basica. Como las salidas son s61o una función de las saüdas presentes (las lineas de direccionamiento) una ROM se clasifica como un circuito combinacional. Una ROM también se emplea en el diseño de unidades de control para computadoras digitales. El fabricante. Tipos de ROM tos programas o datos que se requieren en una ROM pueden programarse de tres diferentes maneras. Como tal. Como tal. El procedimiento para fabricar una ROM requiere que el cliente llene la tabla de verdad que desea que satisfaga la ROM. programacidn por mascnrilla. de acuerdo con la tabla de verdad del cliente. lo cual hace que aparezca un grupo de números 1 en todos los bits de las palabras almacenadas.hace la mascarilla correspondiente. Las ROM tienen un amplio campo de aplicaciones en el diiño de sistemas digitales. puede complementar cualquier circuito combinacional con k entradas y n salidas. una ROM genera una relación entradasalida especificada por una tabla de verdad. Cuando se emplea en un sistema de computadora como una unidad de memoria. con el fin de producir un grupo de unos y ceros. De hecho. Por esta radn.bits de la palabra seleccionada par el valor de direcci6n. 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. 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. se realiza por la compafiía que produce el semiconductor durante la parte final del proceso de fabricación de h unidad. Los fusibles de las PROM se funden al aplicar pulsos de corriente por Ias terminales de salida de cada direcci6n. 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 unidades PROM tienen todos sus fusibles intactos. Este tema se analiia con mayor detalle en el capitulo 7. La primera. Un fusible fundido define un estado O binario y un fusible intacto da un PROM . Una unidad de control que utiliza una ROM para almacenar información de control binario se llama una unidad de control rnicroprogramada.

El procedimiento de hardware para programar las ROM y las PROM es irreversible y. Cuando una EPROM s e coloca bajo una luz ultravioleta especial durante un cierto periodo. 4 s t r o s y contadores. b . Se reservan 2 termínales para alimmtaci6n y las otras 2 terminales se utilizan para terminales de entrada y salida. b) mmpwrhs O R d u s i v a s de dos enbadas. ccri borrado ashmno. Esto permite que los usuarios de las PROM obtengan en sus propios Iabomtorios la relaci6n dewada entre direcri~nesde W a y @abras almacenadas. Ciertas PROM pueden borrarse con señales eléctricas en lugar de luz ultravioleta. Multip1wres. de 4 bits t i pC I 74194. eI patr6n que se fija es permanente y no puede alterarse.de 2 a 1 b e a s de tipo CI 7457. c) compwaas O R de tres entradas. . ~CuBntos circuitos se incluyen en un encapsulado de esas características. si contiene los siguientes t i p de cimiik m a) inversores. Rcgisko de desplazamiento bidireceiona!. L. Despu€s de borrarse. tas EPROM pueden reestructurarse hasta su valor inicial aunque antes se hayan fundido sus fusibles. las EPROM regresan a su estado inicial y pueden reprogramarse con un nuevo conjunto de palabras. Una vez que se ha establecido un patr6n de bits. con carga paralela y borrado sincrono. e) eompuertas NQR de cinco entradas. d.EEPROM 1 binario. una vez programado. f) compuerhs NAND de d o entradas. cu6drupla. Contador binario de 4 bias t i p ~ C i 74163. C. la unidad debe desecharse s i se va a cambiar e¡ patr6n de bits. L m TI'L S I vienen sobre todo en encapsulados de Ude 14 terminales. g) flipflops JK con reloj. la radiacibn de onda corta descarga las compuertas internas que sirven como fusibles. Los siguientes son circuitos integrados de tipo l T L que proporcionan tales funciones. multiplexom. Un tercer tipo de ROM disponible se llama PROM bombk (erasable PROM o EPROM). ? 2-3* Construya un dacodificador de 5 a 32 líneas. a. estado 2 1 . d) compuertas AND de cuatro entradas. En cualquier caso. aunque se utilice la palabra programar. todos l o s pmesos para programar PROM son de hardware.CI MSl realizan fundmes digitales básí~s como d d X c a d o r s . Estas se llaman PROM borrables eléctriuznzente (eiectricdly erasubfe PROM o EEPROM). Utilice diagramas de bloque similares a la figura 2-3. con carga paralela.Encuentre su dehpci6n en un manual de datos 7 compáwlos con los componentes correspondientes que se p m t a n en este capítulo. En el comercio hay disponibles instrumentos especiales llamados programadmes de PROM para facilitar este prmeso. con habilitacidn y un ddificador de 2 a 4 lineas. M i f i e a d o r e s de 2 a 4 líneas de tipo C I 74155 duales. con cuatro decodificadores de 3 a 8 líneas.

senalec. Dibuje un diagrama de bloque de CI que muestre todas las entradas y salidas. El contenido de un registro de cuatro bits a a1 principio 1101.Incluya una enhda de habilitación. 2-14. Una\ enhada de la cornpub AND recibe los pul. Modifique el d d i f i c a d w de la figura 2-2 para que el circuito se active 2-5. b. 2-10. cuando E = 1 y s e dmctive 'cuando E = 0.de reloj de un generador. a. 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 ¿Cuál 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. Explique la operaci6n del registro mdicado. d i o con compuertas NOR. Enliste la secuencia de estados de las cuatro fipflops después de cada d~plazamiento comenzando en un estado de 1000. Un cantador de anillo es un registro de desplazamientocomo el de la figura 2-8 con la salida serial conectada a la entrada serial.¿CuM es el contenido de registro dspu& de cada desplamniento? 2-33. El registro se desplaza seis veces a la derecha con una entradaserial que es de 101101. 2-16. Haga una tabla de verdad difirada. 2-15. Utilice d i a g m a s de bloque para los tres multiplexares. ~Cudntosfiipflops se complementarán en un contador binario de 10 bits para' alcanzar la siguiente cuenta despues de: a) 1001100111. 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.Dibuje el diagrama lbgico de un derodikador de 2 a 4 líneas. ¿Cual es la funci6n de la compuerta de acoplamiento en la entrada de reloj del regis@ de -lafigura 2-71 2-11. Dibuje un diagrama de blque utilizando 2 C I para producir un registro de desplazamiento bidirecclonal de d o bits w n carga paralda. Dibuje el d2agrama de control de unos multiplexores duales de 4 a 1 llneas y explique su aperaci6n mediante una tabla de funciones. 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. ¿Cuál 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. 2-12.La otra entrada de la compuerta AND proporciona un control de carga paralela. b) 0011111111F . Construya un rnultip1exor"de16 a 1 líneas can das multiplexors de 8 a 1 7 líneas y uno de 2 a 1 Jfneas. Incluya una opci6n de un borrado sincrono en el registro con carga paralela de la figura 2-7. Incluya dos terminales para proporcionar alimentaci6n.

H.d) 4G X 64. . Jr. 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. Fumhmkil of Logic D e s e . y G..J. 1 9 9 1 . 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. R.2-17. 8: Scott. MN:West Publishing. . 1990. S t Paul. c) 16M X 32. 1990.Computatimr Struclwra. H . 1988.. Wakerly. Utilice un diagrama de blque para cada contador de cuatro bits. NJ:Prentice Hau. 1985. Sandige. 2-18. Foresman. 7. ~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. Carnbridge. C. 1990. . ~Cuintas líneas de direccionamiento y b a s de datos entrada-salida se necesitan en cada caso? a) 2K X 16. . Hill. . un contador que cuente de 0000 a N y de regmo a MXW]. 2. lnlroductim to Switching Thwry and Loglcal Decip. 2-21. 6. Ward. Especifique la cantidad de bytes que pueden aimaccnarse en las memorias que se enlistan en e l problema 2-19.S . 1.R. MA:MiT Preas. Dkital D e s i . por qmplo.Uodern Digital Bsign. y R. 3.3a. S.ed. J. Roth. Peterson. 3a. 2-20.. Engle-wmd Cliffs. b) 64K X 8. 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. 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. F . 2-19. NJ: Prentice Hall. S . Shiva. 2-23. Nueva York: McGraw Hill. Digital Design Principia md Practices. Una ROM de 4096 X 8 bits tiene dos entradas de habilitacibn y opera con una alimentaci6n de 5 volts. F. Mano. cuántos 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 habilitación. G. Glenview. ed.ed. M .. 2981. tnfroduction to L q i c Desip. . 2 .A. 4. 5 . 2-22. muestre las conexiones externas necesarias para construir una ROM de 128 X 8 con cuatro C I y un decodificador. Halstead. Englewwd Cliffs. Nueva York JohnWiley.M.

Los registros contienen datos o infomaci6n de control. En este capitulo presentamos los tipos de. 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.EN ESTE CAP~TULO 3-1 3-2 Tipos de datos Complementos Representaci6n con punto fijo Reprwntaci6n con punto flotante Mnw códigos binarim Códigos de detmci6n de error 3-3 3-4 3-5 36 3-1 Tipos de datos . 2) letras del alfabeto que se utilizan en el procesamiento de datos. datos M& comunes que se encuentran en las computadoras digitales y mostramos c6mo los diversos tipos de datos se representan en forma de código binario en los registros de computadoras. excepto los números binarios. Los tipos de datos que se encuentran en los registros de las computadoras digitales pueden clasificarse en algunas de lás siguientes categorías: 1) númem que se utilizan en cai1culcs aritméticos. Todos los tipos de datos. 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. Esto es porque los registros están formados de . y 3) otros símbolos discretos que se utilizan con pr~phitos específicos. se r e p m t a n en los registros de la computadora en forma de c6digo binario. En las computadoras digitales la informaci6n binaria se almacena en la memoria o en los registros del pmsador.

4. 7 centena8. F corresponden a los números decimales 10.decJmalm u e . los digitos se encerrarh entre paré&ds y la ba6e del nfimero se insertará cbma subíndice. D . Las. D . Por ejemplo. los s i s m s octaI (raíz 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. 9. respec'hvamente. El sistema de nilimeros binarios es el sistema más-na#d para utilizar en una computadora digital. 13.utiliq para realizar cálnilos aritmCticos. 3. La interpretacián de la serie de digitos 101101 que representa la cantidad octaf hexadecimal Para apreciar la diferencia entre números de base diferente.5 se interpreta para representar la cantidad . 5. 6 y 7. m5s 4 unidades. 11. Para determinar la cantidad que representa el niunero es necesario multiplicar cada dígito por u n a potencia entera de r y despub formar l a suma de todos los dfgitos ponderados.. Cuando se acostumbra representar digitos hexadecimales. 1. Por ejemplo. 15. 8 y 9. o rak r.16 shbotos del sisiema hexadecimal sbn O. ' > . más 2 decenas. e1 sistema de números decimales que se usa en forma cotidiana emplea el sistema de base lo. Desafortunadamente. B. Por eiem~lo. 12. es la forma que se ha adoptado. A. para mostrar la igualdad entre el n~hefa 4 ! 5 decimal y binario escribiremos (10110fh = (45)i0 qíiap i nadCii Ademiis de los sistemas numéricos trinar10 y decimal. 2. 2 3. decimal Sistemas numéricosi Un sistema numérico de h e .4 en notación mtal se convierte a decimal como sigue: . La serk de dígitos 724. Pero en ocasiones es conveniente emplear diferentes sistemas numéricos. 7.4. E y F. 4. esto es. En foma similar cada nihne~o decimal puede interpretarse para encontrar la cantidad que representa. Un númem de base r puede cónveal sistema decimal w n el que estamos farrdiiarizados al obtener la suma de los digitos ponderados de acuerdo a su posicihn. los últimas seis símbolos son idénticos a las letras de1 alfabeto y en ocasiones pueden causar ' conlusibn. en especial el sistema. 1. 6. 3. m á s 5 dkimm.se . B. El sistema numgrico bimrio utiliaa la base 2 . los bimboXos A. Sin embargo. 7. 1 . 5.E . es un sistema que utiliza diferentes simbolos para los digibos r. 8. 5. 14. 2.736. Los dos símbolos de dígito que se utilizan son O y 1. C. tos diez símbolos son 0. 6. Las n b e r o s se representan con una serie de símbolos de digito.flip-flops y Ios flipflops son dispositivos de-dos estados que pueden almacenar solamente grupos de números 1 y O. C.

las dos partes se combinan para proporcionar l a conversi6n total requerida.7200 x 2 m x 2 1. b Por dItimo. F m d h = 0.6875 Eniero = 4 1 1 0 5 o 2 1 1 O o 1 mi o 0. tos coedicientes de la fracci6n binaria se obtienen de los dígitos enteros y el primer entero que se calcula es el dígito que se coloca junto al punto .6875)10 = (101001-1011)* .1 01 1)2 (41.SECCION M Tipos de da- 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 . ia conversibe del decimal 41. = (0. La nueva fraccidn (sin el entero) se multiplica de nuwo por 2 para obtener un nuwo entero y una nueva fraccibn. 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 número binario que se conyIrü6. La conversibn de un entero decimal en una repmtación de base r se maliza mediante divisiones sucesivas entre r y la acumuiaci6n de los residuos.6875 2 0. 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.6875. ta conversión de una fracci6n decimal a una reprsentación de base r se consigue niediante multipliciciones sucesivas por r y la acurnulacidn de los dígitos enteros que se obtienen.6875 en binario se realiza al se paca^ el ntimero en su parte entera 41 y su parte fracdonal .0000 (4lllO ~(10IM1l2 E0. Figura 3-1 Conwrsi6n del d&cima141. üe nuwo eI cociente s e divide entre 2 para obtener un nuwo d e n t e y un residuo. Esto se repite hasta que la parte fraccional es O o hasta que el número de digitos obtenido da una apmximaci6n conveniente. La parte fracciona1 se cpnvierte al multiplicarla par r = 2 para obtener un entero y una fracción. Este proceso se repite hasta que d cociente enteni sea O. 5 ) i o E l número decimal equivalente al F3 hexagesimal se obtiene con d siguiente cálculo: wnuelersidn ¿a convedbn de decimal a su representad& equivalente en el sistema de base r. La parte entera se convierte al dividir 41 entre r = 2 y obtener un cociente entero de u] y un residuo de 1.5000 x 2 1. La W r a 3-1 muestra estos prdimientos. a binario.óB75.6875).

La serie de digitos hexadecimales que se obtiene representa el equivalente hexadecimal del número Enario. el número binario almacenado en el registro es el equivalente del número decimal W99. .1 . I a tabla 3-1 representa una lista de unos cuantos números actales y su representacidn en registros en forma de ddigo Liario. el &digo binario se obtiene al asignar a cada digito hexade Figura 3-2 Conversi6n a bimrio. Por qemplo. dividimos el registro en grupos de tres bits cada uno (el decirnosexto bit. octal y hmradecimal. e l dlgito octal que le corresponde se asigna a cada grupo de bits y la serie de dígitos que se obtiene proporciona el equivalente al octal del número binariu. El digito octal que corresponde a cada grupo de tres bits se recuerda con facilidad después de estudiar las primeras who entradas que se listan en la tabla 3-1. excepto que los bits se dividen en grupos de cuatro. En el ejemplo particular que se muestra.74 ~ h u L . Supongamos que la configuracih de bit que se almacena en el registro es como la que se muestra en la figura 3-2. A cada digito octaI se le asigna un c6digo de 3 bits. Aquí. wgdn 1 0 especifican las entradas de los primeros ocho dígitos en la tabla. cada digito octal corresponde a tres dígitos biarios y cada digita hexadechal corresponde a cuatro dígitos binarios. El código binario se obtiene mediante el procedimiento que s e expiic6. La serie de dígitos octales que se obtiene representa el equivalente octal del número binario. El digito hexadecimal que corresponde a cada grupo de cuatro bits se escribe debajo el registro. Despuh. i a tabla 3-2 lista unos cuantos nCimeros hexadecimales y su representaci6n en registros en forma de c6digo binaria. el registro de 1 6 bib puede utilizarse para almacmar cualquier nlmeiro binario de O a 2 1 6. Comenzando con el bit de orden inferior. A cada grupo de tres bits se le asigna su equivalehte a octal y se coloca en la parte superior de1 registro. L a conversi611de binario a hexadecimal es similar. D e igual manera. por sí solo. consideremos un registro de 16 bits. La compondencia entre un dígito hexadecimal y su caigo de 4 bits equivalente puede hallarse en las primeras 16 entradas de la tabla 3-2. Físicamente se puede decir queh el registro está formado de 16 celdas de almacenamiento binario y que cada celda puede cantener un número 1 o un O. Como =8y 9 = 16. forma un grupo). TRES 0 Rep-taQh de datos NUMeros octales y hexadecimales Las conversiones desde y hacia representaciones binaria. según se muestra en la figura 3-2. 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. octal y hexadecimal juegan una parte importante en las computadoras digitales.Como un número binario está formado por series de números 1 y O.

Para especificar e l contenido de registros rn&ante sus valo. el número binario 1111 1111 1111 tiene 12 digitos.binarios ser6 necesaria una larga serie de digitos binarios. El equivalente wtal en código binario de 99 decimal es 001 100 011 ye l hexadecimal en código binariu del 99 decimal es O110 0011. Por ejemplo. pero esta misma serie de bits puede interprehrue: como la represenL=~ci&n de un número octal en forma de código binario (si dividimos los bits en grupos de tres) o como la rep-ntacióm de un ndmero hexadecimal en forma de código binario (si dividimos -los bits en grupos de 'cuatro).& N s i Tipos de datos 75 TABLA 3 . el n h e r o 99 decimal cuartdur.se conviertev en binario da como resultado 1100011. encontramos que la combinacihn de bits en las tres representaciones es exactamente la misma. Si dejamos de considerar los ceros a la izquierda cn estas tres representaciones binarias. Esto debe ser así por la conversidn directa que existe entre 10s nSimeras binarios y los =tales o hexadwhales. 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. Puede expresarse en número octal como 7777 . encontramos que Ia combinaci611 de sus bits es idgntica. i m importank de tudo esto es que una serie de números 1 y O almacenados en un registro puede representar un número binario. 1 Númwos &tales codificados m biiario Niimera a t a 1 codificado &uivalente octal m i binario decimal O 1 2 3 4' 5 000 001 010 011 o 1 2 3 Cbdigo para un d igilo octal T 1 0 0 101 110 4 5 6 7 111 6 7 1 cima1 el código de cuatro bits que se lista en LIS primeras 16 entradas de la tabla. Es mbs convenienk especificar el co~itcnido de dos registros por su equivaleiik =tal o hexadechal. Los registros en una computadora digital coiitienen muchos bits. Por ejemplo. Al comparar los números wtales y hexadecimales codificados en b i i rio con su equivalente en número binario.

Estas códigos. por lo pneral. pueden contener de seis a ocho hits para cada dígito decimal. se introducen a la computadora como caracte xes alfanum6rims en código binarh. Representación decimal El sistema de números bina- es el más natural para una computadora pero las personas estan acostumbradas al sistema decimal. Una manera de ame giar este conflicto es convertir en números biniirios todos los números decimales de entrada. permitir que la computadora efectúe todas las operaciones aritméticas en binario y después convierta b s resultados binarios a decimales para que el usuario los comprenda. b s númews decimales. también es posible que la computadora realice operaciones aritmeticas directamente con números decimales siempre y cuando estén en forma codificada.TABLA 3-2Nhermhexadecimales codificada en binario 5 6 7 8 9 10 C6digo para iin dígito hexadecimal (cuatro dlgitos) o en h w d b a l como FFF (tres dlgitos). Cuando los números decimales se usan para cálculos aritmkticos internos se convierten en códigos binarios con cuatro bita por dlgito. Lw manuales de computadora siempre seleccionan la dcnominacidn octol o hexadecimal para -pacificar e i contenido de l o s mgistros. . S i n embargo. de los que se hablad m á s tarde.

un conjunto de cuatro elementos puede representarse mediante un código de 2 bits. Un conjunto de d i o elementos requiere un código de 3 bits. Por ejemplo. Es muy importante comprender la diferencia entre la conversi611 de números decimales biiarios y la cud@uci6ir biilarin de ndmeros decimales. En ocasiones se usan otros c6didos decimales.3.lO u 1 1 .cbdip binario Un código bhario es un grupo de n bits que adopta hasta 2" combinaciones distintas de números 1 y O y donde cada combinación representa un elemento del conjunto que se codifica. Un c6digo binario ten&&algunas combinaciones de bits no asignadas si el número de elementos en el conjunto no es una potencia m6Itiplo de 2. Pueden obtenerse muchos c6digos diferates al arreglar cuatro bits en 10 combinaciones distintas.5. donde a cada elemento se le asigna una de las siguientes combinaciones de bits 00. se vuelve 1001 1001. pero cuando se representa en BCD. Este c6digo particular se llama decimal codificado en binario (binary-coded decimal) y por 10 general se representa con su abreviatura BCD. Los 20 &@toa decimahs constituyen un conjunto de esa naturaleza. Un código binario que distingue entre 10 eIement08 debe contener d menos cuatro bib. 01. cuando se convierte ahniímero bharioi el número decimal 99 se representa con la serie de bits 1100013. y unos cuantos de ellos se muestran en la secci6n 3. La Ú h diferencia entre un n h e r o decimal que se ' TABLA 3-3 Númercw decimales codificados en bimrio (a) Niimm Mmeros diecimíiles codificados en binario IBCDI 0000 m 1 D O 1 0 Código para iin digito decimal I . Por ejemplo. pero seis de sus combinaciones no se asignarh. un conjunto de 16 elementos requiere un código de 4 bits y así sucesivamente. La asigrwión de bits que se usa con mayor frecuencia para los dígitos decimales es la que se Lista en las primeras 10 entradas de le tabla 3.

011. +. 0010. . Los códigos binsrios tambien se usan para formular instrucciones que especifican iiiformación de control para la computadora. ' . . es probable que se descubra que representa cierto tipo de informacibn cudificada en lugar de un iiúmero binario. como las notas musicales y las piezas de ajedrez en sus posiciones sobre un tablero. los digitos decimales y unos cuantos caracteres especiales se listan en la tabla 3-4. e l c6digo binario necesitar4 seis bits y en el &gunda caso. Una lista completa de los caracteres ACCTT se proporciona en la tabla 11-1. Lis operaciones especificadas para computadoras digitaks deben considerar cl significado de los bits ahacenados en el reghtro para que las oyeracioiies se efectúen en operadores del mismo tipo.. 3-2 Complementos Los complementos se utilizan eii las computadorns digitales para especificar h operaci6n de resta y para Ia manipulacióii 16gica.. .En el primer caso.3 se Listan unos cuantos n h e m s decimales y su representaci6n en BCD. El código binario alfaiiumdrico estAndar es el ASCII (American Standard Code for Informa tibn Iiiterchange).9 y los simbblos BCD 0001. ASCII Represenracion airanumetica Muchas aplicaciones de computadoras digitales requieren d manejo de datos que no 6610 estan formadas por números sino tambih por letras del alfabeto y por ciertos caracteres especiales. Pueden formularse a discreción c6digos binarios para cualquier conjunto de elementos. como $ . Los códigos de instrucciones se analizan en el capitulo 5. 1001 estA en los símbolos que se utilizan para representar los dfgitos.78 m m RepresentBcih de datos representa por los sirnbolos de dígitos con b s que estamos familiarizadm. tos cddigos deben estar en binario porque los registros s61o pueden contener informaci61i binaria. Al realizar una inspmi6n aleatoria de los bits de un registro de computadora. 0. Existen dos tipos de . 1 . tos códigos binarios desempeñan un papel importante en las operaciones de las computadoras digitales. Es necesario comprender que las cddigos binarios $610 cambian los slmbolos. siete bits. el número por si mismo es igual. e = . no el significado de cuaIquier elemento que representen. Un conjunto de camcteres a!fianuméricos es un conjunto de elementos que induye 106 10 dfgitos decimales.2 . el cual utiliza siete bits para codificar 128 caracteres. las 26 letras del alfabeto y cierta cantidad de caracteres especiales. . Obserw que lós dlgitos decimales en ASCTI pueden convertirse a BCD al quikar los tres bits de orden superior. Los cádigos binarios para las letras mayúsculas. 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 mayúsculas como las rnhkuhs). En la tabh 3. l 3te capítulo -se reláciona con la representaci6ii de <os datos.

por Io que el comphehto a n ú w m 9 de N es (10" .1 e un nnCunerri r e p m t a d o por n nueva Por e+nplo.w - Complementos 79 TABLA 3-4 Código est$ndar norteqericanq para intercambiode informaci6n (ACCII) Código Carácter binano Cariicter Cddigo binario 100 m 1 100 ODIO 100 m11 100 0100 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 101 lo00 101 1 0 1 complementos para cada sistema de base r: el complemento a r y el complem t o a (r l ) .1) .elcwn~btoa(r-1)&N se dehe como (r" .Para los n h a m dezimak r = 10 y r .1) .1 = 9999 En coiisecuencia el complemrriito a nnQrneros 9 de un número decimal x obtiene al restar cada digito de 9. lO" rep-ta un número que está formado por un 1 único seguido de n ame.N. Por ejemplo. Ahora. - colnplenfettto a 9 El wmplemento (r -1) Woun~Nenbsserque~ndfgibos.1 = 9. .N. 10" . los dos tipos se denominan complemento a 2 y a 1 para los números binarios ye l complemento a números 10 y a 9 para los niuneros decimales. Cuando e1 valor de h base r se sustituye en e l nombre. con n = 4 tenemos lo4 = 1000 y le .

con n = 4. Por ejemplo. se obtiene restando cada dígito de 1. Por I o tanto. al restar 7 de 10. el complemento a nCimeros 9 de 5467M3 es 999999 . De nuevo.546700 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 .1) notamos que el complemento a r se obtiene agregando 1 al compIementa a (Y .1 = (1111)2. Por lo tanto. 2" este representado por un número binario que está formado por 1 seguido por n ceros. El complemei-itoa números 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. El complemento del complemento es P . r = 2 y r .N. al sustituir con 1 los O y con O los 1 en los otros cuatro bits con mayor valor.1) . e l complemento a 1 de un nfimero binario se forma al cambiar los 1 a O y los O a 1. respectivamente. El complemento a 10 de 246700 es 753300 y se obtiene al no alterar los dos ceros. El complemento a niheros (r . Tambibn vale la pena mencionar que el complemento del complementa nos devuelve el nilmero con su valor original.N = [r" . En las ddinicianes anteriares se condder6 que los números no tienen un punto de base. El complemento a r de N es r" .12389 = 87610.80 CAP~TUU~ TRES Representación de datos compbmento a 1 = 453299 y e1 complemento a 9 de 12389 es 99999 . resta? a 1 0 el primcr digito significativo diferente de O.1. 2 ' . y despub m t a r de 9 las digitos significativos mayores. Por l o hnto. Al compararlo con el complemento a (r . Después se restaura e I punto de base en el ndrnero cnmplementado y en la misma posición relativa. por l o que e l comple mento a 1 de N es (2" . tambidn puede formarse al no alterar los O a lii derecha. después. 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. Si el número N original contiene un punto de base. De igual manera. .1 = 1. debe quita= de m e r a teniparal para que forme los compiementos a r o a (r . y al restar los otros tres digitos de 9.N.1) . el complemento a 2 puede formarse 01 no alterar los O ni el primer 1.1 = 7611 se obtiene al agregar 1 al valor del complemento a 9. Por ejempIo.N cuando N # O y O cuando N = O.N ) = N l o cual proporciona e l n h e m original. e l complemento a 10 del n h e r o decimal 2389 es 7610 4. Como 10" es un número representado por un 1 al que le siguen n ceros entonces 10" . tenemos z4 = (10000)~ y z4 . e l complemento a 1 de 1011OO1 es OlOOllO y e l complemento a 1 de 0001111 es lllOMH3.1) porque rn . el complemento a 1 de un número binari. la resta de un digito binario de 1 provoca que d 'bit cambie de O a 1 o de 1 a O.N.1) de los números octales y hexade cimales se obtiene restando cada digito de 7 o de F (el número decimal 151. Sin embargo. Para los números binarios.(f' .N j 1 . e l cual es e l complemento a 10 de N. y después al sustítuir los 1 con O y los O con 1 en los demds bits con mayor valor.1).1 es un número binario represwntado por 1 .

-w =' + 86750 = 159282 72532 ? .ay lo5 -. Cuando la resta s e realiza con equipo de mmputaci6n digital este mdtodo parece ser menos eficiente que el método que utiliza compIementos.. concepto de préstamo. Esto parece ser m8s sencillo cuando las personas ejecutan restas con lápiz y papel.N. U' 1 + 27468 40718 13250 d .72532 produce e l número negativo 59282.13250 = 59282.d b La r q u e s t a es el número negativo 59282 = al compIemento a 10 de 40718. negativo m n signo.M). Si M 2 N. la suma no puede tener un acarreo final y es igual a tn . Esto daM+(r"-lV)=M-N+?. Para obtener la respuesta en una forma familiar. - - Por ejemplo. El complementa a númem 10 de 13250 es 86750. Cuando restamos con mmplementos.N (N # O) en base r pude r e d i r s e de la siguiente manera: acarreo final 1 . Por lo tanto: ~3gpjo * M Suma = el complemento a números 10 de N . Cuando trabajamos con I Pl m papel y lápiz.---- M m = d el complemento a números 10 de N = Suma = m 4 -m ri No hay acarreo final. Si M < N. lo cual es el complemento a r de (N . Sumar el minuendo M al complemento a r del sustraendo N. la suma producirá un acarreo final r" que se descarta y lo que queda es e l resultado M .(N .M). r ' I ' Como estamos manejando nbmems sin signo. . tenemos . no hay manera de A obtener un nSimero sin signo en el segundo ejemplo.-. es necesario tomar el complemento a r de la suma y colocarle un signo negativo. En este método tomamos prestada una unidad de una posiciBn con mayor valor cuando el dígito del minuendo es menor que el resta digito correspondiente del sustraendo. consideremos la resta 72532 . reconocemos que i a respuesta debe cambiarse a un nCimero m6i J a P i ) . L -h U1)ü 4 3 acarreo final de que se descarta = -100000 Respuesta = 59282 jit4uprtrbain#mf4edl** d Ahora consideremos un ejemplo con M < N. 2. La resta 13250 . Al utdizar el prcrcediiento con comple m t o s . La xesta de dos números M sin signo de pn dígitos . La respuesta negaac# ' tiva se reconoce por la ausencia de acarreo final y de resultado comple m ' a mentado..mal Resta de nbrneros sin signo El m W o directa de recta que se enseña en las escuelas primarias utiliza el EAl . 3.

En la aritmética simple. efectuamos l a resta X . para representar enteros negativos. L a representación del punto binario en un registro es complicada porque se caracteriza mediante una posicibn en el registro. Además del signo. utilizando el mismo procedimiento que se acaba de detallar. y 2) un punto biario en el extremo derecho del registro para convertir el número almacenado en un entero.Y = o(310001 X el complemento a 2 de Y + Y = complemento de niimews 2 de X = Suma = + 0101100 llOllll 1m11 No hay acarreo tinal. l o cual incluye e l signo de un número. es costumbre representar e l sipo con un bit que se coloca en la posici6n al extremo izquierdo del n6mero. El rn&todo de punto fijo considera que el punto binario esiá siempre fijo en una posici6n. Como consecuencia. enteros o nheros que mezclen enteros y fracciones. Al usar los dos n b m s binarios X = lOlOIOO y Y = 1000011. necesitamos una notacibn para valores negativos. 3-3 = compIemento de números 2 Representación de punto fija Los enteros positivos. .Y y Y . Sin embargo. En cualquier caso. pueden representarse como núme ros sin signo. Las dos posiciones que se usan con mayor frecuencia son: 1) un punto binario en e l extremo izquierdo del registro para convertir el n h e r a almacenado en una fraccidn. el punto binario no estA punto haina pt&# o &. La posicibn del punto biirio se necesita para representar fracciones.L a resta por complemento se realha can números binarios de una manera simiiar. Debido a las limitaciones del equipo de c6mput0. Existen dos maneras de especificar la posicibn del punto binario en un registro: otorgarle una posición fija o emplear una representación de punto flotante. las cornputadoras deben representar todo con números 1 y O.X utilizando el compIemento a 2: = 10101OO = O111101 suma = 10010001 daechando el acarreo final de 2' = -1000Mfa7 Respuesta: X . ta respuesta es el número negativo 0010001 de 1101111. un ntímero negativo se señala con un signo de menos y un número positivo con un signo de más. incluyendo el cero. un número puede tener un punto b i a r i o (o decimal). La convencibn es hacer que e l bit del signo sea igual a O para b s niimeros Positivos y 1 para las negativos.

Como ejemplo. Representacibn de complemento a 2 con sieno. L a representación de punto flotante se analiza en Ia siguiente secci6n. Se utiliza m u y rara vez para operaci~nes aritmdticas excepto en algunas computadoras antiguas.bhario es positivo.O). La representacsn del punto flotante utiliza un segundo registro para almacenar un número que designa la posici6n de1 punto decimal en eI primer registro. E l complemento de 1 implica dificultades porque t i m e dos xspresentaciones del O (+ O y . 4 del signo de . éxiskn tres diferentes maneras de representar . incluyendo su bit de hsigno. el ndrnero negativo sie representa con el complemento a 1 o 2 de su valor positivo. 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 . en gmeral se utiliza el complemento con signo.14 se obtiene de + 14 al complementar s61o e l bit de sipo. 3. h 1 La representacih. Rqesentación de magnitud de signo. debe inserta@@O m las posiciones más significativas del bit de signo.Aunque sólo existe una manera de representar + 14. Representacidn de enteros Cuando un ndmem. 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. lrkmoros con signo . 2 Representaci6n ¿e complemento a números 1 con signo.SEEU~NM Representaa6n de punto fijo 83 presente en realidad pero su presencia se supone porque el número almacenado en e l registro se trata como una . En las otras dos wresentaciones. por lo tanto. El sistema de magnitud con signo se utiliza en i a aritmética simple pero es temible cuando se emplea en la arihnktica mputacional.14 se obtiene al complementar todos los bits de + 14. el signo se representa con O y la magnitud por un n h e i o . consideremos el número 14 con signo que se almacena en un registro de 8 bits. La q m t a c i 6 n de complemato a 1 . 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.de magnitud de signo de un número negativa esta formada por la magnitud y un signo negativo.fracci6n o como un entero.el bit de sipo. Por lo tanto. incluido .14 con d o bita. Cuando el ndmero es negativo. el signo se representa con 1 pera el resto del número puede representarse en cualquiera de las tres siguientes maneras: 1 . hinario positivo. + En representacibn de magnitud de signo En representaci6n de mmpiemento de números 1 de signo En repfesentacihn de complemento de números 2 de signo 1 OOQlllO 1 1110001 1 1110010 't" La repmntaci6n de magnitud de sipo de .

sólo una suma y un complemento. incluyendo sus bits de signo.(37 25) = . S i los signos son diferentes. Suma aritmbtica dos números en el sistema de magnitud con signo sigue las reglas de la aritmdtica simple. restamos la magnitud menor de la mayor y l e damos al resultado e l signo de l a magnitud m& grande. es necesario convertirlo a un niimero positivo para colocarlo en una forma más familiar.7. Por ejemplo. Este ec un proceso que requiere la comparación de los signos y las magnitudes para decpub realizar una suma o una resta. Cualquier acarreo de la posición de bit con signo s e descarta y los. Debe considerarse que los nrimeros negativos deben estar al principio en su complemento de 2 y que s i la suma que a e obtiene después de l a adici6n es negativa esta en su forma de complemento de 2. Su complemento a 2 es 00000121. y descartar cualquier acarreo de la pmici6n ' de bits de signo (extrema izquierda). la uperaci6n que se realiza es siempre una suma.12 y esto se hace al restar la magnitud m6s pequefia 25 de la mayor 37 y utilizando e l signo de 37 para el resultado. resultados negativos están de manera automática en su Forma de complemento a 2.84 -O Representación de datos I@$c8. Por ejemplo. .37) = . La suma de + - suma de eompleme~toa 2 %n 2ada uno de 10k cuatro casos. Si los signos son iguales. La forma de complemento de la repmsentacibn de números negativos resulta extraña a las personas acostumbradas al sistema de magnitud con signo. El procedimiento es muy simple y puede definirse como sigue: sumar los dos ndmeros. la regla para sumar nirmems en el sistema de complemento de 2 coh signo no requiere una comparación o sustracci6n. agregamos las dos magnitudes y le damos a la suma el signo comtín. el cual es el equivalente binario de -t. (El procedimiento para sumar ndmeros binarios en representaci6n de magnitud con signo se' describe en la secci6n 10-2) En contraste. El $igiiiWe iiifisis de la aritmética bina% con signo se refiere exclusivamente a l a representacibn de complementa de 2 con signo de números negativos. Para determinar el valor de un número n ~ a t i v o cuando está en forma de eompIernento de 2 con signo. inc1uyendo los b i b de signo. e l niimero binario con signo 1 1 1 1 1 O O 1 es negativo porque el bit de la izquierda es 1. 7. reconocemos que el número negativo original es igual a . (+ 25) (. Por lo tanto. Los ejemplos numericos para la suma se mu-an enseguida.

6) . El usario o programador debe interpretar los resultados de tal suma o resta en f o m diferente. Lo opuesto tambiCn es cierto porque el complemento de un número negativo en su forma de complemento produce el número positivo equivalente. Considere la resta de (. Cuando la suma se ejecuta con papel y lápiz esto no es un problema porque no hay un límite en el ancho de la -pAgina para anotar e l resultado. el bit a la extrema izquierda siempre representa el signo y los nfimeros negativos están en forma de complemento a números 2. 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. Cuando se suman dos . Sobrefluja Cuando dos números de n digitos cada uno se suman y el recultado ocupa n + 1 dlgitos. Por esta razbn. decimos que ha ocurrido un sobreflujo.33 Repm* de punto fijo 85 resta de complmmto u 2 Resta dbnhtica La resta de dos números 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).13) para que d&(+ 13). las computadoras sólo necesitan un circuito común para manejar ambos tipos de aritmdtica. Al eliminar el acarreo final obtenemos b respuesta correcta O O O O O 1 1 1 (+ 7). En el caco de números con signo.(.11110011. En binario con ocho bits esto se escribe 11113010 . Vale la pena anbbr que los números 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. Un resultado que contenga n + 1 bits no puede acomodarse en un registro con una longitud estándar dé n bits. La detecci6n de un sobreflujo despuk de la suma de dos números binarios depende de si los números se consideran con signo o sin signo. En f o m binaria esto es 11111010 + OM301101 = 100000111. ya sea que se considere que los números son con signo o sin signo. se detecta un sobreflujo del acarreo final en la posicidn nias significativa.13) = + 7. muchas computadoras detectan cuando sucede un sobreflujo y se establece un flip-flop correspondiente para que la sittiacidn pueda ser verificada por el usuario. c Pero el cambio de un número positivo a negativo se consigue con facilidad al tomar su complemento a 2. El sobreflujo es un problema en las computadoras digitales porque eI ancho de los registros es finito. La resta se cambia a suma al tomar e l complemento a 2 del sustraendo (. Se elimina el acarreo de la posición del bit de signo. Cuando se suman dos ndmeros sin signo.

86

CAP~TULO TRES

Repremtaci6si de datos

n h e r o s con sipo, el bit del signo se trata como parte del número y el

acarreo final no indica un sobreflujo.
Un sobreflujo no puede m r i r después de una suma si un número es pwitivo y el otro negativo porque sumar un n6mero positivo a uno negativo produce un resultado que es menor al mayor de los dos números originales. Puede oeurrir un sobreflujo si los dw n h e r o s que se suman son poeitivos o negativa. Para ver cómo ocurre esto consider$mos el siguiente ejemplo, Dos niimeios binarios con signo, + 70 y + 80,, están almacenados en registros de ocho bits. El rango de números que puede acomodar cada registro es de + 127 binario a - 128 binario. Como la suma de los dos niimems es + 150, esto excede la capacidad del registro de ocho bits. Esto es verdadero si los números son ambos positivos o negativos. La dos sumas en binario se muestran enseguida junto con los últimos acarreos.
acarreos: O 1
acarreos: 1 0

+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 debía 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 condición de sobxefhjo al observar e l acarreo hacia la posicibn de bit de signo y el acarreo de la posición 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 númenw decimales en mgistrw es una funcibn del código binario utilizada para representar un digito decimal. Un código decima1 de 4 bits necesita cuatro flip-flops para cada dígito decimal. La
representaci6n de 4385 en BCD necesita 16 füpflops, cuatro para cada digito. El número se representar4 en un registro con 16 flip-flops de la siguiente manera:

Al representar números en decimal estamos gastando una considerable cantidad de espacio de almacenamiento porque d número de bits que se

-6~ 3 . 3 RepreswtaciáPi de punto fijo

87

m

L &

necesita para almacenar un nlmero decimaa en código 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 utilización 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 pequeñas cantidades,de dl& aritmgtieos en comparacidn con la cantidad que se necesita para la entrada y salida de datos decimales. Por esta razón, algunas computadoras y todas las calculadoras electrónicas 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 repreentación de números decimales con signo en BCD es similar a la repmwntaeibn de números 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 número 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 número BCD, tomamos primero e l complemgnto a 9 y después 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 también al sistema de complemento a 10 con signo para números 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 números negativos están en su forma de complemento a 10. Consideremos Ia suma (+ 375) + (- 240) = 1- 135 realizada en el sistema de complemento a 10 con signo.

E l 9 en la posie6n a I a izquierda del @a

número indica que es negativo. 9760 es el complemento a 10 de 0240. Se suman b s dos números y e lacam final se dacarta para obtener 135. Por supuesto, los números decimales dentro de la computadora deben estar en BCD, incluyendo ios cügitos de signo, La suma se realiza con sumadores 8CD (véase la figura 10-18).

+

b m Q

#d J $

p.M'-'
d h
i.rr

fi

L 1

f

2 L a resta de números decimales en el sistema de complemento a 10 con igual que en d caso de las' números binarios. Hay que tomar 4 el complementa a 10 del sustraendo y agregarlo al minuendo. Muchas computadoras tienen hardware especial para ejecutar cAlculos aritméticos en forma &ta con los números dedtnales en BCD. El usuario de la computadora pude apecifica~ mediante instrucciones programadas que las operaciones aritméticas se ejecuten ron números decimales en forma directa, s i n m r que mnvertir1os a bhrios.
os i n signo es

#*!Y yd
'

m
w

3-4

Representación con punf o flotante
dos partes.

IA r e p r e ~ ~ t a d bcon n punta flotante de un número tiene

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 número decimd $. 6132.789 ce rep-ta en punto flotante con una fraccibn y un exponente como sigue:

* WWWp $ rJ1 -* C
-,>-

-

m '

Fraccih Exponente 0.6132789 m 04

*+

El valor del exponente indica que la posición real del punto decimal está cuatro posiciones a la depecha del punto de~imaI~indicado en la fracción. Esta repmtación es equivalente a la notaci6n científica + 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 xepresénh3Z 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 números de punto flotante en registros se apegan a estas dos consideraciones para proporcionar los tesdtados de cómputo correctos. Un número binario de punto flotante se representa de manera similar excepto que utiliza la base 2 para el exponente. Por ejemplo, el número bLnario + 16jll.11 se representa con una fracción 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

* * La fracci6n tiene un O en la p1ci6n a la extrema izquierda para denotar que
, , n

es posttlva. E l punto binario de la fracci6n está después de¡ bit de signo pero

no aparece en el registro. El exponente tiene e l nGmero binario equivalente + 4. número de punto flotante es equivalente a

m x F = +(.1001110)2 x Z + '
nomaftzacibn

Se dice que un númer~ de punto flotante e s a n m l i u i d o si el dígito más 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 número estA nomializado d o si su dígito de la extrema izquierda es diferente de cero. Por ejemplo, el número binario de 8 bits .00011010 no estd normalizado por

los tres primeros dígitos O que contiene. El número puede normalizarse al cambiarlo tres posiciones hacia l a izquierda y descartar los primeros O para obtener 11010000. h tres cambios multiplican el número por 2 = B. Para mantener e l mismo valor para el número de punto flotante, al exponente debe r e s m e 3. Los números normalizados proporcionan la máxima 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 números de punto flotante con mhs complicadas que las que se ejecutan con punto fijo y su ejecucidn requiere más tiempo y hardware m 6 9 complejos. Sin embargo, la representación de punto flotante es esencial para los c~lculoscientíficos 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 electrónicas timen implícita la capacidad de ejecutar operaciones aritm&ticasde punto flotante. Las computadoras que no tienen hardware para cáiculos de punto flotante tienen un conjunto de subrutinas para ayudar al usuario a programar problemas cientificos con números de punto flotante. Las operaciones aritm6ticas con números de punto flotante se analizan en l a secci6n 10-5.

3-5 Otros códigos binarios
En d o n e s anteriores prem~tamas lw tipos más comunes de datos y cbdigo binario que se encuentran en las computadoras digitales. En ocasiones, se utilizan otros c6digos binarios para números decimales y caracteres alfanuméricos. Las computadoras digitales también emplean otros c ó d i p b i i r i o s para aplicaciones especiales. En esta seccibn, se presentan unos mantos cbdigos bina& adiciormh que se ennientran en las computadoras digitafes.

C&digoGray Los sistemas digitales pueden procesar datos s6lo de manera discreta. Muchos sistemas físicos 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 código 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 código Gray sobre los nheros biiariw directos es que sólo cambia un bit conforme avanza de un número 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 análogos se representan mediante un cambio continuo de m pmicibn relevánte. La parte relevante se divide en sepentos y a cada segmento se l e asigna un número. 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 línea que separa dos segmentos cualquiera. En ocasiones se utilizan contadores en código 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 según se especifica en la tabla 3-5. Los contadores de c6digo.Gray eliminan la ambigüedad durante el cambio de un estado del contador al siguiente porque s61o cambia un bit durante la transición de
estado.

Otros chdigos decimales Los códigos binarios para digitos decinials necesitan un mínimo 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-

TABLA 3-5 sigo Gray de 4 bits
mi@ w v a l e n k bario decimal

Código binado

Equivalente decimal

TABLA 3 4 Cualro c 6 d i p Masdiferenks para el dfgib 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

O101 O110 O111 lo00
1001 1010

0000

0000

O001 0010
1101 1110

O001 0011
1 M ) I ) 1 0 0 1

1111

1011

autocomphtaria

c6digo ponáerado

cddigo con =eso de I

ciones listadas de bits que no se usan no tienen ningún 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 número 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 fácilmente con los códigos 2421 y de 3 en exceso que se listan ea la tabla 3-6. Estos dos códigos 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-tación 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 código de exceso 3 es un código decimal que se ha utilizado en computadoras anteriores. Este es un c6digo sin ponderacidn. Su asignación

I

pueden corregirse pero se señala 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 información 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 eüge 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 número par. En cualquier caso la suma se realiza de acuerdo al mensaje y al bit P. En cualquier aplicación particular, se adoptar4 uno u otro tipo de paridad. El esquema de paridad par tiene Ia desventaja de contar con una combinación 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 más +idn impar variables es por defrnicidn una función impar. Una funci6n impar es una M ó n 16gica cuyo valor es un binario s i , y 5610 si, un número impar de
TABLA 3-7 G e n d 6 n de un bit de paridad

Mensaje
XYz

P (impr) P (par)

94

CAP~TULOTRES Representación d e datos

variables es igual a 1. De acuerdo con esta definición la función 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 función P (impar) es el complemento de la función 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 envía, 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 complementación 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 transmisiónosi la paridad de los cuatro bits recibidos es par, porque la información binaria transmitida era impar origliialmente. La salida del comprobador de paridad debe ser 1 cuando ocurre un error, esto es,, cuando el número d e 1 en las cuatro entradas es par. Como la función OR exclusiva de las cuatro entradas es una función 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 lógico. La ventaja de esto es que puede usarse el mismo circuito para la comprobación y generación de la paridad.

Figura 3 3 Detección de error con un bit de paridad impar.
Fuente
X

Destino
X

Indicación 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 función.

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 números 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. ¿Cuál es la raíz 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 código 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 .

4

3-10.

3-11.

- -12,
3 l 3 .
3-14.

Obtenga el complementa a 10 de 1 - siguientes números decimales de seis dígitos: 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

c~~f.rrn0 TRES Representación de datos

3-15.

Realice la resta con los siguientes números 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 aritméticas (+42) + (-13) y (-42) - (-13), en binario utilizando la representación de complemento a 2 con signo para números negativos. Realice las operaciones aritméticas (+ 70) + (+ 80) y (- 70) +(- 80) con números binarios en representación de complemento a 2 con signo. Utilice ocho bits para acomodar cada número 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 aritméticas con los números decimales utilizando representación de complemento a 10 con signo para números negativos. a. (- 638) + (- 785) b. (- 638) - (+ 185) Un número binario de punto flotante de 36 bits tiene ocho bits para el signo del exponente y 26 bits más el signo para la mantisa. La mantisa es una fracción normalizada. Los números en la mantisa y el exponente están en representación de una magnitud con signo. ¿Cuáles son las cantidades positivas más grande y pequeña que se pueden representar excluyendo el cero? Represente el número (+ 46.5),, como un número binario de punto flotante con 24 bits. La mantisa de fracción normalizada tiene 16 bits y el exponente 8. En ocasiones el código Gray se llama código 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 línea dibujada entre el 7 y el 8. Usando esta propiedad del código Gray obtenga: a. Los números del código Gray para 16 hasta el 31 como una continuación de la tabla 3-5. b. El código Gray en exceso de 3 para los decimales de 10 a 19 como una continuación de la lista en la tabla 3-6. Represente el número decimal 8620 en: a) BCD; b) código de exceso 3; c) código 2421; d) como un número binario. Liste los 10 dígitos BCD con una paridad par en la posición a la extrema izquierda (un total de cinco bits por dígito). Repita con el bit de paridad impar. Represente el número decimal 3984 en el código 2421 de la tabla 3-6. Complemente todos los bits del número codificado y muestre que el resultado es complemento a 9 de 3984 en el código 2421. Muestre que la función OR exclusiva x = A @ B @ C @ D es una función impar. Una manera de demostrar esto es obtener la tabla de verdad para y = A @ B y para z.= C @ D y después 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.

Lewin. R S. M.J.St.. Ro* C. 5. M D Computa Scienee Press. Ed. Foresman. A. MA: Addison-We ley. F . J. Futndametttals ofi@ &S@. Mano. J. Nueva York: JohnWiley. 1991. II: b i t . Wakerly. Readiig.H. 1988. Ed. Tomek. G. Carnbridge. 6 .Petercon. Intlvrduction fo Logic h i g n .} 1. Hill. 8. Computation Structtires. MA:MlT Press. E n g l e w d Cliffs. y G. Francioni.2a M. Nuwa York: McGraw-Ha. M. 3..y A. 1981. H . Ward. ItitrPduction tu Switching Theoty and Logical Dssign. 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. G. ... I.H. 9. MN:West Publishing. .. 1985. iaqholz. Micmmptrter Architecture and Prrrgraitrniing.= y @ r. Nuwa York JohnWdey. . y R. intmduction to Computer Orgnniurtton.. Logical Design nnd Computer Urguniui tion. 1989. (tos circuitos de la figura 3-3 utilizan paridad impar. Paul. S. Englewaad Cliffs. Jr. Kandel. Glenview. 1 9 8 1 . Elemmts aJComputer Organimtwn. y D es impar. Sandige. DigM D e . Compruebe que x = 1sólo cuando el número total de 1 en A. 1983. 3a. 1990. 1890. Mhfern Digifal Design. Rockville. 1 0 . NJ:Prentice Hall. 3a. S. 2. 7 . Halstead. B. 1981. C 3-26. R. M. NJ:Prentice Hall.. F. 4. Chipa.

decodificadores. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones.EN ESTE CAP~TULO 4-1 4-2 4-3 4-4 4-5 4-6 4-7 Lenguaje de transferencia de registros Transferencia de registros Transferencias de bus y de memoria Microoperacioncsaritméticas Microoperacioneslógicas Microoperaciones de corrimiento Unidad de corrimiento lógico aritmetico 4-1 Lenguaje de transferencia de registros Un sistema digital es una interconexión de módulos de hardware digital que realizan una tarea específica de procesamiento de información. El resultado de la operación puede sustituir la información binaria anterior-de un registro o puede transferirse a otro. Los sistemas digitales varían en tamaño y complejidad desde unos cuantos circuitos integrados hasta un complejo de computadoras digitales interconectadas e interactivas. Los módulos se construyen a partir de componentes digitales como registros. El diseño de sistemas digitales utiliza de manera invariable un enfoque modular. Una microoperación es una operación básica realizada sobre la información almacenada en uno o mas registros. Algunos ejemplos de microoperaciones son despla- nricrooperación . Los módulos digitales se definen mejor por los registros que contienen y las operaciones que realizan sobre los datas que almacenan. elementos aritméticos y lógica de control. Los diferentes módulos están interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital.

un mnhdor con carga paralela puede realizar las mirrooperaciones de incremento y carga. Es una herramienta conveniente para describir la organizaci6n interna de las computadora~ digitales de una manera precisa y concisa. E l control que inicia l a secuencia de microoperaciones. Algunos de los componentes digitales que se presentaron en d ~apitulo -2 sun registros que sirven para realizar microoperaciones. En seguida d ~ m ol o ss símbolos para diferentes tipos de microoperaciones y al mismo tiempo dwribiremos el hardware asotiado con el que se pueden llevar a cabo. IA notacidn simb6lica que se utiliza para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencia de regictros. da& - Es posible ~ p i f i c a r la secuencia de microoperaciones en una computadora. al e$p&ificak. La denominaci6n sirnbdlica que se presenta en este capitulo w optimizeirii en capltulos posteriores para . D e igual manera. Un lenguaje de transferenlcia de registros es un sistema para expresar en forma simb6lica. un registro de desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la izquierda. para que no sea dificil de memorizar. 3. un lenguaje natural. es un sistema para escribir simbolw y combinarlos en palabras y enunciados para la comunicación entre personas. borrar y cargar. 2. las micrmperaciones planteadas. + . pero este procedimiento por l o general representa una extensa explicaci6n descriptiva. al explicar cada qeracibn en palabras.programadores. Tambih puede usarse para facilitar el proceso de diseñar sistemas digitales. las semencias de microoperaciones entre los registros de un m6dulo digital. Por ejemplo. La secuencia de rnicrooperaciones que se realizan sobre la informaci6n binaria almacenada en los registros. quienes aplican este t6nnho a los lengaajes de programacibn.100 C A P ~ ~ JCUATRO M Transferda de registro y micmopera~iones mr. rodar. 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. como el ingk. lenguaje de transferencia de rsgistros *m M -a 5. E l uso de símbolos 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. E s m6s conveniente adoptar una simboIogía conveniente para describir la secuencia de transb rencias entre registros y las diferentes microoperaciones aritdticas y lbgicas asociadas con las transferencias. La organizad611 interna del hardware de una computadora digital se define m+r. B conjunto de iégistros que contiene y sus funciones. EL lenguaje de transferencia de registros que se adopta aquí se considera lo m8s sencillo posible. L a palabra "lenguaje"se toma prestada de 1. Un lenguaje de programaci6n es un p d i m i e n t o para escribir símbolos con el fin de especificar cierto p m computacional. m l.

IR (registro de instruccibn) y R1 (registro de pmesador). Un registro-de 16 b i t s se divide . Los flip-flops individuales en un registro de n bits están numerados en una secuencia de O hasta n . La numeraci6n de bits en un registro de 16 bit. Otros nombres para registros son PC (contador de programa). porque la mayoría de las diferencias entre b s lenguaje de transferencia de registros. tos bits individuaIes pueden distinguirse como en e l ejlnp10 ( b ) . 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).1. las microoperacianes y las funciones de control que describen la organización interna del hardware de las computadorras digitales. el registro que contiene una direcci6n para la unidad de memoria. comenzando desde O eii la p i c i 6 n de Ia extrema derecha y aumentando los números hacia la izquierda.en 2 partes en e l ejemplo (d). 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. para denotar la funci6n del registro. La manera mbs común de representar un registro es mediante una caja rectangular con e l nombre del registro dentro. consisten en variaciones de b s detalles más que en el propósito general 4-2 Transferencia de re& tros ~rnitsjhnda de regisfrss Los registros de computadora e s & representados por letras mayúsculas (en ocasiones seguidas de niimems). como se muestra en el ejemplo (c). Se puede apmder con facilidad otra sirnbología una vez que se familiariza uno con este lenguaje. La figura 4-1 muestra la repxesentacihn de registros en forma de diagrama de bloque. como en la figura 4l(a). La transferencia de información de uii registra a otro se representa en forma simbólica mediante un operador de sustituci6n El enunciado Figura 4-1 Diagrama de bloque de un regish. Por ejemplo. E l nombre del registro de 16 bits es PC.SECCIm 42 Transferencia de registros 101 especificar las transferencias de registros. por lo . puede señalarse en la parte superior de la caja. R1 a) Registra R I 7 6 5 4 3 2 1 0 b ) Aspxto de Ice bits Individuales c) Numeración de bita d) Dividido en dos partes .general se llama un registro de direccionamiento de memoria y se designan las letras MAR por sus siglas en inglés (rnemoy address register).

La siguiente transicidn positiva de1 reloj en el tiempo t + 1 encuentra activa la entrada de carga y las. de otra manera. deseamos que la transferencia ocurra s610 bajo una condición de control predeterminada. la transferencia ocurrird con cada transicidn de pulso de reloj mientras P permanece activa. L a funcián de control se incluye en e1 enunciado como sigue: La condición de control se termina con un signo de dos puntos. Las n salidas del registro R1 están conectadas a las n entradas del registro R2. La figura 4-2 muestra el diagrama de bloque de la transferencia de R1 a R2. que es igual a O o a 1. Normalmente. Cada enunciado escrito en notacián de transferencia de registros implica una estnictura de hardware para realizar la transferencia. Esto puede mostrarse mediante un enunciado si. Aunque la condición de control P se activa hediatamente después del tiempo t. el emhido del registro fuente R1 no cambia después de la transfe rencia. El registro R2 tiene una entrada de carga que activa la variable de control P. Una funcibn de control es una variable holeana. Designa la sustituci6n del contenido de R2 por el contenido de R1. Un enunciado que especifica una transferencia de registro implica que estiin disponibles circuitos de Ia salida del registro fuente a la entrada del registro destino y que el registro destino tiene capacidad de carga paralela. la . Se considera que todas las transferencias ocurren durante una transicibn de flanco de reloj. Representa l a necesidad de que la operaci6n de transferencia sea ejecutada s61i por el hardware si P = 1. La letra n se usar4 para indicar cualquier cantidad de bits para e l registro. Como se muestra en el diagrama de ternporización. Por defini- ddn. P se activa m la secci6n de control mediante el flanco ascendente de un p u b de reloj en el tiempo t. entradas de datos de I D se cargan a su vez en el registro en paralelo. Se sustituirá por un n h e m real cuando se conozca eI tamaño del rrgistro. Se considera que la variable de control esta sincronizada con el mismo reloj que se aplica al regish. Debe notarse que el reloj no se incluye como una variable en los enunciados de transferencia de registros. En ocasiones es conveniente separar las variables de control de la operaci6n de transfemcia de registros al especificar una función de cmfrol.102 CAP~TULO CUATRO Transferencia de registro y microoperaciones denota una transferencia del contenido del registro R1 al registro R2. P puede regresar a O en e l tiempo t + i. entonces ( i f f h ) Si (P = 1) entonces (R2 +~ 1 ) Fmdh de control donde P es una &al de control que se genera en la seceibn de control.

El enunciado + representa una operacibn que intercambia d contenido de dos registros durante un pulso de reloj común. La flecha significa una transferencia de informacibn y su direccibn. LQS símbolos bAsicos de la notaci6n de transferencia de registros se listan en la tabla 41. y se deben proporcionar trayectorias para transferir infomacibn de un registro a otro. La cantidad de alambres ser4 excesiva si se usan líneas separadas entre cada . transferencia real no ocurre hasta que se activa el registro mediante la siguiente transición positiva del reloj en el tiempo t 1. Se usan parhtesis para &alar una parte de un registro al "peciñcar el rango de los bits o al otorgar un nombre simbólica a una parte de un registro. Se usa una coma para -arar dos o m& operaciones que se ejecutan al mismo tiempo. Los registros es& representados por letras mayCisculas y los nCimems pueden estar despub de las letras. siempre y cuando T = 1.SBCCI~N T r a n s f e d a de canal y de memoria 103 L a tmmferencia ocurre aqiii- b) Diagrama de temprización Figura 4-2 Transferencia de Rl a R2 cuando P = 1. Esta operación simultiínea siempre es posible con registros que tienen flip-flops activados con flancos. 4-3 Transferencia de canal v de memoria Una computadora digital típica tiene muchos regiskm.

Esto hace que las líneas del bus reciban el contenido del registro A dado que las salidas de este regiptro 5 t h con~tadas a lps entradas.m# A R ~ TransfefPnda de registro y mkrooperacimes . Eh genetal. mediante las cuales se transfiere hformaci6n binaria una a la vez. R2 tetras . La ' . ' 1 R2(0-7). la salida 1 del registro A está conectada a la entrada O del MUX 1 porque esta entrada se etiqueta Ai. para producir un bus común de n líneas. Una estFuctura de bus mnsb-de un conjunto de líneas comunes. cuya informaci6n biaria se col6ka d'espuks en el bus.la4 entradas -de los multiple~&. Por lo tanto. una para cada bit de un . en el qu@ cada uno tiene cuatro mtradas de datos. 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. el MUX 1 hace funcionar el multiplexor sobre 10s cuatro bits 1 de los registros y sucede igtial para tlos otros dos bits. Los rnultiplexo~e6 seleccionan el q i s t r o fuente. bus común . Las dos b e a s de dmci6n SIy So estdn conectadas a las entradas de seldi6n de los cuavfo mrlltiplexo&. el Bils. 81 bits & la d s m a posición significativa m cada a las dtradas de datos de un rnulkiplemr para formar tina lhed eii.Cada registro tiene cuatro bits. Un esquema mAs eficiente paka transkerif la infopani6n entre los registros. y dos entradas de detci8sr S i y Para no cohplicar el &@ama c m 16 líneas que se cruzan mtfe S I . Las' aiatto lheas de seleccidn escogen lm'ntatro bits de bn registro y los -transfieren eri el bus comdn de cuatro heas. 'Lá construcci6n de un sistema de bus para cuatro registros se muestra en la figura 43. de1 O al 3. 'un s i s t m de bus hará füncihnai el multipiexm sobre k ieghtros de n 6its cada uno. utilizamos. es un sistema de canal (bus)común. Caarido &So = 00. de $atas O. .TABU Sfmbd~ 4 1 S 1 - W s h para transferencias de registros Descripción - Ejemplos MAR.h s énfradas de datos O de los cuatro multiplexores se seleccionan y se aplian a las salidas que forman el bus. El bus está formado de 4 multipIexores 4 X 1. el MUX O hace funcibrlar d multiplexor sobre 'los cuatro bits 17 de los'registms. R1 + R2 - ' 1' -' m . de l o s multipIexores. en una configura"ci6h de registros rniiltip6. RZ(L) R2 + R1 R2 + R1.Por qernplo. U n a manera de consmir un sistema de bus común es con muItiplexe res.etiquetas para mohhar 'las conexiones de las salidas de los registros a . . reeistwi. numerados del O al 3. U ~ 'seilales S de c0%01 determinan cu4l registro selecciona el bus durante cada transferencia d e registro particular.' selecidtl de bus registro y >todos los qtros que wnforman el sistema.Representa iIn registro Representa parte de un registra Represenb transferencia de infmacibn Separa dos microoperaciones & iiumerales) Paréntesis ( ) flecha Cama.

E 1 tamafío de cada multiplexw debe ser k X 1 dado que hace funcionar d mdtiplexor sobre k iíneas de datos.s m b f i r 4-3 Transferencia de 4y de memoria 105 S1 - t . necesita 16 muitiplexoms. cantidad de multiplexom que se necesitan para construir el bus es igual a n. ' 3 2 1 0 3 ttt 2 1 0 O . D2 C 2 82 1 Di CI BI A I LXi 1.. 4 A2 4X 1 + 4x1 CO BD AO 1 DZ Di Do ttt 3 2 1 c z CI ftt 2 1 c o I BZ BI Bo A i Ao t t -t. TABLA e 2 Tabla de furifi6n para $1 bus de la f i e l 4-3 St SO Registro seleccionado . * 3 4x1 -+ 0 4X 1 2 1 1-1 A2 . 3 0 Figura 9-3 Sistema de bus para cuatro registra. un bus comdn para 8 registros de 16 bits cada uno. 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.. Por ejemplo. uno para cada hea en el bus. s o- * - = lbeas + Buscom6n de cuatro .. l a cantidad de bits en cada registro.

s e ha selecQonado. La entrada de control determina el estado de la salida. E l estado de alta impedancia acNa como un circuito abierto. 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. Cuando la entrada de control es O. y el contenido del bus se carga en d e t r u RI. El tercero es un estado de alta impednncia. Una compuerta de tres estados es un circuito digftal que exhibe tres estados. Cuando se incluye e1 bus en e l enunciado. lo que significa que la salida está dmnectada y no tiene importancia 16gica. Cuando la entrada de control es igual a 1. compuerfa de tres estados a" 'mpedancin acoplador Canal de bus de tres estados Puede construirse un sistema de bus con compuertas de tres estados en lugar de mtiltiplexoreg.slmbala gdfics de una compuerta de acoplamiento de tres estados se muestra en la figura 44.h transferencia de infamación 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. Dos de los estados son sefiales equivalentes a los números 1 y O 16gicos. A partir de este enunciado. h transferencia de registros se representa de la siguiente manera: El cohtenido del registro C se coloca en e l bus. El. Las compuertas de tres estados pueden realizar cualquier procedimiento ldgica convencional. El enunciado 6imb6lico para una transferencia de bus puede mencianar el bus o su presencia puede estar impiícih en el enundada. como una AND o NAND.para producir la transferencia por el bus. S i sabe que el bus existe . gansfecencia directa. Se distingue de una de acoplamiento normal porque tiene . el disefiador sabe cuales seildes de control deben activa. la salida se deshabilita y la compuerta va a un Figura 4 4 S ú n b o l ~ gráfiw para un amplador de tres estados. w a entrada namd y una entrada de conbL. Entrada normalA Salida Y = A si C = 1 Alta impedancia si C = O Enhada de control C . al activar su entrada de control de carga. como en una compuerta convencional. se habita la salida y la compuerta actúa como cualquier acoplador convencionaL donde la salida es igual a la entrada normal.q el sidterna puedg ser conveniente m o s m &lo la.

utiiizando acopladores de tres estados. s i n peligrosos efectos de carga. Para construir un bu9 comGn para cuatro registros de n bits cada uno. Una manera de asegurar que no está activa más de una entrada de control en cualquier mommto dado.la que no disponh otras compueiitas. porque el circuito puede sustituir el multiplexor en la figura 4-3. El estado sistema de bus de alta imipdatxia de una compueFta de t w estados pmparciona una caractedstica especial de-. Cuando l a línea habilitada está activa. Cuando la entrada habilitada del decodificador B O. En cualquier momento dado no puede estar activo más de un acciplador. Debido a ella. todas sus cuatro salidas son O. sin codderai el valor de la entrada nomial. (Esté tipo de conexión no puede realizarse con compuertas que no tienen salidas de tres estados. Las salidas de cuatro acopladores s e conectan juntas para fonnar una h a &e bus h k a . y la línea del bus se halia en estado de alta impedancia. mientras loe demág se mantienen en estado de alta impedancia. se pueden conectar. es mediante el uso de un decdificador corno se muestra en el diagrama. Los acopladores conectados deben controlarse para que sólo un acoplador de tres estados tenga acceso a la linea del bus.) Las entradas de control a los acopladores deteminan cu&lde las cuatro entradas normales se cainunicard con la Unea del bus. medite alambm. mdor 2x4 1 2 . Ltnea de bis para al bit O A0 B o 4 6 Do -'{WjIltar 4w i í i q . ta mnstmcci6n de un sistema de bus con acopladores de tres estados se muestra en la figura 4-5. Una cuidadosa iiivestigacibn revelar6 que la figura 4 5 es otra manera de construir un multiplexor 4 x 1 . porque los cuatro acopladores están inhabili&dos. uno de l o s acopladores de tres estados estar4 activo. una mayor cantidad de salidas de compuerta de tres estados. 8necedtams n circuitos con cuatro Figuta 4-5 Lfnea de bus con acoplado? de tres estados. dependiendo del valor binario en las entradas de selecci6n de1 decodificador. 3 - S .SECCaSN 4-3 Transferencia de canal y de memoria 107 estado de a l h impdanda.

La operaci6n de escritura puede derlararse en forma simMlica como eigue: Esto provtiea una transferencia de informaci6n de R1. como se muestra en la figura 4-5. Transferencia de memoria La operaci6n de una unidad de memoria se dexribió en la seccibn 2-7. Esto se realizar4 encerrando la direccibn en paréntesis cuadrados despugs de la letra M. La transferencia de.108 C M ~ I L O CUATRO Transferencia de registro y miuooperaciones acopladores en cada uno. dentro de la palabra de memoria M seleccionada por la dirección en AR. Una palabra de memoria se "pmentard con la letra M. desde la palabra de memoria M seleccionada m e d i t e la direccibn en AR. se selecciona mediante la dirección de memoria durante Ia transferencia.seleccionada por la direcci61~ Ahora conside que los datos de enbada esiár~en el registro R1 y que la dkmihn está en AR. Cada p p de cuatro acopladores recibe un bit si'@cativo de los cuatro registros.La operación de lectma puede declararse como sigue: leer memoria d b i r monta Esto provoca una transferencia de informacibn dentro de DR.informaci6nde una palabra de memoria al ambiente extemo se llama operación de l e t w a . entre las muchas disponibles. Sólo se necesita un decodificadm para s e k i o n a r entre los cuatro ~gistros. cada salida común produce una de las h a s para e l bus comtín para un total de n líneas. h transferencia de nueva UifomaciCin para abcenarse m la memoria se h a operaci6n de mritura. llamado re@m de direccionamiento y simbohdo por AR. Es necesario especificar la direccidn de M cuando se escriben operaciones de transferencia de memoria. Considemos una unidad de memoria que recibe la direccibn de un registro. La operaci6n de escritura transfiere e l contenido de un registro de datw a una palabra de memoria M. 4-4 Microoperaciones aritméticas Una microoperacibn es una operacidn elemental efectuada con 10s datos almacenados en los registros. llarnado registro de datos. Los datas se transilererr a otro registro. simbolizado por DR. Las microoperaciones que se encuentran con mayor frecuencia en las computadoras didtales se clasifican en cuatro c a t e gorías: . La palabra de memoria particular.

datos no numéricos ahnacenados en registros. pero no se incluyen en el conjunto básico de rnicmperaciones. En las dos siguientes secciones presentamos las microoperaciones l6gicas y de corrimiento. La resta se lleva a cabo con mayor frecuencia. Microoperaciones aritméticas que ejhtan operaciones aritmCticas 1 sobre datos num&ricosalmacenados en los registros. 2.1 . resta.KL Las microoperaciones de incremento y decremento se representan m e diante las operaciones más-uno y menos-uno. decremento y corrimiento. La mimooperación de transferencia de registros se analizó en la sección 4-2. respectivamente. 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. mediante la compIementaci6n y la suma. registro Rl se suma al contenido del registro R2 y que la suma se transfiere al registro R3. Micrmperaciones de transferencia de registros que transfieren Mor-' maci6n binaria de un W t r o a otro. En esta seccidn presentamos un conjunto de microoperadiones aritmkticas. El único lugar donde estas operaciones pueden considerarse como hicrooperaciones ea en un sistema . podemos especificar la resta mediante el siguiente enunciado: R2 es el simbolo para el compIemento a 1 de R2. Estas dos son operaciones aritm4ticas vhlidas. En lugar de usar el operador menos. Las micmoperaciones aritméticas bdsicas son suma. Las otras miraciones aritmdticas bAsicas s e listan en la tabla 43. 4 Microoperaciones de corrimiento que ejecutan operaciones de corrimiento sobre los datos almacenados en los registros. Dedara que el contenido del. produce e1 complemento a 2. Estas microoperaciones se implantan con un circuito combinacional o con un contador binario descendente. 3. Micmperaciones 16gicas que ejecutan operaciones de manipulacibn de bits sobre. Sumar 1 al complemento a 1. Sumar el contenido de R1 a l complemento a 2 de R2) es equivalente a R1 . Para implantar este. Los otros tres tipos de micmoperaciones cambian el contenido de la informaci6n durante la transferencia.enunciado con hardware n-itamos tres registros y el componente diital que ejecuta la operacibn de suma. Las operaciones aritm&tkasde multiplicar y dividir. no se Estan en la tabla 43. La microoperaci6n aritmética definida por el enunciada especifica una microoperaci6n de suma. incremento. Los corrimientos arith+ticos se explican m 6 9 tarde junto con la&rnicmperaciones de corrimiento.

suniador chplefo .de Rl en uno ' . Las salidas S de los sumadores completos. las *=. 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). tan pronto.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. - . " Un suma* biqasio de n bib necesita n sumadores completos. Sumador b-o Para efectuar 'la micróoperaci&n de suma con hardware. El Cireuito digital que genera la suma aribnetica de d& niimeros binarios de cualquier longitud w h a sumador binario. En tal caso. la operaci6n de multipliea$ín se efectqa con una secumcia de microoperaciones de suma y de conimiento.d emic?nidode R2 (negar) RI más el complemento a 2 de R2 (resta) Imcmentar el eonienido de R1 en uno Dcmmaniar d contenido. En :la. B sumador binario se construye con circuitos sumadoy completos conectados en cascada. Los acarreos &tán mríectados en una cadena que fecorre los sumadores completos.con secuencia de miemperaciones de resta y de corrin+nto. camo k semíal de salida se propaga por el circuito combinatsrio.toestá conectado al acarreo de entrada del siguknte sumadur completo de nivel superior. reiita y corrimiento (vCase el capfhilo 1 0 ) . Los n bits de m a d o r binrrario . Para ~pec2icarel hardware en un caso así.wmple. E31 acarreo de salida d@e -da sumador . donde se ejsutan pediante un circuito ~mbinatorio. se necesita una lista de enunciados que utilicen las microoperaciones bdsicas de suma. con el acarreo de salida de un gumador compIeto conectado aI acarreo de entrada del sipiente sumador completo. necesitamos los regisbrw que contengqn loi datos y el componente diqital que efectúe la si-&a ari'h&ticA. El acarreo de entrada al sumador biharb es Cpy el acarreo de salida es Ca. los bits de suma requeridw.Descripcibn El antMdo de £21 m t s R2 transferido a R3 El contenido de R l menm R2 transferido a 83. L a s bits sumandos de A y los bits sumandas de B se íden&can mediante niimeros suscritos de derecha a izquierda.. mayoría de Ias computadoras. co'n gl O suscrito denotanao el bit de menor orden. La figura 4-6 muestra la interconexi6n de cuatro sumadores compl&os o FA por sus siglas én inglés para proporcionar uri sumador binario de cuatro bits. figital. Camplemm€ard contenido de R2 (complemento a 1) Complementar n 9. L a dichibn se ejeqta .

El complemento a 2 puede obtenerse al tomar el ct>mptementoa 1 9 agregar 1 al par de bits menos significativo. datos para h s entradas A provienen (de. s e g h se anaiiib en la swri6n 3-2. Las operaciones de suma y resta se pueden combinar en un circuito corrifin al incluir una compuerta OR exclusiva con cada sumador completo.S2 SI F i g a n 4 4 Sumador biiario de 4 bits. Un circuito amador sustractor de 4 bits se mueitra en la figura 47.un registro Sumador sustractor binario La resta de números bhanos +puederealizarse en forma m6s conveniente por medio de mmp1ementos.B puede realizarse al tdmar el complemento a 2 de B y sumarlo a A. sustituyendo su coiiknido previo. y los n bib de datos para las B entradas provienen de b€roregistro (por ejemplo R2). La entrada de modo controla la operación. (po~ ejemp10 Rl). ia suma pude transferirse a un tercer Wistro o a alguno de los registros fuente (R1 o R2).Recuerde que la resta A . A2 swmadw -tMctor Bt A3 Bz 81 AI . E 1 complemento a 1 se puede obtener con invemres y se puede agregar 1 a la suma mediante el acarreo de entrada. Cuando M = O e1 circuito es un Figura 4-7 Sumador surttractor de 4 bite.

Una de las entradas al semisumador. El circuito ejecuta la operación A m8s el complemento a 2 de 0. si un registro de 4 bits tiene un valor binario 0110. Esta microoperaci6n se efechía con facilidad con un contador buiario (véase la figura 2-10). 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. Para números con signo el resultado es A . Por ejemplo.E. Esto puede Iograrse mediante semisumadores (vhse la figura 1-16)conectados en cascada. E l circuito recibe los cuatro bits de A. b i o también hace que !as salidas de So a S3 vayan a O. HA por sus siglas en inglh. = 1 mentan y se suma un 1 mediante el acarreo de entrada. Cada compuerta OR exclusiva recibe una entrada M y una de las entradas de B. tenemos B @ = B. la transición del pulso de reloj incrementa el contenido del registro en uno. Todas las entradas B s e compleM = 1. está conectada al I 16gico y la otra entrada esta conectada al bit menos significativo del número que se va a incrementar. Puede haber ccasiones en que la micrmperacidn de 7 r - incremento deba realizarse con un circuito combinatorio independiente de m inerementadm un registro en particular. Para ndmeros sin signo esto da A . Incrementador binario La micmoperaci6n para incrementar ~ u un m 1 a un número en un registro. les agrega 1 y genera la salida iricrementada en So a S3 El acarreo de salida C4 será s610 1 después de incrementar el n h e r o binario 1111.B si A r B o el complemento a 2 (B . pasara a O111 después de incrementarse. menos significativo. El acarreo de salida de un semisumador estb conectado a una de las entradas del semisumador del siguiente orden más alto. siempre y cuando no exista sobreflujo. A 2 Al .C A P - C U A M Transferencia de registro y mimoperaciones sumador y cuando M = 1 el circuito se convierte en un sustractor. Cada vez que la habilitacibn de cuenta está activa. tenemos B @ 1 = B ' y C. En la figura 4-8 se muestra el diagrama de un incrementador de circuito combinacionaI de 4 bits. Cuari'do M = O. Figu-ra4-8 Imrernentador binario de 8 bits. a A. Cuando .A) si A < B.

Las otras dos qntradas de datos estAn conectadas al O 16gico y al 1 Iógico. al extender el diagrama para que incluya n sernisumadores.Las cuatro entradas de A van directamente a las entradas X del sumador binario. E l bit . - Siimar Sumar con acarreo k t a r con pr&tnmo Restar Transferir A Incremcntnr A Dcxrcmentar A Transfmir A .Tiene cuatro circuitos sumadores completos que constituyen el sumador de 4 bits y cuatro multipIexores para elegir diferentes operaciones. Circuito aritmético circuito adtmdtico acarreo de entrada Las microop. TI'L) y la señal del 1 16gicw puede generarse a través de un inversor cuya entrada sea 0. E l acarreo de entrada Cm va al acarreo de entrada del FA en la posición menos significativa. El diagrama de un circuito aritmético de 4 bits se muestra en la figura 4 9 .detunción de circuito arihdiico Entrada Y Salida . Los otros acarreos se conectan de una etapa a la siguiente. Al controlar las entradas de datos al sumador. Los cuatro muItiplexores se controlan mediante dos entradas de selecci6n SIy So. D=A+Y+C. es posible obtener diferentes tipos de operaciones aritmgticas. E l O 16gico es un valor de voltaje f i j o (O volts para circuitos integrados.menos signifkativo debe tener una entrada conectada a1 1 16gicu.El circuito del diagrama 4 8 puede ampliarse a un incrernentador binario de n bits. E l componente bAsico de un circuito aritmético es el sumador paralelo. La salida del sumador binario se calcula en la siguiente suma a r i h & tia TABLA 4 4 Tabla . Las otras entradas reciben el número que se va a incrementar por acarreo de l a etapa anterior.eracionesaritmkticas listadas en la tabla 4 3 pueden implantarse en un circuito aritmbtico compuesto. Existen dos entradas de cuatro bits A y B y una salida de cuatro bits D. Las entradas de datos de los multiplexores tambign reciben e l complemento de B . Cada una de las cuatro entradas de B está conectada a las entradas de datos de los multiplexores.

S14 M P f i U D CUATRO Tmnsfemda de registro y microoperaciones Figura # Circuitoaritmgtim de 4 b i b . .

1. Nbtese que l a microopración D = A se genera dos veces. En e l primer caso tenemas una transferencia directa de la entrada A a la salida D. ecto es. Como un ejemplo numérico considere que cada registro tiene 4 bits. Cm es el acarreo de entrada.e l valor de B se aplica a las entradas Y del sumador. porque d o hay siete rnicrooperacioñes disthbs en el circuito aritmético.L a micmperación OR-exclusiva mencionada antes representa la operacidn 16gica: & & "- . Cuando SISO= 10. las entradas de B ya no se toman en cuenta.ktodaD=Acuand0C. Sumar un niimiero A al complemento a 2 de 1 produce F = A -t. Cuando Cm = O. todos los grupos de 1 e insertan en las entradas Y del sunaador para produe la operaci6n de decremento D = A . Sea el con& nido de R1 1010 y el contenido de R2 11W. su. la salida D = A + B + 1 . la micrmpraci6n OR-exclusiva con el contenido de d a registros R1 y R2 se representa mediante el enunciado pk: R l + R1 R2 ' Espedfica que 8e va a ejecutar una microoperacibn lógica en los bits individuales de l o s registros. Nótese que el símbolo + en la ecuaci6n anterior -menta un más gritmktico. &to prduce A + el complemento a 2 de B. entonces D = A + B + 1. Si Cm= O. Al controlar el valor de Y . 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). &ando Si$ = 0 1 . e l cual puede ser igual a O O 1.B . Las micmpe'aciones 16gidaa especifican operaciones binarias para arreglos de bits almacenados m registms.B. Cuando SISO= 00. entonces D = A .=OyD=A+1 cuando C. siempre que la variable de control P = l. Ambm casos ejecutan la microoperacibn de suma con o sin el acarreo de entrada.d ciompl-to B x aplica a ias mtra¿as Y del sumador.suma resta immentar deerementar % donde A es e l número binario de 4 bits en las entradas X y Y es el número binario de 4 bits en k s entradas Y del sumador binario. $i Cm = 1 . Estas operaciones consideran cada bit de r e g i s b en forma separada y las tratan corno vaddbles binarias. y en . se incmnenta en 1 .lugar todos los grupos de O se h s e q t a n en las entradas Y. l o c g l es equivalente a una resta de A . entonces D = A 4. complemento a 2 de 1 = A .E n el segundo caso el valor de A. La salida se ~0nvi~enD=A+O+C. Esto ea +valente a una rwta con petarno.B. es posible generar las oeho mlcrooperaciones arihéticas que se lrstan en la tabla 4-4. l o mal p d u c e una transfemck directa de la entrada A a la salida D. Ia d i d a D = A + B. A .1. = 1. Si Cm = 1 . Por ejemplo.1 cuando Cm = O. Cuando Cm = 1 . con las dos entradas de selecci6rt SIy So y hacer a .1 +' 1 = A. C i y a l a O o 1. Cuando SISO= 11.

despuds de la ejecución de la microoperaci6n.Aunque el símbolo 4. para diferenciarlas de l a símbolos correspondientes que se utilizan para expresar funciones bmleanas. La miaoopexación OR estd representada por ei sfmbolos especiales - + simbolo V entre los regigtrcrs RS y R6. 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 sínitalo + entre P y Q es una operaci6n OR entre dos variables binarias de una funcibn de control.OR.tiene dos si@hdoB. pibk disth@los al identifirar dbnde murre el sfmbo10. 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. es igual a la operacidn OR-exclusiva bit a bit sobre pares de bits en R2 y valores previos de R1. AND y complementar.6 CAFfIULO CUATRO Transferencia de registro y microoperaciones 1100 O110 1010 Contenido de R1 Contenido de R2 Contenido de R1 después de P = 1 E i contenido de R1. Se usará e l símbolo v para denotar una rnicrooperaci6n OR y el shbolo A para denotar una micrmperaci-6n AND. cuando se usa para r e p m t a r un mAs aritmbtico. Al usar símbolos diferentes. Se adoptarán simbolos especiales para las micrqeraciones 16gicas. pero son muy iitiles para manipulacibn de bits de datos binanos y para tbmar decisiones 16gicas. Cuando a p a m a en una mhmpaci6n signifiará un d e a r i t d i c o . Otra tazón para adoptar dos conjuntos de símbolos es la posibilidad de distinguir el slmbolo + . de una y a c i 6 n OR l&gka. Lista de daooperaciones 16gcas Existen 16 operaciones 16gkas diferentes que pueden ejecutarse con dos variables bharhs. Las micrmperacion~I6gicas se usan rara vez en chputos cienWieos. 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 . El símbolo entre R2 y R 3 especifica una microoperación de suma. será posible diferenciar una operaci6n lógica y una funri6n de control (o booleana).

En esta tabla. de las cuafes se pueden derivar d a s las dern6s.. 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.XOR (OR-exclusiva) y complementar. = X ' Y &=Y Fb=x$y F. 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. TABLA 4-6 IX~CMI? mkwperaciones 16gicas Funci6n boolmna Microopación Nombre Limpiar FO = O Fa = xu K =XY' F a =x Fe0 F+AAB AND ' F+AAB F+A F. la mayoria de . 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. a la F15 representa una tabla de verdad de una función booleana posible para las dos variables x y y. = 1 N Establk t d o s a dígitos 1 dlgitos 1 . Aunque existen 16 microoperaciones lhgicas. ias 16 funciones booIeanas de dos variables x y y w expresan en forma abebraica en la primera columna de la tabla 4-6.m Fttodos F ~ A V F Complementar A Fu = (XY )' F. 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.bles que se obtienen c m dos variables binarias según se muestra en i a tabla 4-5. OR. AND.ias computadoras utiiizan 6610 cuatro.=x+y F+XAB FtB F+A@B F+AvB TrñnsfmirA 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 . N6tese que las funciones están determinadas a partir de las 16 combinaciones binarias que pueden asignarse a F. cada una de las 16 columnas que van de la F. ias microoperaciones ldgicas listadas en la segunda columna representan una relaci6n entre el contenido binario de dos registros A y B.

tas variables de selecci6n se aplican a todas las etapas. En una aplicacibn tipica. el registro en A es un registro de un pmwdor y los bits del registro B constituyen un operando lógico extraído de la memoria y colocado en el registro B. c i m i ' t aI ¿ @ o La figura 4-10 muestra una etapa de un circuito que genera las cuatro microoperaciones 16gicas básica8 E s t á fofrriado de cuatro compuertas y un multiplemr. Cada una de las mafm operaciones lógicas se genera por una compuerta que ejecuta la 'lbgica q d e r l d a . 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. El siguiente qemplo numérico hace m6s clara esta opacibn: inicio selectivo .n .l6gico. borrar un grupo de bits. el diagrama debe repetirse n veces donde i =: 0. o insertar nuevos valores de bits en un'registro.T m C U A ~ Tm&mda de registra y mimperaciom S 1 S o O m Salida &=AA3 Operaclbn .. Algunas aplicaciones Las micmperaciones 16gkas son muy útiles para manipular bits individuales con una parte de una palabra almacenada en un registro.Ei O O AND OR XOR T 1 E=AvB E=A@B 1 1 O 1 E=A Complemento b) Tabla de función a) Diagrama lbgiro Figura M V Una etapa un dmiito. de bit que tienen O en B. -Para un circuito lógico con pt bits. La tabk de funcibn en Ia figura 41O(b) lista 4s rnicrmperaciones lógicas que se obtienen para cada mmbinaci6n de las variables de aeIeccidn. Las salidas de las compuertas s e aplican a las entradas de datos del multiplexor. Pueden usarse para cambiar valores de bit. El diagrama muestra una etapa típica con subindices i.2 . Las dos entradas de seleccibn SI y So seleccionan una de las entradas de datos del multiplexor y dirigen su valor a la salida. 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)..1.1.

lía microoperacibn OR puede para lievar a 1 o iniciar los biis de un registro de manera selectiva.lógico) A despds limpieza selectiva Asimismo. Por ejemplo: - 1010 E O110 A antes B (operando.los dos bits del extremo de B son unos. los dos bits de la extrema izquierda de 3 son unos. la micmperacibn exclusiva-OR se puede utilizar para complementar selectivamente los bits de un registrador. Este ejemplo puede servir también corno tabla de verdad de la mal se puede deducir que la operación de complemento selectivo es simplemente una micruoperacibn exclusiva-OR En consecuencia. por lo tanto los bits correspondientes de A se llevan a 1. A pariir de la tabla de v e e d notarnos que los biis de A después de la operacih se obtienen de la operacibn OR 16gica de los bits en B y de los valores anteriores en A. 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 . 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 l o tanto. No afecta las posiciones de bits que tienen ' O en B. por l o que los bits correspondientes de A se borran hácia 0. La operación de wmplemenlo selebtivo afmta a los biks en A donde están los unos mrsespondientes en B. Uno puede deducir que la operación booleana ejecutada en los bits individuales es AB'. . 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. excepto que h s bits de A se borran sólo hay O correspondientes en .1100 1110 1010 A antes B (operando lbgieo) Adqués compiemento selectivo Lns dos bits de B del extremo izquierdo w n unos. La r n i c m p raci6n 16giea correspondiente es La operari6n mtrnas~~arar es ssimüar a l a aperacidn de limpieza selectiva. con lo cual se complementan los bits correspondientes de A. Por ejemplo: 1010 0010 A antes S (operando ldgico) A después Nuwamente.

La operacidn insertar introduce un nuevo valor en un grupo de bits. 1.dos bits corrqmndienb son ambos O o a m b 1. y pbcas proporcionan una instrucci6n que ejecute la miaooperacl6n para limpieza selectiva. 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 A antes B (enmascarar) A después de enmascarar y despuCs se inserta el nuevo valor: 0000 1010 1001 OOaO 1001 10lO. como se aprecia en el siguiente ejemplo num4rko: 1010 1100 1000 A antes B (aperando lógim) A despu& de enmascarar Los dos bits de A del extremo derecho se barran después de que los bits correcpondienks de B son 0. O110 1010. A antes S (insertar) A despuds de la insercibn 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 sólo dlgitos O si los dos números s m iguales. & cudyk caso la operación QR exclusiva p d u c e un O. Los dos bits de la extrema izquierda pemaneeeh halteradas porque los bits conkspondienfes de B son unos. La operaci6n se realiza rnyante una microoperacidn OR exclusiva según se muestra en el siguiente ejemplo: Cwnda A y B son @S. Esto se realiza al enmascarar primero los bits y desputs aplica una h t k c ción OR sobre ellos con el valor requerido. La operación enmascarar es una microoperaci6n AND. Por ejemplo. supongamos que un registro A contiene mho bits.120 CAP~IULO CUATRO T m f e m i a de registro y microoperaciones B. La operación enmascarar es rn&'&nveniente para u s a que la operacibn de limpieza selectiva porqiie la mayoria de las computadoras proporcionan una instrueci6n AND. Despub se verifica el mdhdo de todo$ O para detennhar s i los dos n5meros eran iguales. .

El bit transferido a la posición extrema por la entrada serial se considera que es O durante un corrimiento 16gico.4-6 Microoperacibnes de corrimiento comrrimiento ldglco ia~ microoperaciones de corrimiento se usan para la transferencia serial de datos. El contenido de un registro puede correrse a la izquierda o a la derecha. Un corrimiento 16gico es aquel que transfiere un O por la entrada serial. Existen tres tipos de &entos: 16gic0. respectivamente. La notaci6n simbólica para las mimperaciones de corrimiento se muestra en la tabla 4-7. También se utilizan junto con operaciones aritmgticas. El corrimiento circular (tambih conocido como operaci6n de rotacidn) hace circular los bits del registro por los dos extremos s i n pérdida de infonnacidn. Adoptaremos los símbolos por sus sigIas en inglks. 16gicas y de procesamiento de datos. U t d h m o s los símhlce di y cir para el corrimiento circular a la izquierda y para el corrimiento circular a la deredia. circular y arihdtim. Durante una operación de corrimiento a fa izquierda la entrada serial recorre un bit a la posici6n de l a extrema derecha. la infomci6n transferida mediante la entrada serial determina el tipo de corrimiento. el primer flip-flop recibe su informaci6n binaria &e la entrada serial.aci6nsimb6lica Descripcibn RtshlR R tshr R R tcil R R +cir R R tashl R R +ashr R 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 . shl y shr para las microoperaciones de corrimiento 16gico a la izquierda y corrimiento lógico a la derecha. Durante una operacidn de corrimiento a la d e r h la entrada serial transfiere un bit a 'la posid611de Ia extrema izquierda. El símbolo de registro debe ser igual en ambos lados de la flecha. Al mismo tiempo que se recorren los bits. TABLA 4-7 Miaooperaciones de desplazamiento codmiento citrular Rcprclsentt. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada mial. 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.

. al %do. El bit de la extrema izquierda en al W t t o contime 4 bit de signo y los bits retantes contienen el número. no hay sobreflyjo. pero si V. Esto sucede s i la multiplicaci6n por 2 provoca un sobreflujo.. = 1. Por b tante Ri-2 queda igual. . R. &be el bit de R. V. -I de la p k % ne x mntiene el bit de signo. E 1 signo se invierte si el bit en R. En a t e tipo de configuracihn se necesita un pulso de reloj para cargar los datos dentro del registro. . -2 Puede usasse un ftipfiop V.enparalelo y después ejecutar el cotrimiento a la derecha o la izquierda. Ei corrimiento aritmético a fa derecha no m&ca d signo y recorre el n h m {incluyendo el bit de signo) al a derecha.b s ni'imens ne~ativos estirt en su forma de complemento a 2. es el bit maS si@ afivo del n h m y 4 ea e l bit menos sip%eakiva. debe transferirse dentro del flip-fi~p de sobreflujo con e! mismo pulso de reloj que ejecuta el corrimiento del registro.. y otro para iniciar Figura 4-11 kplazamiwito aritm6ticoa la derecha. 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. .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 aritmético .cambia su valor después del c~rrimiento. Ocurre un sobreflujo después de un corrimiento aritmktico a la izquierda si. . ~~ .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. hay un sobrefiujo y una inversibn de signo despuh del corrimiento. E31 bit de signo es O para Iws números positivos y 1 para los negativos. Implantaci6n del hardware Una opci6n posible para una unidad de corrimiento serla un registro de corrimienb direceional con % a p ~ a l e l a(véase la figura 2-91. &. antes del corrimiento. Si V. i~ @ m 4-11 muestra un registro tlpiw de n bik E i bit R. de sobreflujo para detectar un sobreflujo en un corrimiento a la izquierda arihética.-. Un corrimiento aritmético a la izquierda multiplica uri ndmero binario con signo por 2 Un corrimiento arihdtico a l a derecha divide el número entre 2. El bit inicial & -l se pierde y se sustituye con el bit de R. I R ~ 1- R "~ -2 1 R 1 Ro Bit de signo . -1 no es igual a R. L i informaci6n puede t r a n s f e b a l registra .. R. = O. Las corrimientos aritm&ticos deben dejar el bit del s i p sin modifmciones porque el signo del número sigue siendo e l & 6 m cuando se multiplica o divide por 2.

En una unidad procesadora con muchos registros es más eficiente impl@ar la operaqihn.. las datas de enbada se desplazan a la demha (abajo en el diagrama).para corrimiento de 4 bits.sic muestra:enk figura.. 4-U. Cuando la en*ada de selemi611es S = O. O m H3 Entrada / serial (lb) . - Figa K& 4 4 2 Cirtuito mmbinacional. Hay dos entradas serides. d m h a '@d. mgifitro. Salida H o Hi Ao A2 -1 S Hz H3 . a H3. a As y cuatro saiidas de datos. El circufto de 4 bits tiene cuakro . S I O I MLX N O A0 -4 1 A1 3 Q : MUX A2--A3 -ffs I I Tabla de funci6n Seleccionar 1 . Entiada secial (IR) - Sei~lunat O pra el mrrimfmto la derecha 1 para el corrimiento a i a izqiiierda (arriba) .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 común cuya>salida esti5 conectada al circuito & corrimiento ~ombinatoqioy después el número can el corrimiento se carga otra vez en sl. S O MIJx 0 IR Al AI A3 A2 -S \ kr- -H2 i 1 IL ' - ! .cimrito de corrimimto el corrimiento. entradas de datos. de A.. Puede construirse un circuito combinatorio para corrimiento con multip1mxa e n . Esto necesita &lo un pulso de reloj para cargar el valor con corrimiento dentro de un registro. unatrpara el corrimiento a la izquierda (iL ) y la otra para elLcrgmhimtoa la . de H.

Las dos entradas seriales pukden controlase mediante otro multiplexor para proporcionar los tres tipm de desplazamiwto posibles.tem computacionales emplean cierta cantidad de = gisiros de almacenamiento conectados a todas las unidades operacionales comunes. los datos de entrada se desplazan a la izquierda (arriba en el d3agrama).y salidas necesita n rnulfiplexores. S3 I shl 1 . Un circuito por corrimiento con n entradas de datos . los sis. La tabla de h c i 6 n en la figura 4-12 muestra cuAl entrada va a cada salida despugs del corrimiento.124 C U A ~ Transferencia de registro y mi-peraciori~ Cuando S = 1 . y se abrevia ALU F:igura 4-U Una etapa de la unidad de corrimiento aritrdtica-16gica. 4-7 Unidad de córrlmiento lógico aritmético En lugar de tener registros individuales ejecutando Ias microaperaciones en forma directa. la cual se denomina unidad arihn4tica-l6gica.

El acarreo de entrada a la primera etapa es el acarreo de entrada C .período de un pulso de reloJ. 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 .* para la operación de corruniento a la derecha y Al.SECCI~N 4 7 Unidad de corrimiento 16gieo a r i h d t b 125 ' (arifhrnefic logie unit). el cual proporciona una variable de ~Ieceihn para las operaciones aritm&ticas. 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 . ~~ TABLA 4-8 Tabla de fur1ci6n para una unidad de mrrimiento Iógica aritmdtica Selecci6n de la operación 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 . y S. para la operación de corrimiento a la izquierda. Las otras dos entradas de datos d multiplexor Feciben entradas Ai. E l subhdice i repmenta una etapa tlpica. 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. Las mi.crqmaciones de c o ~ m t con o frecuencia se ejmtan en una unidad separada. La ALU es un circuito combinabrio. por lb que toda Ia operación de transferencia de regisdesde los fuente por la ALU y hasta dentro del registro destino. Un muItiplexor 4 X 1 en la salida selecciona entre una salida aritmbtiea Eiy una salida 16gica en Hi. tos circuitos aritméticos. Para ejecutar una micmoperaci6n.registro destino. El a c a m de salida Ci.conectarse al acarreo de entrada Ci de l a siguiente etapa en secuencia.l de una etapa aribnbtica dada debe . Una etapa de una unidad de corrimiento aritméti-lbgico se muestra en la figura 4-13. Se selecciona una micrwperacibn parkicular con las entradas S. Las entradas Al y BI se aplican a las unidades aritmkticas y lógicas. Los datos en el multiplexor s e seleccionan con entradas S. 16gicos y de corrimiento que se presentaron en las secciones anteriow pueden combinarse en una ALU con variables de selecci6n comunes. y So. pera en ocasiones h unidad de corriwenta forma parte de Ia ALU general. puede ejecutarse durante un .

Las variables de temporización san mutuamente exclusivas. R5. S i (P= 1) entonces (Ri M.dado.ecuatro regis-.elsiguiente mmciabo de bansfeeticia demgisim: 2 . ias siguientes cuatro son operaciones ldgicas (véase figura 410) y se seleccionan con S3Sz = 0 1 . Cada operación se selecciona con las cinco variables S. &l. Las otras tres entradas de sekcibn no afectan al corrimiento.& conectadas mediante multiplex<res de 4 a 1 líneas a las entiadag de un quinto registro. Las primeras mho son operaciones aritmétiras (v6ase tabla 4)y se seleccionan con SS2= OQ.qs.R2)además si (Q= 1) entonces (R1.es. El circuito cuya iuiica etapa est6 especificada en la figura 4-13 proporciona ocho opwaciones aritmhticas.126 cAPtnno CUATRO Transferencia de registro y micrmperacimes . La tabla 4-8lista las 14 operaciones de la ALU.R2 y R3.igual a 1en cualquiermomento. 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. cada r e g i h tiene um'lon@hidde ocho bits: las transferencias requeridas sbn dietadbs p r hahm Varídblizs de demprizaa6n Toa Tgde l a manera siguiente 4 3 . cuatro operaciones 36gicas.rnienbas que las otras km son iguales a O.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. lo que sipifia que &lo una variable es. So.R1.y Cm E l acarreo de entrada Cmse utiliza para seleccionar sólo una aperaci6n aritmética. y dos operaciones de despbmiento. Represente el siguiente enunciado de control condicional por medio de dos enunciados de transferencia de registros con funciones de control. . S* S. 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. RO. Muestre el diagrama de blque del h a r d w a ~ (similar a la figura 4-2a) que Implsrnta.d. *.R3) 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 específica. Las wiid.

4-5.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. [Recuerde que ei sfmbola +representa una operacidn O R en una funci6n de control o booleana perosepresenta un mas aritmCtim en una microoperaci¿n. Dibuje un diagrama 4-11. un sumador de 4 bits.) 4-9. 4 1 0 . y z son variables de control. Incluya las compuertas ldgicas para la funci6n de control. donde AR y BR son dos registros de n bits y X. el contenido de M se agrega al contenido RI si x = 1. R 2 t M [ A R ] b. Cada v a que la vaiable T = 1 . En el diagrama. MIAR] +R3 c. 44. a. a. Utilice diagramas de bloque para los dos registros de 4 bits. iCuántas entradas de selecci6n hay en cada multiplexor? b. y utilice acopladores de tres estados y un d d f i c a d o r en lugar de los multiplexores. muestre cómo las variables de control x y T deccionan . R5 t M [ R S j Dibuje el diagrama de bloque de hardware que implanta los siguienb enunciadas: 4-7. Dibuje un diagrama de sistema de bus similar al que se muestra en la figura 4-5. Considere los siguientes enunciados de transferencia de registros para dos registros de 4 bib RI y R2. y un multiplator cuidruple de 2 a 1 líneas que seleccione las entradas a R l . 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 cómo implantar los siguiente enunciad= . Una computadora digitai tiene un sistema de bus común para 1 6 registros de 32bits cada uno. E l bus está construido con multiplexores. y. Explique la operad6n de memoria en cada caso. que muestre la implantad6n de hardware de los dos enunciados. o el contenido R2 se transfiere a Rl s i x = O.las entradas del multiplexor y la entrada de carga del registro R1. 4-8. Muestre el hardware que implqnQ el siguiente enunciado. ~ Q u k tamafio de multiplexores se necesita? c ¿Cuántosmultiplexores hay en el bus? Los siguientes enunciados de transferencia especifican una memoria.

.. &ve 4 1 8 .1 CAFhWD CUATRO Transferencia de regjstro y - micmoperaciones X: x'y: A1 + R l + A2 'Suma RZ a R l X l c R I +. . ' 4-12. E l registro A contiene e l binario de 8 bits 11011001. tll1OllOl b . NOR y NAND. NOX exclusiva. S. 1 Incremmte R l donde R1 es'un contador con carga paraida y R2 es un registro de 4 bits. Utilice d a variables de seIeaci6n. Dibuje e l diagrama 16gico para b dw primeras ehpas. 4-13 414 Diseiíe un circuito combinatmio de 4 bits que decremente. y C. 11111101 &i9. O 1 D =A D =A . BR. S .1(dmentar) + B (sumar) D = A + 1 (incrementar) D = A '-t.S . de 4 bits de Ia figura 4 9 ect8 en un emapsuiado Q. + 1 (restar) 416. Dkeí'ie un circuito aritmhtico con una variabIe de seIecci6n S y dos entradas de d a 6 de n bib A y B. CR y DR inicialmente tienen los siguimtw valomx .uncircuito combinacional que seleccione y genere cualquiera de las 16 funciones lbgicas que se listan en la tabla 4-5. 4-37. E 1 circuito genera las cuatro operaciom aritm6tim ~igtienles junto con el acáireo de entra-daC.Determine el operando B 'y la microopwacibn IIógiea que se va a ejecutar para cambiar el valor enA a: a. determinelos valores de las salidas: S. Mussbe las ronexiorres entre dos CI tales para formar un circuito ariimitico de 8 bits. 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. 4-15. En cada caso. utilizando cuatro circuitos sumadores completas. Muestre el diagrama lógico de una etapa tipica. m un circuito digitai que realid las cuatro operaciones iógicas de OR exclusiva.. Considere que e l circuito aritrnktim. h r ~ s h de s 8 bita AR.

+1 Sumar BR a AR Aplicar AND DR a CR. Ed. 1990. 3a Ed..inaementar BR Restar CR de AR 4Zl.F. Nuwa York: John W i . Intduetion to Computer Engineering. 2a Ed. Digitrrl Spkns: Hardmre OrganUathm and Design. Compiiter Architecture attd Orgunhtion. Ptentice Hall.Computer E q i m r i n g : htnrduwre D e s i p .Referencias 129 Determine los vdores de 8 bits en cada registro despuks de la ejecución de la siguiente semencia de microoperaciones. Mano.Hennessy. Un registro de 8 bits contiene el valor binario 10011100. Nueva Yark: MeGrawHiU. 4 l-iiil.S = 1. y G. L. ¿CuM H el valor de la salida H en la figura 412 si l a entrada A es 1001. 6.Nueva York JohnWiiey. M. Booth. 1988.L .CmnputerArchiQcture: A Quantitative Appn>ach.IR=1. 1988. 1984. Patterson. y dete& si existe un sobreflujo. 423. y J. 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. 5 . T . .R Pekrwn.M. A. D. . 1 9 8 7 . Haya. J. AR+AR + BR CR +Cñ A DR..determine el valor del registro despud de un corrimiento aritm&tieo a la izquierda. ünglewood Cliffs. rl-22. J. San M a b .CR 4-20. CA: Morgan Kaufmann Publishers. 3a. ¿Cuál es el valor del registro después de un corrimienta aritmgtico a la derecha? Comenzando can e l número inicial 10011100. F . .eIL=O? tQu6 error contienen los siguientes enunciados de transferencia de registros7 2. 3. Comenzando de un valor de R = 11011101. BR +BR AR +AR .

Winkcl. 1991.E. G . . S .Cambridge.. Wad. P. 9.H. M I 2 Computer Science P r s . . F. 8. 1990..O ~ ~ ~ Trardemmh 1 x 0 de registro y micrmpraciones 7 .A. Shiva. 1.. S. 1990. EngIewod Cliffs. Rockville. 2a M. Tomek. Sandige. rjtfrodflction lo Computer Organiuitim. The Art oJDigitnl Design. N: Prefite Hall.. y R. R . Modern Digital Desip. koasw.Cwnputer Design m d Archikture. C. Nueva York: Maraw-HiU. y D . 1 1 . 1987. 10. Nueva York: HarperCollins Publishers. Jr. Halstead.MA:MiT h . Computatbn Structures. 1981. 2a Ed.

Un programa es un conjunto de instrucciones que especifican las operaciones. y el conjunto de instrucciones que utiliza. tiene la ventaja de ser lo suficientemente simple para mostrar el proceso de diseño sin demasiadas complicaciones. la estructura de temporización y control. Aunque la computadora básica que se presenta en este capítulo es muy pequeña en comparación con las computadoras comerciales. puede recibir instrucciones acerca de la secuencia específica de operaciones que debe realizar.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 Códigos de instrucción Registros de computadora Instrucciones de computadora Temporización y control Ciclo de instrucción Instrucciones de referencia a memoria Entrada-salida e interrupción Descripción completa de una computadora Diseño de una computadora básica Diseño de un acumulador lógico 5-1 Códigos de instrucción En este capítulo presentamos una computadora básica y mostramos cómo puede especificarse su operación con enunciados de transferencia de registros. Después se lleva a cabo. La organización interna de un sistema digital está definida por la secuencia de microoperaciones que ejecuta sobre los datos almacenados en sus registros. en detalle. el diseño de la computadora. . La computadora digital de propósito general puede ejecutar varias microoperaciones y. además. operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento. El usuario de unq computadora puede controlar el proceso mediante un programa. La organización de la computadora se define mediante sus registros internos.

consideremos una computadora con 64 operaciones diferentes. En este punto. Para cada código de operaci6n. -Una inshcci6n de compuhdora es un código binario que especifica una secuencia de m i m o ~ c i o n e s para la computadora. el concepto de programa almacenado. d igual que el relgistro o la palabra de memoria donde se va a . Por esta razbn. es la propiedad más importante de una computadora de uso general. sino también los registros o las pahbras de la memoria donde se van a encontrar los operandos. Esta o p e r d n debe ejecutarse sobre algunos daalmacenados en los regisdel procesador o en la memoria. Cada computadora time un conjunto de instrucciones rinico. La capacidad de almacenar y ejecutar instmcciones. un c6digo de insteucci6n debe mpecXcar no &lo la operaci6n. debemos reconocer la relaci6n entre una operacidn de computadora y una micrmperación. porque especifica un conjunto de micróoperaciones. h p u 6 s emite una secuencia de seAaIes de control para ficiar inicrooperaciones en los registrus internos de la computadora. La parte más cdd@ de operacibn baisica de un c ó d i i de instnxd6n es su parte de operacitan. Por lo general. La computadora lee cada instrucción de la memoria y la coba en un registra de control.el control. La unidad de control recibe la instrucci6n de la memoria e interpreta los bits de &digo de h operacidn. El número de bits requerido para el código de operacibn de una instrucci6n depende de la cantidad totd de operaciones disponibles en la computadora. multiplicar. una de las cuales es la operación sumat (ADD). El c6digo de operacibn debe estar formado de por lo menos n bits para un conjunto dado de 2" (o menor) operaciones diferentes. se divide . cddigo de i~sfnrecibn Un c6digo de instrucción es un grupo de bits que instruye a l a computadora sobre cbmo ejecutar una operacihn especlfrca. inbwppta el c W i binario de fa instrucci6n y procede a ejecutarlo m H i una m c i a de mierooperaciones. E1 código de operaci6n consta de seis bits.132 QNCO OxganIzadOn y d i i de aompuhdcirrps La h a de pmemniento de datos puede alterarse al especificar un nuevo programa con iristrueciones diferentes o especificando las mismas instrucci* nes c m otros datos. a veces un código de operación se denomina macrooperacibn. Bnbp. Una operación es parte d~ una instniccibn almacenada en la memoria de la computadora. con una c~nfigurad6nde bits 110010 adgmda a la operación ADD. EI código de operaci6n de una instniccibn es un grupo de bits que define operaciones como sumar.en partes y cada una tiene una inkrpretacidn propia. restar. la computadora emite seiíales de control para leer un operando de la memoria y sumar el operando a un registro del procesaiior. Como ejemplo. Los c6digos de instrucciones y 10s da. desplazar y complementar. Por l o bto.se almaman en fa memoria. Cuando este código de operacidn se decodiica en la unidad de control. el cuntrol envía una secuencia de micrmpraciones n d a r i a s para la implantacibn del hardware de la operaci6n especificada. La parte operativa de un c6digo de instruccibn especifica la operaci6n que se va a realizar. Es un &digo binario que le dice a la computadora que ejecute unaoperacihn e6pecifica.

La primera parte especifica l a operaci6n que se va a ejecutar y la segunda especifica unsi dirección. y cada computadora tiene su propia formato de c6digo de instniceiones particular. Pueden es@carse palabras de memoria en los c6digas de insttucción mediante sus direcciones.formulan los formatos de código de instrucciones y especifican la arquitectura de la computadora. Memoria 4ü96x 16 F m t o de instmión . Las instrucciones e s t h almacenadas en una secci6n de la memoria y los datos en otro. Para una unidad de memoria con 4096 palabras necesitamos 12 bits para especificar Pisun 5-1 Organización de un programa al-do. IA direccibn de memoria b dice al control dbnde encontrar un operando en la memoria. 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. La figura 5-1 muestra este tipo de organizaci6n. Pueden especificarse regishas del pmerador al wi$ar a k instnicci6n otro código binario de k bit. Orgnnizaci6n de un programa almacenado. Los disefiadores de computadoras . 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. Este operando se lee en la memoria y se utiliza como los datos que se van operar o junb con b s datos almacenados en el registro del pmesador.almacenar el sesultado. La manera m& simple de organizar una computadora es tener un registro de prcieesador y un formato de código de instruwi6n con dos partea.

S i una operacibn de un código de instnicci6n no necesita un operando de la memona. El bit de modo es O para un direccionamiento directo y 1 para un direccionamiento indirecto. se dice que la instmcción tiene un operando inmediato. L a operaci6n se ejecuta con el operando de la memoria y el contenido de1 AC. Cuando la segunda parte de un c6digo de inshucci6n especifica un operando. E i control lee una instrucci6n de 16 bits de la parte de programa de la memoria. por lo que la instnicci6n se reconme como una instmccibn de direccionamiento directo. Por ejemplo. una dimci6n de 12 bits. 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. No. Después ejecuta la operación especificada por e l ckligo de operaci6n. E l bit I es 0. puede usarse el resto de los bits de -iiMstrucci6n para otros propbsitos. las operaciones como borrar {limpiar) AC. Como ejemplo de s t a configuración. y la parte de dirección es el equivalente biario de 457. El caigo de operacihn especifica una instrucci6n de suma ADD. en el cual los biís de l a seffuida parte de la instmcci6n representan la dirección de una palabra de memoria. complementar AC e imrernentar AC' operan sobre l o s datos almacenados en el registro AC. dado que 212 = 4096. 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. tenemos disponibles cuatro bits para el código de operacidn para especificar una de 16 operaciones pmible8. en la cual se encuentra la direccibn del operando.necesitan un operando de la memoria. Está colocada en la direccibn 22 en la memoria. El control encuentra la operaci6n en la memoria en Ia direccihn 4 7 y la suma al contenido del AC. Direccionamiento indirecto es conveniente utilizar Ios bits de direccionamienta de un cddigo de instrucción no como direccibn s*o como el operando real. acumdd~r (AQ y 12 bik para especificar la diréccibn de un operando. consideremos el formato de d i go de instrucci6n que se muestra en la figura S-2(a). La instruccibn en la direccidn 35 que se muestra en la figura 5-2(c) tiene un bit . y un bit de modo de direccionamiento indimto representado por 1. Si almacenamos cada c6digo de instnicci6n en una palabra de memoria de 16 bits.134 C A M O CINCO Organización y di* de computadoras una d k c i & n . no se necesita la segunda parte del d i g o de instrucción (del bit O al 11) para especificaruna d k i ó i i de memoria y puede utilizarse para especificar otras operaciones para la computadora. Para =tos tipos de operaciones. Está formado de un código de aperacibn de 3 bits. Una instruccibn de direccionamiento directo se muestra en la figura S-m). L a s computadoras que tienen un registro de procesador único por lo general l o nombran acumulador y lo etiquetan AC. 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.

Por lo tanto. Definimos la d i r m ' h e f i c f b como la cüreccibn del operando en una instrucci6n del tipo de computaci6n 0 la direccibn objetivo en una instruccibn de tipo transferencia del programa. d i m i d a efecfba de modo 1 = 1. la d M 6 n efectiva en i a instrucción de la figura S-2(b) es 457 y en Ia instrucción de la figura 5-2(c) es 1350. s e reconoce como una instrucción de diteccie namiento indirecto. En la computadora que se presenta en este capitulo se utüizan los modos de direccionamiento directo e indirecto. Por 10 tanto. El control va a la direccihn 300 para encontrar la direcci6n de1 qxrando. La primera referencia se necesita para leer la direccibn del operando. El operando encontrado en la direcci6n 1350 se suma despub al contenido de AC. la segunda es para el operanda mismo. La parte de direccibn ec el equivalente binario de 3 0 0 .Memoria Memoria Operando w Operando (b) Direccionamientodirecto (c) D i h a m i e n t o indinxto Figura 5-2 Ejemplo de didonamiento directo e i n d i o . La instnicci6n de direccionamiento indirecto necesita dos referencias a la memoria para buscar un operando. L a direccibn del operando en este caso es 1350. palabra de memoria que contiene la dirección de un operando en una instrucción de d i ~ n a m i e n t o .

También se listan los registros en Ia tabla 5 1 junto con una breve descripcihn de su funcidn y de la cantidad de bits que contienen. OUTR 16 Registro de instnitcibn 12 Coritador de programa 1 6 ~~temparal 8 Regish de enbada 8 Registro de calida Conti& carde enhada Contiene cadcter de salida . La computadora necesita los registros del prmsador para manipular datos y un registro para contener una direccihn de memoria. las instrucciones de computadora se almacenan en posiciones de memoria consecutivas y se e j e c u h de manera secuencial. Despugs continúa leyendo la siguiente instrucción en secuencia y h ejecuta y así sucesivamente. una a la vez. Este tipo de GecuenUa de instrucciones necesita un contador para calcular la dirección de la siguiente instmccibn despub de que se temina la ejecución de la 'instrucción presente. Se utiliza el registro temporal (TR) para contener 10s datos temporales durante el procesamiento. - Por lo general. El registro de datos (DI?) contiene el operando que se lee de la memoria. E l control lee una instnicci6n de una diiecci6n especifica de la memoria y la ejecuta.indirecto se utiliza como un apuntador a un arreglo de d a k El apuntador pu. La unidad de memoria tiene una capacidad de 4 0 % palabras y cada palabra contiene 16 bits. También es necesario proporcionar un registro en la unidad de control para almacenar el código de inshcci6n despuds de que se lee de la memoria. Esto deja tres bits para la parte de operacibn de la instrucción y uri bit para especificar un direccionamiento diwto s! un indirecta. Esta$ necesidades dictan la configuraci6n del registm que se muectra en la figura 5-3. IA ir@ruccidn que se lee de l a memoria se coloca en el registro de instniccibn (IR).& colocarse kn un regiStra . Se necesitan doee bits de una palabra de instnicci6n para especificar la direccibn de un op. El registra acumulador (AC) es un registro de procesamiento de prop6+to general.IR PC TR INP. TABLA 5 1 Lisia de regisbs para la computadora bisica Silnbolo Cantidad Nombre del registro Contiene operando de la memoria Contiene la d i m i 6 1 1para Ia memoria Regisiro de pfoceaador Contiene d d i g o de instruccidn Contiene L direccidn de instruccihn Contiene datos temporales 16 Registro de da toa 12 Registro de d i r ~ i 6 n 16 Acumulador de registra de bits DR AR AC . como se hace en las computadoxas cómerciales. 5-2 Registros de computadora -.erando.del procesador y no en la memoria.

El e s t r o de salida (OUTR]contiene un carade 8 bits para un dispositivo de salida. Una instrueei6n de transferencia del programa =licita una transferencia a una instruccih no consecutiva en >elprograma. a menos que se encuentre una 'instnicción de transferencia del programa. Las palabxas de instruccibn se leen y se ejecutan en secuencia.unad i d 6 n de memoria. una unidad de memoria y una unidad de control . La cantidad de l í í s aerA exeesiva si s e hacen . Despub el PC se incremmta en uno. Para leer una instrucci611. El contador de programa (PC) tambih tiene 12 bits y contiene la dirección de la siguiente instntccin que se va a Ieer de la memoria después de que se ejecute la instrucción presente. 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 carácter de 8 bits de un dispitivo de entrada.(quese presentar4 en+lasección 5-4). Deben proporcionarw trayectorias para Wsferir firmaci6n de un registro a otro y entre Ia memoria y el registro.S E M ~ Registros de computadora 137 de 4Wá palabras 16 bits por palabm Figura 5-3 Registros de la computadora básicsi y memoria. . La parte de dkcci6n de una instrucci6n de tiansferencia dei programa se transfiere al PC para convertirse en la direeci6n de la siguiente instrucción. El PC recore una secuencia de conteo y hace que la computadora lea instruccbnes 6ecuenhles almacenadas previamente en la memoria. 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.J Bus c m & del sistema La computadora básica tiene ocho registros. contador de programa IPC) E i registro de direcGonamiento {M) de la memoria tiene 12 bits porque dste es el ancho de.

Cuando el contenido de AR o PC se aplica al bus comtin de 16 bits. tienen 12 bits cada uno porque coniienen direcciones de memoria. No hay transferencia de OZfTR a cualqiiiera de 10s"gtros regktrw.So = 111. 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. y So.138 CINCO Organización 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. Las lheas del bus común están conectadas a las entradas de cada registro y las entradas de datos de l a memoria. OUTR m i b e un carácter de AC y 16 envía* a un dispositivo de salida. la memoria recibe el contenido del bus cuando se activa su entrada de escritura. C u a b regisiros tienen 16 bits DR. Las salidas de siete registros y de la memoria están conectadas al bus c m ú n . Las lkeas del bus esth conectadas a las entradas de seis registros y a la memoria.Dos registros. el niímero que está adelante de la salida de DR es 3. Hsto'se debe a que TNPR recibe un car4cter desde un disposiDivo de entrada que despugs se transfiere a AC. está determinada por el valor. INR (inckrnentar) y CLR (borrar). Por lo tanto. Cinco registros tienen tres entradas de control: LD (cargar). La operacih incrementar se consigue al habilitar la entrada de cuenta en e l contador. I R y TR. Los datos de entrada y de salida de Ia memoria están condados al bus comdn.Este tipo de registro se muestra en la figura 2-7. EI n h e r o que se encuentre adelante de cada salida muestra el equivalente decimal de la seleceibn binaria requerida. tos cuatiro biQ mfis significativos se establecen en O. INPR está mnectado para proporcionar infomacibn al bus pero OUTR sólo puede recibir informacibn desde el bus. Dos registros tienen una sola entrada LD. Las 16 llrieas $ e l bus c o m h reciben información de seis registros y de la unidad de memda. Este tipo de registro es equivalente a un contador binario con carga paralela y borrado sincrónico similar al que se muestra en la figura 2-11. . Hemos mostrado en la secci6n 4-3 c6mo construir un sisde bus común utilizando multiplexoreso compuertas de buffer de tres estados. S . pero la d i k h de memoria está conectada a AR. sdlo E transfieren al registro los 12 tiits menos significativos. AR y PC. Al utilizar un regbtro iinico para direccionamiento se elimina la necesidad de ~~. La salida especifica que se seIecciona para las líneas del bus en cualquier momento dado. 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. Por ejemplo. Cuando AR o PC reciben informacibn del bus.AC. El registro particular cuya entrada LD (cargar) está habilitada recibe los datos del bus durante la siguiente transici6n del pulso de reloj. La memoria coloca su salida de 16 bits en el bus cuando se activa la entrada de lectura y Sfi.biiario de las variables de seleccidn S. siempre debe utiliizarse AR para especificar una direecibn de memoria. La conexidn de l o s registros y de i a memoria de la computadora bdsica a un sistema de bus común se muestra en la figura M .

. .- Figura M Registros 6 la f a m p u b b a básica conectados a un bus c o m k .-..

Cada formato tiene 16 bits. excepto AC. Una instrucción de referencia al registro especifica una operación o una prueba del registro AC. que de otra manera sería necesario. I es igual a O para una dirección directa y a 1 para una dirección indirecta (véase la figura 5-2). Este Circuito tiene tres conjuntos de entradas. 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 extensión de AC). Nótese que el contenida de cualquier registro puede aplicarse al bus y piiede ejecutarse una operación en el sumador y en el circuito lógico durante el mismo ciclo de reloj. Puede especificarse el contenido de cualquier registr~para la entrada de datos de la memoria durante una operación.AC. 5-3 formato de insfrucción Instrucciones de computadora La computadora básica tiene tres formatos de códigos de instrucción. los datos de la memoria después de una aperaci6n de lectura. las dos microoperaciones pueden ejecutarse al mismo tiempo. Se utiliza para efectuar microoperaciones de registro como el complemento AC y el corrimiento . Las dos transferencias ocurren durante la llegada de la transición de pulso de reloj al final del ciclo de reloj. Por ejemplo. La operación de INPR y OUTR se explica en la sección 5-7. De igual manera. Un conjunto de entradas de 16 bits viene de las salidas de AC. La transición de reloj al final del ciclo transfiere el contenido del bus al registro destino designado y la salida del sumador y circuito lógico a AC. transfiriendo el contenido de DR a través del contenido del sumador y circuito lógico hacia AC y habilitando la entrada LD (cargar) de AC. Un tercer conjunto de entradas de 8 bits viene del registro de entrada INPR.140 C A P ~ CINCO O Organización y diseño de computadoras un bus de direcciones. habilitando la entrada LD (cargar) de DR. Las entradas de DR y AC se utilizan para microoperaciones aritméticas y lógicas. como sumar DR a AC o aplicar AND de DR a AC. todo durante este mismo ciclo de reloj. Una instrucción de referencia a memoria utiliza 12 bits para especificar una dirección y 1bit para especificar el modo de direccionamiento I. Esto puede hacerse al colocar el contenido de AC en el bus (con S2S$o = 100). Las instrucciones de referencia a registros se reconocen mediante el código de operación 1 1 1 con un O en el bit de la extrema izquierda (bit 15) de la instrucción. La parte del código de operación de la instrucción contiene tres bits y el significado de los 13 bits restantes depende del código de operación que se encuentre. No se necesita un operando de la . según se muestra en la figura 5-5. Otro conjunto de entradas de 16 bits viene del registro de datos DR. Las 16 entradas de AC provienen de un circuito lógico y sumador. cualquier registro puede recibir.

Puede parecer que la computadora est6 limitada a un máximo de odio operaciones distintas. Nbtese que el bit de la posicibn 15 del código de instrucci6n esta representado mediante el slmbolo 1. tos 12 bits restantes w utiIizan para espedfiear el tipo de operacidn de entrada-salida o la prueba ejecutada. Si los tres bit^ del código de operacibn en Ias posicioaes de Ia 12 a la 14 no m iguales a 111. 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 este bit es O.va a ejecutar. cddip hexadedrnal S510 se utilizan tres bits de la instruccibn para el &dig6 de operacibn. la cantidad total de instrucciones puede exceder de ocho. 61 código hexadecimal es igual al nhero hexadeciial del c6digo binario utüizado para la instnrc- . l k hecho. Sin embaxgo. C memoria. La representación simbólica es una palabra de tres letras y signifika una abre viahira destinada a los programadores p los usuarios. la referencia es del tipo de entcada-salida.s E c a h M I n s t n i c c h de computadora 141 (a) Instruccibn de refemda a memoria 15 12 11 Q 1 1 I 1 O í+imUndeqim (CWigodeopr~b=l11. el control revisa el bit en I a posición 15. 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. Si el bit es 1. Las instnzcciones para la computadora se listan en la tabla 5-2. el ndmero total de inqtnicciones escogidas para l a computadora básica es igual a 25.1-0) @) lnstmcdón de referencia a registro Figura 5 5 Formatos de inshucciónde la computadora básica. 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. por lo tanto las otros 12 bits se-utilizan para especifmr la operaci6n o prueba que se. la instrucci6n ea del tipo de referencia a registro. la instrucci6n es del tipo de referencia a memoria y el bit de la posici6n 15 se bma como el modo de direccionamiento 1. De igual forma. Si el código de operacibn de 3 bita es igual a 111. pero no se utiliza como un bit de modo cuando el d i g o de operacibn es igual a 111.

porque e l dltimo bit ea 1 . y diseñu de computadoras TABLA 5-2 I n s ~ n e de s la computadora básica C6diga hexadedmal Sfmbolo 1=O I= 1 Descripcibn AND ADD LDA STA Oxxx lm BUN BSA 2xxx 3xxx 4 ~ x Cxlrx ~ Brincar en forma incondiciona1 &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 D m Brincar y guardar la direccidn de retorno Exxx Incrementar y brincar s i hay un cero Borrar AC CLE CMA CME cm a n u c Borrar E Complementar AC Complementar E Circular a la d e m b AC y E C i r c u l a r a la izquierda AC y E Inmmentar AC Brincar la siguiente insttiicción si AC ea positiva Brincar la siguiente instniccibn si AC es negativa Bruic~r ra siguiente inshucci6n si AC es cero Brincar la Bigu rente inatmccibn si E es O Detener la computadora . el dígito hexadeeimal equivalente de los altimos cuatro bits de la uistrud6n vhda de 8 a E. El Bltimo bit de la instrucción estzi representado por el símbolo 1. A1 mar el equivalente hexadecimál reducihia los 16 bits de un cddigo de instrucci6n a cuatro dlgitos. . dddo que e l dtimo bit es O. Cuando I = 1 .&ii rmh*folllar * & ~ I ' & Y ~ h. La parte de dkccionamiento está representada por tres x y tiene validez para los ~ k e s digitos hexadecirnales que corresponden a la dirección de 12 bits. rrJa OUT SKI SKO ION IOF F400 F2íN FlOO Fb80 F040 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. Las instruceibnes con referencia a registro utilizan 16 bits para especificar una ope~aci6n.FWJ SPA SNA SZA SZE HLT . donde cada digito h-decima1 es equivalente a cuatro bits. las iiltimm cuatro bits de una instnicci6n tienen un digito Irexadecimal equivalente de O a 6. Los otms digitos hexadeci- . Cuando I = O.Lee cuatro bits de la extrema izquierda son siempre 0111.142 mmmmco . Una instrueci6n con referencia a memoria tiene una parte de direcci6n de 12 bits. lo mal es el equivalente al hexadecimal7.

analicemos el tipo de . Las instrucciones de entrada y salida se necesitan para la comunicación entre la computadora y el usuario. junto con instrucciones que verifiquen las condiciones de estado. puede ser necesario proceder en forma diferente de si el segundo es mayor que eI primero.Con estas tres instrucciones podemos sumar y restar números binarioe cuando existen números negativos en repre$mtaei@ del complemento a 2 con signo. Instrucciones de entrada y saiida. Hay una instruccidn aritmética. La mayor parte Be la información binaria en una computadora *tal está aImamda en la mernorh pem todos los cálculos se realizan en los registros del procesadar. Las instrucciones aritmdticas. si el primero es mayor que el segundo. ADD. Los programas y los datos deben transferirse a la memoria. Vematiiiciad del conjunto de instrucciones Antes de investigar las operaciones que ejecutan k s htmcciones. 3. 2 Instruacianes par3 mover información hacia y desde la memoria y las registros del prwesador. Las instmcciones de entradasalida tambfi utiliqn todos los 16 bits para espe~ificaauna operacidn.instrucciones que deben incluirse en una computadora. L m últimos cuatro bi& son siempre 1111. Por l o tanto. Las instrucciones de control de programa. el equivalente al hexadecimal P. tales como las instrucciones de transferencia del programa. Por ejemplo. el usuario podrA mover la infoimari6n entre estas dos unidades. Se dice que el conjunto de instrucciones está completo si la computadora incluye la suñciente cantidad de imtrucciones e n cada una de las siguien'tes categorlas: 1 . se u t i h para cambiar la secuencia en la cual se ejecuta el programa. y los d t a d o s de los c4lculos dehn transferirse de vuelta a3 usuario. . . 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 función que se sepa que puede romputarse. 16gicas y de corrimiento. Las instrucciones para circular. instrucciones aritméticas. pueden compararse dos números y. hstmcciones de control del programa. Las instrucciones ktadae en la tabla 5 4 constituyen un conjunto mhim a que propomiona todas las posibilidades ya mencionadas.m mal& proporcionan e l equivahnk binario de los 1i2 bits restan&.4. complementar AC (CMA) e incrementar AC (INC)). L a posibilidad de tomar deeisionw es i u i hportante a de las computadoras digitaies. y dos instrucciones relacionadas. 16gieas y de corrimiento proporcionan capacidad compuZacion~1 para procesar el t i p de datos que el usuario puede emplear. La multiplicaci6n y la . al igual que para cualquier otro tipo de mdmierito deseado. pueden usarse para corrhimtos aritméticos. CIR y C I L .

incluymdo los de la unidad de cront~01. en detaue.icciones como restar.Mover informaci6n de la memoria a AC se consigue con la inshci6n aargar AC (LBA). de instrucciones de computadora que se incluyen en la mayorla de las cornputad~ras codales. hfomación de AC a la memoria se hace eón la instrucci6n de almacenar AC (STA).icas: N .de1sistema.divisibn puedm ejecutarse usando la e w . 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. no es eficiente porque con frecuencia las operaciones utilizadas no se ejecutan con rapidez. y mimaperaciofles para d acumulador.registros de l a computadora básica estA controlada por un generador de *laj maestro. Un conjunto de instnicciones eficiente incIuir4 hstn. capitula 6 junta con otros ejemplos de programaci6n para la computadora basica. De esta manera es posible mostrar 1 . 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). A l usar una cantidad hitada de instrucciones es posible mostrar eI diseño lógico de la computadora. multiplicar. junto con las cuatro instrucciones de salto. deedificadores y La tempriZaci6n de . pulsos d ~ j control por cnbleado todos(1 .Los pubos de reioj no cambian . Existen tres o p e r a c i m ~ k.el estado de un qistro. Se propuso este a d l i i s porque se debe considerar primero la unidad de control y comprender su mgmhción interna. En el capftulo 8 ae v t a una lista completa. Existen dos.selogra d i t e compuerta^. BSA e TS2. 0 R y OR exclusiva. flip-ibps. entradad de &ntrol en los registros del v d m . Las seiIa1e. Estas operaciones deben programarse en la computadora básica. la resta y el corrimiento. Pasar. Aunque el conjunto de instnidmes para la mputadora básica está completo. proporcionan posibilidades para transferir el control del programa y la verScaci6n de las condiciones de astado.s de conha1 se en la midad de mtrol y proporcionan entradas de control para los multiplexores deI bus común. mqlementm AC (CMA) y borrar o limpiar AC (CLA). a menos que el regiska t é habxlitada mediante una seaal de control.principios Msicm de la organizacf6n y d i d o de la computadaza s i n liegar a detalles complejos en ex-. tipos principales de organizadmes de controk control por cableado y control dcroprogramado. En la organhci6n por cableado la i6gica de coníml . Un conjunto de instrucciones más completo hubiera hecho el diseño demasiado complejo. 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. Los piilsos de reloj se aplican a todos :lw fiipfiop~ y registros. Las instrucciones de transferencia BUN. Las nperaciones AMD y complementar proporcionan una operación NAND. Las programas se presentan en el.

&la oq@zaci6n micrqprogramada. Tb T2.de temporizacidn de To a TI5. SC mede( ingkrrtmtarse a l i m p h en forma sincrona (vbase el contador de ¡ a figura Zl. Ai principio. El código de operacidn en los bits del 12 al 14 se d e c a c a con ~ ~ ~ i f i c a 3dXo8.controI niimpmgmmah ~+tiáad d~control atros circuitos digirales. Te en secuencia. El contador secuencial de 4 bík puede '. el e M i o de operacih. E f diagrama de temporizaci6n de la figura 5-7 muestra la relacibn de tiempo de Las 'wlialff de control. U J ~unidad de control micropm gmtm@f?'ara una cohputadora similar se presentir en el capitulo 7. haciendo que la siguiente seiíal de temporizacidn activa sea To.Por ejemplo. cuando se considere en detalle e l diseiYs de ~~om~ubdora. d. El contador secuencial. b diversos componentes. XA mayor parte del tiempo. Un control pgr cablegdo.' Em &~=secciBn se presenta un control p r caljlmdo para la computadora Mstca.1). s i el d M 4 va a modificarse o ~ b b . do&e estd dividido en tres partes: el bit 1. La primera trattsieibn del reloj borra SC a O. E lb i t 15 de la instruecidn se transfiere a iy flipfloprepresentado por el sfmbolo 1.cambios en la instaiaci6n de cabi+de e n h .decimai en el suhfndice es equivalente al valor binado del c6digo de &&e$n correspondiente.eloj . Una instruccidn leida de la hiqoria se c~loca en el registro de la instnicci6n presente (IR). 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. h s bis de O al 21 src ~ E C W en hr. la entrada CLR de SC está activa. y . b cual a su vez activa la señai de tempor%ii&i&n Todel decdifmCIor.Conkai'@bhiario del O ai 15. 31 diagrama de bloque de Ia unidad de mtrol e muetra en la figura .de las wqipuertas de control.wqpuektas ldgicas de control. E l e la . T3. En el tiempo T* SC se km a O si lesK activadi la salida Da del decodificador. Después. e l contadar s e incrementa para pmpo&onar la secuencia de seilales de tempoWú6n del decodificador 4 X 16. 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. Las didas dei contador se d e c o d f i n en 16 señales. consideremos e l caso en que SC se incrementa para proporcionar las Miales de temporizaci6n Ta. y los bitg de .O a 11. egmo indica su nombre. ae derivara la lfigica aiteq. D e v a en cuando.W . necesita . Esto tiene la ventaja de que puede utiüzarse para producir itn m 4 0 de operacib 26pid0. el contador se borra a O.' B t & fopmado por dos decodificadaresi rin contador secuencia1 y cierta cantidad de compuertas lbgicas de control. E l contador secuencia1 SC responde a la transición pmffiva d e ! reloj.rLas acho saIidas de este decodificador se representan d a * los símbolos & a 3l número . To es^ activa durante un ciclo de . ~ t r u c c i 6 n presntei se muestra de nuevo en la figura 5-6.e¡ c&trot microprogramado cualquier cambio o modificadaes puede hacerse actwüzando el p m en h memoria de mn~rol. Esto se expresa en foma simb6üca mediante el enuncido.

) Si SC no se borra. según s e muestra en el diagrama. a menos que su entrada CLR esté activa. ( N 6 M la relación entre la &al de temporizacidn y l a transicibn de reloj positiva correspondiente. La salida D3del decodificador de operaci6n se activa al . Li transición de reloj positiva Tpen el diagrama activará solamente aquellos registros cuyas entradas de control estdn conectadas a la señal de temporizaciBn T . Esto produce las secuencias y señales de temporizaci6n Tw Tp Ta Ti T4y así sucesivamente. SC se incremehta con cada transici6n de reloj positiva.~rif~emenb W) Bwrar (CLR) bloj Figura 5a Unidad de control de la computadora bhica.&ras entradas Salidas de mnml tttt 1 1 . las sefiales de temporizacib? continuarh con TS T6hasta TE y de regreso a Toa L a s últimas tres ondas de h figura 5-7 muestran c6mo se borra SC cuando D3T4 = 1.146 CA-O Organización y d i - de computadoras 1 1 1 1 .

también lo hace la salida de la compueita AND que implanta la funcibn de control D3T4EBta &al se aplica a la entrada CLR de SC. consi- . Esta relaci6n de temporización no es vilida en muchas computadoras porque el tiempo del ciclo de memoria. Para facilikr la presentacih. En tal caso es necesario proporcionar ciclos de espera en el procesador hasta que este disponible la palabra de memoria. por lo general dura más que el ciclo del reloj del prwesador. Despu&. r - Figufa 5-7 Ejemplo de d a l e a de temporizaci6n de control. 1. Se considerará que e l tiempo de un ciclo de memoria es menor que un tiempo de ciclo de reloj. Un ciclo de lectura o de escritura se inic-iar6 con un flanco ascendente de una seÍia1 de temporizacibn.. se usar4 la transicibn de reloj para cargar Ia palabra de memoria en un registro. C. que podria activarse si SC s e incrementara en lugar de borrarse. un ciclo de lectura o de m i t u r a iniciado por una señal de temporizaci6n se temiinard cuand~el siguiente pulso de reloj llegue a su posici6n de transición positivi. En la siguiente transición 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 ternprización Toen I lugar de Tg. De acuerdo con esta suposición. final de la s&aI de temporizadón T2 Cuando l a seííal de temporimci6n T4 x activa.h m .

AR .una instt.ucci6n de la memoria.habilita l a entrada LD (cargar) de AR. D u r a n t e este tiempo. s i estA activa la sefial de temporizaci6n Toa Tpestá activa durante todo un intervalo de ciclo de reloj. el contador de programa PC estái cargado can la d h c i 6 n de la primera instrucci6n del programa. Ejecutar la insQ~cci6n. Las mkrooperaciones para las fases de búsqueda y decodificaci6n . k r l a direcci6n efectiva de la memoria si la instrucción tiene una dimci6n indirecta. el enunciado de transferencia de 4 . SC se incrementa en uno. Por ejemplo. el control rqresa al. Buscar . E l siguiente ciclo de reloj tiene a TI activo y Toinactivo. 2. para que las d a l e s de t~empoporizaci6nrecorran una secuencia To. ~ e c a d i l i ~ laainstrueeibn. En la computadora básica cada ciclo de instmcci6n consiste en las siguientes fases: 1 . Esta misma tansici6n -de reloj positiva inrrementa el contador secuencia1 SC de 0000 a 0001. + PC especifica una transferencia del contenido de PC a AR.S. proporcionandb 'una señal de temporizaci6n codificada TD. Para comprender pof completo la operaeion de la computadora. E l programa se ejecuta en la computa'$ora rebtrlendo un del0 para cada instmcci6n. T . paso 1 para buxar. TI. decodificar y ejecutar Ia siguiente instrucci6n. el contenido de-PC se coloca dentro del bus (con S$. y as1 sucesivamente.+ deraranos que un periodo de espera no e a necesario en la computadora bdsica. cuando el reloj Uega a una hansitidi positiva. A su vez. El contador secuencia1 SC se borra a 0 . cada ciclo de instrucción se divide en UM SBZIE& de subciclos o fases. ~ 3. Besqueda y decodificacihn AI principio. Cuando se termina el paso 4. 5-5 Ciclo de Instrucci6n Un programa residente en la unidad de memoria de l a computadora estA fomiad&por una secuencia de instrucciones. Este proceso continúa en forma indefinida a menos que se encuentre una instniccihn HALT (alto). La transferencia real no murre hasta el final del ciclo de reloj. = 010) y &. 4. es crucial entender la relacibn de temporizaci6n entre la transición de reloj y las &ec de temporización. Despuds dk cada pulso de reloj. To.

Despuks. PC se incrementa en uno a fin de preparar para la dhixci6n de la siguiente instruccidn en el programa. registro de instniccibn presente IR.S. 2 Colocar e1 contenido de Ia memoria dentro del bus al hacer que S$. Para cumplir el segundo enunciado T. Incrementar PC al habilitar la entrada INR de PC. se decodifica el código de operaci6n en IR. 3. En el tiempo Ta. 4. Colocar el contenido del PC dentro del bus al hacer que las entradas de selecci6n de bus S$lSD sean iguales a 010. = 111. . con la transicibn de reloj asociada a la s e h l de temporización Tp A i mismo tiempo.con el fin de proporcionar las conexiones siguientes en el canal del sistema de bus. 1. se coima la instrucción de leer de la memoria en el.pueden esp~cificmse mediar& lw siguientes enunciados de transferencia de registro.. 1. Habilitar la entrada de lectura de la memoria. es necesario usar la 4 de kmporizaci6n . 2. se debe aplicar ^a S-1 de temporizaci6n Topara obtener la siguiente conexi6n: . La siguiente transicibn de reloj inicia la transferendia de PC a AR porque T g = 1. Como 4 1 0AR estd conectada a las entradas de dkeccionamiento de la memoria. Transferir. La siguiente transici6n de reloj inicia Ias operaciones de leer e incrementar porque TI= 1 . 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. Transferir el contenido del bus a IR al habilitar la entrada LD de 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. Con e lf u i de proporcionar l a trayectoria de datos para Ia transferencia de1 PC a AR. es necesario transferir la direcci6n del PC a AR durante la transicibn de reloj asociada con la sefial de temporlzaci6n To. el contenido del bw a AR al habilitar la entrada LD de AR.

Durante e l tiempo T3 la unidad de controI determina el tipo de instruc- . En e l diagrama se incluyen mriltiple compuertas OK de entrada. c6mo están conectadas Toy Determinadbn del tipo de instrucción La señal de temporizaci6n que est4 activa después de la decodifkacidn es T3. La figura 5-8 duplica una parte del canal del sistema de bus y muestra. AR A E- 1 I PC :2 m t = LD 5 m 0 1 h s comían Figura 5-8 Transferencias de registro para la fase de biisqueda.TI S2 - To SI Bus L Unldad de rnemdria Direcdn II = so 7 h r . TIa las entradas de control de los registros. la memoria y las entradas de seTecci5n del bus.porque hay otras funciones de control que iniciardn operaciones similares.

Los tres tipos de instniccibn p i b k de. Por l a figura 5 5 determinamos que s i 4 = 1 . ta salida del decodificador D7es. que se dispone en la cornputadora básica se especifican en la f i a 5-5. P C t P C + 1 11 T2 CMigo de op-ción de decodificaci6n en IR(12-14) M tIR(0-11). 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.ci6n que se acaba de leer de la memoria. AR t PC f T IRc-MIAR]. la Figura 5 9 Tabla de flujo para el ciclo de instrricci6n (configuracibn inicial).igual a 1 si el código de operacihn es igud a1 111 binario. I e I R ( 1 5 ) Ir (Regiiiiro o ]/O) = 1 = 0 (Merenda a memorla) 1I 1I @/O} = 1 (indlrwto) = 1 1r T i Ir T3 L r T3 1 Ir T3 Q€cuhrla inslruccion de entmda-salida SCtO Ejmtar 1a Instniccibn de refmncla a registro SC+O AR t MARI 11 Nada II i$xutar la iMnruccibn de referencia a memoria SC+O 1I .

se habita la entrada LD de AR. no escribirembs el enunciado SC *SC f 1. Adoptaremos la n o h a de que si SC s e incre&nta. tamos una instru~ci6nde referencia a mdofia con m direccionamiento ' h d h t o . Si '& =' O. En la siguiente e i 6 n se explican las instrucciones de refemcia a memoria. 'Despu4s d control r&vih e l valor del primer bit de la irrstnicci6n. b s tres tip& de instrucciones se subdividen en cuatro hayectorias separadas. Esta direcci6n se utiliza durante la instrucci6n de Iechira de meborla. el contador secuencia1 SC debe incrementar& cuando D1?T3= 1. para recibir la d k c i 6 n indirecta que reside en los 12 bits menos significativos de la palabra de memoria. - . el cual está ahora disponible en el f l * i p " f i o I. I a palabra en la dirección proporcierrada por AR se lee de la memoria y se colma en el bus común. La o p r a c i h seleccionada se activa con l a transicibn de reloj asociada con l a seña1 de temporizaci6n T3 Esto puede representarse como sigue: lT3: AR + M [ARJ Dj11T3: Nada . incluiremos el enynciado SC 0. el c6digo de bperaci6n debe ser:una de b s otros siete valores de 000 a 1'18. Entonces es necesarlo leer.Puede ejkutarse una instnicci6n &e referencia a registro o de entrada-salida mediante el reloj asociado con la señal de brnporbaci6n T3. N 6 k e que d contador secuencia1 SC se incremenb o se borra a O con cada i!kansicibn de reloj positiva. La microoperacibn para la condici6n de direccionamiento indirecto se puede &presentar mediante e! I direccibfl fnd+ecta enunciado de transferencia de registros Al principio AR cbntíene la parte de duecci6n de h instrucci6n. Las imtructiones de entrqda-salida se incluyen eri la Secci6n 5-7.p Si V7 = 0 e I = 1. Las transfemcias de registros necesarias para la ejecuci6n de las btrucciones de referencia a registros se presentan -enesta secci6n. se horra SC a O y el control regresa a la fase de bFtsqueda con To= 1.D711T3: Ejecutar una instrucci6n de referencia &%: Ejecutar una instrucción de entrada salida .in4tAcci6n debe W dé1 tipo de referéricia a registro 'o de entrada-salida. Cuando se va a borrar SC. -e~peificando una insfrucci6n de 'refemncB a memoria. Si ernharo. . b p u & s . pero estar6 implícito que el Antro1 pasa a ia siguiente señal de temporizaci6n en secuencia. -- - Cuando se-encuenirauna instrucciin de referencia a mkoria con I = O no es necesario hacer nada porque la direccibn efectiva ya est6 en AR. para que pueda continuarse la ejeeuai6m de-la instrucici6n de referencia a memotia con la variable de temporización 1 .Después de ejecutarse la uistnicci6n. Int dirección efettiqa de h memoria.

r2. Los siguienb tres bits constituyen el código de operación y s e reconocen de la salida del decodificador &. Tambibn s e transfirieron a AR durante e l tiempo .: SPA rB. Estas instrucciones s e ejecutan con la transición de reloj asociada con Ia variable de temporizaci6n T3 Cada función de control necesita la relaci6n bmleana D7i'T3 la cual. CIR Y& CLE CLA Y&. shr AC. AC('i5) Cinnilar a la izquierda AC AC+1 incrementar AC S i (AC(15.: iNC rB. Por ejemplo. 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.: rB. AC(0) E. La función de control s e disthgue. e l cual.: Borrar AC E O Borrar E AC + A 7 CarnplementarAC E+E Complementar E AC t . representaremos con el símbalo r.por uno de los bits en i R (0-11). la instruccibn CLA tiene él cddigo hexadecimal 7800 (vdase la tabla 5-Z). todas las fimcionea de control ce pueden representar con sencillez mediante rB. SZ4 rB. Estos 12 bits estiin disponibles en IR(0-11). . por conveniencia.) = 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 - t O O Borrar SC - + - + .: Y&: SZE m i ' rB. 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. CME rB. compiementa~. La Instrucci6n de brinco se ejecuta al TABLA 5-3 Ejecución de instuccionesde referencia a registro D71rT3 = r (comírn a todas las instmcciones de referencia a registro) IR(i) = B. E t .ACb5) E.: rB.: SNA rB.. El primer bit es un cero y es equivalente a P. Las siguientes cuatro instrucciones provocan un brinco de la siguiente instrucción en rmuencia cuando se satisface una condición esbb1ec:ida. A i asignar el símbolo Bl al bit i de IR.AC@)C h I a r a la deredia AC + shl AC. 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.corrimiento circular e incrementar sobre los registros AC o E. Las hnciones de csntrol y las micmperaciones para las instnicciones de referencia a registro se listan m la tabla 53.Insbcciones de referencia a registros El control reconoce las instrucciones de referencia a registros cuando D7 = 1 e' 1 O. da e l b M o equivalente O111 1OOO 0000 axio. [el bit en IR (0-11) que especifica la operacidn] r: SC CMA CiL rB. E r.

por i o generaI. AC es positivo cuando el bit de signo en AC(í5) = O. el fiip-fiop itiicio-alto d e h iniciarse eñ forma manual.incrementar PC una vez mAs (ailemZis. La di=ci6n efectiva de I a instruccidn estd en e l registro de direccionamiento AR y se colocb ahí durante la señal de Zemporkri6n TZcuando I = O o durante la serial de temporizacibn T3cuando I = 1. es necesario que la funci6n que se pretende ejecutar se defina con pmisi6n. El contenido . la &plicaci&nde una insímcci6n con palabras es extensa y no hay espacio disponible en la tabla para su explicacidn. La salida decodificada Di para i = 0 . 2. ts ejecución mal de la inatrucción en e l canal del sistema de bus requerirá una secuencia de microoperaTABLA M Tnshucciories de referencia a memoria Decodificad~r Shbolo de operación Dpsc~ipci6n eW1ica AND 4DD LDA STA Do *'DI Dz D 3 BUN BSA ISZ D k D s a AC +AC A MIAR] AC*-AC + M[AR]. 4.incrementa durante la fase de b b q e d a 'eir d tiempo Td. La insfrucci6n FKT borra un flip-flop de inicioalto S y detiene e l funcionamiento de1 contador secuencial. Esto se debe a que. e n la cual se Iistan las instrucciones. Las enunciados de con& de condicibn deben reconcomo pafte. es negativo cuando ACt15) = 1.de las cd¿lciones de control.Para restalilla opwacih de la computadora. Al revisar la tabb 5-2. La tabia 5-4 lista las siete instrucciones de referencia a memoria. Si MIAR] + 1 = O entonces PC c . L a ejecucidn de las instrucciones de referencia a memoria comienza con la señal de temporizacihn T4 La descripci6n simbólica de cada instrucci6n s e especifica en la tabla en M nos de notaci6n de transferencia de registros.1 . se . 5 y 6 del decodificador de operacibn que pertenece a cada instrucción se incluye en la tabla. que la función de las instrucciones de referencia a memoria puede definirte m forma precisa mediante la notaci6n de transferencia a registros.deAC es cero (JC = 0) todos los flip-flops del registro son c m . PC+AR + 1 M[AR]c-'M[AR]+ 1 . enconkamos que algunas tienen una d d p c i b n ambigua. 5-6 Instrucciones de referencia a memoria d i m i d n eJectfata Para especificar las micraapraciones que se requieren para la qecucibn de cada Instmcd&n. . 3. E e C . Ahora mostrammae. ACt@kIR] M[AR] tAC PC+AR M[Al?l+$T.

los datos deben pasarse de l a memoria a un registm donde pueden ser operados sobre circuitos lbgiros. 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 seílales de temporizacibn. La funcibn de control para Ejecucihn &e la+instnrCnbn ADD a AC Esta instruccibn suma el contenido de la palabra de memoria especificada por la dked6n @fectiv¿i al valor de AC. La transicihi de reloj asrreiada con la siguiente señal de ternporkciibn &nsfiere a AC el resultado de la operación lógica AND entre el contenido de DR y AC. a l transferir el cohtrol a l a seiíal de Wporizacibn To para comenzar un nuevo ciclo de instruccibn. . L a misma transicidn de reloj pasa SC a O. Después de que se busea la instnioeidn en la memoria y se decodifica.5. Esto es porque los datos almamad= en l a memoria no pueden procesame en forma directa. El resultado de la operaci6n w transfiere a AC. 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 dirección efectiva. Ahora explicamos la operacih de cada instrueei6n y hacemos una h t a de las funciones de control y microaperaciones necesarias para su ejecucibn. La suma se transfiere dentro de AC y el acarreo de> salida Cd se transfiere al flip-flop E [extenssn del acumulador). sbln estará activa una salida del derodíficador de operación y esa salida determina La secuencia de micmperaciones que sigue el control durante la ejecución de l a instrucción de referencia a memoria. Al final de esta seccibn se presenta un diagrama de flujo que resume todas las mimooperaciones. T4y Tg pero con el decodificadar de operacibn DIen lugar de Do el cual se utilizó para la inistrucmn AND. La transicibn de r e l o j asmiada con la señal de temporhci6n T4transfiere el operando de la -aria dentro de DR.6 Instruccimm de referencia a memoria ciones. Se necesitan dos d e s de temporizaci6n para ejecutar la insfmrci6n. 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 instrucción tiene una operaci6n AND cuyo valor de código binarib es 000.

Después ce busea y se ejecuta la siguiente instrucción de la direccih de meinoria proporcionada por d nuevo valor en PC. esta uistnicci6n con una micreeracibn: QT4: M[AR] t AC. 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.LIJA: Cargar a AC Esta instrucción transfiere la palabra de memoria especificada por h dirección efectiva a AC. 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. La iristnicci6n BUN permite que el programador especifique una instrucción fuera de secuencia y se dice que el programa se brinca de manera incondicional. podemos ejecutar. 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. 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.eeei6n de la siguiente instruccih en h secuencia del programa. Como la salida de AC se aplica al bus y la entrada de datos de la memoria estA conectada al bus. primero a necesario llevar la palabra de memoria a DR y después transferir el contenido de DR a AC. Por lo tanto. Debe recordarse que PC contiene la inshucci6n de l a dimcibn que se va a leer de l a memoria en el siguiente ciclo de instFuccidn. El circuito sumador y Iógico m i b e informad6n de DK la cuaI puede transferirse a AC. Al mtableeer SC a Q se transfiere el control a To. La raz&npara no conectar el bus a Ias entradas de AC es el retraso que se encuentra en el circuito sumador y 16gico. PC se inere~enta en el tiempo TI para prepararlo para la dii. . SC +O BUN: Brinco incondicional Esta instrucci6n transfiere el control del programa a la instniccibn espeeificada por d i i 6 n efediva.

Después de las fases de biiaqiiaquda y dwdificación. El regreso al programa original (y la di~eccibn 21) se consigue Figura 510 Epplo de la ejecuci6n de la instruccidn BSA. dimccidn d t ptnmo Un ejemplo nurndrico que muestra cómo se usa esta instnicci6n con una subrutina aparece en la figura 55-10. Cuando se ejecuta. El bit 1 es O y la parte de la dirección de la instnicci6n time el eq.insktuccibn en secuencia (la cual esta disponible en PC) dentro de una pmiei6n de la memoria especificada por la direcci6n efectiva.uivalentebbrio de 135. AR contiene la direcci6n efectiva 1% Esta se muestra en la parte (a) de la figura. Se considera que la instnicci6n BSA estd en la memoria en la dirección 20. Esta operación se especificb en la tabla 5-4 con la siguiente transferencia de registro: M [ A R ] t PC. La instmcci6n BSA ejecuta Ia siguiente operacihn numérica: de esta operacidn se muestra en la parte @) de la figura. que es la direccidn de la siguiente inshzieci6n en el programa (demiminada dirección de refmo). la instruccibn BSA almacena la di&& de b siguiente. Memoria O BSA Memoda E 1 resultado 135 O BSA 135 Siguiente instrucción Sigifente i ~ ~ ~ t r u m b 1 S~ibrutina I 1 BUM 135 . PC contiene 21.!S~@N 5-6 Instrucciones de 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. La dimci6n efectiva mAs uno se transfiere'despuésa PC para seniir como la direccibri de la primera hstrucci6n en la subrutina. La d'wocibn de retorno 21 se almacena en la localidad de memoria 135 y e l control continúa con d programa de subnitina que comienza desde la direeei6n 136. K + AR +1 .

SC + O +1 La a e ñ d de tmprhaci6n Tk inicia una operad611de escribir en memoria. la direcci6n efecti'va 21 se 'transfiere a PC. Para usar en h a adecuada.mediante una instrucción BUN mind-ta. l a memoria y d bus. donde encuentra la dimi6n 21 que se guardb antes. SC t O . AR t AR D5T5: PC + M . En la mayoría de las mputadoras comerciales. Como no es posible incrementar una palabra dentro de la memoria. es necesario leer la palabra dentro de DR. 13n ese momento. Por lo general. -15:úando se ejecuta .PC se incrementa en uno para saltar la siguiente instnicci6n en el programa. incrementar DR y almacenar otra vez la palabra en la memoria. La operacidn de escribir eñ m e m o r i a $e tmpleb y AR se incrementa cuando ocurre la siguiente trawición de reloj. La inskucci6n BUN indirecta al final de la subrutina ejecuta la función que se denomina retomo de la subrutina. en un regÍstra de procesador o en una porción de la memoria Ikrnada pila (stack). la inetniai6n BSA debe ejecutarse con una ~ e n c i de a dos microopraciones: D5T4: M[ARJ + PC. Esto se hace con la siguiente -uencia de micmoperaciones: D6T4: DR D6T5:DR DR + 1 D6Td MIAR] + DR. por lo que el' control sigue ejecutando la instrucci6n en la direccibn de retorno. E l bus se utiliza en T5para transferir eI contenido de AR a PC.la instrucción BUN. 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. colma el a t e n i d o del PC dentro del bus. colocada al h a 1 de la subrutina. si (DR = 0) entonces (PC + PC t . y habilita la entrada iNR de AR. la imhxei6n BSPr ejecuta la hnci6n que se denomina llamada a subrutina. la dirección de retorno asociada con una subrutina se dmaana. El siguiente cfcio de la instnrcci6n encuentra PC rion el valor 2 1 . Esto se analiza más adeiante con mayor detalle en la secci6n 8-7. Cuando se ejecuta esta btmcd6h d mnml regresa a l a fase indimta para leer la dire&& kktim en la lkalidad 135. si el valor incmnentado es igual a O .MIAR] + 11. ISZ: Incrementa y brinca s i es cero Esta insinicci6n incrementa la palabra especificada por la direccihn efectiva y. PC se incrementa en 1. eventualmente alcanza el valor de cero. Como =te valor negativo se incrementa una y otra vez en uno. El programador por lo general almacena un número negativo (en complemento a 2) en la palabra de memoria.

una de las males Diagrama de flujo de control En la figura 5-11 se muestra un diagrama de flujo que muestra Figura 5-11 Tabla de flujo para instrucciom de referencia a memoria. Las microoperaciones que s e ejecutan durante los tiempos T4 T5 O T6 dependen del valor del &digo de la operacihn. Instruccibn k r e f e ~ l a pmemorla ' 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 1 ' DR D2T5 M [AR] t AC SCtO ACtACADR SCtO ACtAC+DR E tCd SCtO i - SCtO BUN 85A ISZ nb7 I r D6T6 M [M] t DR Si (DI? = 0) Entoiraep(PCtPC+ 1) sc4-o . Esto se indica en el diagrama de flujo mediante seis trayectorias diferentes. Las funciones de control s e i d c a n eh la parte superior de cada bloque.SECU~ 5 4 instrucciones de referencia a memoria 159 todas las micmperaciones para la ejecucidn de las siete instrucciones de referencia a memoria.

el contador secuencia1 SC se barra a O can la Siltima señal de temporizacibn. Configuraci6n de entrada-salda La terminal envía y recibe información serial. Esto provoca una kransdel control a la señal de temporizaci6n To para q w qomience el siguiente ciclo de instruccibn. L a información serial para la impresora se almacena en el registro de salida OUTR. Cada cantidad de informacibn tiene ocho bits de un c6digo alfanumérico. Cuando se oprime una tecla en el teclado. La computadora puede disefiarse con un contador secuencia1 de 3 bits. La interfaz que transmite recibe información serial del teclado y la transmite a INPR. utilizaremos como ejemplo una unidad tednal con un teclado e impresora. En cada caso. La bandera de entrada de 1 bit FGI es un flipflop de control. Una computadora no puede tener un propósito 6til a menos que 8e comunique con un ambiente externo. Los multados computacionales deben transmitirse al usuario mediante algún dispositivo de salida. L a operacibn de la interfaz de comunicación cena1 se explica en la secci6n 11-3. La razbn para utilizar un contador de 4 bits para SC es proporcionar seÍta1es de tempohci6n adicionales para otras instrucciones que se p m t a n en la sección de problemas. Al principio. El p m s o de transferencia de informaci6n es como sigue. Ia bandera de entrada FGI s e desactiva a O. s e ejecuta un corrimiento sobre un ckiigo alfanumérico de 8 bits dentro de INPR y la bandera de entrada FGI se inicia regisiro de entrada . La informacidn serial del teclado se cambió dentro del registro de entrada INPR. El registro de entrada INPR consta de ocho bits y contiene inforrnaci6n de entrada alfanum~rica. La interfaz que recibe acepta infomaci6n de OUTR y la envía en forma serial a la impresora. L a organizacibn de la entrada-salida se analiza más adelante en el capítulo 11. Para mostrar la mayor park de b s reque bientos bdsicos para comunieacibn de entrada y salida.toma eI control después de que se d e c d i c a la instrucci6n. La configuración de entrada-salida se muestra en Ia figura 5-12. N6tese que d o necesibrnos siete h l e s de temporización para tar la instnicci6n m 4 9 larga @ Z ) . 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. h s computadoras comerciales incluyen muchos tipos de dispositivos de entrada y salida. Estos dos registros comunican en forma serial con una interfaz de comunicaci6n y con el AC en paralelo. Las instrucciones y los datos almacenados en la memoria deben pmvenir de algún dispositivo de entrada. La bandera es necesaria para sincronizar la diferencia de la velocidad de temporizacibn entre el dispositivo de entrada y la computadora.

y cuando se S e i n a la operaci6n activa FGO en 1. Instrucciones entradaealida Se necesitan irlstrucciones de ehtrada y salida para transferir información hacia y d d e el registro AC. no puede cambiarse la infonnacih en INPR al oprimir otra teda.= Interfaz OUTR - - r Teclado L Int& transmiswa registm de salidri en 1. la infomci6n de INPR se t r d r e en paraielo dentro de AC y FGI se reinicia a O.Registros de *computadora Y fl~pnops I m p m o r a . La computadora comprueba el bit de la bandera. y para controlar la opci6n de interrupci6n. si es 1. si es 1 . h computadora no carga un nuevo car-r en OUTR cuando FGO es O porque esta condición indica que el dispwitivo de salida s e encwntra en el pniceso de imprimir el carácter. ta computadora comprueba el bit de la bandera. Las instrucciones de entrada-salida . Mientras la bandera estd en uno. El d i s p o s i t i v o de salida acepta la infomacibn codificada. imprime el carácter correspondienk. E l registro de salida OUTR funciona en forma similar pero la d-bn del flujo de irdoma& está invertida. para comprobar los bits de bandera. la infonnaci6n de AC se transfiere en paralelo a OUTR y FGO se desactivá a O. Ai principio l a bandera de salida FGO se activa m 1. 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.

.

.

una pila de memoria.para que no puedan murrir m& intermpciohes hasta que se haya atendida la solicitud de i n b mipcidn de la bandera. y. Esto se muestra en la figura 514(a). o una posici6n de memoria Aquí la localidad de memoria en la direccibn O como l u w para almacenar la dirección de retorno. y R se rrinicia a O. PC s e inicia en 1 . +ea. una instruccibn BUN 1120 m la dirección 1. Cuando el control danza la seítal de temporhci6n Toy encuenha que R = 1 . 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 instrucción en la direcci6n 255. prmede ewi el ciclo de hkmrpciibn. El contenido del PC(256)se ahnacaa en la localidad de memoria O. E i programador ha colocado previamente un programa de sewicio de entrada-salida en Ia memoria comenzando en la direccibn 1120. Despuk el control inserta l a localidad 1 dentro del PC y a b i l i t a IEN y R . . En este momentu) la d k & n de retorno 256 está en PC.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 1 ' 3 r f Figura 5 4 3 Tabla de fiujo para el d o dc intcrrupiów un registro de proceaador.Ciclo de instruccibn ir O =I Ciclo de intemipA6n 1 I n s i d n para busmr y demdtlicar dlrm3ón de retorno en la posicibn O Almacenar M [O] +.

determina cual bandera está en uno y después transfiere la información de entrada o salida requerida. Este programa cornprueba las banderas. con una parte de dimi611de O. la instrucci6n que se lee de la memoria esta. La direccidn efectiva esta en la p i c i 6 n b y es la dirección de retorno que se almacm6 ahi durante el ciclo de interrup- cibq previo. Ciclo de int-pcibn Ahora esbmos preparados para listar ks enunciados de tractshcia de registros para el ciclo de intmupci6n. La Xnstrucci6n que regresa a h computadora al Iugar original en el proarama p b i p a l es una in$tnirni6n. Al comienzo del siguiente cicIo de inshuccibn. Esto puede suceder con cualquier transici6n de rdoj excepto cuando las .de brinco indbzto. el control va a la fase indirecta (porque I = 1) para leer la direcci6n efectiva. Esta instrucci6n se coloca al final del programa de servicio de entrada-&ida.Memoria (a) Anta de la Miempclón (b) W p u b dd ciclo de intempci6n Figura 5-14 Ejemplo del &lo de interrupcibn. y e l programa regresa a la posici6n en la cual fue interrumpido. Esto se muestra en la figura 5-14(b). E1 ciclo de interrupcidn se inicia d q u & de l a última fa= de ejecucibn sí el fiip-flop R de interrupción es igual a 1. 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. Despub de que esta instrucciSn se lee de Ia memoria durante b fase de búsqueda. &te flip-flop se activa en 1 si IEN = 1 y si FGI o FGO son iguales a1 . en l a dirección 1 porque &te es e l contenido de PC. Una vez que hace esto. 8e ejecuta la insEtucci6n ION para activar IEN en 1 (para habiiitar interrupciones posteriores). 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.

Después el control recorre un ciclo de instrucci6n que busca y ejecuta l a instnickión BUN en la lacalidad 1.'I'G.166 W m Organizacih y diseiio de computadoras sefíalesde temporizacibn Tw Tb o T2estZln activas. El control regresa a la &al de temporización Todespuds de que SC se borra a O. modifica a la posición de memoria 1. Si R = 1 . Si R = O. A esto se a p k a la funci6n AND con IEN y r0'. la computadora qecuta un ciclo de intempci6n. y el'control regresa a Toa b n a r SC a O. la compubdora ejecuta un ciclo de instruccibn. En lugar de d o usar las d a l e s de temporizaci6n To. Esto puede hacerse con la siguiente secuencia de micmpraciones: + Durante la primera M a l de temporización se borra AR a O. R y SC a O . Tp y T2(como se muestra en la figura 5-9) aplicaremos la hnci6n AND con R' a las tres señales de bemporizaci6n para que las fases de búsqueda y de decodificaci6n se reconozcan de las tres funciones de control R'T& R'Tl y R'T2. 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. incluyendo un ciclo de intermpci6n para la computadora básica. E i flipflop de interrupcihn R puede iniciarse en cualquier momento durante las fases indirecta o de ejecucibn. y el contenido de PC es igual a 1. Ahora modificaremos las fases de bdsqueda y decodificacidn del ciclo de instniccibn. el control recorre una fase de biisqueda s610 s i R = 0. el control reromera un cicIo de instrucci6n. E1 ciclo de interrupción almacena la di-n de retorno (disponible en PC) dentro de h posici6n de memoria O. Za razbn para hacer esto es que el tiempo en que se ejecuta la instruccidn y SC se borra a O. El inicio del siguiente cielo de insItriccidn tiene la condicibn RT. desactiva IEN y R. D e otra manera s i R = 1. la computadora comprueba primero si existe una direcci6n indirecta y despuk continúa ejecutando la . y desactiva IEN. Si la initrucci6n de referencia a memoria. La kercera sefial de temporizacibn incrementa PC a 1 . 5-8 diagrnma de flujo Descripción completa de una computadora para in compwtudorn brisica En la figura 5-15 se muestra e l último diagrama de flujo del ciclo de instrucción. y el contenido de PC se transfiere al reghtro temporal TR. La condici6n para activar el fipflop R en 1 puede expresarse con el siguiente enunciado de transferencia de registro: TJTí Ti(lEN)(FGI + FGO): R +1 B i símbolo modifiacidn de la frise de búsqueda entre FGI y FGO en la huici6n de control representa una funcibn OR 16gica.

SEC-

5 8 DeSajpih

compieta de una computadora

167

Inicio

SCtO.IEN t 0 , R t O
I

(Ciclode lnstruccibn)

=O

= 1 (Ciclo de inwrrupcibn)

1r

RTo

1

r

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

AR+IR(O-ll), ItIR(15) Do ..-D7 t k d i c a r iR (12 - 14)
I

u
~istrooI/O)= 1

=O

( R e f e m a memorla)
I

9 f

f

Q/O)

=1

=O

(directo)

"

DflT3

" W'T3
Ejecutar

1

'

D'TI T3

lr

Db71*T3

Ejecutar
la instrucción 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

la instrumibn de referencia a memorla (tabla $11)
11

Y
Figura 515 Tabla de flujo para la operación de una mmputadora.

instrucción 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 organización 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 digítal, sino también para especificar los circuitos 16gicos necesarios para su -o.

59

Diseño de una computadora básica

La computadora básica consta de los siguients componentes de hardware:

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

6 . Compuertas 16gicas de control 7. U n circuito sumadm y lñgico conectado a la entrada de AC

f -

Ia unidad de memoria es un componente estándar 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 sección 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 dieciséii multiplexores de 8 X 1 en Luia conf~guración similar a la que aparece en la figura 4-3. Ahora vamos a mostrar dmo dL&r las compuertas lógicas 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 básica

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

DR +M[AR] ACtACADR, S C t O DR+M[ARJ

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

&~'Ts r tR{iI=$,(i=O, SCt.0 AC+O Eco

toda5 las hkuccinmwi de & &
. 6

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

finihd di! cm*ol

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. Señales para controlar las entradas de los nueve registros. 2. Ceiíales para cantrohr las entradas de lmtura y escritura de la
memoria. 3 . %fíales para iniciar, borrar o complementar lm flip-flqs. 4. Wíab 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 común 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:

SECU~N 5-9 Diseño

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 símbolo t MrAN.

La salida de las compuertas kgicas que implantan la expresi6n booleana deben conectarse a la entrada de Iechrra de la memoria.

Control de flipfiops únicos
l a s compuertas .de control pata los siete Bip-flops pueden determinarse de manera similar. Por ejemplo, la tabh 5-6 muestra que IEN puede cambiar como resultado de las dos instrucciones ION e IOF.

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 númem 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 lógica de selecei6n de bus ce muestra en la figura 5-18. Las funciones boolenas para el codificador son

Control de un bus común

Con el fin de determinar l a lógica 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.

Por lo tanto, la fqncibn booleana para x, es
Figura Sr17 Eniradas de control para IEN.

-IEN

TABLA 5-7: Codificadorpata drcuibde e l &

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 lógica que genera xr también 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.

De manera similar podemos deteminar la 16gica de compuerta para los otros
registros.

5-10 Diseño de un acumulador lógico
Los circuitoe asociados con e l registro AC se muestran en la figura 5-19. E l circuito sumador y l b g h tiene tres conjuntos de entradas. Un conjunto de 16 entradas proviene de las salidas de AC. Otro conjunto de 16 entradas viene del registro de datos DR. Un tercer conjunto de ocho entradas llega
Figura 5-28 CodifiEiidor para entradas de w M ó n de bus.
L

MulilpIexorde
Codifidor
L

: Si entradas de :so selección debus

$10 D h ñ o

de un acumulador ihgico

175

de las funciones de contmI en la lista anterior. La función 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 microoperación 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 están marcadas con un nombre simboliea. Estas salidas ae utilizan en el -o del circuito sumados y lógico.
Circuito sumador y lógico El circuito w d o r y 16gco puede subdividirse en 16 etapas, donde cada una comesponde a un bit de AC. La construcción interna del registro es como
figui5-29 EPtrudum de ?puerta
-de

para controIar LD, INR y CLR de AC.

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) estái 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

Una etapa del c h i t o lbgico y smador consta de siete compuertas
AND, una compuerta OR y un sumador completo (FA) como aparece en la figura 5-21. Las entradas de las mpuertaB c m nombres simb6lieos pronen de las salidas de las compuertas marcadas con el mismo nombre simbólico de la figura 5-20. Por ejemplo, la entrada marcada ADD en la figura 5-21 está conectada a I a salida marcada ADD en la f i i 5-20. La operación AND se realiza al aplicar la función AND AC(i) con e l bit correspondiente eii el registro de datos de DR{$ Za operaci6n ADD se obtiene al usar un sumador biario similar al que s e muestra en la figura 4-6.Una etapa del sumador u t i l i z a un sumador completo con los acarreos de entrada y salida correspondientes. La transferencia de INPR a AC es s61o para los bits del O al 7. h microoperaci6n de complementar se obtiene al
Figura 5-21 Una etapa del c h i t o surnador y 16gico.

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 operación 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 código de operación, tuta de d i g o de registro para eswficar uno de 6P regisirosy una parte de dired&

v.

a ¿Cuántos bits hay en e l e 6 d i de operación, la parte del d i g o de @stM y 1s parte de -dk&ór? b . D i j e el formatode palabra & dirección e indique la cantidad de bits en
cada parte.

5-2

53:

-

cuántos bits hay en Ias entradas de datos y de direccibn de ia memoria? ¿Cuál 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

1

b .

1 E. J d O

1 O O

1 O O

IR

Ler

PC
DR AC

Escribir:
m

-

m

0

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 opmacíón 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 (mlízadas en forma simdtánea]

AR.de referwicia a regish. E i contenido de la memoria en la diieeci6n C35 es Pqofcione la -&a en una tabla con cinco columnas.AR. Analice el ciclo de instmccii5n y determine el contenido de los siguiente registros al fural de la fase de ejecuci6n: PC.Repiia 11 veces más.o~ el &digo hexadecimal de cuatro bits y explique msus propias palabras cuái instnic ci6n va a ejecútar. E i wtenidp de AC es 7EC3. 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 .El antenido de la memoria . prop0rci. 5-8. 5-10. O 1 1 1 0000 0010 0000 5-7. a. PC. AC+ AC c. Muestre el contenido en hexadecimal de los registm PC. un d i g a de operación de la instru46n AND y la park de la dirección igual a 083 (todos los niirnema mtán en hexadechal). Determine el contenido de AC. E l contenido de AC e n la computadora básica es el hexadecimal A937 y el valor wchl de E'es 1.5-5. comenzando desde mida una de las instrucciones.AC e IR. OOO1 0000 OOIQ 0309 b . DR. una para cada r e @ h y un 91611 para cada eñai de temporizaúón. El antenido de PC es m. 1011 W1O O1W b. Muestre el contenido de 10s registros dspués de l a transición positiva de d a pulso de M5-12. DR. Di3 tD R + AC + TR w 1 e. La fibra de memoria en la direccÍ6n E& contiene el operando B8F2 y el contenido de AC es A937. Espefifique una secuencia de m i ~ o o ~ a c i o nque e s *ten la operaci6n a. ~Cuáies 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.El contenido de la memoria e n la dirección 7FF es EA9FFE l contenido de la memoria en la direcci6n A9F es OC35. E. El contenido de PC en la computador~Mcica es 3AF (todos los niirnerasestan en hexadechal).se activa w n la transici6n de reloj positiva a h a d a c m T. I R t M [ P C ] 5-6. e IR en hexadeeimal d v u & de la ejmci6n de Ia instnicci6n CLA. Para cada una de las siguientes idmcciorm de 1 6 bib. El valar inicial de PC B d hmadecimalO21. Repita el problema seis v más comenzando con un abdigo de opera& de o h instruccidn de referencia a memoria. 5 Una instnicci6n en la direcci6n 021 en la computadora básica tiene I = O. 5% C.AR. (AC no cambia) Considerelos formatos de Inclmceión de la mpu&dora básia mostrados en la figura 5-5 y la lista de instruccionesproporcionada en la tabla 5-2. IR y SC de la computadora basica cuando se bu= y qecuta una instrucción indirecta iSZ de la memoria.

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 . Muestre el contenido de los registros despuésde la transicih positiva de cada pulso de 5 9 . El contenido de AC en la computadora básica es e l hexadecimal A937 y d d o r inicial do E'# 1. a. 5-11. 1 2 .AR. una para d a y un renglón para =da seííai de temporimei6n. Repita 11 veces más. Ardite el delo de instnicci6n y detemine el contenido de los sieentes registros al final de la fase de ejeeuei6n: PC. DR. Una instrucci6n en la direecidn O21 en b computadora básica tiene I = O. A C t AC + TR c. 5-7.M. DR +DR + AC (AC no cambia) 5 6 . El cantenido de AC es Q contddo de la memoria . W r m h e1 contenido de AC. La palabra de memoria en la d i 6 n 003 contiene el operando BSF2 y el coniddo de AC ES A937.E. 5-12 El contenidode PC en la computadoraW c a es 3AF (todus los númerosestán en hexadecimal). se activa con la transición de reloj positiva &da con T1. El contenido de la memoria en la direcrtbn 7FF es EASF. E l conaenido de la memoria en la direcci6n A9F es QC35. 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. proporcione el código hadecimal de cuatro bits y explique m n BUS propias palabras 4 instruc ci6n M a ejmtar. Para cada una de las siguientes instrucciones de 1 6 bits. Repita e l problema &S veces más comenzando m n un &digo de opaei6n de otra instniOn6n de reíerencia a memoria. DR. El valor inicial de PC es el h a d e c i d 0 2 1 . IR tM [PC] b . PC. Especifique u~ secuencia de micrmperacioneei que ejeniten la operación.A C e IR.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. M ] . 5 1 0 . $ d e s son las dos instrucciones neeecarias en la computadora wca 5-8. El contenido de la memoria en la dhcci6n C35 m FSFñ Pmporcione la respuata en una tabla con &ICO columnas. e IR en hestadecimal después de la ejecución de la instnicci6n CLA.M.AR. un d i g o de operacih de la insbmión AND y la parte de la direm6n igual a 083 (todoslos niimeros d n en hexad&al). 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. E l contenido de PC ES 7PF. comenzando desde cada una de laa instrucciones de referencia a r@b. Muestre el contenido en hexadecimal de los registros PC.

e X R en hexadecimai y l mvalores de E. 2 . 1. 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.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. Sustituya la instnieeibn TSZ con una instnicci6n que cargue un nilmero dentro de CTR. AR. AC. EA es la dirección efectiva que reside en AR durante el tiempo TJ. DR. ' 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. 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 . c. i0i ACtAC@M[EA] M [ & I ] t M [ E A ] f AC AC+AC . SImbolo -hcihdmMiia IkcripPSn en palabras XQR ADM SUB 000 001 010 XCH SEQ 011 lOJ BPA 5-14. = 000. E i contenido de la memoria en la d i d ó n 9AC es 8B9F. Nótese que e l valor de AC no debe modificarse. . Proporcione el contenido de los registros PC. en l a direccidn 3AF es 932E. 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.El contenido de la memoria en la d i 6 n 32E a 094C.513. 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) Brincar s i AC es positiva y diferente de cero Haga los siguienb cambios a l a computadora Msica. ¿Cuáles la instnaccibn que se buscará y se ejecutara dspuh? b . a menos que la instnidn especifique un cambio en su contenido. Agregueminstntcci6nde-aFegihaICSZ:btCTRy brincar a la sipiente instrucci6n si hay un cero. e Dirección LDC CTR +M Illireccih] 3. a.S.Anaiice la ventaja de este cambio. . l . Muestre la m a 6 n binaria que a d h r i en AC niando se *te k instmcci6n.M[EAJ AC tM [ E A ] . A p p e un al sisbma de bus C i R (registro de mQ] que se seleccionará eon S$. k resta debe hacerse utilizando el complemento a nfimems 2 del susbaendb al complementar e incrementar AC.

3 8 4palabras.) b .si es neceario) para apegame a esta con& guraabn. requirimdo una direeabn de 16 bits. La unidad de m e d a de la computadomWsiea que se mueira en la figura 5-3se va a m b i i a una memoria a. $ 1 6 . Una computadora d i t a l time una W a d de memoria con capacidad de 1 6 . XI: R *-M[AR] RtAC Xi 1 6 : MIAR1 + R X &: Lee la palabra de memoria d e n b de R T m f e r i r AC a R Emibic R a la memoria L a meqioria tiene entradas de datas.AR. 40 bits por palabra. 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. 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 inshcdón se proporciona mediante los 16 bib de la palabra que sigue a la ~ ~ 6Modiqw n . No hay un bit indirecto. UM eomputa$ora utiliza una memoria de 65.Comience a partir de la señal de temprizaci6n TI 5-17.DR. salidas de datos. Todos los operandos son de . 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). Tiene l o s siguientes *w: PC. Un programa de salida reside en la memoria comenzando en la dirección 2300. Dibuje la hplantiiei6n de hardware de R y la memoria en toma de diagrama de . las m i a m p m i o n e s durante los tiempos T% T3(y T. entradas de direcaón y entradas de emtpol p m leer y escribir como en la figura 2-12. SX 1 6 . \ a Dibuje un diagrama de bloque de la computadora que muestre la memoda y los registros como en la figura 5-3. ¿Cuálesd 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. TR {de 16 bib cada uno) y AC. (No utilice un bus consta de comh. IR (de 8 Wis cada m). E i formato dei d i g o de instruccibn consta de 6 bits para la parte de b operaciónn y 14 bits para la parte de direcci6n (no hay bit de modo M i ] . 1 5-18..536palabras con 8 bits en cada palabra. 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. ¿Qué instnicci6n debe colocarse en la direcaón 1? b .8 bits. FonnuJe un p d r m i e n t o para recuperar y ejewiar ~iristniccioms para e i a computadora.5-15. Se ejecuta después de que l a computadora reconoceuna interrup56n mando FGO se convierte en 1 (mientras IEN = 1). Dibuje un diagrama que muestFe da posiaón en Ia memoria de una instrueciSn ifpica do tres palabras y el operando de 8 bits correspon- diente. a.

y G .Nueva York JohnWiley.L . Derive la expresi6n h l e a n a para q (véase la tabh 5-7) M w h e que x. 5-22 5-23. h s . Booth. Muestre c6mo las frinciones de control X. número de compuertas. 3.operacionesque van a ejecutarsemn un Gpflop F (el cual m se usa en la eompuíadora Msicra) sewipifiean mdante las siguientes enunciados de tramferencia depgklxo: : 1 flI:f + O zT2: F tF SS: F +G ActivarFal BorrarFaO Complementar F Transferir el valor de G a F D e &a manera. Computer En@'-n8. Derive las compuertas de control asociadas con el contador de programa PC en l a eomputadora bAsica. G. Mudge y J. Muestre la Ibgica completa de los flipflops de interrupci6n R en la computadora básica. 5-20. .Intduction %oCompuler Enginwing. Gibson.J. 1 . 5-25. Be& C.A. NJ: P r e n b Hall. E.R Peterson. a & seleccionan l a entrada de control de carga de R. Bedford. 3a M. Hüi. G.1980. J.. Ufilice un Bipflop JK y minimice e l número de compuwb~. E n g W Cliffs. las entradas de selemi611 de los multipleK O que ~ uste. PIIA:Digital M. Digibl Syctems: ihrdware m i u r t i o n atd Lksigts. 1 9 8 ' 7 . T . C. .d incluye en e l diagrama y las entradas de ledura y d i u r a de memoria. 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. 199l. Minimice el nGmero de compuertas. 3a M. Nueva York JohnWiley. McNamara. 5-24. puede genmarse con una compuerta AND y una compuerta OR Derive la expresión booleana para la estructura de compuerta que borra e l contador secuencia1 CC a O. Denve las compuertas de control para la entrada de escritura de la memoria en la computadora básica.bloque. Dibuje el diagrama 16gico de la compuerta y muestre cómo se conecta la salida a ¡as entradas I N R y CLR de SC (vQise la figura 54). F. 2. C m p t e r Systm Conceptsand h i g n . 1884.. 5.

Nueva York: HarpeeCollins Publishers. . Patterson. M.. y L. .182 cAPrnno Organización y dieeiio de computadoras 6. Tke At3 qfüigital Design. CmpW Archiiecture: A A n t i f n t k Appmch. Prosser. 1991. Chiva. 8. C m p t Design ~ atta Arclnit~hre. 1987 10. 9. 1983.Computer Enghming: Mmre Decign.P .Logie mign and Camputer Orgmbtmn. 2a. Lewin.H m y . 7. Prentice Hall. Englewood C l i . Reading. Englewd Cliffs. CA:Morgan Kaufmann Ilublishm. MA:Addim Wesley.y D. ! % m Matm. H . M. Mano. M. E¿. 1988.Winkel. 1990. 2a Bd. D .A. P. NJ:Prentice Hall. S. G.E.

InIrduEQbn Lenguaje de máquina ZRnguaje d B L d o r E 1 eqsqbiador C i c h del programa Pmpmaa6n & operaciones aritm&aw y lógicas subnltiri.quienes se i n m en la arquitec tma de la computadora d&n conocer tanto l a con10 el softwm. El hardware consta de ios componentes físicos y tado el equipo asociado. ~~ . b instrucciones de máiquina dentro de la computadora forman un patr6n binario con el que a lo$:usuariw les iesuEtrr difícil trabajar y entender. porque los das a ~ influye" b m o en d otro. forma direda o i n d i t a .&ritos para la: computadora. ~~.as F'rogrd6n de entrada-saüda 6-1 Introducción Un sistema de computadora total incluye tanto circuiteria (knrdwre] como progmw&n (sopzlMtre). Emibir un programa para una computadora consiste en ~ ~ c aenr . una secuencia de instrucciones de dquina. existe la necesidad de traducir los programas simb6licos orientado8 al usuario. Como consecuencia. El software se mfie~ea los programas que están . E s posible conocer difemnks aspectos de programación de computadora s i n xelacienarse con los M e s de cómo opera h También es posíble diseiiar parb de Ia circuikrla sin conocer las pdbilida& de su softwarr. Es preferible escribir programas con los símbolos m á s familbre3 del conjmto de caracteres alfandricos. a programas binarioa que reconozca el hardware. Sin embargo. si no e~ que imposible.

un programa & de la wmputérdma &#o wr Fortran eatilndar es indepdfenk de la máquina porque la mayoría 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 & . El d d d o m que se usa en la columna de &mipci& denata la d h c b efectiva. y una dirección de 12 b i t s . ~ " ~ ~ ~ ~ * ~ n i n c e p ^ d e p r o g e a m a c i 6 n . En el modo indirecto.184 b p m a ¿ ó n -.de modo y el &ligo de opwacibn. cuya organizaci6n de hardwa~ se exploró en e l capitulo 5. E l primer dígito de una instruccibfl de referencia a registro es siempre 7. se utiliza en este capítulo para ilustrar mu&s de las W c a s que se usan con reguiaridad para programar una computadora. 'es posible explorar la relación en& un programa y las operaciones de la circuikria que ejecutan las instrucciones. E 1 primer dígito de una instrucción de entrada* es siempre F. 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. la variación es de O a 6. Una instnicci6n de referencia a memoria tiene tres partes: un bit de modo. Las primeras siete instnicciones son de referencia a memoria y las otras 18 son de referencia a registros y de entrada-salida. Por ejemplo. El c ó d i i pwa cada instrucci6n se lista como un número h d e c i m a l de cuatro d @ b .~ = ~ . L ~ otras B 18 instniecione tienen un &digo de ope~aci6n de 16 bits.o enunciados para dirigir a la computadora con el pmpbito de que ejecute .l. El primerdigito hexndechal de ruia instrucci6n de referencia a memoria incluye el bit. t)e esta . un c 6 d i g ~ de o p r ~ de 9 ires Pits. La letra M hace refemcia a 4 palabra de memmia (operando) que se encuentra en la direcci6n efectiva. ius otros tres digito~ espe5fi-n la direcci6. Pera d ~rdjprna traductor es dependiente de Ja másyuiha porque debe traducir el pmfpnw"Fortran a l c M i i binario recon* &o por la cirqdkíi de h mphtadorri particular que s e utih. ~~ m m o Un pwama S iyia lista de instrucciones . El conjunto d e inshucciones de ia computadora básica.una tarea de procesamiento de datos.cEnuna instnicci6n de dirección indirecta el bit de mmiq es 1 y el valor del primer dígito k d e c i m a l flucth entre 8 y E. mitéstra 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 básiis de un programa que traduce un p q m m Stnwlico de usuario a un programa I i W eguivaimte El análisis enfatiza Ioe mncqbos i m p r h b del traducbor más que los M e s de pducir en realidad el p q m m mismo. l a utilidad de las diversas imtmcciones de máquina se demuestran mediante v+mplos de pmpmaci6n básica. Kiten varios tipos de b g i ~ a j e s de pmgra~nati6nque uno puede . A cada uistnicci&n asigna un shbolo de tres letras para facilitar h egcritura de programas simbólicos.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.m e r a .

pero ésta &lo puede ejecutar programas mando esGn representados de manera @terna en f o m binaria.inmdiciona1 a rn Salvark~dereiomoen m y ramificaram + 1 Jn~renaentar m y s. la parte de direcci41i y las otras partes del de irwtniccibn.' El usuario emplea shboIos (letras. Cbdigo ci&lh. %arrear aE t k g m AC desdeM Almacenar AC en M Brincar en forma. Este es una traduccihn equivalente del código binario en representación octal cr hexad-l. 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 Hñbilhr la inkmpcibn Deshabilitar fa intmmpci6n. nfirneros o caracteres especiales) para la parte de opera*. Los programas escritos en cualquier otro lenguaje deben traducirse a la representación b i r i a de las instni&iones antes de que la computadora puedá ejecutarlos. 2 CMgo wtul o hexad~imal. Código binario. 3.SímboIo AND ADD Código hexadecimal Aplitar AtJI3 M a A c Sumar M a AC.324 SZE HLT INP OUT SKI SKO ION TOF escribir para una computadora.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€. Cada instrucción . I = CLA CLE CMA CME CIR CIL INC SPA SNA . Este es una secuencia de instrucciones y operandos m b w o que lista la representación exacta de instrucciones conforme aparecen en la memoria de la computadora. LDA STA BZM BSA . 'Los programas escrit~~ para una computadora pueden estar en una de las siguientes categorfas: 1 .

Ahori usarmios la computadora bhsica para ilustrar la relacihn entre los lenguajes b i r i o y ensamblador.) El programa puede almacenarse en la porción de la memoria india d a y la computados puede ejecutarlo después -comenzando desde la direccibn O. . cada enunciado d& traducirse a una secuencia de Manes b k u j s antes de que la computadora pueda ejecutarlo. La primera columna proporciona la posición de memoria (en binari~)~ de cada instnzcci4n u operando. Consideremos e l programa biiario listado en la tabla 6-2. Como un d l a d o r traduce los los. de &quina es un programa binario de categorfa 1.186 m-~~básica de Ia cwrputadora simbólica pude üad~cim a una instniecibn codificada en binario. Un ejemplo de un lenguaje de programación de alto nivel w F#tran. Esta traducción se hace mediante un programa especial llamado ensarnbhhr. un lenguaje ensamblador se considera como un lenguaje a nivel de rndquina. Debido a la pelacidn de uno a uno entre una instrucdón kibblica y su equivalente binario. ea costumbre denominar a la categoría 2 ccmio tienguaje de Mgquina. 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. este lipa de propmas simb6licas se denomina programa de lenguaje enmb*. un propma de lenguaje. Lmtpjm I& p r q m r d h & dfo nivel. 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&. L w j e üe máquina Habhdo con rigor. E i programa. La segunda columna lista eI contenido binario de estas localidades de memoria. Elfnplezl sImbo108 y formatos orientad= a un problema. S i e d q p .que traduce un programa de lenguaje de alto nivel ce Uama m n p i M r .. (La localidnd es la h c i 6 n de la palabra de memoria en que se almacena la instniccibn. i a ckaiterfa de la computadora ejecutar4 estas instrucciones y TfiBLA 6 2 Piiograrna binario para sumar dos n h e m Localidad . Debido a l a equivalencia simple enentre las repreientacioms M a s y octal o hexadecimal. E. importante establecer la diferencia con la parte de di~eccibn de la instruccibn misma. 4.

la circuiterfa de l a computadora sólo reconoce este tipo de código de instrucciones. Sin embargo. N 6 h que la TABLA 6 4 Pmgiama con digas de operstcih simbólichp hlidad OW 001 instniccibn Comentarios LDA 004 ADD STA 006 002 1 004 005 HLT 0053 m 9 OlMO 006 Cargar el priínero operando dentro de AC Sumar el. Esto requerirh seis digitos por instrucci6n. al @al que las operandos. Es conveniente usar la representacidn hexadecimal. conservan su valor hexadecimal. e debe tener en menk que cada dígito hexadecimal deke convertirse a su n h e r o de cuatro bits equivalente cuando se introduce e l programa en I a computadora. E l programa de la tabla 6-4.ramas binariqs en forma octal'ohexadecirnal equivaiente debe s e r evidente a partir de este ejemplo.utik los nombres de instrucciones simbólicos (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.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í .SECU~N6 2 j e de máquina 187 TABLA 6-3 Programa hexadecimal para sumar das nhems - Localidad htrucci6n ~ddigo he*adedmal realizará Ia t a r e a que se pretende. Por otra patte. Podernos reducir k cantidad de digitcrs por instruccibn si escribimos el equivalente odal del c6digo binario. una persona que observe este programa' tendrsi dificultades en comprender que se consigue cuando se ejecute e l programa. Escriir 16 bita para cada instrucción es tedioso porque hay demasiados digitos. ta ventaja de egcriiir prop. podemos reducir cada instmcci6n a cuatro dígitas si ekribimbs el c6dQo hexadecirnal equivalente &mo se muestra en la tabla 6-3. sin embargo. N o obstante.

que indica e l h a 1 del programa. Si lm operando8 se colocan en la memoria d e pués de las instrucciones y si no se sabe con anticipacidn el tamah del programa. E l simbolo 0RG seguido por un niimero no es una uistniccidn de rndquina.188 SEI~ Programación básica de h computadora TABLA 6 . m /Operando decimal /Operando decimal /Suma almacenada en la posicidn C /Fin del programa simbólico posici6n 005 tiene un operando negativo porque el bit de signo de la posicih de la extrema izquierda es 1. como consecuencia. L a inclusión de una columna para comentarios sirve para explicar la funci6n de cada instrucción. si son negativos. por l o general. Ndtese que todos loe comentarios están precedida por una diagonal. estamos mAs familiarizados con los números decimales que con sus equivalentes hexadecimales. esto es la posición de memoria de la siguiente instrucci6n. E s t o es conveniente porque. Sus valores se especifican porque están presentes como una etiqueta m la primera columna. La operacidn aritmktica para los dos números se especifica mediante un enunciado simple. B . La kaducci6n de este programa Fortran a un programa binario . se definen en la siguiente sección. El programa de la tabla 6 5 es el programa de lenguaje ensamblador para sumar dos nítmems. Los simbolos ORG. E l programa en Fortran equivalente para surnar dos números enteros se lista en la tabla 64. DEC 03 DEC -23 DEClO c. Su propbsito es especificar un origen. es prefe rible escribir programas con slmbolm. deben convertirse a binario en r e p m t a c i b n de mmpiemento a 2 con signo. Después del sImbolo DEC se especifican operandos decimales. La última línea tiene el símbolo END. Ademis. tos programas si&lims sop más fdciies de manejar y. la posicidn de los v a n d o s numéricos no se conoce hasta que se llega al final del programa. llamados seu&instrucciones. mientras ae % e un programa no se conoce con exactitud la posicibn de los operandos num&ricosen la memoria. Estos simbolos pueden convertirse a su código binario equivalente al producir el programa binario. Lxw dos valores para A y B pueden especificarse mediante an enunciado de entrada o mediante un enunciado de datos. 5 Programa de lenguaje d l a d o r para sumar dos números ORG O LDA A ADDB STA C HLT /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. Las siguientes tres heas tienen direcciones simbblicas. Podemos ir un paso mas adelante y sustituir cada dirección hexadmimal por una direccibn shb6lica y cada operando hexadecimal por un operando decimal.. tos números pueden ser pwitivos o negativos pero. DEC y END.

8'3 Bi C Br-23 C=A+B consistemssignartresW&desdemanoria. Una~~limcEaistadeuno. por b general. dtmdbn iIjnbblJEa o especificar una d i i b n simb6lica. &ara fomulamnos las reglas de un lenguaje d l a d o r para & i r programas ~ U C O de S la computadora básica. Por l o tanto. Casi cada computadora comercial tiene su propio lenguaje ensamblador. tiene disponib1es el fabricante de la com~ubdora.doso~. 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 . El+campode c m t a r t o puede estar vacío o incluir un comentario. La unidad basica de irn programa de l m p j e mamblador es una lEnea de d g ~El. 2 El campo de instrucci6n especifica una instrucción o una seudoinstrucci&nde mdquina. Cada llnea de un prugram de l e n p j j emamblador se arregla m 5 Reglas del lenguaje h d a sC B en t m colum- Mh ~ ~ a m p especifieaFi la S&hk -6n. 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 instrucción en un programa de lenguaje emamblador puede m a r algunas de las siguientes opciones: . Las regb para escribir un programa en lenguaje ensambladar se documentan y publican en manualque.peronomaSde~ ~ & a n ~ Q p ~ ~ d e b e s e r u n a i e @ l o s d o s 1 .TABLA é 4 P m g p a Portran para sumar dos n h e m IHTEGEW IIi DRTR EWD A .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 programación se define mediante un conjunto de reglas.d~paralms~y~ para la stima. Los usuarios deben apegarse a todas las reglas de fomiato del lenguaje si desean que sus programas se traduzcan en forma correcta. El campo de etiqueta puede s t a r vacío puedenserletrason~ñlpmpmadorpuedeeiq$aifbrmaatbi~el ~ l o . 3. y d q u 6 derivar la -en& de instrucciones binarias que forman la 8uma. un p~ compilador b d u e 1 .

. 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. Una seudoin8tru0~ibn con o s i n operando. ia letra 1 pude estar presente o m.190 m W m a d h bhica de la computadora 1. Una insheci6n da referencia a memoria. 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 eüweta.61segundaesuna~6n~lia.primer simba10 de tres letras en cada h e a d+ ser uno de los símbolos de instrucciones de la computadora y debe estar listado en la tabla &l.mloca al final del p-ama para informar al ensamblador que termina el prog~ama. E l slmbolo END . es la L Si I d a m k .Las otras doa seudoinstaicciones especifican la base del operando y le dicen al emambhdor cbgto m v & el número listado a bhario. Una dirección simb6lica en el campo de inatnicci6n +ea la k m lidad de memoria de un operando. Una instnid6n de refemwia a registro o de entradadida (no MRI): 3. En seguida se muestran los simbolos que pueden colocarse en el campo de instrucci6n de un programa. parte del programa porque aparece de nuevo como una etiqueta m la' primera columna. 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. como ADD. programa para + m se. Una instrucci6n de referencia a memoria 0 . . 2. Una seudoinstrucclbn no es una irwwibn de dquina sino una instrucción 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. R trercw.quepuede estar p-teono.) 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 número que está desp. stnbolo.u& de O&.' bhdor recon-n muchas otras instrudeiones. 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 instrucción que no tiene una parte de d k i 6 n . (Otros programas de lenguaje ensam. l 3 posible u a h r ORG más de una vez en un de un q m e n t o de memoria. l$plpi - CLA nwMRI d W 6 n d i i t a Mü ADD OPR ADD FTR X - dhwcj6n indirecta MRI sePrdoinsMh . Esta localidad debe definirse en alguna . d e b estar después de la &recci6n &rMiica. .

tas siguientes seis líneas definen instnieciones de máquina. encontramos una seudoinstrucción ORG. Una h e a de código puede tener o no m comentario. Traduccihn a binario ensambtador La traducción del programa simb6Kco a biario se hace mediante un programa especial Iiamado mntblador. Un ejemplo 131 p r o p m de la tabla 6-8 es un ejemplo de un programa de lenguaje ensamblador. Se han utilizado tres direcciones simb6Iícas y cada una está htada en la columna I como una etiqueta y en la columna 2 como una dimción o una inshmión de d e m ~ & a memoria. ciones wpeúGon operandos.23) = 83 + 23 = 106.TABLA 6-7 Mniaón de-&instrucciones Sirnbolo Información para el ensamblador ORO N E l niirnao hexadecimal N en la localidad de memoria para la instnrmi6n o e1 operando listada en la linea siguiente.cci6n ORG para definir el origen del programa en la posicibn de memoria (1W)16. y la última Cuando el programa s e traduce a código binarb y la computadora l o qecuta. END DEC N HEX N Denota el fin del ptógrama 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. Las tareas que ejecuta el ensamblador se m p r e n d e r h mejor si realizamos primero la traduceihn en papel. Los comentarios se insertan s61o para explicar y no se consideran durante el ~~ proceso de traducción a b i r i o . y las tíltimas cuatro tienen seudohs~ccíones. T m ¿e las swdoinstrueel final del programa. 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). El sustraendo es un número negativo. son útk para explicar e l programa y para comprender el pmcdhiento detallado que realiza el programa. 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 . .2 3 se convierte en + 23 y la diferenQa es 83 + (complemento a 2 de . Comenzando desde la primera línea. La w t a se ejecuta al sumar el minuendo del compIwrrento a 2 del swtraendo. La primera lima tiene la seudoinstni. La traducid& del programa simbólico de la tabla 6-8 a su código binario equivalente pude hacerse d examinar el programa y sustituir b símbol~s por su código binano de rn5quh-mequivalerite. Esta nos dice que co- . se d i z a r a una resta entre dos ndmems.

23 es un númem negativo y convertirse en bina50 en f o m de e o m p b t o a 2 con signo. Examhmos la columna de etiqueta y encontramos este simbolo en h Unea 9. ADD MIN STA DIF KLT DñC83 DE€ -23 HBXO /Sumar el minuendo a AC /Almacenar la difmcia /Detener la computadora / Minuendo /Sustraendo BND /La diferencia esta almacenada aquí /Fin del programa sirnbúlico tabla de símbolos de bad& rnencemos el programa b h r i o de la direccibn 1 O O hexadecimal. Al venfiear la tabla 6 1 encontramos que el prirher digito h-decimal de la. DE.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 . meontramos que el título SUB de la lfna 9 corrqmde a l a ~ i c de h la memorLa 107. Las otras iíneas que qrewntan instruccionw de máquina se traducen de manera simiIar y su caigo hexadeQmal se b t a en la tabla 6-9. instnrcción debe ser 2 E l valor biraario de l a parte de direccibn debe obtmem del súnboio de dixeaci6n SUB. No se hace ninguna traducci6n durante el primer examen. en la tabla 6-9. S i h e n t e asipmm una posición de memoria a cada instniccih de máquina y o p a d o . E ! simbolo END a i @ h el final dei programa shb6Zico y nos dice qw ya no hay limas por .192 c&nm SEIS Programa& M i e a de l a computadom TABLA 6-8 Programa del Ienguaje ensmbiador para reshr dm nnQmwos ORG 100 LDA SUB CMA /Origen del programa en la posicibn 100 /Cargar d sustmendo a AC /Complementar AC /Inmmentar AC mc m. SUB. Cuando las dos partes de la instrucción se ensamblan obknemo~ el ckiigo hexadecimal 2107. Dos iíneas 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 (también podA usarse DK). Debe ser una instruccih de refmcia a memoria para estar colocada en la localidad 100. Luego asignamos piciones m c i a i a can paraeadaUneade~quetmgaunainstnmióndedquinau~perando . El nombre M l i c o de la opaci6n es LDA. Por 1 0 tanto. el primer bit del código de ingtnicción debe ser O. El prriceso de traduecidn puede simplificacse s i examinamos el progama s h M h completo dm veces. La -da línea time dos stnbolos. la d k x b . Como no tiene la Ietra I. 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 demás líneas una instmccibn de máquina con un o p a d o para piciones de mepnoria m e m h h Al cmtar líneas. la asignad611 de p i c i o n e d&nirá e l valor 'de direcci6ñi de las eüquetas y f a d i h í el p m de traducción durante el q u d o e~ameh Por k tanto. El equivahte hexadechal del niunero binatio se coloca en l a posicidn 107. asigpmps la posicibai 1 M 3a l a primera hsbu& despuBe de ORG.traducir.h e x a * de la iLIShZ1Cb6PL WiA debe ser 107.

ensamblamos las dos partes en una instrucci6n hexadeeimal de cuatro dfgiim. .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 .) Cuando se owmina el primer examen . la tabla de stmbolo de d h c i 6 n es romo s i g u e m SUB DIF 106 107 108 h a n t e el segundo examen del programa simb6lico hacemos referencia a la tabla de símbolos de direcci6n para determinar e l valor de W i 6 n de una instnicci6n de referencia a memoria. DIF. la hea de c6dXgo LDA Clls se traduce durante e l segundo examen al obtener e l valor hexadecimal. CMA ADD M i N STA D E m T DEC 83 DEC -23 HEX O END hasta el final del programa.dd d u c i d o de. SUB.TABLA 6-9 Listado. y el segundo examen se Uama segun& pasada. (A ORG y a END no se les asigna una posición num6rica poque no reprwmtan una -instnreei:6n o un operando. Por ejemplo. Desp&. de LDA de la tabla 61 y el valor hexadecimal de SUB de la tabla de shbo1os de dirección que aparece arriba. Para este p p m . 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. la tabla &8 Codigo hexadecimal Pdci6n Contenida Programa dmbdlico ORO 100 LDA SUB mc MIN.

TABLA 6-10 Código de carackes hexadecimah .- r r b r r i rcriih Cadcter Código Cadcter C6digo Cadcter - C6digo 6 7 8 9 espacio ( + i1 CR . EI d i a d o r reconoce un d i g o CR como el final de una línea de d i g o . su repmntacibn en la memoria debe utilizar un código de caracteres alfanuméricos. el programa simbbiiso dek almacenarse en memoria. Se utrliza un prcigrama cargador para introducir los caradel programa &¡Mlico en la memoria. El equivalente hexadecimal del conjunta ¿e carase lista en Ia tabla 610. La fdtÍína entrada de l a tabla no imprime un carácter 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. El usuario telea el programa simb6lico en una terminal. El bit de orden superior es siempre O y los otros siete bits se +an median& ASCII. Como el programa está formado por Antes de comenzar -- símbolos. El ensamblador es un programa que opera &re cadenas de caray produce una interpretaci5n biaria equivalente Representacibn de un programa simbbüco en la memoria el p m de ensamblado.6-4 El ensamblador Un ensambfador es un programa que acepta un programa de lenguaje simb6lico y produce su lenguaje de &quina bhario equivalente. A cada carácter le asignan d a dlgitos hexad&Ies que pueden convertirse con facilidad a su &ligo de 8 bib equivalente. En la mputadora Msica cada carBcter se " p m t a mediante un código de 8 bits. Esto hace que "elcarro"retome a su W 6 n inicial para comenzar a k c h r una nueva h . El programa shnM~co de entrada se Uama prqgrattra fuente y el programa binario que resulta se llama programa objeto.

S i la h e a de &diso tiene un comentario. genera una tabla que relaciona todos los. (m. E i ensamblador examina esta entrada dos vexs para producir el programa binario equivalente. Por ejemplo. Durante 4 primera pasada. L a traduccibn a bhrios se hace durante 4 segunda pasada Para dar seguimiento a la dirección de las instrucciones. LDA SUB 1 a t á almamada en siete localidades de memoria consecutivas. E l título Pi3 ocupa dos palabras y t e & con el código & coma (X). Ahora describknos de manera breve las b e a s principales que debe ejecutar e l ensambbdor durante e l proceso de traducci6n. LDA SUD 1 Palabra de memoria Símbolo C6digo hexadecimal Representación binada finea de código Una h e a de c6digo se aimacena en posiciones de memoria mnsecutivas con dos caracteres en cada posici6n. sImbo1a de dkecci6n definidos por el usuario con su valor binario equivalente. El programa binario constituye la saIida generada por el eaisamblador. El campo de instniecibn en la lima de c6dJgo puede tener uno o mds shbolos. la siguiwite línea de -0: PL3. Los slmboloa de opraci6n y direeci6n se terminan con un espacio y el final de la Unea se reconoce mediante e l código CR. según se muestra en fa tabla 6-11. Cada símbolo termina con el c6digo para espacio excepto el iiltimo símbolo. 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. Un ensamblador de dos p a q examina todo el programa simbólico dos veces.quetermina con d c6digo de retorno de carro ( O D ) . Pueden almacenarse dos caracteres en cada paiabra porque una palabra de memoria tiene una capacidad de 16 bits. Un símbolo de etiqueta se termina con una coma. El ensamblador no considera todos los caracteres del campo de comentarios y contính 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 .TABLA 611 Represmhdn de computadora de la iinea de código FL3. el ensámblador utiliza una Primera pasada . el m b l a d o r lo reconoce mediante e l d i g o para una diagonal ( 2 F ) .

contador de poskibn (LC) palabra de memoria llamada cont~dor de pcnsicibn (LC). Para evitar una ambigüedad en el caso de que no estuviera ORG. el ensamblador comprueba el símbolo del campo de instrucci6n. Las tareas que ejecuta el ensamblador durante la primera pasada se describen en el diagrama de flujo de la figura 6-1. el ensamblador establece el contador de posición en O desde el principio. el ensamblador termina la primera pasada y regresa para la segunda. Si la línea tiene una seudoinstrucción END. El contenido de LC almacena el valor de la localidad de memoria asignada a la instrucción u operando que se procesa en este momento. Si la línea de ckligo no tiene una etiqueta.196 C ~ SEIS Programación O básica de la computadora Primera pasada 3. Como las instrucciones están almacenadas en posiciones secuenciales. evisat la siguiente línea de cádiga Sí Almacenar el símbolo en la tabla de slmhlos de dirección junto con el valor de LC No It ala segunda pasada I u Incrementar LC Figura 6-1 Diagrama de flujo para la primera pasada del emsamblador. La seudoinstrucción ORG inicializa el contador de posición para el valor de la primera posición. Si contiene una seudoinstrucción ORG. el ensamblador inicializa al LC en el número que sigue a ORG y regresa a procesar la siguiente linea. LC se inicializa al principio en O. (Nóteeseque una línea con ORG o END no debe tener un titulo. el contenido de LC se incrementa en 1 después de procesar cada línea de código. Se analiza una línea de código simbólico para determinar si tiene una etiqueta @or la pmencia de una coma). se almacena en la .) Si la línea de código contiene un titulo.

Para el programa de la tabla 6-8. el simbolo no puede inberpretarse. de otra manera. Tabia de seudoig&mcciones. . Asignamos los siguientes nombres a las cuatro tablas: 1 . el ensarnblador genera la tabla de di&oneg simbblicas que se lista en la tabla 6. 4 TabIa de símbolos dg d M 6 n .12. las localidades de la memoria se llenan con el &digo para espacia Se almacena en la siguiente posición de memoria secuencia1 e l valor que se encuentra en LC mientras se p n b a la h e a . Cada shbolo de etiqueta s e almacena en dos posiciones de memoria y temina con una coma. E 1 programa tiene tres &mimes simbólicas. Si la etiqueta contiene menos de tres caracteres.107 y 108. ~a6k no-MRi. SUB y DIF. No se almacena nada en la tabla s i no se encuentra un título. 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. esperifkado mediante el contenida de L€. Despues tC se incrementa en 1 y se procesa una nueva lfnea de código. tabla de diredonea simbólicas junto con su ntimero binario equivalente. Un procedimiento de b&queda en tabla a una hÚque& de entradas de tabla para deteminar si una opción e c a coincide con una de las que se encuentran en la tabla. Estos sirnbolos repmentan d W o n de ~ 12 bits equivalentes a las hexadecimales 106.deetiqueta -contrado y constituye l o s datos de saiida que genera el ensamblad~r durante la primera pasada. 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. 2' Tabja MRI.TABLA M2 Tabla de 6 w de para el programa en la tabla BS Rep-tad6n Palabra de mema shblo o &C)* Wfgo hexadecimal binaria '*(tCj Representa e l contenida del contador de localidades. MM. E i ensamb M r uWia cuatro tablas. Cualquiex símbolo que se encuentre en el programa debe estar disponible como entrada en alguna de estas tablas.

Si el simbola que se encuentra no es una 9wdoinstrucci611. E 1 ensamblador . Esto se llama dingn&fko de m. Una coincidencia con ORG envía al ensamblador a una subnitina que establece L C en su valor inicial. E l ensamblador busca estas tablas para encontrar el símbolo que se procesa en ese momento con el fin de deteminar su valor biario. Un símbolo que se encuentra en la tala na-MRI corresponde a una instrueeidn de referencia a registro o de entrada-salida. Después se analizan las iíneas de c6dig0. Una coincidencia can END tennina el proceso de traducción. es la letra 1 . Una instruccibn de referencia a memoria se espdfica mediante dos o tres símbolw. Cada entrada guia al ensamblador a una subrutina que prmesa la seudoin6brueción cuando se encuentra en el programa. por lo que el ensamblador llega de inmediato al campo de instmcci6n y prwede a comprobar el primer &&al0 que se encuentra. La tabla MRI contiene los siete s ~ l o de s la instruccibn de referencia a memoria y s u código de operaci6n de 3 bita equivalente. El contador de posici6n se incrementa después en 1 y el ensamhlador continúa analizando Ia siguiente h e a de &ligo. Este operando se coloca en la posici6n de memoria especificada por el contenida de LC. No se consideran las etiquetas durante la segunda pasada. 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. El contador de posición s e inaementa y se analiza una nueva h e a .el ensambhdor extrae su caigo de 3 bits equivalenh y l o inserta en los bits del 2 al 4 de una palabra. dependiendo de si la letra I wtá ausente o pmente.El contador de Localidades se incrementa y el ensamblador avanza a procesar la siguiente línea. 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. el emamblador s e dirige a la tabla n o . que puede estar pmente o no. DEC y HEX. Cuando se encuentra un simbolo en la tabla M R I . L a direeeih simbólica se convierte en binario al buscar en la tabla de diiciones simbólicas. S i no se encuenka el sZmbo10 en esta tabla. una por cada vez. Primero verifica la tablri de seudoinstnicción. Una tarea importante del ensamblador es comprobar los posibles errores en el programa simbólico. Una mmdoinstnicci6n de operando produce urna conversi611del operando a b i n a r i o . La tabla de símbolo de direcci6n se genera durante la p a pasada del proceso de ensamblado. 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. El q m d o símbolo es una direeci6n simbólica y el tercero. E l ensamblador almacena el c6digo de instrucción de 16 bib dentro & la palabra de memoria especificada por LC. El primer bit de la instmi&6n se inicia en O o 1 . END. Se enaambhn las tres p a m de1 código de instrucción binario y d"pu& se ahcenan en La localidad de memoria -cada por el contenido de L C .diapdstim de -r Las entradas de l a tabla de seudoinstniccwnes son los cuatro sImbo1os ORG. el ensamblador se dirige a la tabla MRI.

.Figura 6 2 Diagrama de flujo para la segunda pasada del ensambiador.

100nhneros enteros. . Por ej-10. La mayorfa de las computadoras l e dan a l programador mapr flexibilidad para escribir programas en lenguaje ensamblador. E i siguiente es un ejemplo de un programa Fortran que forma la suma de . Un compihdor puede utilizar un lenguaje ensarnblador como un paso ihkrmedio m l a traducción o puede traducir el programa en forma directa a b b r h r t e j . Los ciclos de programa se especifican en Fortran mediante un enunciado DO (hacer). en cada ocasión con un operando A@ diferente para cada J = 1 . 6-5 CjcJos del programa Un nclo de ptbgrama es una secuencia de instrucdones que se ejecutan m u b v~~ cada wasi6n con un conjunto diferente de datos.. No obstant e . e l ' w m a emadlador se hace más complicado. ' M e nacurrir otros errores y un ensamblador practico debe d-rh e imprimir un mensaje de emr para cada uno. alto nivel (corno el anterior) a un programa de lenguaje de mAquina s e llama wmpilndo~Un compilador es un programa más mmplidado que un ensamblador y requiere d conocimiento de programaci6n de sistemas para comprender por cmpleto su operación. Un programa de &tema que traduce un programa escrito en un lenguaje de programacibn. Puede ocurrir otro error si e l programa tiene una direcci6n shrkdlica qUe+lamp. cornpiiadw El enuqdado número 3 se ejecuta 100 veces.. .bCo apame como una etiqueta.100. Debe enfatizarse que un ensamblador practico es mucho m69 complicado que e l que e explid aquí. 2.no puede traducir tal simbolo porque no conme su valor binario equivalente. También pueden especificafse muchas otras 6eudoinstrucciones para facilitar J a tarea de programacibn. el ensamblador imprime un mensaje de error para informar al programador que su programa simb6lico tiene un error en una línea de c6diga espe&&. El ensamblador no puede t m d d la lima de cddiw h r m a adema& poque e l equivaIente bina150del símbolo ho ~e en@rará & I la tabla de M n e s &licas generada durante la p h e m -da. se le puede permitir al usuario utilizar un número o un simbolo para especificar una direccibn. Conforme el lenguaje de ensamblador se vuelve más sofisticade. 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. Muchos ensambladores le permiten al usuario 4 c a r una d b x i 6 n mediante una expqesi6n acitmttica. En ese caso.

que eerpecifiea d or@m de ~ Q Soperanda El primer y el último operando se listan con un número decimal especifico. Si fueran del tipo real. Esto se aealka mediante la seudoinstrueti6n ORG en la línea 18. Estas palabra$ de memoria reservadas se listan en b iíneas de la 19 a la 118 en d programa traducido de la tabla 6-13. =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 /Ultimo operand.. 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. las localidades de la (150)16 a la (1B3)16para los 100 operandos. 0uN LOP STA HLT m 1 5 0 m 0 ' DEC-100 j ~ k c e n a suma r m.0 /Fin del programa slmbbiico . aunque estos valores no se conocen durante la compilaci6n. Este enunciado instruye al compilador para reservar 100 palabras de memoria para 100 operandos. H i primer enunciado del programa Fortran es un enuiciado DIMENSIUN. Supongamos que e f compilador resma localidades. El segundo enunciado infama al m p i h d o r que los números son enteros. PTR. m SUM. del pmpma 201. E I compiladcm d o mserva el espacio de TABLA 613 Programa simb61'ico &a "I sumar 1MI números Línea - LUP* ORG 100 D A ADS STA PTR LDA NBR STA CTR =A ADDPTRI I s z m /El origed del programa es HEX 100 /Cargar primera d i d h de operandos /Aiilma&nasen apunhdor /Cargar menos 100 /Almacénar*n a t a d o r /Borrar el acumulador E2 ADS. E i valor de los opermdo~ está determinado a partir de un enunciado de entrada (no listado en d programa).6 ~ 65 CM-.

Como resultado. Por l o tanto. La posicibn CTR se irmementa en la h e a 9 y. La direccibn del: primer operando ( 1 8 0 5 0 )se almacena en l a localidad ADS . 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. Esto corresponde a establecer Am en A(1).en hs líneas de la 2 a b 5 para inichlhar el ciclo de programa. También 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. la computadora no brinca a la siguiente instruM6n. Cuando d valor del contador Uega a cero. por lo que su valor cambia al de la dirección dd siguiente operando secuencial. La iínea 7 especrfica una instnrcci6n ADD hditecta parque tiene el simhlo 1. Después se hace una referencia de esta posicihn cada vez que se ejecuta el enunciado P o ndmero 3. Un mpilador más inteligente comprender4 que la suma puede formarse en el acumulador y d o el resultado f m l puede almacenarse en la posici6n SUM. La d b i b n del operando actual se almacena en la localidad PTR. La dirección del primer operando se transfiere a la posicih M'R. Los números de iííea del programa simbólico son & l o para referencia y no forman parte del programa simb6lico traducido.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. 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. Después e l nCimero . Por claridad.Programación básh de 1a -putadora en la memoria y los valores se in~rtan despu&scuando se ejecuta un enunciado de entrada de datos. en realidad. por lo que la computadora rieg~esa a repetir e l &do una vez más.estai!&n compietadas las 100 operaciones y e l programa dejar&el ciclo. Despu6 la posici6n PTR e incrementa con la instnicci6n rSZ de la h a 8. La cantidad de vece3 que el ehundado de Furtran deh ejecuta= es 100. N ó b e que ISZ en la iííea 8 se utiliza simplemente para sumar datos . se brinca a la siguiente insbucci6n y la computadora ejecuta Ias instrucciones de las llneas 11 y 12. 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. se almacena . 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. si no es c m . La suma que se forma en e l acumuIador se almacena en SUM y la computadora se detiene. Cuando la posición CTR alcarm cero (dapub de que e l ciclo m ejecuta 100 veces).enla Iinea 13. el operando de la psici6n 150 se suma al acumulador. Algunos compiladores traduciráin el enunciado SUM = O dentro una instrucci6n de máquina que inicialice l a posicin SUM a cero. E l compilador producirá una instnicci6n en la línea 6 para borrar el AC.100 en la posici6n NBR Después el compilador genera las inslnicciones. La instrucci6n que viene a continuación es una instnic&n de transferencia o brinca (BUN) al principio del ciclo. se inserta aquf la instrucción de detener.

Hemos mostrado en la tabla 6-8 un programa para restar dos nberos. 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. La implantacibn de hardware e a d s costosa por los circuib adicionales dos para efectuar l a operación. otro como contador. restar. La implantaci6n de software da como rsultado programas m& largos. Pueden desarrollarse programas para cualquier opación &€mética y no s6Io para datos binarios de punto fijo sino también para d a b decimales y de punto flotante. Los registros índice ae analizan en la secci6n &5. como la computadora básica. Otras. consideremos ias cuatro operaciones aritmdticas bdsicas.9610 tienen una instrucción aritmdticat ADD (sumar). . y un tercero como acumulador. Como la direccibn es un número positivo.En las computadoras cor~d s de un registro de praxsador. En este ejemplo utilizamos dos posiciones de memoria para eshs funciones. Esta d ó n muestra la implaritación de software para unas cuantas operaciones ariñnéticas y lógicas. otras pueden n-itar una gran cantidad de instrucciones de mequina para ejecutar la misma operacibn. El programa de let tabla 6-13 introduce la idea de un apuntador y un contador que pueden usarse. La implantacidn de hardware de operacima aritmkticas se estable en el capitulo 10. multiplicar y dividir. Como ejemplo.contador de apuntador 1 al apuntador de direcadn PTR. Algunas compuutadoras tienen instrucciones de miquina para sumax. junto con la operaci6n de direccionamiento indirecto. h programas para otras ~ c i o n e aritméticas s pueden desamIlarse de mane ra similar. es posible utiihr un registro de procesador como apuntador. Las operaciones que se efeckhn con una iqstrucci6n de máquina se dice que se realizan mediante la circuiterla. para formar un ciclo de programa. Algunas computadoras ejecutan una operaci6n dada con una instrucci6n de mdquina. 66 Programación de operaciones dtm4ticas y lógicas 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 pequeño. Cuando los registros del procesador se utilizan como apuntadores y contadores reciben el nombre de registros fndice. Otras contienen un conjunto m á s pequeño de i n s ~ o n e s de hardware y s e apoyan mas en el trabajo del software para muchas ope'aciones. nunca ocurrirg un b b . tanto en cantidad de instrucciones como en tiempo de qecución. 'Las operaciones implantadas mediante un conjunto de instnicciones que constituyen un programa se dice que se implantan mediante pqamaci6n. uno . Algunas computadoras proporcionan un conjunto amplio de instrucciones de hardware' diseñadas para acelerar las tareas comunes. Las operaciones que m se incluyen en el conjunto de instrucciones de mBquina deben implantarse mediante un programa.

e SELS Pro&ramaci6n bsiaPca de la computadora S contiene el multiplicando Ymntie~ el mdtipiicador P forma el producto Ejeniplo con cuatru digiiae si@flcativwi Figura M Diagrama de flujo para un programa de muitipli& .

bits sqpíicativus. E l programa tiene un ciclo que se recorre ocho veces. El ejemplo num&rico tiene n h e r o s con cuatro bits significativos. una por cada bit significativo del multiplicador. Cuando el contador llega a cero.3. el rnulkiplicando X se suma al producto parcial P. Si es O. E i ciclo se repite ocho veces al incrementar h e i c i 6 n CiX y verificarcuando alcanza a cero. El diagrama de flujo de k figura 6-3 muestra el procedimiento paso a paso para programar la operaci6n de multiplicaci6n. cargando el valor de Y dentro de AC. Es posible modificar e l programa para que considere los signos o utilice números de 16 bits. E l programa para multiplicar das nberos se basa en el procedimiento que utilizamos para multiplicar números con papeI y Ibpiz. el productb contiene ocho bits significativos. L a inicializaci6n no se lista. pero debe incluirse cuando . dado que el valor de X se ha recorrido a la izquierda de una línea a la siguiente. Después 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. no consideramos el bit con signo y asumimos sólo niheros positivas. Ahora verificamos el valor de E. reservamos una posici6n de memoria. Se establece un contador CTR en . Al principio la posición X contiene el multiplicando y la posici6n Y contiene e l multiplicador. El multiplicando X se suma al contenido de P para cada bit del multiplicador Y que es 1.e l producto parcial comienza en cero. Para simplifiear el programa. El programa de la tabla 6-14 lista las instrucciones para multiplicar dos nrlmeros sin signo. para almacenar la sumas intermedias. S i n embargo. Como se muestra en el ejemplo de la figura 6. Tambih suponemos que los dos ni5meros buiarios tienen no m8s de ocho. Como se muestra en eI ejemplo numérico en P . Este bit almacenado en E es el de orden menor del multiplieador. el producto resultaría de 31 bits de longitud y ocuparía dos palabras de memoria. Cuando se multiplican. Esto se hace borrando E. Si es 1 . haciendo circular a la dereeha E y AC y aImacenando el número dwplazado de regreso a su posici6n Y. E l valor de X se recorre a la izquierda despuds de comprobar cada bit del multiplicador. el progrhma deja el ciclo con el producto almacenado en P. Como la computadora d o puede agregar dos ndmems al mismo tiempo. 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. h s sumas intermedias se liaman productos parciales porque contienen un número parcial hasta que se suman todos los números. para que su producto no exceda la capacidad de la palabra de 16 bits. representada por P. El valor final de P forma el producto. Ia computadora puede utilizar númeroa c m ocho bits significativas para conseguir un producto de hasta 16 bits. el producto parcial no cambia.Programa de multipliacih Ahora desarrollemos un programa para multiplicar dos ndmera.8 y la localidad P ' se tioma a cero. El bit multiplicador puede verificarse si se transfiere al registro E.

i ra m C e r o /Cargar multiplicando /Sumar a l producb parcial IAl~lrpiaeenar producto p. Por l o tanto. la operacibn puede programarse mediante una w e n c i a de Instrqcciones de mAquina. el programa puede comer con datos incorrectos.ucial /Borrar E /Cargar muf tiplicando /Corrimiento a la izquierda /Almacenat. respecc tiva-& inicializar el contador a . Y. el resultado es un producto de 32 bits qué debe almacenarse &ndos palabras de memoria. Este ejemplo ha mostrado que si una computadora no tiene una instruai6n de máquina para una operad&^ requerida. Suma de'doble preci6$n Cuando se multiplican des números de 16 bits sin signo.Jjois c~mentarimp h n ayudar a seguir el procedimiento paso a el programa paw. La. p. Si 'Bstas no se ini. =petir ciclo JEi ceintiidor es m o . ORG 100 m s m LDA Y @mar E /Cargar mul tiplicador /Transferir bit multipIi*cador aE STA Y ONE. iniciaIizaci6n consiste en traer el multiplicando y el multiplicador a las localidades X y Y. E l pmgrsma mismo es directo y sigue los pasos que se listan en e l diagrama de.i-m 206 w Prngram- M& de & I computadora TABLA &a4 Prbpma para m d i i p I ' i .cialhn.8. ir a UNO /El bit es m. mflltiplitiando recomdo jlnmemenlar contador /El contado?no es cero. Se &e que un niímero aima:cenado e Í i dos palabras de memoria tiene doble pi. detener /Esta posicibn sirve como contador /El multiplicando se almacena aqui [ E i multiplicador se almacena aqui /El producto se forma aquf ZRO.flujo. e inieilizar la localidad P a cero. BUN o m BUN m0 LDAX ADD P STA F CLñ 1 /Almamar multipficador desplamdo SVerificar si el bit e s cero /El bit uno. es necesario que se agregue . Cuando se caliila un producto parcial. ta jmplantaQ6n de hardware. LDAX a I[Szm STA X BUN LOP x. hemos mostrado la implanhcibn de software para la operaci6n de ' multiplicación. correspondiente se presenta en la seccibn 10-3.ecisidn.das n3imero5 wp. m H L T b DE€-8 H m OOOF T W B HEXQ m se carga dekitro de k computadora.

Uno de los números de doble precisi6n se coloca en dos localidades de memoria consecutivas. BL. La aegunda expresibn rontiene sólo operaciones M y complemdar. HLT /Posicih de los operandos m. BH. las dos parb de orderi menor se suman y el a c a m se transfiere a E.A superior y acarreo /Sumar B superior /Almacenar en C superior M. aarrear E /Almacenar en C inferior /Limpiar AC /Circular para llevar el acarreo a AC(16) /Su. E i otro número ae coloca en las localidades BL y B H . Por el teorema de DeMorgan reconocemos la relación x y = @'y')'. las 16 v c i o n e s 16gicas pueden integrarse mediante software parque cualquier funci6n lógica puede implantarse usando las operaciones AND y complemataf. CMA y CLA. - un nhmero de doble precisi6n al multiplicando sobre el que se ejecuta un corrimiento.~ ~ ~ c i ó n m d e o ~ TABLA 6-15 Programa para sumar dos n b m de doble precisión D A AL ADD BL STA CL CZA CrL ADD AH ADD B H STA & /Cargar A inferior /Sumar B inferior. Para mayor exactitud. Por ejemplo. a. Las dos porciones de orden mayor se suman después al acarreo y la suma de doble preeisih se almacena en CL y CH. Ahora desarrollamos un prugrama que suma dos números de doble precisión.E 1 programa se lista en la tabla 6-15. EI AC se limpia y el bit en E se circula dentro de la posici6n menos significativa de AC. la operadbn OR no gstá disponible como una instrueción de mSiqulna en i a computadora básica. AL. La 'insfniEci6ri LDA puede conside rarse como una operacibn lógica que transfiere m operando lógico dentro de AC. AL y AH. En la 8ecciBn 44 listamas 16 opwaciones lhgicas diferentes. e1 cual es tambibn un niimero de doble precisi6n. donde AL contiene los 16 bits de orden menor. Operaciones 16gicas La computadora básica tiene tres instrucciones de máquina que ejecutan operaciones Idgicas: AND. Un programa que forma l a operacibn OR de do4 operandos 16gicm A y B es como sigue: + . el programador puede dewar emplear números de doble prixisi8n y ejecutar la aritmética con operandw que ocupen dos paiabras de memoria.

Las reglas para los corrhientos aritméticos se &tan en la se~cibn M. Por lo tanto. E pemanece en O . Para la computadora biaica hemos adoptado la repremntacibn de complemento a 2 con signo. para una operacihn l w c a de corrimiento a la derecha necesitamos las dos instrucciones. 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. 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. Pero el mismo bit de signo se recorre a la posicibn del bit de orden superior dd número. Los otros corrimientos de interés son los corrhimtos Idgims y aitmdticos. por lo t a n e CLE /Limpiar E a O SPA /%ltar si AC es positiio. Operaciones de corrimiento Las operaciones de corrimiento circular son instrucciones de máquina en la computadora bisica. Esto se consigue con fadidad al h m a r y al hacer circular AC y E.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 lógicas pueden efectuarse mediante software de manera similar. C LE CIR Para una operacibn 16gica de despiazamimb a la izquierda necesitarnos las dos instrucciones CLE CIL Los corrimientos ariídticos dependen del tipo de repmtacidn de niimems negativos. El corrimiento ldgico necesita que los ceros se agreguen a las posiciones de los extremos. Estos dos corrimiento6 pueden programarse con una cantidad pequeña de instrucdones.

porque muchas localidadea &tes del programa principal pueden llamar a la misma subrutina. etablecer E en 1 CIR /Circular E y AC Para el corrimiento aritmética a la izquierda es n e o que el bit que se suma en la posicibn menos significativa sea 0. Como no está incluida. En la cumputadora básica. ocurri6 un sobreflujo. Con frecuencia. El programa de k i Zabla 616 comienza por cargar el . Cada vez que se usa F a subrutina. S i no son iguales. Después de que ce ejecuta l a subrutina se hace un brinco de regreso al programa principai. Para explicar cbmo se utiliza h iristruceibn escribamos una subrutina que ejecute ei eorrimienb del mntenMo .CHE IAC es negativo. Por 10 tanto. Un sobreflujo indica que el número en el que no se ejecut6 el corrimiento era demasiado grande. E l bit de signo no d e k cambiar durante esk corrimiento. el c o m e n t o aritmético se efectub en forma C D I W C t a . en la parte principal del programa se ejecuta un brinco al comienzo de la subrutina. Esfo se hace con facilidad al limpiar E antes de la operaci6n circular a la izquierda. Una subrutina consta de una m e n t i a completa de instrucdones que realiza una brea dada. todas ias computadoras proporcionan instnicciones especiales para facilitar la entrada y el retorno de una subrutínst. Tal operación podría haberse hcIuido como una instnicci6n de maquina en la computadora. el bit de signo se muwea E. Cuando se multiplicó por 2 (mediante el conirniento). Esto presenta el problema de cómo hacer que la subrutirta reconozca a que Iokalidad regresar. una misma parte del código puede escribir= una y otra vez en cüfemntes partes de un progtama. Un conjunto de insmcciones comunes que pueden usarse muchas veces en un programa se llama una subrutina. se forma una subrutina para realizar esta W. Si bs dos valores son iguales. el n h e r o que se obtuvo excedió la capacidad de AC. Como ia llamada a una subrutina y e l ~+bmo al programa princip d es una p a r i 6 n mmtín. Entonces es n-río comparar el bit de signo con el mismo valor de E despuds de la operaci6n. Con una operacidn circular.del acirmulador cuatro veces a la izquierda. Rmwiwr una palabra cuatro vm& eli una operación fitil para prmesar ntlmems decimaks codüicados en binario o caracteres alfanum6 ricos. Puede haun llamado a la subnitina desde cualquier parte del p-ma principal. existe una ventaja obvia si las instrucciones mmmm se escriben una sola vez. En lugar de repetir el código cada vez que se necesita. es necesario almacenar la dirección de regreso de alguna manera m la computadora pAra que la subrutina sepa adonde regresat. el enlace del pmgrama principal y una subnitina es una instnicci6n BSA (brinca y guarda la dirección de retorno).

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 subnitina SH4 debe =tomar a la h l i d a d 102 después de que finahe su m . Después de que se ejenita esta instniccióq La b l i d a d de memoria 109 contiene el equivalente binario del hexadecÍmai 102 y el contador de p q m ma contiene el equivalente binario del hexadechd IOA.Esto se hace al enmascarar FPPO con e l contenido de AC. .ddinida por la M 6 n simb6b SH4 (la cual es 109). La siguiente imlmccí6n que se encuentra a BSA SH4. 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). La Uistnicción BSA esta en la lacalidad 101.Cuando se ejecuta la instruccihn BSA. Para realizar una operación de desplazamiento lógico bs cuatro bib de orden menor deben iniciarse en c e r o . l a unidad de ccmtrol almacena l a direccibn de retomo 1 Q 2 dentro de la posici6n. también transfiere el valor de SH4 + 1 al contador del programa. E l cálculo de l a subrutina circula el c o n ~ de o AC cuatro v a la izquierda.210 ctvfrum Pmgramad6n bdisica de la computadora TABLA 6-16 Programa para mostrar el mde subnihas ORG 100 LDA X BSA 5H4 STA X LDA Y BSA SH4 STA Y m T HEX 1234 /Programa principal /cargar x /Ramificar a subrutina /Almacenar ndmero desplazado /&rw y /Otra vez a subrutina /Almacenar n 6 m m dqlazado /Subnitina para d e s p b a la iquiada 4 /Almacenar la direccibn de retorno aquí /Circular a la izquierda una vez /Circular a la izquierda por cuarta vez /ktabiemr AC(l3-16) en cem HEX 4321 /Real pragtama principal /Cubrir el operando valor de X dmtro de AC.

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. La subrutina recorrió el número y I o dej6 ahi para que l o aceptafa el programa principal. En las computadoras con mdltiples registros de prm&dm se puden transferir &S parámettrw de esta manera. Muchas computadoras tienen mdltiples registros de procesador y a algunos de ellos se l~ asigna el nombre de registros indice. Esto se consigue mediante la instniccibn de brinco indirecto. con una direccidn simb6lica idéntica a la que se usó para el nombre de la subrutina. La dltuna instruceibn de la subrutina ejecuta una operación que por lo general se llama retorno de subruiina.La última instruccibn de la subrutina regresa a la computadora al programa principal. 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. Otra forma de tramkrir datos a una sub~tinaes mediante la memoria. por lo generaL se emplea un registro hdice para realizar el enlace a subrutina. el programa principal debe transferir los datas con los que s e desea que trabaje h subrutfna. Se lleva a efecto una instniccibn de @tomode la subnitina medianfe un brinco a la dirección que se almacena en momento en el registro d e Iridice. En este ejmpb observamas que la primera localidad de memorib de cada subrutina sirve como un enlace entre el programa principal y ia subrutina. ' L acomputadora retorna para ejecutar la instmccibn de la pmici6n 102. Esta vez la lwalidad Sq4 contendrá la dimi6n de retorno 105 porque ahora 6ta es la posicihn de la siguiente instruqibn despuk de BSA. E l procedimiento para Uamar a una subrutina y r e t o m a r al programa principal se denomina mlam a subnitina. E 1 acumulador puede usarse para un pahmetro de entrada único y un pardmelro de salida único. Lo que se enmtn5 en h posicidn 52. 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. Parhetm~ de subrutina y enlace de datos Cuando se llsnna a una sukmtina. Una instrucci6n de llamada a subrutina almacena la dirección de retorno en un egistro fndice. Cm frecuencia ias datos se colman en . E n el ejemplo anterior los datos se transfirieron mediante el acumulador. E l operando r x cargó a AC antes de la llamada. El programa principal continiia al almacenar el número con el corrimiento dentro de la posicibn X. La instmcei6n BSA ejecuta una operación que por lo general se llama Ilrimadri de subrutina. Se ejecuta el mrrimimito en e l nuwo operando y la subrutina regresa al programa principal en la pasici6n 105.14 es la dirección de retorno 102 que s e almacenó antes ahí mediante la instrucci6n BSA. En general. En tales computadoras. Después 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.

operaci& OR al coriiplemqhr e l i primer operando en AC y almacenado en la. la d i 6 n de retorno siempre pmprciona . cons~erwno~ una subrutina que ejecuta la operacin QR lógica. mm 5 m 0 m 0 CMA /E1 pdmer oprandoíesu 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 STA TMl' LDA OR I CMA w/ AND TMP CMA EZ OR BWN OR I EEXO m pmicionee de mmn& .gpecando y.la informaci&nde enlace para transferir datos entre el.-Elprimar q e ~ a n d o k p&ici6n X se carga a AC. En seguida.programa principal y la subniW.TABLA 617 P r o g r q para mmbq el a p a q u e de parámetm ORG 200 LDA X BSA OK STA Y m 3AF6 HLT ' /Cargar el primer operado dentro de AC .Cuando Ia instmcci6n hace mferencia a ella en forma indirecta. Una vez que . El d a operando-= aImacena en la posicibn 202 despuk de la instrucci6n EEA. la prbera Localidad e n la subrutina con* qi nJmep 2 0 2N 6 . lwalidad kmparal TMPi El segundo operando se carga dentro de AC mm$ante una instrucción indimta en la posicibn OR. qime en este w.. En cualquier caso.para recibir el resultado. Deben transferirse dos operandos a la subrutina y la subnitina debe retomar el tiesdtado de la opsraci6n.sucede i a b d a . Como ejemplo./Llama a la subrutina OR /El egundo operando está almcenado aquf /La suhtina retorna agui X/ Y. No hay que olvidar que Ia posición OR c o n h et nhnero 202. La subnitina comienza a gecutar la.soli&ud.después de:la ktm& También pueden colocarse en uii blque de a h c e m d e n b . 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. elo @ de la p i r i h 202 . e coloca k primera d i d 6 n del blque en ia lwdidad de memoria después de la. . El otro operando se inserta en la.202 no es h h i 6 n de retorno: sino Ip +ción del q m d o pand do. Puede usarse el acumulador para transferir yn .

pueden colocarse en un bloque de almacenamiento y después se utilmr6 la diFecci6n del primer blque corno parhetro de enlace. STA FT2 1 ISZ m 1 JSZ m ISZ m BUN LOP BUMMVEI - . Para estas localidades también debe inrrementarse la primera localidad en la subrutina a n b del retorno.que se cdcubron. Isz MVE LDAFTlI LDA MVE 1 STA PT2 ISZ MVE LDAMVEI STA m m. donde este ubicada la siguiente instnicción..0 LDA MVE 1 STA m 1 /Programa principal /Ramificar a subrutina /Primera direwibn de datos fuente /Primera dlmci6n de datos destino /Número 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 dirección de retorno /Traer nítmero 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. .Ahora la lmaiid~dOR contiene el ndmeia 203 y üna instrucci6n BUN indirecta provaca un retorno al lugar adecuado. S i hay una gran cantidad de datos por transferirse. Es& operaiido-se GiipiekenbY despuCs se le aplica La funciSn AND con ei operando almacenado en TMP. m. rsz MVE WP. m. EB psibie tenef mas de un operafido después de la instruccibn BSA.. TABLA 618 Subrutina para mover un bloque de datos BSA MVE HEX 100 H E X m DEC -16 HLT mx. La subnitina ¿& incrementar la direcci6n de retorno aimacenada en su primera localidad para cada operando que exime del programa solkihte. Al complementarse e1 resultado se forma la operacihn OR. se carga a AC. Esto se logra al incrementar la poski6n OR con b instrucci6n I S Z . El programa solicitante puede reservar una o m65 localidades para que la subrutina devuelva 19s resultad. El retorno de la subrutina debe manipulam para que el programa principal ccmtinde desde la posioibn 203.

brincar para comprobar de nuevo INP /Bandera = 1 . La instrucción INP transfiere el carácter codificado en binario hacia AC TABLA 6-19 Programas para introducir y sacar un carhcter a) Introducir un carácter SKI /Comprobar bandera de entrada CIF. Se salta la siguiente instrucción si el bit de la bandera de entrada es 1. 6-8 Programación de entrada-salida Los usuarios de la computadora escriben programas con símbolos que están definidos mediante el lenguaje de programación empleado. El dispositivo de salida detecta el código binario y escribe el carácter correspondiente. 200 y -16 desde el programa principal y los coloca en su propia posición de almacenamiento. los datos requeridos están en el bloque que comienza desde la posición 200. Cuando la subrutina completa su operación. El tamaiio del bloque es de 16 palabras. sacar carácter HLT CHR. La instrucción SKI comprueba la bandera de entrada para ver si hay disponible un carácter para la transferencia. Los datos se transfieren haeia y desde sus bloques mediante el uso de dos apuntadores.214 -O SEIS Programación básica de la computadora En la tabla 6-18 se lista una subrutina que transfiere un bloque de datos que comienzan en la dirección 100 a un bloque que comienza con la dirección 200./Bandera = O. Un carácter codificado en binario entra a la computadora cuando se ejecuta una instrucción INP (entrada). La primera introducción es una llamada a la subrutina MVE. Un carácter codificado en binario se transfiere al dispositivo de salida cuando se ejecuta una instrucción OUT (salida). HEX 0057 /El carácter es "W" . BUB CIF . SKO BUN COF OUT /Almacenar carácter aquí /Cargar carácter dentro de AC /Comprobar bandera de salida /Bandera = O. La primera parte de la subrutina transfiere los tres parámetros 100. introducir carácter OUT /Escribir carácter STA CHR /Almacenar carácter HLT CHR. b) Sacar un carácter LDA CHR COF. ramificar para comprobar de nuevo /Bandera = 1. La tabla 6-19(a) lista las instrucciones necesarias para introducir y almacenar un carácter en la memoria. Los símbolos son cadenas de caracteres y a cada carácter se le asigna un código de 8 bits para que pueda almacenarse en la memoria de la computadora. El contador asegura que s610 se muevan 16 datos. El retorno hacia el programa principal es a la instrucción HLT.

Si es O. E&o es conveniente porque cada caricter w p a 8 bits y una palabra de memoria contiene 16 bits. . se ejecuta fa siguiente instrucción en secuencia. se transfiere el carhcter del acumuiador a la impresora. . Esta insttucci6n es un brinco para retomar y comprobar el bit de bandera otra vez. Cuando la bandera cambia a 1 . FST. NNBh que la subnitina SH4 (tabla 6-16)se solicita dos veces para e o e r el acumulador ocho veces hacia la izquierda.las dos htmcciones del ciclo se ejecutarán muchas vecw antes de que se transfiera un carácter al acumulador.unciclo de dos instrucciones comprobando el bit de bandera. Manipulacibn de caracteres Una computadora no es s61o una computadora sino tambih un manipulador de sXmbo105. Primero se carga d car6cter a AC. el usuario se asegura de que ocurra la transfemfcia correcta. 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 BSA SH4 BSA SH4 SCD. Si la insmcción SKI encuentra el bit de bandera en O. De esta manefa. 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. u & se escribe el cadctei mediante la instruccibn OUT.(0-7). DespuQ se comprueba la bandera de saiida. Una unidad temhai que comunica en forma directa con tina computadora no eel carácter cuando se oprime una k l a . la computadora permanece en .es necesario enviar una instrucción OUT para la impmra. Una de fales t m s puede reunir dos caraen una palabra. ta palabra empacada permanece en el acumulador. TABLA 6-20 Subrutina para introducir y guardar junb dos c a r a e m m 2 . Como el dispositivo de entrada es mucho d s lento que h computadora. Para impWIo. SKI BUN SCD INP OUT BUN i N 2 1 /Retomar . 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. La tabla &19@) lista las instrucciones necesarias para escribir un carácter almacenado inicialmente en la memoria.

En una situacibn prsctica podría ser necesario limitar el tamaiío del buffer y podría usarse un contador pwa este prop6sito. El programa utiliza un apuntador para llevar un registro de la posici6n achtalmente vacía en el buffer.C A P h L O SEIS Pr@gmrnacih básica de La computadora TABLA &2i Prqpma para almacenar caracteres de enkda en un buffer LOP. LDA STA PTR BSA IN2 STAmI ISZ PTR /Cargar primera direccibn del buffer fiUN LOP HLT /Inicializar apuntador /Ir a la subrutina IN2(tabla 6-20) /Al. E l programa simbólico 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. El primer cardckr doble se almacena en la p~sici6n 500 y todrw los caracteres se almacenan en posiciones secuenciales.posici&n FEF).macenarpalabradedoblecatackrenelbuffer /Incrementar apuntador /Ramificar para i n d u c i r rnhs caracteres /Primera direccibn de buffer /Pasieibn para aputitador ADS.- BUN UEQ BUN EQL /Brincar a rutina "diferente" /Brincar a rutina "igual" . m. HEX 5&3 HEXO En el análisis del ensamblador considerd que e l programa simbhlico está ahacenadu en un bloque de localidades adyaqtes de la memoria que se denomina comQnmente bufer. No se u t i k un contador en el programa. N6tese que se solicita la subrutina IN2 de la tabla 6-u) para introducir y empacar los dos caracteres. /Sumar segunda palabra /SaItar s i AC B cero CMA INC ADD WD2 SZA m. empacar dos caracteres en una palabra y almacenarlos en el buffer. m. 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 operación que busca en una tabia para TABLA 6-22 Programa para cumparar dos palabras LDA WD1 /Cargar primera palabra /Formar complemento a 2. La primera dirección del buffer es 500. por lo que los caracteres se leer& mientras están dispanibIes o hasta que el buffer llega a la posición O (despuéa de la.

En la tabla 6 2 2s e lista un programa para comparar dos palabras. si no reside otro programa en la memoria. Cuando una bandera esta activada en 1. Por lo general los otros programas esperan datos de entrada o salida. la computadora completa la ejecuci6n de Ia btn-icri6n en procm y despuk reconoce la interrupción. El mltado de esta acci6n es que la direceibn de retorno se almacena en la locaiidad 0. El ciclo de espera que comprueba la bandera mantiene ocupada la computadora con una tarea que emplea una gran cantidad de tiempo. h p u & se ejecuta k inskmcción de la ledidad 1. La btkqueda termina cuando ocurre una coincidencia o cuando ninguno de los simbolis coincide. la computadora puede ocuparse en ejecutar otras tareas útiles. Si no se usa la opcibn de inkrrupcidn. el programa debe incluir una instruccibn IOF para apagarh. S6Lo puede ejecutarse un p&ama en un momento dado. i a computadora no tiene nada qué hacer. aunque dos o más programas pueden residir en Ia memoria. El programa puede servir como una subrutina en un programa de b-ueda de tabla. Cuando ocurre una coincidencia. Es obvio que. las dos palabras son iguales y ocurre una coincidencia. Mien tras tanto. 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. i . La opción de interrupcihn es dtil en un ambiente de multiprogramaci6n cuando residen dos o mas programas en ia memoria al misms tiempo. esto inicia una rutina de ~ervicio para la transferencia de entrada o salida. lia función de la opcibn de intempcih es cuidar h transferencia de datss de uno o mAs programas mientras otro programa se ejecuta en ese momento. La ventaja de utilizar la interrupción es que la transferencia de infmaci6n se inicia cuando hay una sdicitud de un dispositivo externo. Este tiempo de espera puede eliminarse si se utiliza la opci6n de interrupcidn para notificar a la computadora cuando está activada una bandera. a rutina de servicio puede almacenarse en cualquier parte de i a memoria siempre que . Si el resultado es cero. las palabras no aon iguales. La búsqueda puede realizarse al comparar d símbolo dado con cada uno de b s slmbols ahcenados en la tabla. Si el multado no es cero. el ensamblador recupera el valor binario equivalente. El programa que corre debe incluir una uisttucci6n T O N para atender la interrupción.) La opcibn de intwnrpci6n permite que el programa principaI avance hasta que el dispositivo de entrada o salida active su bandera como lista. 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. (131 intemrptor de mcmdido' de la computadora podría también apagar la intermpci6n. así que bien puede comprobar las banderas.saber si contiene cierto símbolo.

2 Comprobar cual bandera está activada. los dispositivos sori atendidos uno a la vez. (Estos son los únicos registros del procesadar de la computadora bAsica. Supongamos que ocurre una interrupci6n mientras la computadora ejecuta la instrucci6n de la localidad 103. La r u h de centicio dek habitar la inkrrupcibn antes del retorno al programa principal. primero las banderas de entrada y después las banderas de salida. 3. Se atiende primero el dispositivo cuya prioridad es mayor y despub al que tiene una prioridad menor. La secuencia mediante la cual se mprueban bs banderas dicta la prioridad asignada a cada dispositivo. Esta es la dwcci6n de retorno almacenada ahí durante el ciclo de in-p ción. Como la rutina de servicio puede utilizar estos registros. La pmicibn 1 tiene una instrucción de brinco al inicio de la rutina de semicio SRV. 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 rutina de servicio de la intempci6n ejecuta las seis tareas mencionadas. 6.) Las banderas se verif~canen forma secuencial. .4 6 n básica de Ia computadora una fransfemcia al comienza de l a rutina se almacene en la localidad 1. p'ogfama. Los contenidos de AC y E se almacenan en posiciones especiales. de otra manera el programa principal puede ejecutarse con error. se trmfiete un grupo de d a b hacia o desde el buffer de memoria correpandiente. 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. Si una o ambas banderas están activadas. D a r servicio al dispositivo q y a bandera está activada. 4 Rmperar el contenido de lm registros del procesador. 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.218 SELS . La posici6n O 'se reserva para la direcci6n de retorno. Habilitar la @6n de interrupción.una intemupci6n inhabilita la opci6n de más intemp dones. A n b de retomar al programa principal. Salvar el contenido de los registros del procesador. donde se interrumpi6. es necesario ''~lvar" su contenido al principio de la rutina y "recuperarlo" al h l . 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 envía a la computadora a la rutina de servicio a la interrupci6n SRV. Regresar al programa principal. 5. Aunque pueden advarse dos o m8s banderas al mismo tiempo. La aparición de. IA parte listada del programa principal tiene una instruccibn ION que habilita 11a intermpcibn. Por l o tanto1 el programa principal continuad desde la posicibn 104. La rutina de ervicio debe tener inshcciones para ejecutar las siguienb m a s : 1 .

. introducir cardcter OUT STA PTl 1 ISZ PT1 SKO BUN m LDA m I OUT ISZ m QL LDA SE LDA SAC ION BUNZI(OI SAC. 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 típica puede tener muchos m6s dispositivos de eny salida conectados a la opción de interrupci6n. Pueden usarse interrupciones con otros pmp6sitos. En la seccibn 11-5 puede encontrarse un análisis m& a n p l i ~ de las interrupciones y algunos conceptos avanzados reladonadds con este importante tema. SE. m. /La W w a estd apagada. trada /Imprimir cadcter /Aimamnarlo en buffer de entrada /Incrcmcntar apuntador de entrada /Comprobar bandera de salida /Lahñndcra esth apagada. las fuentes de interrupcibn no se limitan a transEerencias de entrada y salida. como para procesar v r e s internos o candiciona de alarma especial.S E C U & 68 Pmpmación de entrada-~~lida 219 TABLA 6-23 P m p m a para dar m i c i o a una intemipcibn 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 /La inlerrupcibn ocurre aquí /El programa retorna ñqul despub de la interrupción 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 . Además. Rl. comprobar siguiente bandera /La bandera eskA activada.

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.C SlJll=SUH+DIF . Considere variables enteras.e IR (en hexadecimal) aI finai. SUM = O SUM-SUli+A+B DIF = DIF .PC. E 1 siguiente programa estA almacenado en la unidad de memoria de l a cumpukidorabásiria.m : S Pqmm&n básica de Ia computadora ó-l. Liste el programa de lenguaje ensarnblador (de las instrucciones biirias equivalentes) generado mediante un mmpilador del siguiente programa Fortran. ~ Q u contienen d AC y la palabra de memoria en la dkción 103 cuando se detiene la computadora? 6-3. L a computadora ejecuta las inctrucciom comenzando m la dirección 100. despub de que +ute sada instnrcci6r~Todos los nifmeroei Estados. Muatre el contenido de AC.abajo est&n en hexadecimal.

al enunciado 20 si A . b . cido y proporciona su contenido binario.B > 0. c. 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. Iddifique el diagrama de flujo de la figura 6-1 para procesar '&a seudoinstruccibn. Liste la tabla de direcciones simbb1ieas que se obtiene durante la primera pasada del mnibtdor. Obtenga la tabla de direcciones simbblicas generada para el programa de la tabla 613 durante la primera pasada del ensamblador. Muestre que se necesitan las cuatro palabras de memoria para almacenar la línea de d i g o y pmprcionar su contenido binario. >LQuB sucede durante la primera pasada del ensamblador (figura 6-1) si la Ilnea de c6digo que tiene una seudoinstrucei6n OR o END también tiene una etiqueta? Modifique el diagrama de flujo para incluir un mensaje de error si ocurre esta. Una llnea de código en un programa de lenguaje ensamblador es como sigue: DEC -35 a. Explique en palabras qu4 realiza el siguiente progcama cuando se ejecuta.. a. 6-10.B = O. 6-11. th Muestre que una palabra de memoria almacena el &digo b i i r i o tradu6-7. y al enunciado 30 si A . . b t ee l d i g o hexadwimal del programa traducido. a. 9 . b t e el programa del lenguaje onsambladot (de las instruccimea binarias equivalentes)generado mediante un mmpilador para el siguiente enunciado ZF: El programa brinca al enunciado 10 s i A .6 4 6-5. la línea de d i g o 6 . Demuestre cdmo pueden almacenarse en memoria las tablas MRI y no-m. Esto es si& al enunciado de Fo&mn DIMEMIDN A(10). 6-8. La ~eudoinstruc~i6n 3SS N @ ] q u einiciado mdiaate un símbolo)en ocasiones se emplca para reservar N palabras de memoria para un ggnipo de operandos. infoma d ensambladar que va a quedar l i W un bloque de 10 (decimal) loalidada. Liste el programa traducido en hexadecimal.comenzando desde la localidad A.B <O. Por ejemplo. ~Guá1 es el valor de la posición CXR cuando se detiene la computad~ra? b. 612. ¿Puede usarse la letra 1como una d i d d n simbbliea en el programa de lenguaje ensamblador definido por la computadora básica? Justifique la respuesta. 64.

En el programa que se llama.Escriba un programa para multiplicar dos números positivos sin signo. Después de que se ejecuta una vez el progama. cada uno con 16 bits significativos. Escriba un programa para restar dos números de doble precisión. Escriba un programa para multiplicar dos números positivos mediante un metodo de suma repetida. Muesbre que si el programa se ejecuta de nuevo comenzando de la posición 100. Escriba un programa que evalúe la OR lógica exclusiva de dos operandos lógicos.CAP~TULO SEIS Programación básica de la computadora ORG 100 CLE CLA STA CTR LDA WRD SZ A 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 STP CTR 1 WRDl Escriba un ciclo de programa. a la instrucción BSA le siguen el susbraendo y el minuendo. o 5 + 5 + 5 + 5. el programa evalúa el producto al sumar 5 cuatro veces. La diferencia se . Brinque a OVF si ocurre un sobreflujo. El producto debe ser de precisión única y en representación de complemento a 2 con signo si es negativo. para multiplicar 5 X 4. la posición CTR se quedará con cero. Por ejemplo. Escriba un.programa para la operación de corrimiento aritmético a la izquierda. Escriba una subrutina para restar dos números. Escriba un programa para multiplicar dos números de signo con números negativos que están al principio en representación de complemento a 2 con signo. utilizando un apuntador y un contador. con el fin de obtener un producto de doble precisión sin signo. . el ciclo se recorrerá 65536 veces. Agregue las instrucciones necesarias para inicializar el programa. El programa de multiplicación de la tabla 6-14 no está inicializado. que borre a O el contenido de las posiciones hexadecimalesde la 500 a la 5FF.

.A. Gibcon. ó-24. Obtenga un diagrama de flujo para un programa que compruebe un código CR (hexadecimal O D ) en un buffer de memoria. Gray. Wfod. palabras. Introduction tu Computer S p W . . 6-27. Computer Organimtion and Programming. W ~ b una a subnitina para complementar cada palabra en un bloque de datos. Los bits del 9 al 15 deben contener ceros. a la instnrcci6n BSA le siguen dos parAm&ros:la direcci6n de comienzo del blaqrie y e l número de paiabras en e l bloque. 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 posición espxial. NJ: Prentice HaU. 4. T . S i el buffer tiene un sobreflujo la computadora debe detenerse. Introd~ictionlo Computer Engineering. Ed. k i b a una subrutina para circular E y AC cuatro veces a la derecha. C.EAkhouse. empacar dos caracteres en una palabra y almacenarlos en posiciones wnsecutivas en un buffer de memoria. MA: üigital Press. Gear. E n g l e w d Cliffs. 3a.E l tamaño del bufler es de (512). 6-23. 6-28. 1. 6-26. 2.L . ~ 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. Ley.. l b & .W. Nuwa York M d r a w Hi11. y R H.d programa lo transfiere a los bib de1 O al 7 de la posición LNE sin afectar los bits del 8 al 15. 1980. contiene &lo 1.. G. 6-22. B. 1991. H . 3a. El dispitivo de salida se atiende 9610 si la posici6n MOD contiene únicamente diitos 0. A. M. 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. Coniputer Pmgrarnming and Ardritecture: Ihe VAX-11. 1987. NJ: Prentice Hall. Cuando se encuentra el c6digo para CR.devuelve al programa principal en la tereera p i c i 6 n despub de la instrucci6n ESA. En el programa que se llama. S i el AC contiene e 1 hexadecirnal O 7 K y E = 1. 1980. 3. 6-25. MOD. N. 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. Computer S y s t m Conceplc and Design. Jr. Ed. E n g l e w d Cliffs.. Nueva York John Wiley. E l buffer contiene dos c a r a c t e m por palabra. La primera direcci6n del buffer ea (400). 5 . 1984.

Shiva. P. S . Wakerly. NJ: Prentice H d . Struchired Compute? ürganizntion.u EAPfTUkO SEIS Programaci6n básica de la computadora 6. h. 1991. Proaser. Englewood Cliffs. Ed. Nueva York: JohnWiley. MA:Addison Wesley.y D. F . F .G .Winkel. Nueva York: HarperColiii PubIishws. 1990. 10. J. H . 3a. NJ: M t i c e %U. TIse Art of DigitaI Design. M. E. Ed. 9. MimKDrnpufer Architecture and hgramming. 7. . Englewood Cliffs. 8. h i n . A. . 1983. S. .Comptiter Design m d Archilpcture. 2a. b g k h i g n and Cmpufer Orpinitim. Ed. Tanenbaum.Reading. 1987. 1981.

1 ' J EN ESTE CAP~TULO 7-1 7-2 7-3 7-4 Memoria de control Secuencia de la h i b n Ejemplo de un mimoprograma D i j o de la unidad de ~ontrol 7-1 Memoria de control La función de la unidad de control en una canputadora digital es iniciar secuencias de microoperaciones. La cantidad de tipos de operaciones dife rentes que estdn disponibles en un sistema dado es finita. decodificadores y unidades 16gicas arh&tieas. La micrdprogramaci6n es una segunda altemativa para dheñar la unidad de control de una mrnpubdora digital. En un sistema organizado con bus. las seirala de control que especifican micmperaciones son grupos de bits que seleccionan las trayectorias en los multiplk* res. Cuando se halla en un estado binarid se ejecuta la microoperaci6n correspondiente. La complejidad del sistema digítal se deriva de la cantidad de secuencias de micrmperaciones que x ejecutan. La funcibn de controI que especifica una microoyieraci6n es una variable binarh. Cuando la circuitería genera seibles de control por medio de t h i m s de diseño lógico ~nvencion& se dice que la unidad de control es por circuiterh. El ~ t a d o activo de la variable de control puede ser el estado 1 o el edtado 0. Durante cuaIquier momento. El principio de micropgramaci6n es un m M o elegante y sistemático para controlar las secuencias de dcmoperaciones en una computadora digital. Una variable de control en estado binario opuesto no cambia el estado de las'regktroc en el sistema. según la aplicacidn. se van a iniciar ciertas microoperaciones. mientras otras q~edaninactivas. Las variables de control pueden . h unidad de control inicia una serie de pasos -&les de rnicroope raciones.

para evaluar la dirección efectiva. Cada instrucción de máquina inicia una serie de microoperaciones en la memoria de control. la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar.226 C A ~ SIETE O Control microprogramado palabra de control f microinstruccidn microprograma \ memoria de control representarse en cualquier momento mediante una cadena de dígitos 1 y O. Una computadora que emplea una unidad de control microprogramada tendrá dos memorias separadas: una memoria principal y una memoria de control. El contenido de la palabra en ROM en cierta dirección especifica una microinstrucción. Las unidades de control que utilizan la microprogramacibn dinámica emplean una memoria de control en la que se puede escribir. por lo general. por ejemplo. La memoria principal estli disponible para que el usuario almacene programas. El uso de un microprograma implica la colocación de todas las variables de control en palabras de ROM para que las use la unidad de control a través de operaciones de lecturas sucesivas. La microinstrucción especifica una o más microoperaciones para el sistema. la memoria de control puede ser una memoria de sólo lectura (ROM).ejecutar la operación específica mediante la instrucción y i n de repetir el ciclo para retornar el control a la fase de búsqueda con el f para la siguiente instrucción. El programa del usuario en la memoria principal está formado por instrucciones de máquina y datos. desde un disco magnético. Una secuencia de microinstrucciones constituye un microprograma. El microprograma consta de instrucciones que especifican diferentes señales de control interno para la ejecución de microoperaciones de registro. Como no se necesitan alteraciones del microprograma una vez que la unidad de control está en operación. Una memoria que es parte de una unidad de control se denomina memoria de 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. La memoria de control se considera como una ROM. El contenido . dentro de la cual se almacena toda la información en forma permanente. que se denomina palabra d e control. Cada palabra en la memoria de control contiene una microinstrucción.de la memoria principal puede variar cuando se manipulan los datos y cada vez que se cambia el programa. La configuración general de una unidad de control microprogramada se muestra en el diagrama de bloques de la figura 7-1. El registro de direccionamiento de la memoria . Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero. Estas microinstrucciones generan las microoperaciones para llevar a cabo la bfisqueda de la instrucción en la memoria principal. para . Las palabras en ROM se vuelven permanentes durante la producción de la unidad. En contraste. Un descubrimiento más avanzado conocido como microprogramación dinámica permite que un microprograma se cargue al principio desde una memoria auxiliar. El contenido de las palabras en la ROM es fijo y no puede alterarse mediante la programación simple porque no es posible escribir en la ROM. se utiliza para lectura.

La micruinstrucci6n contiene una palabra de control que especifica una o más micmoperaciones para el prricesador de datos. La posicidn de la instruccián siguiente puede ser la más pr6xima en secuencia a puede ubicarse en cualquier otra parte en la memoria de control. Por esta radn. Ya que permite la ejecucibn de las rnicrmperaciones especificadas mediante la palabra de control simultáneamente con la generacihn de la siguiente microinstruccidn. donde se aplica una de éstas al registro de díreccimarniento y l a otra a1 registro de datos. cargar una direccih de la memoria de control en el registra de direccionamiento de control. ta palabra de control y la informaci6n de la siguiente direccibn se toman de la memoria de controI. dependiendo de las entradas del secuenciador. porque determina la secuencia de direccibn que se lee en la memoria de control. Una vez que se ejecutan estas registro de lineas operaciones. Esta configuraci6n requiere un reloj de dos fases. El registro de datos en ocasiones se denomina registro de arquitectura pmlela (pipeline) u paralelo. El sistema puede operar en el registra de datos de control al aplicar una d a fase del reloj al registro de d-onamiento. Por lo tanto. Las funciones tipicas de un menciador de microprograma son incrementar el registro de direccionamiento de control en 1. 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. L a direccibn siguiente también puede ser una funci6n de condiciones de entrada externa.siguiente instrucci6n en ocasiones se llama un secuencindor de micropmgrama. transferir una diremi611externa o cargar una direcci6n inicia1 para iniciar las operaciones de control. es necaario utilizar algunos bit5 de la microinstrucci6n presente para controbr la generacihn de la direcci6n de la siguiente microinstruccibn.de la direccjbn siguiente Figura 7-1 Organización de control microprograrnada. . La direccidn de la siguiente instnicei6n puede especificarse de varias maneras. E l generador de l a .SEJCCX~N 7-1 Memoria de control 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~ Wormadbn. 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. el contra1 debe determinar la siguiente d i c i b n . El registro de datas de control contiene la rni~~0imtmcci6n pmmte mientras que la siguiente dirección se calcula y se lee en la memoria. 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.

Esta direccidn. Cada instrucci6n de. todo l o que necesitarnos hacer es especificar un conjunto de miccoinstnicciones diferentes para la memoria de control. el registro de d k i 6 n es el único componente en el sistema de control que recibe pulsos de reloj. L a principal ventaja dd control micropmgramado es que. El contenido de la palabra especificada en ROM permanece en hs Iineas de salida. Si desparnos establecer una secuencia de control diirente para el sistema. nb Se carga una dhcci6n inicial en el registro de direccibn de control d m d v nhm e mando se enciende la computadora. por b general. en bnto su valor de dirección se encuentra en el registro de direcci6n.mmputadora tiene su propia rutina de microprograma en la memoria de control para generar las miamperaciories que ejecutan la instrucción. No se necesita d a 1 de lectura como en una memoria de acceso aleatorio. una vez establecida la confiracibn de la k u i t e r f a .No hay que olvidar que una ROM opera como un -- circuito combinatorio. Un ejemplo de control de Iineas internas pam una computadora simple se presenta en la aeceidn 54. En el ejemplo que sigue consideramos un reloj de una sola fase. Debe mencionarse que la mayorla de las computadoras que se basan en e1 concepto de arquitectura de computadora con conjunto de instrucciones reducido (m) (vhase la secci6n 8-8)utilizan el mntro1 por circuitería en lugar de una memoria de control con un mimoprograma.se almacenan en la memoria de control en grupos. ti L a rutina de bdsqueda puede sscuenciarse al incrementar el registro de direccionamiento de control por medio del resto de sus microinstrucciones. Cada pulso de r e l o j ejecutara las rnicrooperaciones especificadas d i a n k la palabra de control y tambikn transferid una nueva direccibn al registro de direcei6n de control. D e esta manera. es la de la primera microinstmcci6n que activa la rutina de bdsqueda de instrucci6n. La configuraci6n de la circuikría no debe cambiarse para diferentes operaciones. y rutina. Los otros dos componentes: el secuenciador y la memoria de control son circuitos combinatorios y no necesitan un reloj. La circuitería que controla la secuencia de la dirección de la memoria de control debe poder euenciar las microínstrucciones dentro de una rutina y poder transferir el control d d programa de una a otra. Control de iínew internas 7-2 Secuencia de la direccion tas ~roinstnzcuones . lo único que debe cambiame es el rnicroprograma que reside en la memoria de control. por 10 tanto no utilizamos un registro de datos de control. no hay necesidad de cambios' posteriores. cada grupo espeeüica una . con el valor & la direcci6n como entrada y la paIabra correspondiente como sdida. enumeremos tos pasos que debe seguir el control durante la ejecucidn de una ittstrucci6n de computadora. Para apreciar la secuencia de la direcci6n en una unidad de contmI de programa.

y Ioe registros del procesador. Un proceso de mapeo de los bib de la instruccidn a una . El siguiente paso es-generar las mimperaeiones que ejecutan la instrucdh que se trajo de Ia mmoria. dependiendo de las condiciones de los bits de estado. Una opcián para ilamar y regresar solicitud de una subrutina y retorno. 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. L a figura 7-2 muestra un diagrama de bloques de una memoria de control y la circuitería a w i a d a necmaria para seIeccionar la direcci6n de la siguiente microinstrucci6n. En resumen.emplean subrutinas requerirán un registro interno para almacenar la d i d 6 n de retorno. Cuando se termina la ejecuci6n de la instrucci6n. el control deke retomar a la rutina de biíqueda. tas direcciones de retorno no pueden almacenarse en RQM porque no es posible escribir en la unidad. pero en ocasiones la secuencia de microoperaciones dependerA de los valores de ciertos bits de estado. 'Transferencia de control del programa condicional o incondicional. b a transformación de bits de1 código de instrucción a una diremi611en la memoria d e conkm1 donde se Iocaliaa la rutina se denomina proceso de mapeo. 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 instrucción. Cada instrucci6n tiene su propia rutina de micropmgrarna almacenada en una cierta posici6n de la memoria de control. la inatmEi6n está en el registro de instrucción de 12L computadora. Puede lograme una rutina de c8lculo de direccin ektiva. La rnic~~instrucción en la memoria de control contiene un conjunto de bits paTa iniciar micmperaciones en las registros . h d i i d n del operando está disponible en el registro de direccionamiento de la memoria. En seguida. Esto se consigue al ejwutar una miuuiinstrucci6n de brinco incondicional a la primera d i c i 4 n de la rutina de búsqueda.dirección para una memoria de control 4. 3.mapeo Al f i l de la rutina de búsqueda. como un direccionamiento indirecto y los registros índice. Una instrucci6n de máquina puede tener bits que especifiquen diferentes modos de direccionamiento. las posibilidades de secuencia de direcci6n que se requieren-en la memoria de control son: EL Incrementar el registro de direccionamiento de control.en la memoria de conkm1 mediante iina mic~oi~strucei6n de brinco. Cuando se M n a la rutina de c4lcuh de direccidn efectiva. la cual está ~wndicionadaal estado de los bits de modo de la operación. i m microprograma3 que. la men'oria de control m n e la rutina que determina la dkeccibn efectiva del operando. las microinstrucciones que ejecutan la instniccibn pueden uenciarse al incrementar el registro de diicionarniento de conMI.

La transferencia de control del programa se consigue al esp~ificar la direcci6n en uno de los campos de Ia microinstmccibn. IA dirección de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza despub. para seleccionar la microinstrucci6n siguiente en secuencia. Figura 7-2 Celección de una direcci6n para la memoria de control. 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. cuando d rnicroprograma desea retornar de la subrutina. DireEcion de transferencia de control . El diagrama muestra cuatro trayectorias diferentes de ias que recibe la dirección el registro de direccionarniento de contra1 (CAR).de la computadora y otros hits para especificar e l método con e l que se obtiene l a siguiente direccibn. El incrementador incremmta el contenido del registro de dhccbnamiento de control en uno. Se transfiere una dilección externa a la memoria de control mediante un circuito 16gico de mapeo.

como el acarreo de un sumador. Consideremos además que la memoria de control tiene 128 palabras. los bits de modo de una instfucci6n y las condiciones de estado de entrada o salida. Las condiciones de estado son bits especiales del sistema que proporciona ínfomaci6n de parhetros. Mapeo de las instrucciones Existe un tipo especial de transferencia de control cuando una microinstmcci6n specifica un brinco a la primera palabra de la memoria de control donde se ubica una rutina de rnicroprograma para una instrueci6n. Una referencia a este bit. Para cada c6digo de qperaci6n que ahí se encuentre existe una rutina de microprogra- . Los bits de estada para este tipo de brinco son los que estin en la parte del ckiigo de operacidn de la instmcciófi Por ejemplo. Una salida O en el multiplexor provoca que se uicremente d registro de diremibn. la informacihn en estos bits puede probarse y se pueden iniciar acciones con base en su condicibn si su valor es 1 o O. Estos tres bits p"po"0nan las variables de selecci6n para d multiplexor. de otra manera es O. como l a que se muestra en la figura 7-3.Transferencia condicional La 16gica de transferencia de control del programa o brinco de la figura 7-2 bita especiales proporciona posibilidades de toma de decisiones en la unidad de control.con un multiplexori Supongamos que hay ocho condiciones de bit de estado en d sistema. En esta configuración. 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. Esto puede lograrse al fijar el valor de un bit de estado de la entrada del mdtiplexor para que siempre sea igual a 1. mediante las h a s de seleccih dei bit de estado de la memoria de control. de otra manera. el bit de signo de un número. junto con el campo en la microinstmcci6n que especifica una direccibn de transferencia. dependiendo del valor del bit de estado que se seleccione. el microprograma sigue una de dos trayectorias posibles. l o que q u i e r e una direccibn de siete bits. Una iristmcción de transferencia incondicional puede obtenerse al cargar la direccibn de ramificación de la memoria de control en el registro de direccionamiento de control. Esto puede logra. IA circuiteria de 16gica de transferencia de control puede implantarse de diversas maneras. el registro de direccionamiento se incrementa. una computadora con un formato de hstmcci6n simple. La mAs sencilla es probar la condicibn especificada y brincar a la d i i 6 n indicada si se cumple una condición. Si el bit de estado que se se1eociana está en 1. hace que Ia dimcidn del brinco se cargue en el registro de dirwctonamiento de control en forma incondicional. Los bits de estado. la salida del multiplexor es 1. controlan las decisiones de transferencia condieional que SE generan en la 16gica de trmsfemcia de control. Se usan tres bits en Ia microinstrucci6n para especificar cualquiera de uno a ocho condiciones de bik de estado. tiene un c6digo de operaci6n de cuatro bits que puede especificar hasta 16 instrucciones diferentes.

El concepto de mapeo proporciona flexibilidad para agregar inabrucciones para la memoria de contra+ ronforme surge la necesidad. los bita de lar instruccidn v i f i c a n la dimci6n de una ROM de mapeo. 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. cuatro bits de cbdigo de operacidn y borrar los bits menos signscativas del registro de direccionamiento de control. Puede Ilamarise una suhruka de cualquier punto desde el . Puede programarse la intermnexibn de las entradas. excepto que utiliza compuertas AND y OR con fusibles electr6nicos internos. u Submthas h s subrutinas son paagramas que utilizan otras rutinas para realizar una tarea partrcuiar. En ccasiones la funcibn de mapa se obtiene mediante un circuito integrado llamado dispositivu lógico progr-amable o PLD. la rutina de microprograma que ejecuta la instntcci6n puede coIocarse en la posicibn que se desee en l a memoria de!contmI. >compuertasAND.Unafunción de mapeo que puede expresarse en términos de expresiones ?maleanas pude incrementarse en forma conveniente con un PLD. Se puede ampliar este concepto a una regla de rnapeo mis general. El contenido da la ROM de mapeo proporciona los bits para el registro de direccionamiento de contro1.Este m a p consiste en colocar un O en el bit más significativo de la dirección. . En esta configuración.rna en i a memoria de confrd que ejecuta la microinstmeci6n. al transferir los. De esta manera. cornpueria8 O R g salidas como en una ROM. El concepto de un PLD es similar al de la ROM. Esto proporciona una rutina . al usar una ROM para espee%car la funcidn de mapeo.& 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. Un proceso de mapeo simpk que convierte al código de operaci6n de 4 biis en una direccidn de 7 bi@ para la memoria de control se rnueetra en la figura 7-3.

Por ejemplo. Pueden ahorrarse microinstrucciones al emplearse subrutinas que ~rtilizansecciones comunec de microcódigo. Con frecuencia. . el registro de datos DR y el registro acumulador AC. la secuencia de microinstrucciones necesarias para generar la dirección efectiva del operando para una instrueei6n es c o m h a todas las instrucciones de referencia a memoria.registra de subrutina del microprograma. Esta =uencia podfla s e r una subrutina que se solicite en cualquier rutina para ejecutar el dlculo de dire4411efectiva. 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). muchos microprogramas contienen secciones de c6digo idbnticas. La computadora que s e usa aqui es-similr pero no iddntica a la computadora bisica que se present6 en el capftulo 5. El registra de la subrutina puede convertirse entonces en la fuente para transferir la dirección para e1 retorno a la rutina principal. Los regisiros del prpcesador son el contador de programa PC. Consta de dos unidades de memoria: una memoria principal para almacenar instrucciones y datos y una memoria de control para almacenar el micropm grama. L a funci6n de estos registros es similar a los de la computadora baisica que se present6 en el capítulo S (vease la figura 5-3). b k a generacih de código se llama microprogramacih y es un proceso similar a la programacibn de lenguaje de miiquina convencional. La memoria de control y sus registros se organizan como una unidad de control mkroprogramada. a w p o principal 7-3 Ejemplo de un microprograma Una vez ue se establece la cmfiguracibn de una computadora y su unidad de contra micr~programadu. as tarea del diseibdor generar el microc6digo para la memoria de corttrol. aqui presentarnos una computadora digital simple y c6mo se programa. el e t r o de direccionamiento AR. Para apreciar este prweso. 1La unidad de control tiene un registro de direccionamiento de control CAR y un registro de subrutina SBR. 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. Los nicroprogramas que utilizan subrutinas deben tener una parte para almacenar la direcci6n de retorno durante una llamada a subrutina y restablmr la dirección durante un retorno de subrutina. El uso de una pila en ilarnadas y regresos a subrutina se explican con mayor detalle en la sección 8-7. 9 ' Configuracibn de la computadora El-pmgrama de bloque de una computadora se muestra en la figura 7-4. e n se m u e s t r a en la figura 7-2. Se asoeian cuatro registros con la unidad del procesador y dos con la unidad de controI.

DR puede recibir infomaci6n de AC.y los datos que se I m en la memoria sblo pueden ir a DR. lbgira y de corrimiento realiza micmperaciones con datos de AC y DR y coloca el multado en AL. PC &lo puede recibir infomiaci6n de AR. PC a de la memoria. N6tese que la memoria recibe su direceibn de AR. Los datos de entrada m i t o s en la memoria provienen de DR.fomato de inshccibn La transferencia de informaci6n entre los registros del procesador se realiza mediante mdtiplexores. no por el bus común. La unidad arih&tica. Consta de tres campos: un campo de 1 bit ara direccionamiento indimcto . Á R puede recibir informacibn de PC o DR. El formato de in6tmccii de computadora aparece en h figura 7S(a).

La figura 7-5(b) lista cuatro de las 16 instrucciones posibles de referencia a memoria. El . La instnicciBn BRANCH provoca un brinco a la direcci6n efeetiva si el operando en AC es negativo. 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. Para no complicar el ejemplo de microprogramaci6n. La hstmceibn STORE transfiere el contenido de AC a la palabra de memoria wp&if~cnda p ' rla direcci6n efectiva. a q d 9610 se consideran cuatro instrucciones. La instruccidn ADD suma el contenido del operando que se encuentra en la dirección efectiva al contenido de AC.a) Formato de una imtruocibn BRANCN o001 SI~C<O)CP~~ (PC M ~+ C SEA) EA wi la dirección efwkiva b ) marro hsirurxiones de computadora Figura 7-5 ~lnstruacionesde computadora. fomtato de mhin+cidn Formato de las rnicrohtrudones El formato de microinstruccibn para la memoria de control se muestra en la figura 7-6. El ampo BR e c a el tipo de transferencia de contror que ae usarb. Los tres campos F1. Después se moshr6 que cada instruM6n de computadora debe microprogramarse. E?y M especifican micmperaciones para la computadora. AC es negativo si su bit de signo (el bit a la extrema izquierda del registro) es un 1 . El p~ograma pasa a ejecutar la siguiente insbccih si AC no es negativo. representado por 1 . b s 20 bits de la microhtrumi&n se dividen en cuatro parties fundonal~. La instrucci6n EXCHANGE inkrtambia los datos entre AC y b palabra de memoria espeOfdada por la dirección efectiva. E 1 campo CD 6eIdona las condiciones del bit de estado.o de operaci6n de 4 bits y un campo de dXxecci6n de 11 bits. un c6dig.

Las tres bits en cada campo se codifican para especifiar siete operaciones distintas. El campo de condición CD consta de dos bits que están codificados para espeUFwr condiciones de bits de cuatro esbdos. El campo de dirección es de 7 bits porque la memoria de control tiene 128 = 2' palabras. 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.. L a primera condich es siempre un 1 . Cuando . S i se usan menos de tres microoperaciones. ~ @ se n listan en la tabla 7-1. una para cada campo. Las microoperaciones se auhdividen en tres campos de tres bits cada uno. Esto proporciona un total de 21 micwoperaciones.ooperaciones de tipo transfe~enciau N b n cinco letras. Las primeras dos letras representan el registro fuente.p r l o que una referencia a CD W (o el aimbolo U)siempre encontrará verdadera la mndicidn. Como ejemplo. la tercera es siempre una T . Por ejemplo.le asigna un símbolo para us~rseen un micropmgrama simbólico. una microinstmcci6n puede especificar dos rrilcrooperaciones simultáneas de F2 y M y ninguna de El. No pueden elegim m8s de tres operaciones para una microinstrucci6n. Todos los símbo1m de mia. campo AD contiene una direccibn de memoria. al mismo tiempo. y las dos lltunas letras representan el registro destino. lo cual rep-ta una transferencia de DR a AC. = 100) time el shbdo DRTAC. 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.m6s miuooperaciones confiicibas. Por ejemplo. la mimperacibn que especifica la transferencia AC+DR. que significa sin operacibn. Es irnpofinte cqmprender que no pueden especificarse de manera simult4nca dos o . Cada microoperación de la habla 7-1 se define con un enunciado de transferencia & registros y *. uno o más de los campos usar&el código binario 000.CD:CondIcibn para transferencia o brinco BR: Qmpo de transferencia AD: Campo de d l d h Figura 7 6 Formato de d i g o de miminstnicci6n (20 bits). como c e muestra en la tabla 7-1.

D R -k 1 DR(0-10) +P% F3 000 001 010 O11 Micmpemcibn 1 0 0 1 0 1 110 111 Ninguno AC+AC@DR AC+A% AC+-NAC AC+shrAC PC+PC+l PC'+AR Resernado NOP XQR COM SHL SHR INCPC AIETPC Comentarios ixi. CAR(0.I -6) +O + .Ninguno A C t A C t DR AC+D A C c A C -t 1 WOP ADD CLRAC INCAC AC+-DR AR tDR(&lO) AR t-PC M[&R] DR 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 DR +MIAR] DR c A C D R .subruiina) CAR (2-5) +DRCll-141. 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. 01 a m p ~1 4 U 1 S Z DR(1S) slC(1S) 1Q 11 AC=Q Tmnsfmncia incondicional Bit de direccih indirecta Bit de signo de AC Valqr.mroen AC Función BR M I 01 1 0 11 Slmbolo JMP CAU.

CAR se incrementa en 1. BR y AD. ejecuta una llamada a subrutina (CALL). se transfiere Ia siguiente direccihn del campo AD al registro de diteccionamiento de control CAR. proporciona una operacidn de transferencia inmndicionaL El bit indirecto 1 está disponible en el bit 15 de DR después de que lee una instnicci6n de la memoria. Cada línea del microprograma del lenguaje ensamblador define una rnicroinstniccibn simb6lica. Como se muestra en la tabla 7-1. cuando BR = 00.es una variable hinaria cuyo valor es igual a 1 si todos los bits de AC son iguales a cero. dos o tres simbolos separados por comas. Un qnsamblador de microprogram es similar en su concepto a un ensamblador de computadora convenci~nal. El campo de la etiqueta puede estar vado o especificar una d M & n simbolica.que se lee una imstniccibn de la memoria. t a s dos operaciones son idénticas. Este mapeo aparece en ]a figura 7-3. CD. El bit de signo de AC proporciona el siguiente bit de estado. representado por 2. Se utiSua junto con el campo de direccionamiento AD. Utilizaremos los símbolos U. El campo de transferencia BR consta de dos bits. Una etiqueta temiina con un signo de dos puntos (:). No puede . De oka manera. Se consigue el mapeo de los bits del código de operaci6n de la instrucci6n a una d i m i b n para CAR cuanda el campo BR es igual a 11. el control ejecuta una opmaci6n de brinco JMP (la cual es similar a una transferencia de control). excepto en que una microinstrucci6n de llamada almacena la dirrccibn de retorno en e l registro de subrutina SBR. 1 . de los definidos en la tabla 7-1. y cuando BR = 01.1 . Un microprograma simbólico puede traducirse a su equivalente binario mediante un ensambladar.campo BR . Esto provoca la transferencia de la direccibn de retorno de SBR a CAR. cuando anotemos programas en forma simbólica. S y Z para los wtrabits de estado. para seleccionar la direccibn de la siguiente microinstnicci6n. e n se define en la secci6n 6-3. Los bits del código de operaci6n están en DR (11-14) despu4s de. tos campos especifican la siguiente información. 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 microinstrucción y proporcionar a los usuarios la posibilidad de definir sus propias direcciones simbólicas.238 CIETE Control microprogramado campo de transfwericia esta mndicibn se utiliza junto con el campo de transferencia BR. Microinstrucciones simb6licas Los slmbolos definidos en la tabla 7-1 pueden utilizarse para especificar microinstrucciones en forma simbblica. Z El campo de rnicrooperacisnes consta de uno. micrmperaciones. Leis operaciones de salto y llamada dependen del valor del campo CD.san independientes de los valores de los campos CD y AD. Cada micmhstnicci6n simbblica se divide en cinco campos etiqueta. E l retorno de la subrutina se consigue con un campo BR igual a 10. Si la mnditi6n del bit de estado especificada en el campo CD es igual a 1. E l valor O. N6tese que las dos iiltimas condiciones del.

o la primera diieccidn. E1 ensambladar traducir&esto a nueve ceros. S o 2 . El campo AD espéciftca un valor para el campo de dirección de Ia microhstrueci6n en una de tres maneras posibles: a . las cuales se calman en la~mmoríade control de las direcciones M. E 1 campo CD tiene una de las letras U. Como no hay disponible un &gistro de inserucci6n. El campo BR contiene uno de 10s cuatro slmbolos definidos en la tabla 7-1. el cdigo de insfíuccih permanece en DR. tas primeras 64 palabras (direcciones -(J a 63) las van a ocupar las rutinas para las 16 instrucciones. b rutina de btisqueda necesita estas microinstrucciones. Con una d i m i 6 n simMlica. el campo AD se deja vacio y d ensambhdor b convierte a siete ceros. h s microinstnicciones necesarias para la rutina búsqueda son biisqwda y dwodijkucidn a AR y después se lee I a instruccibn de la memoria dentro de DR. Una posici6n de inicia conveniente para la rutina de búsqueda es la dirección M.La parte de dirección se transfiere a AR y d @ u & se transfiere e l control a una de las 16 xutinas al mapéar una parte del c6digo de operacidn de la instrucci6n de DR dentro de CAR. ORC Tambikn utilizaremos la seudoinstnicci6n ORG para definir el origen. la cual tambidn debe aparecer como etiqueta. 4. de una rutina de microprograma. La rutina de %&queda Ls memoria de control tiene 128 palabras. y cada palabra contiene 20 bits. Con el símbolo NEXT para representar la direccihn siguiente en secuencia. lo cual es equivalente a la direccidn binaria 1000000.6S y 66.campo de dirercidn haber & de.un simbolo de campo F. b . c. el simbolo ORG 64 informa al ensambladar que coloque la siguiente microinstrucci6n en la memoria de control de la dirección decimal 64. E l siñibolo NOP se utiliza cuando la microinstnicci6n no tiene microoperaciones. Usando las La direcci6n de Ia microinstrucci6n se transfiere de PC . 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. 1. Por l o tanto. Cuando e l campo BB contiene un símbolo RET o MAP. 3. h s iiltimas M paIabras pueden usarse para cualquier otro propósito. 5.

la microinstmcci6n MAP transferirá a CAR la d k c i b n 000000Q. INCPC DATAR U JMP U U JMP MAP NEXT NEXT La traduccibn del micraprqrama simbólico a binario p d u c e el siguiente rnicroprograma binario. donde xxxx son los 'cuatro bits del código de operacibn. pdemos wribir e l m i q r o g r a m sÍmb6lico para Ia rutina de recuperaci6n como sigue: FETCH : ORG 64 PCTAR READ. Por ejemplo. la cual es la direccidn de inicio para Ia rutina ADD en la memoria de control.. La representaci6n de Eransfe rancia de registros muestra las operaciones de transferencias de registros internas que implantan cada miczoinstrucci6n. DireEcián binaria ' ~ 1 'F2 M CD BR AD Las tres microinstnicciones que constituyen la rutina de bdsqueda se han ihtado en tres representaciones di8ferentes. l a qresentaci6n simb6lica es útil para exribir m~cropmprztrnasen un fomnato del nguaje ensamblat e almacenarse en dor. si la instmccidn es una ADD cuyo código de operaciSn es 0000. 2 0 .Esto proporciona cuatro palabras en la memoria de control para cada rutina. 60. respectivamente. tos valores de bit se obtienen de la tabia 7-1.. El modo de direccionamienbs Micropxogama simbólico . La ejecuci6n de la tercera mfcrainsthcci6n (MAP) en la rutina de búsqueda da como resultado un brinca a la dimcibn Oxxxx00. ! % acostumbra ecribir microprogramas en forma simbblica y . . utilizar un programa ensamblador para obtener una traduccihn a binario. La primera dimi611 para la rutinas BRANCH y STORE son O O001 0 0 (el decimal 4) y O O010 00 (el decimal 8).ronvmdones del lenguaje ensambIador definidas antes. En cada rutina debernos proporcionar micminstrucciones para evaluar la direccibn efectiva y ejecutar la instrucción. La mpresentaci6n binaria es el contenido real que de la memoria de control.dqpu4s. 16. La primera direcci6n para las otras 13 rutinas está en los valores de dirección 12.

Pueda usarse menos palabras de h memoria de control si se almacenan en una subrutina hs micr&nslfucciones para e1 direccionamiento indirecto. El retorno de la subrutina @ET) transfiere la direccibn de SBR a CAR y. Si S es igua. La instrucci6n BRANCH debe provucar un brinco a la direecibn efectiva si AC < O. Por lo tanto. la primera microinstrucci6n JMP transfiere el control a l a posición OVER La rnicroinstrucci6n de esta posici6n solicita l a rutina INDRCT s i 1 = 1. Para apreciar c6mo ocurre la transferencia y retorno de b rutina indiwQ. retorna a la segunda microinstrucci6n de la rutina ADD.indirecta está asociado con todas las instrucciones de referencia a memoria.1 a O. tiene que accesarse la memoria para obtenqr la direcci6n efectiva. . condicionada al estado del bit 1. AC será menor que cero si su signa es negativo. simboiizada mediante INDRCT. La nitina BRGNCH en la tabla 7-2 comienza por comprobar el valor de S. Esta subrutina. donde está almacenada la rutina ADD. l a cual después se transfiere a AR. La primera microinslnicci6n lee el operando de la memoria en DR. por l o tanto. cmsidmos que la microinstnicci6n MAP al final de la rutina de búsqueda provacó un brinco a la direccibn 0. 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. ia ejecucibn de la ítistrucci6n ADD se realiza mediante las microinstrucciones de las direcciones 1 y 2. como se muestra en la tabla 7-2. La nitina 5TOlU3 vuelve a utilizar la subrutina INDRCT s i I = 1. E i contenido de AC s e transfiere a DR. no murre el brinco y la siguiente micrainstrucei6n provoca un retorno a la rutina de búsqueda sin alterar el contenido de PC. 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 más que la dimti6n del operando. lo cual se detecta cuando el bit de estado S es 1. se coloca exactamente después de la rutina de búsqueda. i~ segunda microinstmcci6n ejecuta una microoperaci6n de suma con el contenido de DR y AC y después regresa al comienzo de la rutina de búsqueda. Si S es igual a 1. Se irtida una operación de escribir en -la memoria para almacenar el contenido de DR en una localidad especificada mediante'la dirección efectiva en AR. Despu4s la dirección efectiva se transfiere de AA a PC y d rnicroprogra'ma regresa a la rutina de biisqueda. Si i = 1. i a tabh tarnbikn muestra d microptagrama simb6lico para la rutina de búsqueda y la's submtinas de microinstruccibn que ejecutan cuatro instrucciones de computadora. La primera microinstrucción en la rutina ADD solicita la subrutina INDRCT.

que se encuenlra ahora . LNDRCX.pbiaones 69 a la 1 2 7 . di vi di^. DRTAC WREE CALL JMP JEulS J M P INDRCT NEXT NEXT FETCH rd mm: INDRF:: ORG 64 PcTAR W. Tampoco se han u&do las palabras de memoria de control en las . N&be Si510 . (vbase l a figura 1-23).en DR.TABLA 74 Microprograma simb6lioo (parcial) ADD: ORG O NOP READ ADD NOP NOP NOP 1 CAIa. l$ tabla 7-2 contieIie una lisb parcial del mimoprograma. y otras que mqpierert una larga secuencia de micmapmacio~leg~ necesitaran h6s de cuatro micminstrucriones parq su ejecución.INCPC DRTAR READ DRTAR U J M F N E X T U JUP NEXT 0 MAP U JMP NEXT U RET 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.sehan m i c q x ~ a m a d o cuatro de las 16 instrucciones de computadora posibles. 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 w NEXT FETCH ORG 12 EXCHANGE: NOf f U U U READ ACTDR. E l contenido original de AC. Este intercambio es posible cuando los registros san del tipo activado por £isnw. Las palabras de memoria de conhol de Ia 69 a la 127 pueden usarse para este pq%sito. se almacena de r e p w en la ihemoria.Las instrucciones como multiplicar. .

para escribir m i c m programas de manera que las personas puedan leerlo y comprenderlo. Nótese que la direcci6n 3 no tiene equivalente del microprograma simbóiii porque la rutina ADD sblo tiene h.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 . 1 y 2. FETCH INDRCT 64 10000M) 110 000 65 66 67 68 1000001 lOOOOl0 1OOOO11 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. TABLA 7-3 Mianprograma binario pata memoria de control (parcial) u. Pero esta no es la m e r a en l a cual se almacena un microprograma en la memoria.010~ y 9us valores bimrios equivalentes se definen en la tabla 7-1. 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. la siguiente rutina comienza en la direccibn 4. El contenido binario de cada microinstruccibn se deriva de los ~únb. Aunque .es micrbhtrueeiones en las M m e s 0. h s di~ecciones para la memoria de control se próporcionan en decimal y b i i r i o .S E C ~ 7-3 N Ejemplo de un micioprograma 243 Microprograma binario El rnicroprograma simb6lico es una foma conveniente .

Una memoria de contrnl en la que se puede es~ribir la flexibilidad para elegir en b n n a dinámica el conjunto de instrucciones de una computadora al cambiar e l microprograma bajo el control del prmesador. Para modificar el conjunto de instrucciones de la computadora. 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. la ROM se sustituye con una RAM. Este proceso de fabricaci6n consiste en crear una mascarilla para Ia ROM con el fin de que produzca los dígitos 1 y O para cada palabra. Los diferentes campos que se encuentran en los formatos de instrucci6n proporcionan bits de control para iniciar microoperaciones en el sistema. Si se utiliza una memoria de control en la que s e pueda escribir. la mayoría de los sistemas programados utilizan una ROM para la memoria de control porque es mas barata y mis rápida que una RAM y también para prevenir que un usuario ocasiona1 cambie la arquitectura del sistema.dela unidad de control Los bib de la microinshuccibn por lo genera1 se dividen en campos. la lista binaria de microprograma proporciona la tabla de verdad para fabricar la unidad. ia ventaja de emplear una RAM para la memoria de control es que el microprograma puede alterarse de manera sencilla al escribir un huevo patrón de dígitos 1 y O s i n recurrir a procedimientos de fbncación. Cuando se utiliza una ROM para la memoria de control. si ocurre algún error no detectado o s i KM señal de ruido establece CAR para el valor de 3. la cual es el comienzo de M memo* de contrul - . Sin embargo.La anterior puede retirarse e insertarse una nueva en su lugar. El microprograma binario que se lista en la tabla 7-3 especifica el 7-4 Diseño . La ROM est4 hecha de I C que pueden reemplaza= cuando es necesario y sustituirse por otm. y cada campo define una funci6n separada y distinta. - ihi A b I contenido'de la paIabra de la memoria de control. es necesario generar un nuevo microp~~)grama y "enmascarar" una nueva ROM. S i embargo.la dhwcidn 3 no se usa. Este mdtodo d u c e e l tamaño de Iw bik de rnicroinstrucción pero necesita hardware adicional externo a la memoria de control. Cada campo requiere un decodificador para producir las e l e s de control correspondienws. P&OB hahr especificado &lo dígitos O en la palabra porque esta posicihn nunca se utilizar6. También aumenta el tiempo de retardo de . Los bits de la ROM se fijan una vez que se funden los enlaces internos durante la producción 'de la circuiterla. debe especificarse al* valar binario para cada palabra en la memoria de control. bit6 especiales para especificar la manera en que se va a evaluar la siguiente instruccibn y un campo de dirección para transferir el control del prugrama. ser4 prhetico saltar a la direcci6n 64.

Los nueve bits. del campo de la microoperacibn se dividen en tres campos de tres bits cada una.10) 1t ir ir Seleccionar 41 -- O 1 Multiplexores = WoY .SEC~QN P-8. Cada una de estas salidas debe conectarse al . Cada &o de los tres campos de la ~croinstr. según se e s ~ i &ca en la kbla 7 1 .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.huito pnv&& para Miciar l a microoperaci6n ~~IT@SporidigIte.secci&n anterior. 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. b fipya 7-7 muestra las tres deico.c.Por ejemplo.. IA salida de la memoria de m t m l de cada s&campo dek dediticpara que proporcione las. D k i b de k unidad de control 245 ¿ecodi&ad~xgs de campos F las sehales de ~~ntr01 porque deben propagarse por los circuitos de decodificacidn. Las ~ Q d a s de loa decodificadores e s & conectadas a las entradas convenientes en la unidad de procesador.ocho salidas. La d d i i c a c i 6 n de 10s bite de control se.distintas rnicrooperaciones. la siguiente Figura 7-7 13erodlCicaci6nde campos de micrmperacibn.dificadoresy algunas de les conexiony que deben hacerse a partir de sus salidas. cuando F1 = 101 @hario S ) . mostró en el ejemplo de pmgramacibn de Ia.

respectivamente. Semenciador de dcroprograma Los componentes básicos de una unidad de control minoprogramada son la memoria y ios circuitos que deccionan la direcci6n siguiente. Para garantizar un amplio-rangode aceptabilidad. 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. se transfxera a AR la informacibn de los multiplexores. para que cuando una de e k s esté activa. De igual manera. Sin embargo. al igual que existen grandes unidades ROM disponibles en encapsulados de circuitos integrados. las &lidas 5 y 6 del decodificador FI están conectadas a la entrada de carga de AR. La lBgica de siguiente direcci6n del secuenciador determina la direeci6n fuente específica que se va a cargar dentro del registro de control de direccidn. Puede construirse un secuenciador de mimoprograma con funciones digitales que w? ajusten a una aplicacidn particular. Idgfcn y de com'mhnto m. un secuenciador de circuitos integrados debe proporcionar una organizacidn interna que pueda adaptarse a un amplio rango de aplicaciones. ADD Y DRTAC. L s otras salidas del decodifkador que inician transferencias entre registros deben conectarse en fomia similar. estas entradas pwveridrdn ahora de las salidas de loa decodificadores asociadas con los símbolos AND. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direcci6n para h memoria de control. .) hay una transfemcia de PC a AR {representado mediante PCTAR).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 direccidn se llama muenciador de microprograma. La transferencia a AR ocurre can una transici6n de pdso de reloj sólo cuando* estiin activas las salidas 5 o 6 del decodificadox. La unidad de corrímiento lbgico aritmetico puede di&rse como en lm figuras 5-19 y 5-20. cuando F 7 = 110 @ i r = 6. En lugar de utilizar compuertas para generar las seHales de control marcádas mediante los shbolos ADD. tambih hay secuenciadores de ppop6sib general convenientes para la con* tniccibn de unidades de control de micropropma.Cbrno se muestra en la figura 7-7. Los muitipIexores seleccionan la información de AR cuando está activa la salida 5 y de PC cuando estd inactiva la salida 5. La elecci6n de la direcci6n fuente s e guía mediante los bits de informaci6n de la direcci6n siguiente que recibe el secuenciador de la microinstrucci6n presente. como se muestra en la figura 7-7. Las otras salidas de los decodificadores que están asociadas c m una operacibn AC también deben conectarse a la unidad de corrimiento ldgico aritmbtico en forma similar. L a parte de seleccibn. El propósito 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. y DR en la figura 5-19.

La salida de CAR proporciona la direecibn para la memoria de contral. 1 Externa . de la salida de SBR y de una fuente externa que Figura 7-8 wuenciadw & micrqprogramp r a una memoria de mnhol. El djagrama de bloque del semendador de microprograma se muestra m la figura 7-8. 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.S E ~ 7-4 N EiseM de la unidad de control 247 Para mostrar la estructura interna de un secuenciador de microprograma típico analizamos una unidad particular que es conveniente para usarse en eI ejemplo de computadora de micmpmgrama desarrollado en la ~ecci6n anterior. 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. 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. La memoria de control se ínciuye en el diagrama para mostrar la interacih entre e l secuenciador y la memoria conedada a 41. Las otras tres entradas al multiplexor número 1 provienen del campo de diremi611de la miminstrucción presente.

saivar (en) o leer (de) la pila. y T. Las entradas 1. habilita la entrada de carga en SBR. y L.microinstnicci6n elecciona uno de los bits de estado en el segundo rnulkiplexor. TABLA 9-8 Tabla de vedad de lbgica de entrada para un secuenciador de rnicroprograma Camp Entrada MUX 1 S. h s vaiores binarios de las variables de selección determinan la trayectoria del multiplexor.llamar y retornar de subrutina. p o r l o tanto. seIeccionan una de las direcdones4uente pafa CAR. Una operaci6n de salvar (push) en la pila (stack) y leer de la pila (pop). proporcionan un mayor rango de operaciones. Los valores de bit para Sly So se determinan de la función citada y de la trayectoria en el multiplexor que establece la transferencia requerida. . 1. Las operaciones de secuenciador tlpicas son: incrementar. e Io s o n iw'ticas a los valores de bit en el campo BR. cargarcuna direcci6n extema. La tabla de verdad para el circuito Ibgico de entrada se muestra en la tabla 74. La funci6n liskada :en cada entrada se definid en la tabla 7-1. Algunos secuenciadores cometnales tienen tres o cuatro entradas ademdis de la entrada T y. y tres salidas.& BE 44tT CargarSBR L . El registro de subru- 5. D e esta manera. junto con un apuntador de pila. Con tres entradas. E l campo CD C~adicibn)de la. van a un circuito 16gico de entrada. El circuito 16gico de entrada en la figura 7-8 tiene tres entradas. 1. l a variable T (pmeba) es igual a 1 . e l sewenciador puede proporcionar hasta ocho operacienes de secuenciamiento de direccl6n. Aunque el diagrama muestra un registro de subrutina tbica. contiene una dirección de 7 bits. La 16gica de entrada en un secuenciador particular determinará el tipo de operaciones disponibles en la unidad. y otras operaciones de secuenciamiento de d i i i n . So. Por ejempb. Las variabIes So y S. la entrada número 2 del multiplexor se. varías subrutinas pueden estar activas al mismo tiempo. transferir o hacer saltar. Nbtese que cada una de las cuakro entradas.selecciona y etablwe una trayectoria de transferencia de SBR a CAR. es igual a O. Si el bit seleccionado es igual a 1.diseño de I6gfca de entrada mapea la instmcci6n. E l valor T. de otra manera. junta con los dos bits del campo BR (brincar). con SISO = 10. al igual que la sftlida de MUX 1. almacena y recupera la direcci6n de retorno durante las microjnstrueciones de Uamada y regreso. un secuenciador típico teridrh de cuatro a ocho niveles de profundidad. La variable 1 .

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. ~ C u A esll a d x i m a frecuencia de reloj que puede utilizar el control? iCuáI sería 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 utiüza una d de mníd de 1024 pala& de 32 bib d a m. Puede diseñarse un incrementador de circuito combinatorio al poner . 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. ~Cu4nbs bik hay en el campo ~d&&t de transferencia de control y en el campo d e s e l d i ' .E l acarreo de salida de una etapa debe aplicarse a l a entrada de la siguiente.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 también 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.Problemas 249 tina se cargamn el valor incrementado de CAR durante una microinstnicción dicitada (BR = 01) siempie p cuando se satisfaga la condición del bit de estado (T = 1). 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 .transferir la direcci6n al q i s b de direcciona~m de ~ control. Una entrada m la primera etapa menos significativa debe ser igual a 1 y próporeionar la operaci6n de incrementar en uno..~40 ns para accesztr la ROM de memoria de control. una compuerta OR y un inversor. - . 7-1 7-2 7-3 74 ?* ¿Cual es la difapnciá entre. b) microinstnieei6n. ia ~rgafúzaclbn dk control rnictoprogramadaque se muestra en la figura 7-1 tiene los s i ~ u i m i b tiempos da ?baso de propagación 40 ns para generar h siguiente d i d h . 18 ns para para. c) rnimpmgrama: d) m i d i p .un. N6:tese que e l circuito incrementador del secuenciador de la figura 7-8 no es un contador construido con flipflops.en cascada una serie de circuitos semisumadores (véase la figura M). sino un circuito combinatorio construido con compuertas.

convierta las siguientes rnicrooperaciones simbólicas a enunciados de transferencia de registros y a binario.S i hay 16 bits d e estado en el sistema. E l &ligo de aperacibn tiene seis bits y la memoria de control tiene 2043 palabras. b) 1011.¿Cuál 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. a. .& estado? e. WlUTE 7-l3 Suponga que cambiamos la rutina ADD que se lista en la tabla 7-2 a las siuuienh dos microinstruocion~. RDD : RERD 1 CALL JRP INDR. ARTPC.!? 7-19 U El swiente es un mimoprograma simb62ico para una instrueei6n en la computadoca defiriida en la m i 6 1 17-3. Formule un procedimiento de mapm que proporcione ocho microinskrucciones eomutivas para cada rutina. . c ) 1111. DRTAC c. proporcione el campo de microoperaci6n de 9 bits para las siguienb microopadones: 7-12 Utilizando la tabla 7-1. READ. INCPC b . DRTAC. ACTDR. proporcione la primera d i d 6 n de mieroinstruceibn para el siguiente c6digo de operacióm: a) ODIO. ~ d n f o bits s de 16gica de transferencia se utilizan para seleccionar un bit. cuántos bits hay en e l registro de direccionamiento de contraf? b .! FETCH ADD sería la subrutina iNDR. ~Cpántsis bits quedan para seleccionar como entradas para l o s mdtiplexom? 74 i a memoria de control de la figura 7-2 tiene 4096 palabras de 24 bit6 cada una. ¿Cuántaseniradas hay en cada muitiplexor y cuánta& multiplexo~ se nece- sitan? 7-7 Y-ü Utilizando el procedimiento de m a p d b t o en la figura 7-3. ~Cdntos bits hay en cada una de las c u a b mízadas que se m u como ~ entradas a los midtiplexores? c. 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.250 SIETE Control microprograrnado b . a.en que pueda transferirse la informaci6n de fuentes mb!tiples a un destino común? Utilizando la tabla 7-1.

Liste todas 19s fallas @bis cuando e l microprograma ce ejecute en la computadora. N6tese que la condici6n de estado DR = O no está disponible en el campo C D de la . Convida las cuatrc8h i d n s h d m a su f o m binaria equivalente. (N6tese que AC no debe cambiar de valor a menos que la i-cción especifique un 4 1 en AC.1 ) 1010 S i (AC > O)entonces (PC+EA) Borrar bit Borrar si AC cero Brincar si es igual BrincarsiespoBitivo ydifermfedeoero 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). Utiüce eJ elmata de microinshcci6n de la secci6n 7-3. M b a el mhpmgrarna simb6Iico para cada rutina como en la tabla 7-2. ) da) b . ( B w u e 7-16 Sume las instrucciones si~uienies a la mmputadora de la seccidn 7-3 (EA es Ia direeQ6n efectiva). Espdfique la opetaribn realizada cuando se ejecuta Ia instrucción. b . La computadora de l a secci6n 7-3tiene el siguiente microprograma binarim a .ORG 40 NOP NOP IOP ARTPO S Z f U JMP FETCH JHP CaLL JMP FETCH INDRCT FETCR 7-15 a.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. Tradtízcalo a un microprograma simbólico coma en la tabla 7-2. ectá en la d i r e c c i ó n 64 y SNDRCT en la dirección 6 7 .) ) 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 .

(polaridad)en la mbroinstrumi6n de la memoria de control.Sin embargo. 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. La otra enkadaa la compuertaproviene de un bit etiquetado P. Exriba las rutinas de mimprogfama simbblico para las instrucciones BSA @rimar y salvar direccibnj definidas en el capítulo 5 (hbla 54). una ALU (unidad ari tmbtiea-16giea) con 32 operaciones. Una entrada a la compuerta proviene de la salida de prueba del multiplexor. LQU& realiza el control de polaridad P? . Utilice el formato de microinsttucddn de la secci6n 7-3. Soy L. Consi& que la Mgica de entrada del secuenciador de minoprograma de la figúra 7-8 tiene c u a b entradas 1% ly ID T (prueba).Las operaciones que m van a ejecutar en la unidad e listan en la siguiente tabla. t d o s conectados a un sistema de bus común. Muestre cbmo. brincar a AD s iT=O Brincar a AD en forma incondicional IncrementaT CAR en forma incondicional Brincar a AD s iT=1 . Espeafique h cantidad de bits en cada campo de la palabra de mntrol y proporcione un esquema de dificaabn general. Dice* el circuito lógico de entrada utilizando una cantidad mínima de campuettas. incrementar CAR si T = O O Weitar subnitina si T = 1. b .2 cAPlTiL0 Control rnicroprogramado 7-18 computadora definida en 4 a &6n 7-3.Minimice Ia cantidad de dcroinstrucciones. el circuito se inctementa en dos. 7-19 7-20 7-21 7-22 Muestre cómo van a conectar las salidas 5 y 6 del decodificador F3 en la figura 7-7 al contador de programa PC.Cuando D = O. y un circuito para corrimimto con ocho opemcioms. incrementar CAR s i T =O 1 Retomar de subrutina en forma incondicional 1 Map&r direccibn externa en forma incondicional 7-24 Diseñe un incrementpdor de circuito combinatono de 7 bits para el aecuenciador de prugrama de la figura 7-8 (vhse la figura 4-8). el circuito se inc&menta en uno. Modifique el incrementadoral incluit una entrada de control D. kmde una palabra de control para la microoperaci6n.pue¿e 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. p r o cuando D = 1 .y tres salidas. usted puede intercambiar AC p DR y comprabar si AC = O con e1 bit 2. Muestre los bits de la palabra de control que especifican la operaü6n R4 R5 + R6. c. ~Cusntas mtc~~~peraciones pueden especificarse en una micminstrucci6n? Una computadora tiene 16 regis-. La salida de la ~~mpuerta va a la entrada T de l a Ibgia de entrada. O O O O O 1 O 1 O 1 1 1 O 1 O O 1 7-23 1 incrementar CAR si T = 1. a. S .

St. 2a. MN:West Publishing. 1888. Francioni.lo. y A. N ] :Prentice Hall. 1989. Chandra. Ward.. 3a. 1990. 1988.. E n g i e w d Cliffs. 1989. Kandel.Nueva York: Maanülan. M. Vol. StaIiings. Vranesic. W. 7. NJ: Prentice Hall. Ed. . Nueva York:MrGraw-Hill. Rafiquzzaman. M. Reading.C. 1988. Ed. 8. S. H a h d .F.J. UA: AddLsonWesiey. S A.Nueva York: McGraw-Hiil. M. Cmputer Arehitature: A Mollert~Synthesis. . Computer Engirtering: Hardwre Desip. 11. 1 .. 1986 3.H . 1WO. M a d e r n Computer ArchiteEfure. G. 5. Hamacher. A. m t a t h Structures. J r . Computer Orguniurteon. NJ: Prentice Hall. NJ: Prentice Hall.Englewood Cliffs. 6 . 2a. 2. CompuferOrgmbtion: HardawrdSofkwrre. V.. 3a. Ed. 1983. 2a. y S. S. fhmputer Archifecttrrehitand Qrgnniznth. Cámbridge. hah I W . Hays. 9. E l m b qf Computer Organiuitioñ. Nueva York: John Wüey. Z. W . Dasgupta.1. Ingie Decign and Computer Organization. Gnglewwd C l i . J . y R H. G . 1989.Zaky. Langhalz. Ed. .. Paul. G. G. Tanenbaum. 4. y R. Gordine. M. . h i n . Ed. Mano.Cmpufer OrpñiraCion and Ardritecture. E n g l e w d Ciiffs. Strrrctured Computer Organiurtion.

. Control Conjuntode registros t 1 Unidad aritmetica ldgica (ALU) . como se muestra en la figura 8-1.de instrucciones reducido (RISC) 8-1 CPU Introducción 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. El conjunto de registros almacena datos intermedios ' que se usan durante la ejecución de las inst"tiicciones. La CPU está formada de tres partes principales. Figura 8-1 Componentes principales de una CPU. La unidad aritméticalógica (ALU) lleva a cabo las microoperaciones requeridas para ejecutar las instrucciones.EN ESTE CAP~TULO Introducción Organización general de los registros Organización de una pila Formatos de las instrucciones Modos de direccionamiento Transferencia y manipulación de los datos Control del programa Computadora de conjunto. La unidad de control supervisa la transferencia de información entre los registros e instruye a la ALU sobre cuál operación ejecutar.

Tener que hacer referencia a localidades de memoria para esas aplicaciones representa una respetable inversión de tiempo porque el acceso a memoria es la operaci6n que consume m6s tiempo en una computadora. sjnD también mientras ejecutan diversas micrmperaciones. la CPU. Cuando se incluye una gran cantidad de registros en la CPU es más eficiente conectarlos mediante un canal de sistema común. el tipo de datos que soportan las instrucciones y la funci6n que reaZXza cada instnicci6n.! g~ el p m d o r . los modos de di-onamiento que se u pam recuperar datos de la memoria y las instrucciones típicas incorporadas pot lo reguiar en las computadoras.. la estructura de memoria. 8-2 Organizaci6n general de los registros En los ejempl~sde prograrriacih del capítulo 6 hepos mostrado que se necesitan laalidades de memoria para almacenar apuntadores. be manera breve describe cómo los registros se comunican m la ALU mediante buses y explica la opaaci6n de la pila (stack) de memoria. direcciones de retorna. y productos parciales durante la mdGplicaci6n. En los capftulos S y 7 se desarrollaron ejemplos del diseño de unas CPU simples. l~mitoo de ihstrucciones. E i f o inüu e l a . resultados temporales. E l diseíto de una CPU es una tarea que. Por I o tanto. es necesario proporcionar una unidad común que pueda ejecutar d a s las micmoperaciones a r i h & t i a s . Despds presentamos los tipos de fomtos de instrucciones disponibles. Los registros se comunican uno con el otro no m510 para transferencia directa de datos. modos de M ~ h $ m h tel ~cijnjdto . lógicas y de corrimignk. en gran parte.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. Un Wte donde el -dar de la computadora y el programador aprecian la misma nráqirina es i a parte de Ia CPU asociada con eI conjunto de instrucciones. e hstrucciones y la organizaci6n general de los registras J. contadores. Es m8s conveniente y eficiente almacenar -tos valom intermedios en registros de procesador. . Desde el punto de vista del diseñadw. 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 última sección presenta el concepto de computadora can conjunto de instrucciones r e c i d 9 i (Rzsc). 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. el conjunto de instruccione de k computadora proporciona las especificaciones para el d i d o de h CPU. Este c&pítulod 4 la arganizaci6n y arquitectura de la CPU con énfa& en el punto de vista del usuario de la computadora. representa la eleccEon de la circuitería para implantar las instrucciones de m8quina.

.Reloj Entrada a) Diagrama de bloque b ) Faiabra de mtd Figura M bnjunto de registros c m ALU mnuín.

Los canales se imphntan con mdtiplexores o mmpuertas de tres estados. tos canales A y B forman Ias entradas a una unidad aritmética 16gica común (ALV. El decodificador activa una de las entradas de carga de registro y. El registro que recibe la informaci6n del canal se selecciona mediante un decodificador. E l multado de la microoperación estA disponible para datos de salida y también va a las entradas de todos los registros. Las líneas de selecci6n en cada mdtiplexor eligen un registro o los datos de entrada para e l canal particular. 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 . Tres campos contienen tres bits paz* de c o ~ h l . Selector de MUX A (SELA): para colocar e l contenido de R2 dentro del canal A.2 0 Consta de cuatro campos. proporciona una trayectoria de transferencia entre los datos del canal de salida y las entrad* del registro destino seleccionado. La operaci6n dekmhada en la ALU estable la miampación aritica o 16gica que se va a ejecutar. Para conseguir un tiempo de respuesta rápido. 3. 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. canal de silida dentro de R1. 4. el control debe proporcionar variables de selecci6n binarias a las siguientes enttq&s del selector: 1 . la ALU se construye con circuitos de alta velocidad. cuando ocurre l a siguiente transici6n de reloj.258 c a l de sistema 0 Unidad central de p e e n t o Una organización 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. 2. k p u g s . %lector de operación (OPR) de la ALU: para proporcionar la suma ariknétia A + B. Wecbr de destino del decodificador (SELD): para transferir el mnt d d o del. Por ejemplo. Selector de MUX 0 (SELB): para colocar el contenido de R3 dentro del canal B. todo durante el intervalo de ciclo de reloj. para ejecutar la operacih. la Xrifomación binana del canal de salida se transfiere a R1. por 10 tanto. 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. La unidad de control que opera el canal del s i s de la CPU elige el flujo de información a través de los registros y la ALU al seleccionar los diversos componwtes del sistema. segiln se mwtra en la d 6 n 43.

no selecciona un registro de destino pero el contenido de salida está disponible en la salida externa. Los tres bits de SELB se1eeci6nan un rrgisttro i a entrada B de la ALU. El campo OPR tiene cinco bits y cada operación se designa con un nombre simbdlico. 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 multipiexor correspondiente selecciona los datos de entrada exkmlos. Los tres bita de SELA se1eccionan un registro ALU fuente para la entrada A de l a ALU. Ejemplos de microoperadones Se necesita una palabra de control de 14 bits para especificar una microop raci6n en la CPU. La tabla de b c i 6 n para esta ALU est$ listada en la tabla 4-8.BZ ~rgamjmcih generai de los m+tm 259 TABLA 8-1 Codificad6n de campo de seIecci6n de registro C6digo ' . Cuando SBLA o CELB es 000. El registro seleccionado mediante los campos SELA. La ALU proporciona operaciones aritméticas y Ihgicas. SELB y SELD es aquel cuyo niimero decimal es equivalente al núme~obinario del c a p . AdemBs. La palabra de control para una microoperacibn dada . 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. Cuando SELD = 000. 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. L a ccdWaci6n de las selecciones de registro se e c a en la tabla 81. Las cinco bits de OPR seleccionan una de las operaciones en la: ALU. En algunos casos. 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. L a tres bits de SELD selec&& un mghtro destino usando el dwodificador y sus siete salidas de carga. Cuando se aplica una palabra de control de 14 bits a las entradas de se1ecci6n se especifica una microoperación particular. En la sección 4-7 se d i h 6 una unidad arih4tica 16gica y de corrimiento. las operaciones de corrimiento se incluyen con la ALU. la CPU debe proporcionar operaciones de corrimiento.

B. se obtiene de l a lista de codificación en las Wlas 8-1 y 8 2 . y una.tino.TABLA W Codificación de operaciones de la ALU Transferir A Incrementar A Sumar 3. el sarnpo B se marca con un guión. Asignamos 000 a cualquier campo que no se utiliza cuando se formula la palabra de control binaria. Para colocar el mW¿o de un registro & las terminales de salida ponmos el tontddo del e t r o en la entrada A de Ia ALU. e s 010 O11 001 QQ101y se obtiene como s i p . SELB R3 Símbolo: R2 011 Palabra de c~ntrol: Campo: SELD OPR R1 001 SUB 00101 4paJqbra. se especgca la palabra de c o n b l mediante las cuatro campos y el valor binaria c?rwspondiente pan cadq campr. La operaci6n . Por ejemplo. la micrmperaci6n de resta que giropgrcione el enunciado especifica RZ para la entrada A de la ALU. palabra de control binario para la microoperaci6n de resta .decontrol pam esfa micmoperación y m a s cuantas otras se listan en la tabla 8-3. Las micr0pp"aciones de incremento y transf-eia no utilizan l a entrada B de 4. 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. R3 para la entrada B de la ALU. SEL& . Por b tanto. h. Para estw .fivafs de la3 variablw de seZeeci6n. pero no se selecciona ninguno de los registros para aceptar los datos. aunque puede usarse cualquier otro número binado.R1 para d q j s k p des. opraci6n ALU que rmte A .ALU.

Upa pila es un dispositivo de almacenamiento que guarda informaai6n de -manera que el artículo que se almacena al iiltimo es el primero que se recupera. Esto se debe a que x @ x = 0 . Una unidad de memoria que almacena palabras de mtcoI denomina memoria de control. ' 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. La palabra de control binaria para la CPU vendr6 de Ias salidas de la memoria de control marcadas con "mimooperacionestt. es posible iniciar la secuencia deseada de microopexaciones para la CPV. piia a lista iiltim~ en entrar.E E C U d ~ & 5 ~ ó n d e i r n a p i i a261 TABLA 8-3 Ejemplos de micrwpmcimespara la Ci?U MiCraoperqci6n SELA SELB SELD OPR Paiabra decontrol ~ 1 + ~ 2 . es evidente que pueden generarse otras muchas mimooperaciones en la CPU. ta dtim charola que se coloca en la parte superior de la pila es la primera que se vuelve a tomar..Salida *Entrada Rl E Entrada - R3 R5 R1 R4 R6 E ? Ninguno Ningnr. En las computadoras digitales. A l leer palabras de control consecutivas de la memoria. 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). 8-3 Oqanizaci6n de una piia Una característica útil que se incluye en la CPU de la mayoría de las computadoras es irn skck o. El registro que contiene . Puede borrave un registro a O con una operación 0 R exclusiva.P' &Salida &R2 . 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). A partir de estos ejemplos. La manera más eficiente para generar 'palabras de control con una gran cantidad de bits es almacenarlas en una unidad de memoria. en las terminales de Alida. La operación de una pjla puede compararse a un racimo de charolas. Este tipo de control se denomina control microprogramado. primero en salir (LTFO). En Ia figura 7-8 se muestra una unidad de coiitrol microprogramado.k 3 R2 R4tR4VR5 Rd R6GR&+i R6 m R7eA. a través de la ALU.

Las dos operaciones de una piIa son la inserci6n y el borrado de datos. La operación 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. Se colocan tres datos en la pila: A. se ejecuta una Figura 8-3 Diagrama de bloque de una pila de 6 4 palabras. Para recuperar el dato superior. Estas operaciones w simulan al incrementar o decrementar e l registro del apuntador de ia pila. nada se empuja ni s e hace saltar en una p l a de computadora. E 1 dato C est6 en la parte superior de la 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-. Al revés de una piIa de charolas en Ia cual la charola misma pude sacarse o insertarse. Es el contenido de la palabra lo que se inserta o borra. 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.en ese orden. figura 8 3 muestra la organizacibn de una pila de registros de M palabras.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. B y C. los registros flsicos de una pila esten siempre disponibles para lectura o escritura. . Sin embargo. Xs. por l o que d contenido de SP es ahora 3. La operaci6n de escrituxa se llama "empujar" @ush) porque puede pensarse que es el resultado de "empujar"un nuevo dato sobre la parte superior.

s e inserta un nuwo dato con una instrucción push de "empujar". Esto no importa porque cuando se accesa a la pila se escrike un nuevo dato en su lugar. Para insertar un nuwo dato se ejecuta una instniccidn "push". Si se escribe un dato en la pila. es obvio que la pila no puede etar vacía. El último dato es& almacenado en la didirecci6n 0. D e igual manera cuando 000MX3 se decmnenta en 1. para que SP apunte a la palabra en la direcci6n O y la pih se marque como vacia y no como llena. El primer dato almacenado en la piia est5 en h dll. la pila estA Uena de datos y se activa LLENO en 1. Corno SP tiene sólo seis bits.N 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. resultado es 111111.Si SP llega a O. Al principio se borra SP a O . e l apuntador de piIa contiene 6 bits porque 26 = M. después de incrementar SP. pero C. En una piIa de 64 palabras. VACIO se activa en 1 y se borra LLENO a O. El dato B esta ahora en la parte superior de la pila porque SP contiene la direecibn 2. Cuando 63 se incrementa en 1. Si h pila no está llena (si LLENO = O). cuando la pila está Uena. al incrementa SP y emibir una palabra en la siguiente posición más alta de la pila. La instruccibn push se implanta con la siguiente secuencia de microoperaciones: + SP+SP + 1 M [SP] tDR hcrementar apuntador de piia 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á vacía EMTY 6 0 El apuntador de pda se incrementa para que apunte a la direcci6n de la siguiente palabra wpexior.P d o puede acomodar los s e i s bits menos significativm. y el registro dk un bit VACIO ae activa en 1 cuando la pila estA vacia de datos. Una vez que se almaun dato en la Iocalidad O. El registro de un bit LLENO se activa en 1. por lo que se adiva VAUO a O. no puede exceder un número mayor de 63 (111111 err biario). e l resultado es O porque 111211 1 = lMMOOO en b h i o . ya no hay mgistros ~ c i o s la pila. el úitimo dato se almacena en la localidad O. Una operacidn de escritura de memoria inserta la palabra dade DR a la parte superior de la pila. Se b o m un nuevo dato de l a pila s i la piia no &á vacía (si VACIO = O) la qxracidai de pop consiste en la siguiente m de microoperaooneS: hacer saltar .ecci6n 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. e ) . DR es el registro de datos que contiene los datos binarios que se van a escribir o leer de la pila. Ndtese que SP contiene la dirección de la parte sup~rior de la pila y que M[SP] representa la palabra de memaria especifiida mediante la dirección dísponible actualmente en SiJ. N6tese que e l dato C se ley6 pero no se quít6 fisicamente.

Por lo tanto. P C se utiiiza durante la frise de bfisqueda para leer una instrucci6n. Consideramos que el dato en la pila se comhica con el registro de datos DR. El registro de diremi611AR apunta a un arreglo de datos.Si su valar alcanza 0.0. W c a que ~ la pih no estA liena . N6tese que si una instrucci6n pop lee e l dato de la localidad Q g después $P p e decrementa. SP se utiliza para ejecutar inszrniceiones pugh o pop en datos que se guardan o se recuperan en la pila. - da h i kb ALA -- ~iperior de l a piIa se . se demementa e l a p i a d o 1 de &.SP= O) entonces (EM'IT +l) Comprobar si la pila e s t á vacla F w L +o --. Una vez que se lee este dato. cuando VACIO = 1. m 0 Unidad ceríaal de pmcesamiento DR +MISU SP+SP . el valor inicial de SP es 4001 y la pila crece con Ls direcciones decrecientes.Se inserta un nuevo dato con la imbnicci6n de push. En esta configuración.264. Después. 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. AR se utiliza en la fase de ejetución para leer un operando. ejecuta una iizstrucci6n cuando L L W = 1 a una pap. por lo que se activa V&JQ en 1 . 4 cual es el equivalente .lee en DR. el primer dato a b c e m d o en l a pila esti en h d k c i b n 4000. de la manera siguiente: . SP cambia a 112111. L palabra de la duecci6n O wibe el Último dato en la pila. 4. La figura 8-4 muestra parte de una memoria de computadora dividida en tres segmentos: p r e gramas. El &o Pih de memoria Una pila puede existir como una unidad única. SP se decrementa y alcanza el ~alm. el cual es el valor inicial de SP. y l a úitima direcicibn que puede usarse para la pila es 3000. Como se muestra en la figura 84. como se presenta en la figura 8-3 o puede implantarse %en una memoria de acceso aleatorio conectada a una CPU.pila está vacía.1 L&r dato de la parte superior de h pila DecremenQr el apuntador de pila Si'(. Esta condición se> alcanza si el dato que se ley6 estaba en la pasici6n 1. datos y pila. N6tese tambi&n que se p4ucirA una opaci6n errónea s i se. 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. N o estan previstas curnpmbaciom del limite de la pila.al decimal 63. El contadas de programa PC apunta a la dirección de la siguiente instruccibn en el programa. el segundo se almacena en la direccibn 3999.

de la manera siguiente: . datm y pila. Una operad611 de escritura en la memoria inserta la palabra de DR dentro de la parte suprior de 1$ pila.SECCI~N 88 Orgdmci&r de una pila 265 Dirección Unidad de memoria Figtira 8 . 4 Memoria de computadora con sqpentas de programa. Se recupera un nuevo dato can u n a instrucción push. Ei apuntador de pila se decrwnenta para que apunte en la direcci6n de la siguiente palabra.

Las expresiones aritmdticas comunes se escriben en nofación i n t m fija. El método matemdtico común de escribir expresiones aritmbtias i m pone dificultades cuando las evaMa una computadora. En lo sucesivo SP se incremmta o se decrementa en forma automAtica con cada operacan de push o pop. Muchas mmputadoxas no tienen hardware para verificar e l sobreflujo de la püa @la lierra) o sobreflujo inverso {pila vacia). porque la M 6 n siempre estA disponible y se actualiza en forma autamatica en el apuntador de pila. Un quntad~x de pila se carga con un valor inicial. Este valor inicial debe ser h.dirección inferior de una pila asignada en la memoria.El signo de más est4 entre los dos producFos. En este caso. se incrementa SP para la aperacidn de push y 8e deuemwiki para la operacibn de pop. para evaluar esta expresihn aritmética es necesario calcular el producto A * B. Consideremos ia siguiente expresión arih& tica simple. 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. En este ejemplo apmiamas que para evaluar expresiones aritmdticas en notacihn interna fija es necesario a n a b r la expresión en todas sus partes para determinar d l operaci6n ser4 la siguiente en ejecutarse. almacenar este p d u c t o mientras se calcula C * D y despuk sumar los dos productos. Puede construirse una pila para que SP apunte ti la siguiente posicihn vacfa arriba de la parte superior de la pila. donde cada operador escrito e s K entre los operandos.266 m OCHO Unidad central de prow%miento Iúnites de Ia pila El dato superior se lee de la pila a DR. Depende de la orgarhción de la pila determinar cuA1 de las das operaciones se realiza primero y s i se actualiza SP incmentando o decrementando.f i w a 8-3. se compara SP con eI +tro de lfnvte superior y después de una operacidn pop SP se compara con el registro deli lfmite inferior. . El asterisco (que significa multiplicaci6n) está colacado entre dos operandos A y B o C y D. La pila puede construirse para crecer al incrementar la direcci6n de memoria como en la. D q u & de una operaci6n de push. E l apuntador de piIa se incrementa despub para apunbr al siguiente data en la pila. En tal caso. 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). La ventaja de una pila de memoria es que la CPU puede hacer referencia a ella sin tener que especificar una direccián. En la figura 8-4 la pila crece al decmmentar la direccibn de memoria. debe intercambiarse la secuencia de microoperaciones. Notácidti polaca inversa Una srga&aci& de pila es muy ekienk para evaluar expresiones aritméticas.

de los padntesis internos. La nofaci6n postm'urfija. Quite los dos operandw y el operador y wstittiyah por e l número que se obtiene de1 resultado de l a operaci6n.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.A B y sustituhus A. 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 La notacidn polaca inversa es una forma adecuada para la manipulacidn de la pila. denominada notaci6n polaca inversn (ñPN) colma el operador después de los operandos.SFKCI~N 83 &gank%dón de una püa 267 E l matemdtico polaco Lukasiewicz mostró que las expresiones aritmb ticas pueden r e p m t a r s e en notaciótr frjn previa.e encuentran en d lado izquierdo dd operador. Para la expresi6n anterior encontramos el operador * después de A y B. Esta jerarquía dicta que primero ej&utemos todas las operaciones aritm& ticas dmtio. después las de los paréntesis externos . Cuando w encuentra un operador. Cantinde analizando la expresibn y repita el procedimiento para cada operador encontrado hasta que no haya m8s operadotes. ejecute Ia aperaci6n con los dos operandos que . Esta mp=ta&n. La conversicin de nobcidn interna fija a notaci6n poiaca inversa debe considerar la jerarquia operacional adoptada para la notacibn interna fija. B y * por el prcducto para &tener y * dende (A * B) es una cantidad dnim' que s e bbtiene del producto. La expresi6n se escribe en n o t a c a polaca invem como H evalda como sigue: rastrear la expresidn de izquierda a derecha.previos son C y D. Ejecutamos la 0peraeiSai. con RRN frecuencia denominada notaci6n polacnI coloca el operador antes de los operanda. E l sfguiente operador es m y sus d& operado.

al considerar la jerarquía de operaciones. Se basa en el hecho de que cualquier expresibn aritmética puede expresarse en notaci6n polaca sin paréntesis. Los dos operandos para el siguiente * son C y I D + E). y 2) se lee el . La iiltima operad611es la multiplicacibn de los t h i n o s entre paréntesis y paréntesis cuadrados. Consideremos la expresidn: h r a evaluar la expresión primero debemos ejecutar las operaciones aritm& ticas expresi6n dentro de los padntesis cuadrados.. 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 dirección). L a pila es particularmente útil para manejar problemas grandes y complejos que repre-tan cadenas de c4lcuIos. En es& punto nos queda: donde (A + B) y (D . Evaluacibn de las expresiones aritméticas La notacibn polaca inversa. La expresión puede convertirse a notacien polaca inversa sin usar paréntesis.268 cAPfnno -O Unidad central de procesamiento y que realicemos las operaciones de multiplicaci6n y división antes de las operaciones de suma y resta. Los operandm se escriben (push) dentro de la pila en el arden en el cual aparecen. I . El inicio de una operación depende de si tenemos una calculadora o una computadora. 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 operación. es la m e r a más eficiente que se conoce para evaluar expresiones aritmdticas. El * final produce la multiplicaci6n de los dos &minos.t El son cada uno un nijunero úniw que se obtiene de la suma. Después debemos calcular la Al proceder de izquierda a derecha primero sumamos A y 3. después sumamos D y E. Estos dos números se multiplican y ei producto se suma a F . se introducen Los operadores mediante el teclado. to consiste en convertir primero la expresidn aritmética E l pra su notación polaca inversa equivalente. Este procedimiento se emplea en algunas caIculadoras electrdnicas y tambih en algunas computadoras. combinada con un arreglo de pila de registros. E n una calculadora. La expresión convertida es: dentro de paténtesis (A + B) y (23 + E). La multiplicaci6n de C * (D + E ) debe realizarse antes de la suma de porque la multiplicacibn tiene precedencia sobre la suma.

se waliia la expresibn en el orden apropiado y el resultado final permanece en Ia parte superior de l a pila. Las calculadoras cientificas que emplean una pila interna requieren que el usuario convierta las expresiones aritméticas a notacibn polaca inversa. *. convierten todas las expresiones aritméticas a notación polaca de todas maneras. en esencia. operm'ones de pila Ahora consideremos las operaciones de b pila que se muestran en la figura 8-5. * . ta operación de la piia que resulta del siguiente sustituye estos dos números por su producto. despds el número 4. se escr1h el número 3 dentro de la pila.m & M ~xganizacih de una pila 269 dato . 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. Al escribir los operandos dentro de la p las operaciones como se definid. Por l o tanto. Figura 8-5 Operacienes de piia para evaiuar 3 4 + 5 * 5. w expresa como -mi. EI siguiente ejemplo nurndrice puede clarificar este procedimiento. Cada caja representa una aperaci6n de la piia y las flechas siempre sefialan a la parte superior. La dltima operación produce una suma aritmktica de los dos números superiores en la pila para obtener e l resultado final de 42. Considere la expfesibn aritmdtica .rr w p w n (3 * 4) aP4 & + (5 * 6) En notacidn polaca mversa.@p) de la pils y el resultado de la operacidn sustituye el operando i l a continuamente y ejecutar inferior. Rimero. Al analizar la expresi6n de izquierda a derecha encontramos dos operandos. Despues se l e e la pila y el producto se coloca en la parte superior. En wguida encontramos los dos operandos 5 y 6. reemp-do los dos operandos ori@Ies. sin considerar la organizacidn de su CPU. porque este es el mktodo mBs eficiente para traducir expresiones aritmbticas a instrucciones de lenguaje de máquina. el siguiente shholo es eI operador de multiplicaci6n Esto provoca una multiplicaci6n de los dos datos superiores'en la pila. por lo que ellos se escriben dentro de la pila.

Los bits de la instruccibn se dividen en grupos llamados campos. incluyendo los registros de procesador disponibles y sus posibilidades 16gicas. TambiGn listan todas las instrnicciones que se implantan con hardware. Las operandos que residen en I a memoria se especifican . Las operacionec mas comunes dispoi-iibles en instrucciones de computadora se listah y analizan en la secci6n M. 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. Un campo de modo que especifica la manera en que se determina el operando o la dirección efectiva. En wasiones se emplean otros campos especiaIes bajo ciertas circunstancias. especificaii su formato en c6digo binario y proporcionan una definición precisa de cada instrucci6n. una computadora tendrA varios formatos de c6digos de'instrucciones. Por lo general.Una funci6n de la unidad de control dentro de la CPU es interpretar cada c6digo de instrucción y proporcionar las funciones de control necesarias para procesar la in~trucci6n. Lus diferentes modos de direccionamiento que se han formulado para las computadoras digitales se presentan en la secci6n 8-5. Un campo de código de operacibn que especifica la operaci6n que se va a ejecutar. complementar y corrimiento. U n caknpo de direcci6n que represeata una direcci6n de mmoria o un registro de procésador. Los bits que definen el campo de modo de una instrucci6n especifican diversas alternativas para escoger las operandos de la direcci6n dada. Tales manuales explican la construcci6n interna de I a CPU. El campo de c6digo de operacibn de una instruccibn es uii grupo de bits que define varias operaciones de pracesadar. presentamos el campo de dirección de un formato de instruccihn y consideramos el efecto de incIuir múltiples campos de direcci6n en una instrucción. 8-4 FomaOos de las instnicciones Normalmente las estructuras flsica y 16gica de la computadora se describen en los manuales de referencia que se proporcionan con e l sistema. restar. h s operaciones especificadas mediante instrucciones de computadora se ejecutan sobre algunos datos almacenados en b memoria o en registros de procesador. 2 . Los campos más comunes que se encuentran en los formatos de instrucciones son: l.270 C - OMO Unidad centi:al de prowsamienb una CW organizada con pila puedie ser m8s eficiente en algunas apliracionm :que una CPU sin pila. por ejemplo un campo que proporciona el nhmero de corrimientos en una instnicci6n de tipo corrimiento. En esta sección. 3. como sumar.

El formato de instrucci6n en -te tipo de computadora necesih tres campos de direcci6n de registro. ta mayoría de las computadoras caen en uno de tres tipos de arganizaci6n de. 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 dirección X. Por ejemplo. 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. Las computaddras con miilriples registros de procesador utikan la instrucción de mover con un nemhico MOV para reprecentar una instnicci6n de trangferencia. representad el registro R5. la instnicci6n .SECCI~N M Fomtos de las instniccionec di-& de +sFro mediante sus direcciones de memaria. 3. Organizacibn de acumulador i'mlco. Por ejemplo. Por lo tanto. Todas las instrucciones se ejecutan con un registro de acumulador relacionado. Sólo necesitan especificarse las &&dones de registro para R1 y R2 en ata iÍishucci6n. Un ejemplo de un tipo de organizací6n de registro general se presentd en la figura 7-1. El formato de instrucci6n en este tipo de computadora utiliza un campo de direccibn. B3 pera representar la operación R1 + IC2 + R3. Los operandos que residen en un registro de procesador se especihcan con una direcci6n de registro. Las computadoras pueden tener instrucciones de diferentes tamaiios que contengan una cantidad variable de direcciones. e l nhero binario 010'1. La cantidad de campos de direcciones en el formato de instrucCi6n de una computadora depende de i a organizacibn interna de sus registros. Por 10 tanto. la instnicci6n ADD RltfB2 repxesentarh h operacibn R1 + Rl + R2. 2 Organización de registro general. la instrucci6n para una suma aritmktica puede es~ribime en lenguaje ensamblador como RDD Rlr. La cantidad de campos de dirección en la Vistnieci6n puede reducirse & tres a dos si el registro destino es igual a uno de los registros fuente. Por b tanto. Un ejemplo de una organizaci6n de tipo acumulador es ¡a computadora básica presentada wi e l capitulo 5.CPU: l .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. Organizacihn de pila. la iristmcci6n que especifica una suma arihdtica se define mediante una iiistrucción del lenguaje ensamhlador como ADD X + donde X es la direcci6n del operando. R 2 .

Como consecuencia. los suma y escribe (push) la suma dentro de la pila.M [ a . Las computadoras de tipo de registro general emplean dos o tres campos de dirección en su formato de instrucciones. No es necesario especificar operandos con un campo de direcci6n porque es implícito que d o s están en la pila.RZ "pmenta Ia transferencia R1+ R2 {o E 2t . Por otra parte. Todas las instrucciones aritmi5ticac y ldgicas. e l psocesador intel 8QW tiene un apuntador de pila e . al igual que las instrucciones de carga y almacenamiento.del procesador tienen un formato que contiene dos campos de direccibn de registros. Esto se debe a que h operación se ejecuta sobre los dos datos que están en la parte superior de l a pila. Entonces. La CMJ organizada /con pila se precentó en la figura 8-4 Las computadora~ con organizacidn de pila envían instrucciones PUSH y POP las cuales requeririan un campo de d k d d n . Por l o tanto l a instrucci6n . PUSH X escribir4 la palabra de la direcci6n X a la parte superior de la pila. por lo que estas instrucciones sólo tienen un campo de direccidn.R1. Además. L. Por ejemplo. Una btnireiún representada mediante especificaría la aperaci6n R1 + R1 4. uno para el registro R1 y el otro para la dhxci6n de memoria X. Esta operacibn lee (pop) los dos números superiores de la pila. las instrucciones que transfieren datos entre los siete registros . El apuntador de piia se actualiza en foma antomAtica. e l procesador tiene algunas de las caracteristicas de un tipo de registro general y algunas de las de un tipo acumulador. uno de los males es un registro acumulador. el micraprocesador Intel 8080 tiene sfete registros de CPU. Algunac.-utilizan el registro acumulador. La instrucci6n BDD en una computadora con pila consta de un solo c6digo de operacibn sin campo de direccibn. computadoras combinan caracteristicas de más de una estructura oanizacional.. Cada campo de direcd6n puede especificar un registro de procesador o una palabra de memoria.272 CMfTUW OCHO Unidad mtral de procesamiento nov RL. LA mayoría de las computadoras caen en uno de estos tres tipos de organizacibn que se acaban de describir. las instrucciones de tipo de transferencia neceitan dos rampas de direcci6n para especificar la fuente y el destino. Posee dos campos de d i m i & .ts instrucciones de tipo operaei6n no necesitan un campo de dirección en las computadoras organizadas con pilas. dependiendo de la computadora en particular).

C y D y e l multado deben almacenarse en h memoria en h difeceión X. L a desventaja B que las instrucciones de cddigo binario q u k p e n demasiados biks para especificar t m direcciones. el pn>sesador no @ne iq@ruccionesde tipo de direccionamiento cero. SUB MUL y DIV para las cuatro operaciones aritméticas. instrucciones de tres direcciones Las computadoras con formato de instrucci6n de tres.uno. Emplearemos los slmbalcs ADD. E l símbolo WA]representa el operando en la dirección de memoria que se simboliza mediante A. AQD RlirAIB ADD EUL RZ. bmbién cada campo de dirección puede specificar un registro de pwcesador o qna palabra de memoria. Inshcdonea de dos díreccionqs Las instruccioties de dos direcciones zsonlas d s comunes en las computadoraa comerciales. las cual= son caracterkticas de una CPU ownizada con pila. evaluaremos el siguiente enunciado aritmético utibdo m . B] * {C + D). En *+da. s e muestra el programa en lenguaje ensamblador que evalúa X = (A i. z. S i embargo.instniccionq push y pop desde una pila de memoria. B. En d a s .eia de registros de cada instrucción. junto con comentarios que explican la operaci5n de transferen. y LDAD y STORE para transferencias hacia y desde la memoria y e1 registro AC. Para dar una ejemplo de la influencia de la cantidad de direcciones sobre los programas >decomputadora. R1 y R2. MOV para la operacibn de tipo transferencia.direcciones pueden utilizar cada campo de direcci6n para especificar un registro de procesador o un operando de memoria. dos a tres instrucciones de direccionamiento. Lns formatos de instnxcciones en la computadora C y k están W d o s a trec c a m p de 6 n de registro o a d a campos de d i d h de m g k o y a un campo de -6n de memoria. Un ejempb de uaa computadora comercial que utrliza instrucciones de tres direcciones es la C+t 170. Consideraremos que las operandos es las direcciones de n i e m r í a A. E i programa para evaluar X = (A -i-l?) * {C 23) es como sigue: + . La ventaja del forrnato de tres direcciones es que produce a la brevedad programas cuando wdJa expmiones aritm6tiCas. Cf D 82 X r RZir R2*-H[C] + H[D] M[X] +RS*R2 RI+H[A] + M[B] Se considera que la-computadora tiene dos registros de pmesador.

adonde s operación. E l primer símbolo listado en una instruce transfiere e1 resultado de la ci6n se considera fuente y destino.BB)* (C + D)es todas las LORD ADD STORB EOAD R AC+B[A] RCtA[C] B T C . hshcciones de una direcci6n tas instnicciones de una direcci6si utilizan un registro acumulador (AC) irnpiícito para toda la mmipuhci6n de datos. Para la multiplicacibn y división se necesita un segundo registro. Sin embarga.) + + PUSP PUSH a C r o s t ~ TOS+B TOSt(A P~SH B ADD + B) TOStC . en =te ejemplo no l o tomaremw en cuenta y consideramos que AC contiene el resultado de El programa para waiuar X = (A i.274 KHO Unidad central de pracesamiento MOV ADD HOV ADD RI. D T X RCg-AC + H[D] AOtAC*M[T] M[X]bAC 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. A RlrB R2. Instnicciones de cem direcciones Una computadora organizada con pila no utiliza un campo de direcci6n para las instrucciones ADD y MUL. las instrucciones PUSH y POP necesitan un campo de direeci6n para especificar e l operando que comunica con la pila. Sin embargo. + HIB] M[T]+AC AC+H[CJ ADD MUL STORE de memoria. El siguiente programa muestra d m o se 4 i r 6 X = (A B) * (C D)para una computadora organizada con pila.C RI+M[A] R2. D R2r82 XrRb MDL MOV Rl+RL+M[B] R2+M[C] R Z e R 2 + M[D] RI+Bl*R2 H[XJ+RIi La instnrccibn MOV mueve o transfiere e l operando hacia y desde la memoria y 10s registros del procesador. (TOS significa la parte superior de la pila.

Todas las otras instrucciones se ejecutan dentm de los registros de la CPU s i n transferir* a la memoria. E s t a operacl6n debe realizarse mbfe algunos datos almacenados en registcos de computadora o en palabras de memoria. PUSH ADD MUL Instrucciones RI SC Las ventajas de una arquitectiira de computadora con conjunto de instrucciones reducido (RISC) se explica en la secci5n 8 8 . 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). Las operaciones de sumar y muItiplícar se ejecutan con datos en los registros sin acceder 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. E31 campo de operaci6n de una instruccidn especifica 4 opexaci6n que se va a ejecutar.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. La manera en que eligen los operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción. 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. es necesario convertir la expresi6n a motaci6n polaca inversa. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dwcci6n de la . LOAD LOAD LOAD LOAD ADD ADD ñUL ' R1i +I[A] RZ+H[B] R3 +N [ C ] R4+H[D] STOBE R l + R l i + R2 R3 +B3 + A 4 R1i +R$* R3 N[XJ +RIi Las instrucciones de carga transfieren los operandos de la memoria a registras de la CPU. El resultado de los c6lculos se guarda despuks en la memoria con una inshucci6n de almacenar. 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.

2. Ejecutar la insmicción. puede representar una di~eccibnde memoria o un tegistm de próeesadot. Pueden definirse instrucciones con &&so$ madd de direccionarniento y. El c6diga de operaci6n la operadón que se va a ejecutar. contaáor de programa IPC) ampo de modo Hay un registro en la computadora llamado contador de programa o PC. Un ejemplo de un € b m t o de hshuccibn con un campo de modo de direccionamiento distinto se muestra en la figura 84. La decodificacibn realizada en el paso 2 determina la qxraci6n que se va a ejecutar. 3.276 0 Unidad ~entra1 de p m m i e n t o instrucci6n anta de que se haga la refehcia real al operando. contadores para control de ciclo. Para comprender 10s diferentes modos de direecionamiento que se presentarh en esta sección. Además. Después la computadora ejecuta la instniccihn y regresa al paso 1 para hacer l a búsqueda de l a siguiente instrucción en secuencia. 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. es imperativo e n h d e r el ciclo de operaci6n bAsh de la computadora. 2. El campo de modo se utiliza para ubicm los +randas necesarios para la operarihn. 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: 1 . En algunas computadoras el modo de direccionamiento de la instnicci6n se especifica con un código biario diitititd. se combinan dos o m8s modos de direccionamiento en una insbruccibn. Si hay uno. como se hace con e l caigo de op"aci6n. PC coagene la direeoi6n de la siguiente instrucción que s e va a ejecutar y se incrementa cada vez que se recupera una instrucción de la memoria. Búsqueda de i a instrucci6n de la memoria. que lleva un registro de las instrucciones del programa almacenado en la memo&. en ocasiones. Decodificar la instrueci6n. Puede haber o no un campo *dedireccionamiento en la instrucción. in&aci6n de datos y reubicación de programas. Reducir la cantidad de bits en el campo de direccionamiento de la iastnicci6n. como se . el modo de dinxcionamiento de h instnicci6n y la posici6n de los operandos. Proporcionar al usuario versatilidad de programacidn al ofrecer facilidades como apuntadores a memoria. Las computadora~utilizan técnicas de modo de direccionamiento para acomodar una o las das siguientes consideraciones: 1. Otras computadoras utilizan un c6digo binario único que representa la operaci6n y el modo de la instrucción.

Modo Direaibn I w n campo de modo. Se mencionb antes que el campo de direcci6n de una instrucci6n puede especifkar una palabra de memoria o un registro de pmesador. Modo implícito: En este modo se especifican los qperandos en forma implícita en la definicibn de la inst'nicci6n. Se seieccioni el registro particular de un campo de registro en la insfrkcidn. Ahtes de utilizar una instrucción de modo indirecto par registro. Cuando el campo de direcci6n especifica un registro de prccesador se dice que la instnicción estii en modo de registro. Un campo k bik puede especificar cualquiera de 2k registros.SECU~NM Modos de direEcionarniento 277 analiz6 en l a seccibn anterior. la instrucción "complementaracumulador"es una instmcci6n de modo implícito porque e l operando en el registro dk acumulador est5 impliako en la definicibn de la instrucci&n. una instrucci6n de modo inmediato tiene un campo de operando. En tras palabras. y cada campo de direccibn puede estar asociado con su propio modo de direccionamieno particular. Modo dé registro: En este modo. Modo indiregto por registro: En este modo la instrucción especifica un registro en' la CPU cuyo contenido proporciona la direccidn del operando en la memoria. Son los modm hnplfcito e inmediato. al registro seleccionada contiene la d i ci6n del operando en lugar del operando mismo. el programador debe asegurarse . hay dos modos que no necesitan el campo de dirección. Las instrucciones de modo inmediato son ' Útiles para inicializar registMs en un valor constante. en lugar de un campo de d i r d 6 n . Figura 3 4 Formato de instru~iones Las instrucciones de direccidn cero en una computadora organizada con pila son hstrucciones de modo implícito parque esth implícito que los operandas estdn en la parte supetior de la pila. Un campo de operando contiene el operando real que se va a usar jmto con la operacibn especificada en la insttucci6n. los operandos están en registros que residen dentro de la CPU.. Por ejemplo. 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 instrucción. Modo inmediato: En este modo se especifica el operando en la instrucción misma: En otras palabras.D e hecho todas las instrucciones de referencia a registro que utilizan un acumulador son instrucciones de modo implícito. la inctrueci6n puede tener mAs de un campo de d i d b n .

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 necesitaría para especificar una diremi611de. Entonces uría referencia al registro es equivalente a especificar una d h x i 6 n de memoria. es necesario incrementar o decremenfar el registro despuks de cada acceso a la tabla. Es Ia direccidn en que e l control se transfiere en respuesta a una instmccidn de tipo brinco. pero en ocasiones es sbla una direccidn desde la cual se calcula la di~ecci6ndel operando. El m& de direccionarniento indirecto también se explica e n la d n 5-1 junto con la figura 5-2. el campo de direccibn de la inskucci6n proporciona la dimtibn en que se almacena la direcci6n fectiva en la memoria. Esi una instrucci6n de tipo brinco el campo de dirección especifica la d h i 6 n de transferencia de control del programa real. La unidad de control en la CPU utiliza el campo de direccibn para obtener e l operando de la memoria. Ya hemos defiriido dos modos de direccionamienta en el capíhiio 5. memoria en forma directa. La direecibn ejectiva s e define como la &mi611de memoria obtenida del dlculo. direccibn efedivu Modo de autoincremento o autodecremento: Este es similar al modo de registro indirecto. Se resumen aquí para que sirvan de referencia. Sin embargo.part. El control recupera la instrucci6n de la memoria y tiliza su. En ocasiones el valor que se proporciona en e l campo de direccibn es la direccibn del operando. La ventaja de una instaicci6. La dimi6n efectiva es la direccibn del operando en una inshuccidn de tipo cornputacional. ' .ede +direecibnpara accesar la memoria una vez m As con e l fin &-&le leer la dimci6n efedtlva. excepto en que e l registro se ipcremenb o decremenka despu& (o antes) de que su valor se utilice para a-r la memoria. algupas computadoras incorporan un modo especial que incremenb o d e crementa en forma automática el contenido del registro después de cada acceso de datos. Esto puede lograrse al usar la instruccibn de incrementar o decrementar. Modo de direccionamiento indirecto: En =te modo. fijado mediante el modo de difeccionamiento proporcionado. Para poder diferenciar los distintos modos de direccionamiento es necesario distinguir entre la parte de dirección de la inctmcci6n y la dirección ef-ctiva utilizada por e l rontxol cuando ejecutit la instruccidn. como este es un requisito común. 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 instrucción. Cuando la direccibn almacenada en el registro hace referencia a una tabla de datos en la memoria. 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.278 -0 Unidad central de pmesamiento de que la dimcihn de memoria del' operado está colacada en e1 registro del prmesador con u n a instru& previa. .

Para hacer más claro con un ejemplo. el resultado produce u n a direccibn efectiva cuya posición en la memoria es &tiva a la dirección de la siguiente uistmcción. 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. un registro de índice o un registro base. Un campo de direcci6n de h instnicci6n define la dirección inicial del arreglo de datos en la memoria. Esto es 24 posiciones de memoria adelante de la dirección de la siguiente hhucci6n.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 d k c i 6 n efectiva = parte de direccidn de la instrucci6n -t. Modo de di~eccionamiento relativo: En este modo el contenido del cantador de programa se suma a la parte de dirección de la instruccibn para obtener la direccián efectiva. El registro índice puede i n m mentar= para facilitar el acceso a operandos consecutivos. El registro índice es un registro de CPU especial que contiene un vaBr índice. .Cualquier aperando en el arreglo puede accesarse con la misma instruccidn siempre y cuando el registro Modo de direccionamienfo indexado: En indice contenga el valor de índice correcto. En cualquier caso tenemos un modo de dimcimamiento diferente que se utiliaa para una aplicación distinta. consideremos que e l contador de programa contiene el número y que i a parte de direcci6n de la instruccibn conkiene el número 24. N6tese que si una instrucci6n de tipo índice no incluye un campo de direcci6n en su formato.el contenido de [registro de CPU E l registro de CPU utilizado en el cdcuio puede ser el contador de programa. E 1 ciilculo de dreccibn efectiva para el modo de direecidn relativa es 826 + 24 = 850. 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. cuando la direccidn del brinco está en el Brea que m i e a la palabra de la instrucci6n misma. la instrucci6n se convierte al modo de operaci6n de indirecto por registro. Con frecuencia se utrliza el direccionamiento relativo con instrucciones de tipo brinco. Cada opando del arreglo &e almacena en la memoria m relaci6n con la direcci6n inicial. Esto da como resultado un campo de direcci6n más pequefio en el formato de la instnicción porque la dirección 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. Cuando se suma este número al contenido del contador de prugrama. ta parte de direcci6n de la instruccibn por lo general es un número con signo (en representacibn de complemento a 2) el cual puede ser positivo o negativo. 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.

de desplazamiento de h s instrucciones no tienen que cambiar. El cantenido del registro de procesador R1 es m. D e rnanera hplicita este registro participa cuando se utiIiza una inshcci6d de modo índice. 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. y la segunda palabra especifica la parte de la dirección. 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. e l registro debe estar especificado en forma explícita en un campo de registro dentro del formato de instruca6n. En el modo inmediato Ejemplo numénce Para mostrar las diferencias entre los diferenv modos. La figura lista unas cuantas direcciones pertinentes y muestra el contenido de la memotia en cada una de ellas. En las computadora~con muchos registros de procesador. cualquiera de los registros de la CBU pueden contener el número de Endice. PC tiene e l valor 200 para . jd J . Se considera que un ~registmíndice contiene un n~mero de índice que se relaciona con la parte de d W 6 n de h insf-nicd6n. 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. veremos e l ejemplo de los modos de direccionamiento sobre Ias instrucciones que se definen en la figura 87.direccionamiento de registro base se utiliza m las computadoras para facilitar la locaikaci6n de las. Cuando se mueven datm y programas de un segmento: de memoria a atra. programas en memoria. E 1 modo de .280 m OMP Unidad mtrd de procesamiento Algunas c~rmputad~ras dedican m r e g i s t r o de CPU para que funcione exclusivamente como m registro indice. los valores de d i i b n de b s instrucciones deben reflejar esle cambio de posición. como se requiere en los sistemas de multiprogramacibn. 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 . Esto es similat' al modo de direccionamiento indexado. Modo de didonamiento de xegistro base: En este modo. y el contenido de un registro hdice XR es 100. Se considera que un registro base contiene una dkcú6n base y que el campo de direccibn de la instrucción proporciona un desplazamiento en relacibn con esta direcci6n base. m recuperar esta instcucclbn. AC recibe e I operando despu4s de que se ejecuta h instnicci6n. Con un registro base los p e valores. e l contenido de un registiro base se suma a la parte de direcci6n de la instnicci6n para obtener la dirección efectiva.inctrucci6n especifica e l código de operacibn y modo. En tal caso. excepto en que e l registro se denomina ahora registro base. Para cada modo posible calculamos la direcei6n efectiva y el operand o que debe cargarse dentro de AC. El campo de modo de la instruccibn puede especificar uno de varios modos.

E l modo .) el modo indirecto se almacena la direcci6n efectiva de la memoria en la direcci6n 500. @ n este caso no hay una dimi611 efediva. excepto en que R1 se incrementa a 401 despu& de la ejecuci6n de b instnicciñn. igual al contenido de R1 y el operando cargado en AC es 7ílO. la segunda palabra de la instrucción se toma como el operando m á s que como direccih por lo que se carga 500 dentro de AC.) En e l modo indirecto de registro la dirqci6n efectiva es 400. la direccibn efectiva es 500 202 702 y el operando es 325. En e l modo de registro el operando está en R1 y se carga 400 dentro de AC. + + . (En este caso la direcci6n efectiva es 201.de autodecremento decrementa R1 a 399 antes de la ejecuci6n de la instrucci6n. En el modo relativo.) En el modo de índice la dirección efectiva es XR + 500 = 100 + 500 = 600 y el operando es 900. (N6tese que e l valor eri PC. --hkrirn Memoria Figura 8-7 Ejemplo nurn6ricq para modas de diceccionamiento. Por lo tanto.* 6 SEWI~N C L T Modos de di-ionamiento 281 u. la direcci6n efectiva es 8 0 y el operando es 300. El modo de autoincremento es igual que el modlo indirecto de registro. 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. despds de la fase de recuperaci6n y durante la fase de ejecución es 202. E l operando que se carga en AC es. ahora W .

El canjunto de operaciones básicas dispnibles en una computadora tipita = e1 objeto que se cubre eri esta semi613y la siguiienk. 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. 3.y de corrimiento. Las instrucciones de manipulaci6n de datas son las que realizan operaciones arihn&ticas.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 Transferencia y manipulacibn de los datos confunto de operaciones hdsfcas Las computadoras proporcionan un amplio conjunto de instrucciones para dar al usuario Ia flexibilidad de realizar diferentes tareas cornputacionales.son muy &rentec de una computadora a otra. aun para la misma instruccidn. hay un conjunto básico de operaciones que gran parte. Instrucciones de transferencia de dms. 2.lbgicas . si no es que todas las computadaras incluyen en su repertorio de instmccionq. E l conjunto de instrucciones de una computadora particdar d e t e d a . 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. aun para la misma operaci6n. El conjunto de instrucciones de diferentes computadoras varía de una a otra sobre todo en la manera en que los operandos se determinan de las campos de direcciones. ta mayor parte de instrucciones de computadora pueden clasificarse en tres categorhs: 1 . Instrucciones de manipulaciBn de datos. Instrucciones de control de programa. Las operaciones reales disponibles en el conjunto de instnicci* nes no. No obstante. Las instrucciones de transferencia de datos producen una transferencia de datos de una localidad a otra sin cambiar el contenida de la informaci6n binaria. Tambih puede suceder que el nombre shwlico asignado a instrucciones en la notaci6n de lenguaje ensamblador sea diferente en varias computadoras.

por lo general un acumulador. bebe recordarse que las instrucciones que se listan en Ia tabla 8-5. A cada instruccibn le acompaña un nembnFm. Las instrucciones push (empfir) y pop (snlfar) transfiere0 datos entm registros del procesador y una pila de memor'ia. . clda. el nemónico para m .s de d a m entre registros de C??U y la. I@ruccbnes de .salida y entre loa mismos registros del procesadoic. piemoria o entre dos palabras de memoria. La tabla 8-5 proporciona una lista de ocho instrucciones de transferencia de datos que se u&n en muchas computadoras. TABLA 8. del p~ocesador y memoria.a+qipbi Sai1L. que en Ias tabhs sipuientes en esta seccibn.ioria.instruccidn storg (alnrncennr) representa una transfev c i a de un registrp de p m o r a 1%m. -:r l. Las transferencias más comunes son enhe registros.Lainshccí611exchadge iintercaltibiar) cambia la informaci6n entre dos registros o un registro y una palabra de memoria. L a instrucción load (cargar) se ha usada principalmente para designar una transferencia de memoria a un registro de pragramaci61-1. al igual .LD ST MOV InkrmmbLr Entrada . ".a~ Ciilida POP . . Tambi4n s e ha usado para transfere0cia. Debe recoda* que dihrentes computadoras usan nem6nicos distintw para el mismo hombre de instrucción.&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 aperacim de transferencia de regisws y controla las decisiones disponblw para el usuario. Las hj "struc$"es input (intruducir) y output [sacar) transfieren datos entre registros del prwesadqr y tepinales de entrada o saiida.5 Xns&uccionesde transhncia & datós tipica Cargar Alrnamr kilovet . con frecuencia están asociada's C o n diversos modós de direccionamiento. La. La instrucci6n mov (rnuver) se ha usado en las ca~putadorascon -istrw rnGltiples de CPU para designar una transferencia de un a otro.WH I N OUT PUIMi. Algunas nomias del lenguaje ensaniblador modifican 14símbolo nembnico para diferenciar entre los diversos modos de direccionamiento. Por ejempla. entre registros de+ pr<rcesadar y etibda a .

el nombre del regisffo que contiene la dimcci6n de memoria se encierra entre paréntesis.M[RI]. R1. Una instrucci6n de modo indexado se reconoce por un registro que se coloca entre paréntesis despuCs de la dirección simb6lica. El carácter B simboliza una ditwei6n indirecta. E 1 caracter $ antes de una dirección hace el direccionamiento relativo al contador de programa PC. R1 es un registro de procesador.M[R1] AC c. b importante es entender que cada histnicci6n puede ocurrir con diversos modos de direccionamiento. El carhcter # precede al operando en una instruccibn de modo inmediato.R1 AC *.R1 /'" cargar de inmediato se convierte en LDI. 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. y AC es el registro acumulador. La tabla 8-6 muestra la convenci6n recomendada del lenguaje ensarnblador y la transferencia real que se logra en cada caso. Como ejemplo. Otras normas del lenguaje ensamblador utilizan un carácter especial para asignar el m d o de direccionarniento. ADR r e p m t a una direccibn. Por ejemplo. e l modo inmediato se reconoce por un signo # colocado antes del operando.2@ m ~ M O Unidad central de procesamiento TABLA &ú Ocho modos de direccionamientop r a la inhducción cargar Convencirin en 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 Registro Indirecto por registro Aytoincirmento LD R1 LD (Rl) LD [R\)+ XR] A C . X es un registro de índice. En cualquier casa. Instnicciones de manipulación de los datos L a s instrucciones de manipulación de datos ejecutan operaciones sobre los datos y proporcionan las posibilidades computacionales para la computad* . El modo de registro se simboliza al proporcionar el nombre de un registro de procesador. El modo de autoinaemeito s e distingue del modo indirecto por regictro al colocar un signo de mas después del registro entre padntesis. consideremos la instrucci6n cargar d ammulador cuando se usa con ocho modos de diteccionamiento d i f e m ~ . NBR es un ndmero u operando. A su vez e l modo de autodecremento utilizaría un signo de menos. En el modo indirecto por registro.

Algunas de las instrucciones aritméticas necesitan circuitos especiales para su impIantaci6n. & c i S n de datos en una computadora tipica se dividen por l o general en tres tipos bdsicw l . INC DEC ADD 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 .SECQ~N 8 4 Tradxencia y manipulación 285 ra. Las instruaiones & M p . También deben traerse los operandos a los registros del piocesadar. . La multiplicaci6n y ¡a divisi6n deben generarse mediante subrutinas del software. Si embargo. Instrucciones aritmdticas las cuatro operaciones aritméticas básicas son suma. En la tabla 8-7 se proporciona una lista de las instrucciones aritm4ticas tipicas.deacuerdo con las reglas del morir>de direccionamiento de i&tnicci6n. La mayoría de las computadoras proporcionan instrucciones para las cuatro operaciones. a instmcciona de corrimiento Una lista de instrucciones de manipukaei6n de datos M parecera mhrho a la lista de micrmperaciones que se proporcionó en el capituIo 4. la computadora d e k recorfer la fase de remperaci6n para leer su valor de código binario de la memoria. resta. La instnieci6n de incrementar suma 1 al valor almacenado en un TABLA 8-7 Imttwiones arilméticas tipicas Nembnico lncremcntar Pmmentar Sirmar . resta. L a s ctrátro operaciones ariticas basicas son suficiente^ para formular salucionss a problemas científicos cuando se expresan en términos de mCtodos de análisis numbrico. Algunas computadoras pequeñas dlo tienen las instrucciones suma y. según se explic6 en el capitulo 4 o por medio.recordarse que cuando se ejecuta tal instrucdbn. E l 6 1 h o paso e s ejecutar la instnrccibn m el procesador.de una ALU y un cirt~to de corrimiento como se muestra en la figura 8-2. multiplicación y división. debe. Este último paso s e implanta mediante microoperaciane. instrucciones aritmeticas 2 inskmcciones 16gkas y de manipulaci6n de bits. tal vez.

se muestran los nemdnicos para tres instrucciones de suma que especifican tipos de datos diferentes. datos binarios o derimales. La instruecidn para decrementar resta 1 de un valor ah4cenado en un registro o palabra de memoria. la inshueci6n "restar con prktamo" resta dos palabras y un préstamo que puede haberse producido de una operación de resta previa. produce un resultado de 9610 agitas O cuando se incrementa. La cantidad de bits en cualquier -tro es de extensi6n finita y. ia instrucción "sumar con acarreo" realiza la s u m a de dos operandos más el valor del acarreo dd c2ilculo previo. L a s instrucciones lógicas consideran en forma separada cada bit del operando y b tratan como una variable booleana. La instntccibn negar forma el complementa a 2 de un numero. punto flotante y arihktica decimal se desarrollan en el capitulo 10. ADD 1 ADDF ADDD Sumar dos niimeros enteros de punto flotante Sumar dos números de punto flotante Sumar dos n b e r o s decimales en BCD Los algoritmos para operaciones con enteros. Una caracteristica comiin de las operaciones de incremenhr.en las d e s el tamaño de cada operando es de dos palabras de memoria. restar. cuando se ejecutan en regishos de pr~esador. Una instruccibn aritrnbtica puede especificar datos de punto fijo o flotante. Un flip-flop especial de acarreo se utiliza para almacenar el acarreo de una operaci6n. produce un ndmero con sólo digitm 1 cuando se decrementa.es que un número binacio que contiene &lo digiba 1. De igual manera. iipo ds d a h Las hstrucciones sumar. los resulhdw de las operaciones aritrn6ticas son de precisibn finita. Son útiles para manipular biis individuales o un grupo de bits que represente información en c6digo binario. La mayoría de Ias computadoras pequeñas proporcionan instrucciones especiales para facilitar la arihngtiea de doble precisi6n. ae incluyen en la definicidn del código de operación. En seguida. instnrcciones Ihgicas y de manipulación de bits Las instrucciones ldgicas ejecutan operaciones binarias sobre series de bits almacenadas en registros. datos de preciaibn h i c a o de doble precisi6n. por lo tanto. invirtiendo en forma efectiva el signo de un enkm cuando se representa en forma de complemento a 2 con signo. Mediante una aplicación adecuada de las . Un niimero con &lo díatos 0. multiplicar y d h i d i pueden estar dispadbles para diferentes tipos de datos. 'los tipos de datos que se considera que están en los registros dei p m d o r durante h ejecuci6n de estas operaciones aritméticas.286 MFílWB m 0 Unidad central de prriwsamieniw registro o palabra de memoria. No es extraño encontrar computadoras con tres o más instrucciones de suma: una para enteros binariost una para operandm de punto flotante y una para operandas decimales. Algunas computadoras proporcionan operaciones de hardware de doble precisi611. Los diferentes tipos de datos se presentaron en el capítulo 3.

- CLR C O M AND OR XOR CLRC SETC COMC Compkmentar a c a m Habiliwr intemi@&n IXd~ñG~itar i n e i 6 n E 1 DI . activarbe en 1. La instrucci6n AND se utiliza para borrar un bit o un grupo seleccionado de bits de un operando. se aplican las tres instrucciones 16gicas para hacer &lo esa. la htnidón O R puede utikarse para ackiva~ TABLA ü-ü h t n i c E i w 16giaii y de manipdaci6nde bits tipicas desactivar bits sebccionados activar los bits' seleccio~ados Bomr Complementar Aplicar la funci6n AND Apliar la furici6n OR Aplicar la funci6n. Aunque realizan operacbonm hleanas. p e w la variable no cambia cuando se le aplica OR eon un O. o puede compJementarse. pero la variable no cambia de valor cuando se le aplica un AND con un 1 . las relaciones xbO = O y xbl = x dictan .instrucciones Igicas. emplear un grupo de bits o insertar nuevos vahres de bib m los operandos almacenados en registros o palabras de memoria.OR exclusiva Desactivar a Acti~. Las instrucciones AND. Algunas instrucciones I6gicag y de manipulación de bits típicas s e Ustan en la tabla M . deben considerarse que las instmccianes ejecutan operacb~es de manipulaci6n de bits cudndo se usan en instrucciones de computadora. 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 instnicci6n 0 R se u tiliza para activar un bit o un grupo seleccionado de bits de un operando. las relaciones x + 1 = 1 y x + O = x dictan queana variable binaría a la que se le aplica 0 R con un 1 produce un 1. La instrueribn de borrar hace que e l operando especificado se sustituya con 0. porque enmascara o inserta O en una parte seleccionada de un operando. Par lo tanto. Para cualquier variable booleana x. Existen tres operaciones de manipulacibn de bits posibles: un bit seleccionado puede borrarse a 0. Por lo general. Para cualquier variable booleana x.m a . OR y XOR producen las operaciones 16gicas correspondientes sobre los bits individuales de las operandos. Por l o tanto. La instruccibn AND t'ambign se llama máscara.que una variable binaria a la que se le haya aplicado un AND con un O produce un O . es posible cambiar los vabres de bits. La instrucci6n complementar produce el complemento a 1 al invertir todos los bits del operando.

La instrucci6n aritm6tica de corrimiento a Ia derecha debe preservar el bit de signo en la posicih al extremo izquierdo. En -lquier caso. m a variable binaria se complementa mando se le aplica XOR cbn un 1 . el corrimiento puede ser a la derecha o a la izquierda.de manipulación de bits. De igual forma. Otro ejemplo es un fip-ílop que controla la opción de inkrrupci6n y se habilita o deshaMita mediante instrüccioríes . 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 . . loe c o ~ e n aritméticos b se apegan a h s reglas para los ntimeros de complemento a 2 can signo. a c t i v m a complementarse eon las instruccioneis aprbpiadas. Los M Y s individual@ [como los de un acarreo) pueden borrarse.u Q 0: = x. Estas reglas se proporcionan en la d 6 n 4-6. la.iliza para complementar bits de un operando en f a m a &&va. t o s corrimientos son operaciones en las cuales l o s bits de una palabra se recorren a la izquierda o derecha. 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. aritmdticos u operaciones de tipo rotatorio. btmccibn XOR se ut. Instrucciones de corrimiento Las instrucciones para recorrer e l contenido de un operando son muy ames y se ~fkecertcon frecuencia en diversas variaciones. El bit que sé recorre al extremo de la palabra determina el tipo de corrimiento que utiliza. Por lo general. En la k c i b n 4 5 se muestran ejemplos numbrims de las tres operaciones lógicas. 1319 la tabla 8-8 se induym algunas otras-'~~l~trucciones de manipulaciijn de bits. L . pero no cambia en vdlof cuando se le aplica XOR con un O.Bto se debe a Ia relaci6n hiena x @ 1 = x' y . al aplicar OR con otro operando con dígitcw 1 en las p d o n w de bits que deben activarse: m 1. El corrimiento lbgico inserta un O al de la posici6n final de bit. La tabla 8-9 lista cuatro tipos de instrucciones de corrimiento.completar los bits s e ~ m d o i biis de un operanrto en f o m dwtiva. Por b tanto. Las instrucciones de arrimiento pueden especificar conirnientos 16gicos.

computadoras tienen un formato de carapo múltiple para las instrucciones de corrimiento. La inslnicci6n de mtaci6n a través . Los bit6 recorridos en un extremo de la palabra no se pierden en un desplazamiento ldgiao.bit de acarreo trata al bit de acarreo como una extensidn del registro cuya palabra se está mtando. la direccibn y la cantidad de corrimientos.1 corrimientOs.recorre todo el registro a Ia izquierda. 8-7 Control del. toda en una sola instrucci6n.del . . un tipo de instrucci6n de contra1 de programa. Cuando se procesan en la CPU. las instrucciones se recuperan de localidades de memoria consecutivas y se ejecutan. Algunas. Por otra parte. Un formato de código 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 . La instmcci6n de corrimiento aritmgtico a l a izquierda inserta O en l a posici6n final y es idéntica a la instrucción I6gica de corrimiento a la izquierda. 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 . transfiere la posici6n de la extrema izqukrda al acarreo y. pero e l bit de signo no cambia. Por esta r&n muchas computadoras no proporcionan una instrucción distinta de corrimiento aBtm&tico a la izquierda cuando ya está di&pom%ie la inchccibn de coxrimiento lb@eo a la izquierda. Un campo contiene el código de operaci6n y los otros especifican e l tipo de corrimiento y la cantidad de veces que se va a recorrer un operando. Cada vez que se recupera una instruccibn de la memoria.programa Las instrucciones siempre se almacenan en localidades de memoria sucesivas. 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. 'l"YPE es un campo de 2 bits que espeeifiea las cuatro diferentes tipos de corrimientos.dec6digo de operación. al mismo tiempo. el control retorna al ciclo de recuperaci6n con d contador de programa que contiene la dirección de la siguiente instrucción de m e n c i a . Las instrucciones-de rotacibn producen un carrimiento circular. Con tal formato es posible especificar el tipo de corrimiento.c ~ mw ó Conkol ~ del programa 289 derecha junto con el resto dd número. Después de Ia ejecucibn de una instrucci6n de transferencia de datos o de manipulacibn de datos. Por l o tanto. Esta es una operación de combnhfo a la derecha en la que el bit final permanece igual. pero se hacen circular hasta d otro extremo. REG es una direccidn de W t r o que especifica la posici6n del operando. el contador de programa se incrementa para que contenga la direcci6n de la siguiente instnicci6n en secuencia.

Esta es una caracte~isticaimportante en las computadoras digitales. Como d contador de programa contiene la dirección de la instrumidn que se va . Está escrita en lenguaje emmblador como BR ADR. Una instnicci6n de transferencia incondicional produce un brinco a la clkccici6n especificada sin ninguna mndicibn. Por lo general. donde ADR es un nombre simb6lico para la dirección. Algunas ~struccioriias de control de programa típicas se listan en la tabla 8-10. h transferencia del control es una instrucci6n de una direcci6n. k t siguiente instnteci6n provendrai de la 1ocaIidad ADR. tal como un brinco si es positivo o brinco si es cero. ias uistrucciones de transferencia del corrtrol y brincar pueden ser condicionales o incondicionales. pero en ocasiones se utilizan para denotar modw de dmcianamiento diferentes. S i no se cumple la condici6n. 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. La instnicci6n de transferencia condicional especifica una condición. puede cambiar e1 valor de la ditemi511en el contador del progra~na y prov~ar que se altere el flujo de control. mientrae que las instrucciones de transferencia y manipdaci6n de datos especifican condiciones para operacioneS de procesamiento de datos.290 C m0 Unidad ~ e n t t ade i procesamiento cuando se ejecuta. Las instrucciones de transferir el coním1 y brincar se usan en forma intercambiable y representan I o misma. las instrucciones de contra1 de pmgraha ~pecifican condiciones para alterar eI contenido del contador de programa. E l cambio en el valor del contador del .. Cuando se ejecuta provoca una trmsferencia del valor de ADR m el contador de programa.a ejecutar. el contador de programa no d i a y la siguiente instnicci6n se torna de la . En otras palabras. porque proporciona un coritmol sobre el flujo de ejecueibn de un programa y h pmibitidad de transferir él control a diferentm segmentos de1 programa. 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 . prograrria como resultado de la ejeucibn de una instruccibn de control de programa provoca m "ruptura"en la sezilentia de ejecuci6n de instrucciones. S i se cumple la condicidn. siguiente localidad en secuencia.

S. se activan ciertos bits de condiciones de estado como resultado de la operacibn. Su daempefío e imphntaci6n se analizan m6s adelante en esta secci6n. 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. donde el programador inserta una instnicci6n de brinco incondicional. La figura 8-8 muestra eI diagrama de bloque de una ALU de 8 bits con un registro de estado de 4 bits. pero no se conserva el resultado de la operaci6n. Las instrucciones de llamada y regreso se utilizan junto con subrutinas. Una instrucción de comparar ejecuta una resta entre dos operandos. Z y V. una indicacibn de cero y una condición de sobreflujo. 3.'. Se desactiva a O de cualquier otra manera. Z = 1 si la salida es cero y Z = O si la d i d a es d i t e de cero. L2ia instrucciones de comparar y probar no cambian la secuencia del programa en forma directa. Por lo t a n t o . Están listadas en la tabla 8-10 par su aplicaci6n al estable cer condiciones para instrucciones de brinco condicional subsecuentes. Se desactiva a O s i el acarreo es O. S i n embargo. En otras palabras. Si la condicibn no se cumple. e~ 1. se desactiva en O si el bit es O. Los bits de estado de interks son el bit de acarreo. Lus bits de estado tambi6n se llaman b i t s de d i g o de condicidn a bits de bandera. además de lo que se incrementa durante la fase de recuperación. Esto se logra al incrementar el contador de programa durante la fase de ejecucibn. mientras una sola instnicci6n de brinco condicional produce una transferencia si se cumple la condicidn. Bits de condiciones de estado En ocasiones es conveniente complementar el circuito de la ALU en la CPU con un registro de estado en que puedan almacenarse los bits de condiciones de estado para un anelisis posterior. Z X3I bit C (acarreo) se activa en 1 si d acarreo final C.Zns bits se activan o dsactivan como resultado de una operacidn ejecutada en la ALU. El bit V (sabreflujo) se activa en 1 si la O R exclusiva de los dtimos dos acarreos es igual a 1 y de cualquier otra manera se desactiva a . E I bit S (signo) se activa en 1 si el bit de orden m á s allo F. Primero se anabrA la generacidn de estoa bits de estado y después mmtramos cbmo se utilizan en instrucciones de brinco condicional. 2. el control avanza a la siguiente instmccihn en secuencia.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. Los cuatro bits de estado se representan mediante C. Una instnrcci6n de brinco condicional brincara la siguiente instrucción si se cumple una condici6n. es 1. El bit Z (cero)se activa en 1 si la salida de la ALU contiene dio ceroe. el bit de signo. un par de instrucciones de brinco y transferench del control provocan un brinco si no se cumple la condicih. 4.

2 (véaw . e~ aetiva el bit de estado 2 . optaci6n AND con la ~ ~ c c i 6TEST 1 i que se lista en l a tabla 8 1 0 . indica que A = B. S i Z se activa después de una operaci6n OR exclusiva. donde x es e l bit que se va a comprobar-.la sección 33). S i 2 = O.si debe mantenerse el corthido onginsI de A. . Por ejemplo. se desactiva el bit 2 pue$ el resultada es diferente de cero. V = 1 d la. Puede verificarse un bit dnico en A para determinar s i está .ron signo. '8 lr Salida F Figuta m Bits de registro de estado.enO o 1 al m a m a r todos los bits excepto el bit en cuestión y después d c a r el bit de estado 2. Esta es la condición para un sobrefiujo cuando los números negativos están . lo cual activa e3 bit 2. salida e s mayor que 127 o menor que 228. La operaci'bn AND de A con B = OUOlOOOO @uce un resultado OOOxMH10. Puede gemrdrse la. - + heden verificarse los bits de estado despues de una operación ALU para determinar *ciertas mlaciones que existen entre lm valores de A y B. sea A = 101x1100.'8 Ir c 7 ALU de 8 bits cg 1i AL F. pero ei xx' =. indica una m d i c i n de sobreflujo.enmmplements a . Para la AUI de 8 bik. y la OR exclusiva de dos operandos iguales proporciona icn resultado de 5610 nilimeros 0. O.1. S i R activa el bft P despues de h suma de dos números.1'8 I I . F7-F0 11 A h r n p r o h r una salida O 11 . Esto se debe a que x @ x = O.

mayor que Brincar M. e s mayor o igual . Por lo tanto BC es brincar en el.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 .= & 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. Brincarsi no hay sobrduio Z=O C= 1 C=O S=O S=1 V= 1 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 Brincñr 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.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 . Si no. El bit de acarreo se utiliza para comprobar si hay un acarreo de la posici6n de bit más significativa de la ALU. salto) y una abreviatura del nombre de la coqdici6n.~ndicional -7 -m-' Nemónico eondicihde tmnsfqncia Condición probada 2 . 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. S i la condicihn planteada es cierta. llamar o retornar. programa mas comunes. Las instrucciones condicionais pueden a a ~ ~ i a r s tambidn e con las instrucciones del tipo de control de programa brincar. se transfiere el cmtrol del programa a l a dirección especificada por la instrucci6n. Cuando se usa e l estado de condici6n opuesta. el control continúa con la instnicci6n que sigue. Cada nem6nico estA formulado con la letra B (por branch.acarreo y BNC es brincar cuando no hay acarreo. interrumpe.iones para comparar con signo (A Eriqcñr si es. También se wa junto con las instrucciones de rotaci6n para verificar el bit más significativo recorrido de un registro dentro de la posici6n de TABLA 8-31 Instrucciones de tmnsfereneia de mn&iI. se inserta la letra N (no) para definir el estado 0.

Por l o tanto. el resultado bmrio 11O111OO S el equivalente del decimal 220. El bit de signo refleja d estado del bit más significativo de la salida de la ALU. V = O porque Im últimos dos acarreos son iguales a 1 y Z = O porque el resultado es diferente de O. ya sea que no tengan signo o estén en 'epresentaci6n de complemento a 2 con signo (véase el capitulo 3).B. Algunas computadoras proporcionan instrucciones de transferencia del control del programa condicionales que pueden aplicarse exactamente después de la ejecución de una instniccidn de comparar.128. Si consideramos números sin signo. 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. Por l o tanto. S = 1 porque el bit a la extrema izquierda ea 1. Consideremos una ALU de 8 bits. un brinco sobre más comprueba un bit de signo en O y un brinco sobre menos comprueba un bit de signo en 1. parece igual para los números con signo y s i n signo. Sean A = 1 1 1 1 O O O O y B = 00010100. C = 1 porque hay un acarreo de I a última etapa.13. Para ejecutar A . digamos sl . Sin embarga. $amo se muestra en l a figura 8-8.20 = 220. Ia instrucción de comparar ejecuta una resta de dos operandos.E l número sin signo más grande que puede acomodarse en 8 bits es 255. La tabla 8-11 proporciona una lista de tales ins:mcciones de transferencia condicional. E l bit de sobreflujo se u t h junto con operaciones aritmbticas realizadas sobre números en rep-ntacibn de complemento a 2 con signo. pero se afectan los bits de estado. S = O repmenta un sipo positivo y S = 1 un signo negativo. la ALU toma e l complemento a 2 de B y lo suma a A. en la tabla. Las instrucciones que producirsn una transferencia de control despubs de esta comparación . Sin embargo. El resultado de l a operaci6n no se transfiere a un registro destino. Entonces 240 > 20. 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. ta resta en decimal es 240 . 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. como se explica en el siguiente ejemplo n d r i c ~ . La resta de d a nSimeros es igual. este no es el caso porque cada uno debe considerarse en forma separada. el equivalente decimal de A es 240 y el de B es 2 0 . El registro de estado proporciona información acerca de la magnitud relativa de A y B. Como se dijo antes. tenemos que A > B y A f B. La hstruccibn de comparar actualiza el bit de estado según se muestra.ejemplo num6tieo acarreo. ta magnitud relativa que se muestra bajo la columna de condición probada. El ranga de números con signo esU entre + 127 y . 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 números con signo.

Si consideramos números con sighq el equivalente de A es -16. 295 BH6 (brincar si es mayor o igual) y BNE (brincar s i es diferente}. Se ejecuta la . saltar a subrutina. se hace un brinco de retorno al programa principal. Una instrucci6n de llamado a subnitina consta de un d i g o de operaci6n junto con una dimibn que especifica el comienzo de la subrutina. es el equivalente del decimal -36. e1 cual e a el equivalente decimal de + 1 6 . Debe notarse que las instrucciones BNE y BNZ (brincar si no es cero) son identicas.B. Algunas computadoras consideran el bit C como un bit de préstamo después de una operaci6n de resta A . V y Z (véase d problema 8-27). La instrucci6n que transfiere e l control del programa a una subrutina se conoce con nombres diferentes. tramfenr a submtina o tran$erir y guardar direccián. al tomar el complemento a 2 de B. Como (-16) < (+20) terkmos que A B y A # B. Durante la ejecucibn de un programa puede solicitarse que una subrutina ejecute su funcb5n muchas veces en diferentes puntos de1 mismo programa. un procesados que considera al bit C como un préstamo despuk de una resta. Por esta razún. De igual manera.SEMWa7 Control del programa son I3Hí (brincar s i es mayor). ia resta en decimal es (-16) . Esto se debe a que e l signo de A es negativo y 11110000 es e1 complemento a 2 de @M10000. se ejecuta un brinco o transferencia de control al comienzo de i a subrutina para comenzar a ejecutar su conjunto de instmcciones. Estas dos relaciones tambien pueden derivarse de que los bits de estado S = 1 (negativo).(+20) = -36. Cada una estA repetida tres veces en la tabla 8-11 para hacerla mas cbra y completa. + Llamada y retorno de subrutina Una subrutina es una secuencia completa de instrucciones que ejecuta una cierta tarea eomputacional. BLE @rimar s i es menor o igual) y BNE (brincar si es diferente'}. Los mis comunes son llamar subnifina. Ias dos instrucciones BE (brincar si igual) y BZ (brincar si es cero) también son idénticas. Cada vez que se solicita una subrutina. Despu& de que se ha ejecutado h subrutina. L a candici6n para un préstamo es el complemento del acarreo que se obtiene cuando se realiza la resta. pero debe prestarse un bit de la siguiente posicibn m á s significativa si A < B. La magnitud relativa de dos nrimeros con signo puede determinarse de los valores de S. El resultado binario 11011100 (el complemento a números de 8010010Q). Las instrucciones que provocardn una transfereircia de control después de esta comparacibn son: BLT (brincar si es menor que). V = O (no hay sobreflujo) y Z = O (no hay cero). No ocurre un préstamo s iA 2 B. Con este ejemplo. comphentar8 eI bit C después de sumar el complemento a 2 del sustraendo y denotar que este bit es un préstamo.E l equivalente decimal de 3 es 20. resulta obvio que Ia magnitud relativa de dos núme 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).

De esta manera. por lo general liamada ret~rno de la subrutina. Si 9610 se utiliza un registro o localidad de memoria para almacenar la dición de retorno y la subrutina recumiva se solicita a s i misma. Algunas k almacenan en la primera posici6n de memoria de subrutina. transfiere la direccibn de. para que la subrutina sepa a d6nde retomar y 2) se transfiere el contcol al comienzo de l a subrutina. La manera mis eficiente es almacenar la direcci6n de retorno en una pila de memoria.h y el contenido de su parte superior se transfiere al contador de programa. La última instrucci6n de cada subrutina.retorno de la posici6n temporal dentro del contador de programa. el torno es siempre al programa que solicitd la última vez una subrutina. Esto da como resultado usa transferencia del control del programa a la instrucci6n cuya direca6n se almacenaba originalmente en la pmici6n temporal. la nueva direccidn de retorno s e salva dentro de la pila. Una subrutina remrsim es una subrutina que s e solicita a sí misma. otras en una posicidn fija en la memoria.296 C A F0 ~ Unidad central de procesamiento jnstrucei6n al reaiizar dos operaciones: 1) s e almacena la direccibn de la siguiente instrucci6n disponible en el contador de programa (la dirección de retorno en una posicibn temporai. las direcciones de retorno secuencides pueden salvarse ¿&m de la pira. y así sucesivamente. La instrucción que hace retornar de la dltima subrutina se realiza mediante las microoperaciones: PC t M I S P ] SP +SP + >1 Recuperar la pila y transferir a incrementar apuntador de pila PC A¡ utilizar una pila de subrutina. destruye l a . algunas mas en un registro de procesador y otras en una pila de memoria.para la dimcidn de retorno es que cuando se solicitan subrutinas sucesivas. E1 retorno de la instrucción de subrutina lee (pop) la pi. Diversas computadoras utilizan una posici6n temporal diferente para almacenar la direcci6n de retorno. Una llamada de subrutina se implanta con ias siguientes microoperaciones: Decrementar apuntador de pila Salvar el contenido de PC sobre la pila Transferir contrw>1 a subnitina Si se solicita otra subrutina mediante la actual. El programador no tiene que preocuparse o recordar d6nde sa dmacen6 i a direccibn de rctorno. La ventaja de utilizar una pila. Ia circuiteria almacena en forma autodtica todas hs direcciones de retorno en una unidad.

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 ) . El estado de la CPü al final del ciclo de ejecucih (cwndo se reconme la intermpcibn) está determinado por: ' 1 . Interrupción> 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. El c o n W u . El contenido de todos 1 . Esto resuelve eI problema de la subrutina reamiva porque Ja siguiente subrutina que sale es siempre la utima subrutina que se wlicit6. la CPW retorna al mismo estado exada que tenia cuando ocumb la intempcián. & @ S de que se ha interrumpido un. 3.regi&os del procesador. Esto no es deseable porque s e destruye XOCmaci6n vital.de ciertas condiciones de estado. como se explica m A s adelante).a PSW se almacena en un registro de hardware separado y contiene la informaci6n de estado que caracteriza a b CPU. El control retorna aI programa original después de que se ejecuta el programa de servicio.programa y se ha ejecutado la mtina de servicia. en principio. S6io de esta manera el progrma interrumpido podrh reanudar exactamente como si nada hubiera ocurrido.retorno anterior. T. Cuando se utiliza una pila. 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 .E 1 contenido de1 contador del programa. excepto por tres diferencias: 1) por l o general la interrupción se inicia mediante una sefial externa o interna más que por la ejecuci6n de una instrucción (excepto para una intempci6n de programa. Estos tres conceptos de p m d i miento se detallan en seguida. 2.SBCCION 87 Control del programa 297 b c i 6 n de . Este problema puede resolverse s i se emplean diferentes localidades de almacenamiento para cada utilizadhn de subnitina mientras otra utilización de nivel más ligero estd activa todavía. como resultado de una soücitud generada en forma externa o interna. y 3) un procedimiento de intempci6n por 10 general almacena toda la itúormaci6n necesaria pasa definir el estado de h CPU en lugar de sólo almacenar e l contador de programa. 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 dirección de una instrucci6n. muy similar a una solicitud de subrutina. I11 prodimiento de interrupcibn es. cada ckcci6n de retorno puede saIvarse dentro de la pila sin destruir ningún valor previo.

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 direccidn inicial de la rutina de servicio la determina h circuiteria en lugar de un campo de dire&dn de una instnicci6n. El programa de servicio debe entonces incluir instrucciones para almacenar el contenido de estado y registro antes de que se utilicen estos recursos.298 CAPfiULo -0 Unidad central de prmesamiento modo srrpemlsor un modo supervisor o de usuario. la cual dirige a la CPU a la rutina de servicio deseada. En cualquier caso. 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. el control comprueba cualquier señal de interrupción. La rutina de m i c i o debe determinar despuk qué h e lo que produjo la interrupci6n y proceder a darle servicio. comenzando de la direccibn de transferencia y con un d a CPU 10 especifica la nueva PSW. &o para cada modo CmT. La mayoh de las computadoras d i o almaeI contador de programa y la FSW.Bn algunos casos. D e esta manera. Cuando la CPU ejecuta un programa que es parte del sistema operativo. Si &á @ente una. Algunas computadoras asignan una localidad de memoria para cada intempcibn posible. La B U no responde a una interrupcibn hasta el final de una ejecución de instruccibn. Durante a t e ciclo el contenido de PC y PSW se salva dentro de la pila. se hace leer la . La 6 1 t h inshucci6n en el programa de servicio es wia instnrcci6n de retomo de interrupcibtt. 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. Justo anbes de pasar a la siguiente fase de recuperacidn. 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. Algunas computadoras &lo almacenan el contador de programa cuando responden a una intempci6n. Muchas computadaras tienen un sistema operativo residente que controla y supervisa todos los otros programas en la computadora. Algunas computadoras asignan una localidad de memoria en donde se transfieren siempre las interrupciones. Ciertas instrucciones tienen privilegios y d o pueden ejecutarse en este modo. la CPU debe poseer alguna forma de prodimiento de hardware para seleccionar una direccibn de transferencia del control para dar servicio a la interrupci6n. En ocasiones. Cuando se ejecuta esta instrucción. cuando e l programa cambia del modo usuario al supervisor (o viceversa) en respuesta a una intempcibn. el control va a un ciclo de interrupción de hardware. la interrupcidn de hardware proporciona su propia dirección. existen dos conjuntos de registros de procesador dentro de la computadora. El programa de servicio puede ejecutarse ahora. se dice que estA en modo de supervisor o de sistema. Después se carga la direcci6n de transferencia para la intempibn particular al PC y se carga una nueva PSW dentro del registro de estado.

de un dispositivo de temporizacibn. Tipos de interrupciones Existen tres tipos principales de intermpcionea que producen una detenci6n en la ejecucibn normal de un programa. tiempo transcurrido de un evento o una faUa de energía. Las interrupciones externas dependen de condiciones inde pendientes al programa que se ejecuta en w e momento. intentar dividir entre cero. La interrupcidn de programa es una insmccibn de solicitud espcial que se comporta como una interrupción más que como intpr*rrpc#ri rle Programa . Las interrupciones internas surgen debida a la utiüzaci6n ilegal o errónea de una instrucci6n o datos. Puede ocurrir una intemipcibn por tiempo transcurrido de un programa que esté en un ciclo que no termina y que. estas condiciones de error ocurren como resultado de una terminaci6n prematura de h ejecuci6n de una Xnstrucci6n. Por l o hnto. Algunos ejemplos de las interrupciones provocadas por condiciones de e r r o r htemas son los sobreflujos de registro.99 pila para recuperar fa FSW anterior y la d h a i 6 n de retorno. Una interrupcibn de p'ograrna se inicia al ejecutar una instruccibn. un d i g a de operaci6n no vdlido.S E C Q8 ~7 Control del p-ma 2. por lo tanto. Se clasifican de la manera siguiente: 1 . Las interrupciones internas son sincrocon el programa en tanto que las externas no la son. Las interrupciones internas y externas se inician a partir de &ales que o c en I a circuitería de la CIiU. se restablece el estado de la CPU y el programa original puede continuar su ejecución. excede su tiempo asignado. El programa de seruicio que procesa la interrupción interna determina la medida correctiva que se debe tomar. Interrupciones de programa Las interrupcion& extemas provienen de dispositivos de entrada y salida @/S). más bien que por un evento externo. Una kkmpci6n por falla de energía puede tener como su rutina de servicio a un programa que transfiere el estado completo de la CPU a una memoria no wolbtil en los pocos segundos anteriores a una falla de energía. las interrupciones internas o e h á n en el mismo lumr cada vez. y violaeihn de la protecci6n. dispositivos de E/S que tenninan transferencia de datos. Intenvpciones extemas 2 Intempciones internas 3. L a diferencia entre las interrupciones interna y externa es que la interna se inicia por alguna andici6n excepcional causada por el programa mismo. Las interrupciones internas también s e llaman trampas. de un circuito que monitorea la fuente de alrmentacibn o de cualquier otra fuente externa. Algunos ejemplos de lo que produce interrupciones externas son dispositivos de E/S que solicitan transferencia de datos. Por lo general. La PSW se transfiere al registro de estado y la direcci6n de retorno a1 contador de programa. desbordamiento de pila. Si el programa s e vuelve a ejsnihr.

programa a implantacionec de hardware. muchos disefiadores de computadora recomendaron que las máquiiias utilizaran menos instrucciones con f6rmulas sencillas para que. las instns. 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. la adición 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. Esfa ínstnicción proporciona medios para cambiar el modo de usuario de C W al modo supervisor. Al principio de los aiim mhenfa. El 'usomAs coniún de l a intempkibn de programa se asocia con una instrucci6n de llamada de supemisor. un procedimiento de transferencia de entrada o salida complejo. pudieran ejecutarse cbn mucha mayor rapidez dentro de la CPU. tanto >m cantidad como en complejidad. tas computadoras tambih emplean diversos tipos de datos y una gran cantidad de modos de direccionamíentrr. Este ttpo de computadoras se clasifica como mrnpufaiIoms de conjunto de instrumiones . Muchas mmputadbras tienen conjuntos de instrucciones que incluyen más de 100 y. como el mejoramiento de los modelos existente para proporcionar m8s aplicaciones al cliente.300 GMT!iL@ OMO Unidad emht de procesamienb una solicitud de subtutina. miis de 200 instrucciones. S610 ciertas operaciones pueden asignarse al modo supervisor en la computadora. Un programa escrito por un usuario debe correr m el modo usuario. sin tener que utilizar la memoria con tanta frecuencia. 8-8 Computadora de conjunto de ins-tmcciones reducido (IRXSC) Un aspecto importante de la arquiktura de computadoras es el diseño de conjunto de iñctrucciones para el pmc-dor. Las primeras computa- asc m Rlsc doras t e n í a n conjuntos de htruccions pequeños y simples. Conforme la ckuiterk digital se hizo mas barata con la aparici6n de los circuitos Integrados.cciones de computadora tendieron a aumentar. El programa que solicita debe pasar l a info~maci6n ai sistema operativo con el fin de especificar Ia tarea particular solicitada. en ocasiones. par ejemplo. se solicita el modo supervisor mediante una instrucción de solicitud de supkrvisor. Ei conjunto de instrucciones elegido para¡ una computadora particular determina la manera en que se construyen los programas de lenguaje de máquina. El programador puede utilizarla para iniciar un pmcedimimto de inkmpdón en cualquier pimto que se desee del programa. L a tendencia hacia la complejidad de la circuikría de computadora la produjeron varios factores. forzados sobre todo por la neresldad de minimizar la circuikría utiliiada para implantarlos. CISC (complex instructian set amputer). Cuando se necesita una transferencia de entrada o salida. Una computadora con una gran cantidad de instnieciones se cIasifíca como una computadora coa miunto de imtrucciontos m p l e i p .

en tanto la segunda instnicci6n necesita una palabra m8s un byte en la siguiente. Las instrucciones en un procesador CISC típico proporcionan Ia manipulación directa de los operandos que residen en la memoria. pero las instrucciones que necesitan direcciones de memoria pueden . S i n embargo. l a primera instmccibn mupa la mitad de una palabra.instrucciones de mAquha que integren los enunciados en forma directa. El propósito esencial de una arquitectura USC es intentar proporcionar una única instmi6n de máquina para cada enunciado que estC emita en un Iwiguaje de alto nivel. Esto requiere tres referencias de memoria durante la ejecucibn de la hstruccibn. Aunque los procesadores CISC tienen instrucciones que sólo utilizan registros de procesador. sino también Iw requerimientos internos en i a utiIizaei6n de lenguaje de programación de alto nivel.SECU~N M Computadora de conjunto Be instrucciones reducido 3 M reducido. Las instrucciones que necesitan operandos de registro pueden tener dio dos bytes de longitud. Características CISC E i dkiio de u n conjunto de instrucciones para una computadora debe considerar no 6610 f6rmulas de lenguaje de mAquina. la dispe nibilidad de otros modos de operaciones tiende a simplificar l a compilacidn de lenguajes de aIto nivel. Una razón para la tendencia a proporcionar conjuntos de instrucciones complejos es el deseo de simplificar la compikcibn y mqorar el desempefio general de la computadora. Puede incluirse en la instruccibn otra localidad de memoria para almacenar la suma. 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. 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. Por ejemplo. las principales caracteristicas de la arquitectura CISC son: . La traducción de programas de alto nive]. La tarea s e simplifica si existen . Otra caracteristica de la arquitectura ClSC es la incorporaci6n de formato~ de instrucciones de tamafio variable.a programas de lenguaje de máquina se realiza mediante un progama compilador. y esto puede producir que los cálculos se hagan lentos. Si la computadora tiene palabras de 32 bits (cuatro bytes). En resumen. La tarea de un compilador es generar una secuencia de instrucciones de máquina para cada enunciado de lenguaje de alto nivel. se necesita m á s circuiterh lógica para implantarlos y soportarlos.necesitar cinco bytes para incluir todo el c6digo de la instrucci6n. conforme se incorporan m8s instnicciones y modos de direccionamiento en una computadora. En esta d 6 n pmentamos las principales características de Ias arquitecturas CISC y RISC y despu6s d conjunto de instrucciones y el formato de instrucciones de un pmcesador. RTSC (reduced btniction set mmpukr). Algunos ejemplos de las arquitecturas CISC son la computadora VAX de Digital Eqtaipment Carporatian y Ia IBM 370.

Todos los cálculos se bcen entre los datos almacenados en los registros del prticesador.0 mQ Unidad c e n t r a l de p t o 1. Una gran cantidad de m d o s de didonamiento. Una gran cantidad de in~tFucciones. 2. Pueden incluirse otros modos de direecionamiento. Control pot circuiteria en lugar de rnicroprogramado. tambsn puede hacerse m á s sencilla la 16gica de control. El acceso a memoria limitado a instrucciones de carga y alrnacenamiento. Se usan unos cuantos modos de direccionamiento porque casi iodas las inshcciones tienen registros de direccionaM'1ento simple. A1 usar un formato de instrucciones simple. especializadas y que no se 2. la longitud de las instrucciones puede Fijarse y alinearse en palabras contiguas. 5. es preferhle un control de circuiterfa sobre uno rnicroprogramado. por l o general de 5 a 20 modos diferentes. principales características de un proresador RlSC son: 1 . 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.en' usen con frecumda.-1' 302: cMrWL.operaciones realizadas dentro de 1 . Por b tanto. como los operandos inmediatos y e l modo relativo.' .Instrhccion& qué ejecu. hbtnicciones que mariipiilm operandos en la aemaria. . Cada operando se introduce al pmesador con una instrucci6n cargar.regisde la CPU. y &lo tiene las operaciones cargar y almacenar para accesar la memoria. Ejecudbn del ciclo de instruccidn Única. Relativam&Q p o s modos de direccionamiento. Los resultados se transfieren a la memoria mediante instrucciones almacenar. el control puede accesar simultáneamente el código de operaci6n y los campos de registro del c6digo de I a htrucci6n.' 3. Formatol de instrucriones decodificados ion facilidad. - . 7. Para operaciones m63 rápidas. En el capitulo 5 se presenta un ejemplo de contmI de circuíkda. Aigmas .deexhsi6n vafiablb. 5. El pequdo conjunto de instruccionec de un procesador RTSC tipico consiste principalmente en operaciones registro a registro. 6. junto con la unidad de control de la computadora Msica. de longitud fija. Un aspecto importante del formato de instniccidn RTSC es que resulta fzicii de derodificar. 3. A l simpiificar las instrucciones y su f k a t o . Esta caracterbtica de arquit-tura simplifica ef conjunto de instrucciones y estimula la optimizacki de la manipulaci6n de qistros. E n el capítulo 7 se presentan ejemplos de control rnicroprogramado. por l o p e r a l de 100 a 250. 4. Formatos de instruccione8 . Relativamente pocas insthiecion&. Todas las .

Después de un retomo Be procedimiento. Debido a eso. En. d ~ c a c i ó n y ejecucibn de dos o tres instni+na.solicitan w subcwtina que ejecute el cuerpo del procedmto.cantidad de. pasan pdmetros que necesita e l pmcedimiesito y. 3 s a h r M n de I k u gsr Ventanas de regktros traslapados lenguajes de pgramacihn de db nivel o m m n con frecuencia llamadas y stomos de aprwdhientos. 3. Paralelismo de indrucriones eficiente. dvpu&s. miiquina. & comimte'kner una gran cantidad de registros para almacenar los resultados intermedios y para optimizar las referencias de operandos. a diferencia del almacenamiento en memoria. Uso de m a s de re@kcm traslapados para acelerar la h a d a y retorno de p r o c ~ ~ .registros en el w d m relativamente grande.de registco anteriores. el. de mpera&n. 4. es que los registras pueden transferir irzfomau6n a otros registros mucho más rhpido que la transferencia de idoqaci6n hacia y desde la memoria.M Computadora de-oonjunb de instrucci- reddo m m3 Una característica de loa p r d m s e s su capacidad para e j e cuhf una Uisku&ión por c i c l o . Soporte de compilador para &aducción &&te de programas de lenguaje de alto . trasmite lm resultados al pmgrama solicitante y. El. Za ventaja del a l m a ~ t en o registros.n cargar o almacenar puede requerir dos ciclos de reloj porque el acceso a memoria toma d a tiempo que las operaciones de registro. dkspués de que se expIica el concepto de conducaOn y saturaci611de línea.de regis-.Cuando se traduce a lenguaje de . tos d u & s que muestran un mdinúenta mejorado pa& la arquitectura RISC no esbblecm l a diferencia entre los e W . a veces se a d n c m procesadores RMC una gran cantidad de registros en la unidad de pmcsadenta. aunque tambib pueden existir en arquitecturas no RISC. 2. y pasar pardmehm y rwultados son operacior~a que con~umen tiempo. Por esa razbn. En acasimw se (atribuyen'a RISC un paraielisma eficiente y otras cuantas características. retorna de Ia subrutina. Algunas En . u d un proredhhb denominado paralelismo. Una . Esto se l a p al hacer simuitheamente las fases. la siguiente mxi6n se explica el uso de ventanas de regisbs trsisiapadoe cuando se transfiere el control de programas después de una solicitud de prrpcedimhto. Guardar y restablecer registros. programa restablece 1 9 valo.de relaj. una llamada de prwedimimtq produce una secuencia de instruccbnes que @ d a n valo. Una instrwci6.del conjunto reducido de instruceianes y h s e f m de un archivo de regi~tros grande. se pueden minimizar lae operaciones al conservar en registros los operandos a los que se a d e con mayor frecuencia. Otras caracteristicas que se le atribuyen a la arquitectura RJSC son: 1 .nivel a programas de lenguaje de máquina.c~nducto de instrucciones en BXCC se p-ta en la secci6n 9-5.

C y D. Los registros altos del procedimiento llamado se sobreponen a los registros bajos del procedimiento llamado. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar un apuntador. el procedimiento A almacena los parAmetros para el procedimientb 3 en estos registros. Esto elimina la necesidad de guardar y restablecer las valom de los registros. Los registros comunes se utilizan para e l intercambio de parsmetros y resultados entre procedimientos adyacentes. Los otros 64 registros s e dividen en cuatro ventanas para alojar b s procedimientos A. Cada solicitud de procedimiento prcduce la asignacibn de una nueva ventana. El procedimiento B utiliza l o s registros lmales del R32 al R41 para el almacenamiento de variables locales. 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. . por lo tanta. Los registros locales se utiliian para las variables locales. B. las parhmetros se transfieren en forma automdtica del procedimiento que Uama al llamado. pasará los paraimetros por medio de los registros del R42 al R47. Cuando el procedimiento B está listo para retornar al 'final su computaci611. L o s regístros traslapados comunes permiten que se pasen parámetros y el movimiento real de datos.304 -O Unidad centra1 de proceSamienia computadoras proporcionan bancos de xegistros múltiples y a cada pmcedimiato se le asigna su propio banco de registros. Algunas computadoras utilizan la pila de memoria para almacenar los parámetros que necesita el procedimientoi pexa esto requiere un acceso a memoria cada vez que se accesa la pila. Los registros de1 $26 al R31 son comunes a los dos procedimientos y. En cualquier momento dado. que consiste en un conjunto de registros del archivo de registrohlpara que la use el nuevo procediiento. A 1 0 está activa una ventana de registro con un apuntador que la seiiala como activa. Cada ventana de registros consta de 10 registras locales y dos conjuntos de seis registros comunes a las ventanas adyacentes. Como ejemplo. Cada solicitud de procedimiento activa una nueva ventana de re@stras al incmentar el apuntador. supongamos que el procedimiento A solicita el procedimiento B. Si el procedimiento B solicita el procedimiento C. B concepto de wntanas con registros traslapados se ilustra en la figuxa 89. mientras que e l enunciado de retorno decrementa el apuntador y produce l a activaci6n de Ia ventana anterior. Mwkse que los registros R10 al R15 son comunes a Ios procedimientos A y D.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. El sistema tiene un total de 64 registros.por lo que las cuatro ventanas tienen una organización circular en donde A es adyacente a D. Los registros del RO a1 R9 son registros globales que contienen parsmetros que comparten todos b s procedimientos. y por l o tanto. Las ventanas para procedimientos adyacentes tienen registros traslapados que comparten para proporcionar el paso de parámetros y resultados.

s!xcI6w M Computadora de conjunto dehslauceiimes rdhcido (m) 3 f l 5 .

Direeeionamiento de registros. La XüSC 1 de Berkeley es una CPU de circuitos integrados de 32 bits. El tamaño de la v e n t a es 10 + 12 + 10 = 32 registros. Cada procedimiento en h fqpra 8 9 tiene disponible un total de 32 registros mientras ehtá activo.L = 10. l o s 10 registros globales RO al R9 están disponibles para todos los procedimientos. Berkeley. 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. Tiene un formato de instrucci6n de 32 bits y un total de 31 instrucciones. operando inmediato. La cantidad total de registros necesarios en el p-ador: En el ejemplo de la figura 8-9 h e m a s que G = 10. Existen tres modos de diredonamiento Wm. C = 6. e l formato de instruccibn puede especificar un registro de pracaador con un campo de registros de 5 bits. y el archivo de registros consta de (10 + 6) X 4 + 10 = 74 registros.datos de 8. y W = 4. En general. Con posibles otros esquemas de ventanas de registros de tamaño fijo y cada una puede variar en el hmafio de la ventana de registro y en el tamafio de todo el archivo de registros. Esto inelup 10 registros globales. 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 La cantidad de registros disponibla para cada ventaaa se calcula de l a manera sipuienk. 16 y 32 bits. Como s61o se accesa un conjunto de 32 registros en una ventana en cualquier momento dado. Siete de .de 32 bits y. 10 registros locales. y direccionamiento relativo al PC para instrudones de transferencia o brinco. seis registros bajos traslapados y seis registros altos traslapados. Soporta direccion. Tiene un archivo de registros de 138 registros ~ J Jun arreglo de 10 registras globales y 8 ventanas de 32 registros cada una. 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. 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.306 cAetrrno -0 Unidad aentral de p-miento Como se mencion6 antes.

8 5 5 1 13 b) Modo dc W t r o inmediato: (SZmpeclfica un opmndo) 8 5 c) Modo relativa a P C : 19 Figura 8-10 Fomata de Instruccionesde la REC 1de Berkeiey. 16gicas y de corrimiento. El registro RO m n t h a &lo n h e r 0 ~ O. La operación se ejecuta con los datos eapedicados en los c a * p Rs y S2. Se han agrupado en tres categorhs. Las 31 instrucciuqes de la RICC 1 se listan en la 'tabla 812.'Si e l bit 13 de la instrudbn es O. Las instnrcciones de d p u l a c i 6 n de datos ejecutan operaciones arítrndticas.&g computado^ de ccuij~to de k t n i c c i s n e ~ reducido 307 Caigode opr- Rd 5 Sin usar 8 5 1 8 I S2 5 a) Mado de regislro: (S2especifím un registro) 31 24 23 1 9 18 14 13 12. la instnicci6n tiene un formato de tres direcciones. S2 especifica uoa constank de 1 3 bits de signo extendido. los 5 bits de orden menor de S2 especifican otro registro fuente. E l tercer formato de instntcci6n tombím 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. S 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 oyeración ALU. 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. Par l o tanto. Lns simbolos bajo las columnas del código de operaci6n y operando se utilizan cuando se d- . por lo que puede utilizarse en cualquig campo para especificar una cantidad de cero. Rs es uno de los r e g s i w fuente. pero l a segunda fuente puede s e r un registro o un operando inmediato. Si el bit 13 de la instzucci6n es 1. Para instrucciones de registro a registro. 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 campo Rd de S bits selecciona uno de los 32 registros como destino para e l resultada de la operacibn.

Rd SRA Rs.Y Rd.SZ.S2.S2 ~d ' pC tRd S2 CWp+m+ 1 + -1 Deshabilitar interrupciones Habilitar inkrrupclonm Obtener el fdtimo PC GTLPC . TABLA 6-12 Conjunto de inrtruccionesde la RISC I de BPrkeley -digo de .Rd Rs.[Rs)SZ w.S2.R~ .Rd .ws) Rd.Rd Rd tR r El3 S2 XOR Rs.Rd Rd +Rs V S2 OR Rs. a] +Rd Carga alto inmediato Almacenar largo Almacenar corto Almacenar byte Cargar palabra de estada Inicializar . PCi-RP m W R CALL C-AZLR m) Cm.1-Rd -t.CCmP R&+E RErn . p m p q CONI).S2.S2.Acarrco Rs.fmbiar ventana Retomar p cambiar ventana PC+Pc+Y Rd +Pi2 PC'+& + S2 CWP+CWP .(Jb)S2 Rd.S2.Rd Rd +RE r\ S2 AND Rs.Rd Rd + M [ h + S21 WSS (RskS2.Rd RS.Rd Rd*M[& S21 LDSU (Rs)BZ. .SS. Rd. ~d t Rs.~pwacifinOperanda Tnmf~erencia de pgistrw Dcwripcibn hsimcciones de nranipulacibn de datos ADD ADDC SUB SUBC SUBR SUBCR &.palabra de estado M[lb1+S2]+Rd Rd +PSW M PSWtRd Inshcciones de ccrntrol d e .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 aritmékico + LDHI + Carga larga Carga corta sin signo Carga corta con signa Carga by te sin signo Carga byte con signo m Sr3 STB GETPSW PU'T'Ps~ Rd.1 Rd PC P C t P C IT CWPt-Cwp 1 K + R d +S2 + m CALLINT - 3 2 d .Rcl Rd +&:acarrear a $2 Instniccion~ de transferencia de dalos LDL (Rs)M.Kd M*Rs + S2 ~ + s2 r + ~ c a r n ? a Silmar con acarreo Sima d c enteros RdtRs-S2 Rd +RF .S2.SZ.Y + S2 Brinco condicional Brinco relativo llamar a subnifina y cambiár verrtana Llamar a relativa y c3. Rd +M[& + S21 LDBU (Rs)M. s 2 Rd 1 CWp-CWP+l %.Rd R d t S 2 .S2.S2.R s Rd S2 l b .Y R&.M.Rd SLL Rs.308 GMIIJW -O Wdad m a l de .Rd Rd +lZF acarrear a S2 Ad c m a c a m r a 5 2 SRL ñs.S2 Acarrco Rs.(R$S2 Rd RdtY M[& M[& + s2.

E l registro que contiene la PSW contiene el estad^ de la CPU e incluye el contador de programa. T-@ M h tren proprnas de lenguaje ensamblador.R. L s instrudiodes de &ansfetencia de datos constan de seis instrucciones de carJa.RS LDL (R22)#01RS LDL (RO)#SOOaRS RS+M[R22]+lSU R5+iY[R22] RStfl[SOíl] La direccibn &fha en la primera instmccidn se evalúa a partir del contemido dd m@stm R22 mAs un desplakmiento de 150. byte) o 16 bits Ipaiabra coW). R23 ADD R2.SECCI~N w Computadora de conjunto de instrucciones reducido (RXSC) 309 --. los bits de estado de l a ALU. es posible transferir el contenido de un registro o de una constante dentm de otro registro. tambi6n es posible el diree~ionamiento directa e indirecto por registros. tres instrucciones de almacenamiento y dos instrucciones que transfieren la palabra de estado del programa EW.>el cual siempre contiene números O. La s8gunda fuente $2 p u d e ser un registro o un operando inmediata.Las instrucciones de palabra larga operan eIi dabs de 32 bits. Las columnas de transferencia de mgktmis y descripcibn explican la instrucci6h en notación de transferencia de wgMm y m palabras. W siguientes m n ejemplos de cómo se cargan instrucciones larga6 con diferentes modos de direccionamiento. LDL{R22)#150. La segunda insfruccidn utüiza un desplazamienta O. Las btruccion. d &'lo reduce a un modo iridirecto. en las instrucciones de transferencia de datos. Las instrucciones de control de pmgrwa operan con el contador de programa PC para controlar la secuencia del programa.R21i.PD R22 r.direccionamiento directo. A. representado mediante d -signo #. La operacibn incrementar se tealiza al sumar una constante 1 a un regi~tro. apuntadores usados junto con las ventanas de registro y otra información que detemina el estado de la C m .mAs desplazamiento. consideremm la instncdh ADD y c6mo pude ut%zarwparaejecutar divemas operacionec.es de cargar y almacenar mueven los datos entre un F9 v g i s t r o y una memoia.#15Q. N6we que t d a s las instrucciones tienen tres operandos.2. cargar acomodan datas con o sin ?signode 4 bib. Aunque parece existir un modo de direcaionamienha de registro.?2 Y : - ADDRZZt#litR22 R22+R21 R22-150 R22tR22 4 Al usar el registro RO. por regish. La tercera instruccidn Mi* t d o s los números O del registro RO par3 producir un tipo de instrucción de . Hay dos instruccio- . Las inst~~+ones. Por ejemplo.XliSO'i 8 2 3 R 2 3 +A22 R Z 3 +RZZ + R21i + L50 (Mover) Cargainmediata f 1 incrementar ADDROiR21irR22 ADDRC1.

incluyendo acarreos de entrada y alida? e. Cada vez que el programa dicita un nuevo prmedhiento. la ~ g u n d a utiliza un modo relativo a PC m d valor 'Y de 19 bits como la direcoi611relativa.310 m m 0 Unidad central de pxoeesamiento nes de brincar y dos in~trucciones de liarnada. 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. a ~Cudntos multiplexores. y cuál es el tamaiio de =da uno? b. 00101~00101 b . Después una instruccidn de retorno CWP se incrementa en uno para retomar a la ventana de registros previa. 8-Z E I canal del sistema de la hgwa 8-2 tiene los siguientes tiempos de retraso de propagación: 30 ns para que las seilales se propaguen por los multiple xores. c. CWP se decrementa en uno para apuntar a la ventana de registro de nivel inmediato inferior. ¿Cual es el tiempo del cielo mínimo 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.hay en el canal A. que ALU tiene 3 5 operacion~. a. ¿Cuantasentradas y salidas hay en el derodicador? d. d. Una CPU organizada con un anal simiIar a la de la figura 8-2 tiene 16 regisiros con 32 bits -da uno.utarAn en el procesadar de k figura'&Z w n d o se apliquen las sigubb potlabras de mtml de 14 bits. R4tR4 Entrada S 4 Determine las micm~racionas que se 4ec. una ALU y un dedifiador de destino. 8-I. Una utilii un direccionamiento índice más desplazamiento. a.1 6 +shl R1 + b . C. Formu1e una palabra de control para el s i s ~considerando . EEEz m r m 1 o e. 80 hs para qerutar la dperdci6n ADD en l a ALU. 11110001110 . ¿CuBntas entradas de selecci6n se necesitan para e l MüX A y el MUX B? c. RI+R2+R3 R5+R5 . ~Cuáuitasentradas y saIidas hay en la ALU para datos. 8-3. un retraso de 20 ns en el decalificador de destino y 10 ns para sineronizar los datos dentro del registro de destino.

ASC se h e m e n t a para cada palabra almamada y sed t a para cada dato mpetado. a ¿LLENO = 1 . 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. 8 1 2 . Convierta las siguientes expresione aritmhticas de notaci6n polaca inversa a interna fija. Un conhdor de ahacaamiento disponiblelMC indica la cantidad de palabras almacenadas en FIFO. Convierta la siguiente expresib n h i c a aritdtiea a notaci6n polaca inversa y muestre las operaciones de pilq para evaluar el resultado numérico.OC4 en la pila de l a f@ra 8-3. ¿LLENO = O y VACIO = l? Una pila estd organizada de m e r a que SP siempre apunte a la siguíente posicibn vada en la pila. Una computadora tiene instrucciones de 32 bits y direcciones de 12 bits. bn contador de ledura RC contiene la direcci6n par1 leer de la memoria. ¿Cuaintos datos hay en la pila s i : 8-6. Sea SP = OW. Un sistema primero & e n & .y VAClO = O? b . la d l d b n para escribir en la memoria. Si hay 250 ir&truccioxm de das dimriones. Liste las mimooperaciones para las operaciones push y pop. ~ c u h t a s immieciones de una d W 6 n puedkn formularse? Escriba un p&arna para evaluar el enunciado adméíico: . 8-10. 8-8. &7.8-5. . Convierta las siguientes expresiom aritmitieas de notad611interna fija a polaca inversa. 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 cómo opera UM memoria FiR3 con tres contadores. Un contador de d t u r a WC contiene 8 1 1 .

Refiera cómo se calcula Z de las otras direcciones si el modo de direccionamiento de la instrucaión es a. a. Al usar una computadora de registro general con instrucciones de dos direccionamientos. El brinco se hace a una dirección equivalente al decimal 500. c. 1 2 C A P ~ XHO ~ ~ O Unidad central de procesamiento 8-13. Una instrucción de dos palabras está almacenada en la memoria en una dirección representada por el símbolo W. indexado Un tipo de instrucción de brinco de modo relativo está almacenado en la memoria en una dirección equivalente al decimal 750. indirecto c. Determine el v a l ~binario r en PC después de la fase de recuperación y calcule el valor binari~ de 500.estar el número en forma de complemento a 2?) c. ¿Cuál debe ser el valor del cam. relativo d. a. Al usar una pila organizada c ~ rcero t instrucciones de aperación de cero direccionamiento cero.6. El campo de dirección tiene el valor 400. 8-15. El operando utilizado durante la ejecución de la instrucción está almacenado en una dirección representada por Z. Al usar una computadora de tipo acumulador con instrucciones de un direccionamiento. Un . b) un tipo de transferencia de control del programa. directo b. Detsrmine el valor de dirección relativa en b m r i o utilizando 12bits. La unidad de memoria de una computadora tiene 256K palabras de 32 bits cada una. un campo de registro o dirección para especificar uno de 60 registros de procesador y una dirección de memoria. 8-1. Al usar una computadora d e registro general con instrucciones de tres direccionamientos. 8-14. ¿Cuál debe ser el campo de dirección de una instrucción de modo de direccionamiento indexado para hacerla igual que una instrucción de modo indirecto por registro? Una instrucción está almacenada en la localidad 300 con su campo de dirección en la localidad 301. Un registro índice contiene el valor X. d.3 . 8-18. b. Despub muestre que el valor binario en PC más la dirección relativa calculada en la parte b es igual al valor binario de 500. un campo de modo para especificar uno de siete modos de direccionamiento. La computadora tiene un formato de instrucción con cuatro campos: un campo de código de operación. ¿Cuántas veces hace referencia la unidad de control a la memoria cuando recupera y ejecuta una instruceón de modo de direccionamiento indirecto si la instrucción es: a) tipo computacional que requiere un operando de la memoria?. Especifique el formato de las instrucciones y la cantidad de bits en cada campo si la instrucción está dentro de una palabra de memoria.pode dirección relativa de la instrucción (en decimal)? b. (¿Por qué debe. El campo de dirección de la instrucción (almacenado en W +1)está representado mediante el símbolo Y. 8-17.

y XOR can las dos series binarias 1M)11100 y 101Q1010. b . utilizandok sutiwi con Instnicciom de acarreo. por ]o hnb c = - . 8-19. b . e) indexado con R1 como e1 w@stro~-de pmmsador regisfm Sndice.de 32 bits que se listan en seguida. 6 3 . c R e t e el operando inmediato 9A de R. a. Recorra a la derecha el binario -68 una vez y proporcione el valor del número recorrido en diximal d. d Aplique Ia funci6nAND del operando m e d i a t o 8D a R. Una computadora de 8 bits tiene un registro R. 8-26. Rmlie la I 6 g i e ~AND. &Qu& operaci6n debe ejecutarse con el fin de: a. E l vdor inicial del registro R. Los nhmeros siguientes tambi&nestán en hexadecimal. -83. Realice &24. a. inicie de1 vaIor inicial que se dio en esta pregunta. b) inmediato c) relativo. Demuestre que el circuito etiquetado "verificarsi hay una salida cero" en la figura 8-8 es una compuerta NOR de 8 bits. Aplique 1 a funci6n O R exclusiva R con R. E l bit de estado de acarreo se coxisidwa como un bit de pdstamo después de una inctrucúón comparar en la mayoda de las computadoras comercia~es. Un registro de 8 bits contiene el valor 01111011 y el bit de acarreo es igual a 1. Cdderando uria computadora de 8 bits. 8-20. Determine los valores de los bits de estado C. Recorra a la izquierda el binario -83 e indique si hay un sobreflujo. Sume el operando inmediato 1E a R. Sume el operando inmediato C6 a R. 8-21. 8-23. &E. Z y V (figura 8-8) despuds de cada una de las siguientes htrucciones. Repregente los siguientes nheras con signo en binario utilizando ocho bits. Ejecute ias OChD operaciones de corrimiento proporcionadas por las instniceionea que se l5stan en la tabla 8-9. Cada vez. la suma (-83) + (+68) en binario e interprete el resultado obtenido. Evalúe la direesi6n efectiva si el modo de didonamiento de la instrucci6n es: a) directo. h s números Sin s w o A y B se cqqparan al restar A B. & . S. Cada byte se expresa como un niimero hemdecimaI de dos d fgitos.(+a) en bina& e indique si hay cobreflujo. +68. d) indirecto por registro.R1 contiene e l número 200. Activar a 1 los últimoa ocho bits? c. rnudtte la sum de prehsi6n múItiple de los dos n sin signo . OR. Dado el valor d e 16 bits 1001101011001101. Complementar 10s ocho bits de enmedio? 8-22. en cada cam es e l hexadecimal 72. Borrar a O los primeros ocho bits? b. C. Realice la resta (-68) . e.

E. (Las condiciones igual y desigual s6fi 'eiihunes a ambad tablas. W i i n Ia tabla 8-11. una compuerta XOR y cinco inversores..h ~igno. una para cada una de. S . wmo se especifica en seguida. Praporúone el . riendasigno. Z y V semkivari!o dwotivm~depndiendp del resultado de la operación w 6 k ino&~si6i3.que hay pude det. iepresmtados en forma de complemento aDm 4sigit85.&ll. (Vhse también la tabIa.) '8-27. @e: a. 'b. Ee aecemrio disebr un cirquita digital con cuatro entradas C. hs condiciones de transferencia de controI listadas en los problemas 8-26 y 8-27.s=paran al =bar i 4 B. Cs@<v=o (S@Vj=I ~dYv)=loz=I z=1 Z=O equivalente decimal de cada número considerando 'f}no tienén riigno y 2 ) . Muatre que puede dekminam la m a @ M relativa de A y B de-hh s p d n d e . - ~elacihn bndici6nde l o s bits de estado 1 A3. Los bits de estado S. Sume Iris d& ndfikros biiar'ias e interprete la suma considerando que Iwfi&& sud: il sin 5 1 p y 4 con signo.según 8e especifica en la tabla p a r 4 problema:&%.Z y V y 10 salidas. - Dos nCrmeros c o n signo A ) .ei w r r e un sobreflujo.B (SBl/r=OriyZ=O 4.) Dibuje el diagrama 16gico del circuito utilizando dos compuertas OR.errnImiWlii egnitctd telativa de A y B a partir de la inspeccidn de los bits de estado.) Demuwtre que .)s A<@ AS$ A =B ACB .14 CAPfrvLo "-0 Unidad central de proce9amiento 1s i A < B.los$its de-C y 2.) - Tabla para el probIema 8-26 Relaci6n CodCrQn<de los bits de estado 8-28.

Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrán una condición verdadera. una instrucción de llamada a subrutina y una interrupción de programa? Proporcione cinco ejemplos de interrupciones internas y cinco ejemplos de interrupciones externas. ¿Cuál es la diferencia entre una interrupción de programa y una llamada . G a. ¿Antes de qué se recupera la instrucción solicitar de la memoria? . Evalúe la diferencia e interprete el resultado binario.B y actualizar los bits de estado. ¿Después de qué se ejecuta la instrucción de llamada? c. a.a subrutina? Una computadora respondea una señal de solicitud de interrupción al salvar pila el contenidode PC y la palabra de estado de programa PSW dentro de $la actual. Una instrucción de llamada a subrutina de dos palabws se localiza en la memoria en la dirección 1120 seguida por el campo de dirección de 6720 en la localidad 1121.B y actualizar los bits de estado. b. La primera dirección del programa de servicio se toma de la memoria en la posición IAD +l. . Mermine los valores de los bits 'de estado C (préstamo) y Z. c. Sean A = 01000001 y B = 10000100. b. ¿Qué contienen PC y la parte superior de la pila a. b. 1 e intel 386 son ejemplos de computadoras con La IBM 370. Z y V. Determine el valor de los bits de estado S. Evalúe la diferencia e interpfete el resultado binario. El programa en una computadora compara dos números sin signo A y B al ejecutar ima resta A . Compare los formatos de instrucción variable de una de estas computadoras con el formato de instrucción de longitud fija que se usa en IüSC T. d.ones de transferencia de control condicional de la tabla 8-11 que tendrán una condición verdadera. S y V después de la suma. El contenido de 1. Despuds lee una nueva PCW de la memoria a partir de una posición proporcionada por una dirección de interrupción representada por IAD. parte superior de una pila de memoria es 5320. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrán una condición verdadera. Liste la secuencia de microoperaciones para el ciclo de interrupción. El programa en una computadora compara dos númeras con signo A y B al ejecutar la resta A . VAX 1 formatos de instrucciones variables.Determine las valores de los bits de estado C. El contenido del apuntador de pila SP es 3560. b. a. Liste las instrucci. Z. Liste la secuencia de microoperaciones para el retorno de la instrucción de interrupción. c. Sean A = OlOOOOOl y B = 10000100. ¿Después del retorno de la subrutina? &Cuálesa n las diferencias básicas entre una instrucción de transferencia de control.

Nueva Y & Má=mw-i-W 1983. N u m Vork: MGraw-%iB. y A. Gear. B. lX. Kaadel.-G i .1 m . 1 w . Determine el tamafio de Ia ventana y la cantidad total de regisen cada mmpatadriia.. A: C. 1 % w.Ed. P . 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.riU:. Usando el modo inmedigto b . . Decrementar un registro b .Nueva York: McGraw- -. b y . Tres computadoras utilizan ventanas de registro con las siguientes características. wlwQod a ! & . 2. M. E n g l e w d CMfs.Eckiwge. 2.8ms. R M . iW. Usando un modo de direccionamiento relativo (considere que PC = 3400) 1. Ed. Ha.. . kmti&&El: Í8@. Dividir un n5mm con signo entre 4 f.j Ml*hi. . a.' Hamch'er. 4. H. F&E.W . f 9 % . J.znts pJComputer Orpnization. a. y R. 7.wtiwm.C. V . 3a.316 Unidad central de p~icesarniento 8-37. a.. C ~ p u k P r r o p p n i ñ g and Arckit&hw: 2 ' 7 ~ VAX-11. i WPrentii &u.h g l e w d Cliffs. h. l s ' @ . 5.lhtrod~~&m to Compter'Sysl. Godhe. d.2aQE Computer Qrganihmz. . Co"mputadora1 Computadora 2 Computadora 3 Registros globales Registros locale8 Registra comunes Cantidad de ventanas D-ag. G. Complementar un registro c Negar un registro d. 6. ~angholz. Ekm. Englewood Qiffs.k. Prentice Hall. ' v r w i c ~ S. &ayv M. 17. MA: Dígib. g k drehjfecka S D U ~computn ~ systems. Hays. $ .. W. opera&orw. -Ar&hture wrd Grgwidq. ~ i r i p u f tOkgmia#tjoh? v &rrlWre/Sqhwre.o~~. 10 10 6 8 8 16 16 8 4 16 8 16 Proporcioneun ejemplo de instrucciona de &1que ejecutenlas siguientes 8-39. dppjatt.ir p m s .Ed. 2a.C 2 ~ . 4. Bbrrar un rgistro a O e. Cmpter Qrgawkationund hqrmm~tling. a. .

C. . CA: Morgan K a u f m a ~ kiblishers.A. A. 1990. H. A. . Mano. Cambridge. Halstead. Nk Prentice Hall. Siewiorek. Ward. D.H.. c o n i @ ~ i i . L. 1990. Rockville. Septiembe de 1982. Patterson." IEEE Compufer.Hemessy. Computatiofi Struct ums. 20. I. NJ: Prentice HaH. San Mateo. W l a & 1 9 8 1 ) . y B. 1988. Toy. Rafiquzzaman. St. 1986. 2a. Structurd Computer Orpnization. Computer Engin~ring: Hardware D e .A. Pollard. Englewood Cliffs. W. 1990. Zse. Intmfuctioii to Computer Organizatiun. M.M . Chandra. Englewood Cliffs.htice 9.. 3a. EngIewood Cliffs. L. W. Paul. Computer Archiiechrre: A Quantitative Appmch. . 17. 12. 15. Nueva York. Ed. 14. Murray. Computer Organiaztion and Architeehw. . 1988.Bell y A. Patirson. NeweU. Conrpirter and DkitaI System Architecture.. Tornek. Co~tyuter Hardmre/SoWre Architecture. NJ: Prentice Hall. Sequin. W e r n Cmtrputer Architeeture. . M. y R. D ... MN: West Publishers. 13.. 19. D . MD: Computer Science Pms. Stallings. Compukr Strilcturec: Principk and Emmph. y R. 199D. y C. 1 8 .G.. M. Nueva York: McGraw-Hill. Jr. 1982. pp. E n g l e w d Ciiffs. MA:MiT h . 10. NJ: Prentice Hall. 16. D. 1990. "AW RTCC.. W. Tanenbaum. 822. S. Hall. y J.. 1981. S.H . ~ie E n g l e w d Cliffs. ññiArc7titecture. 11.

tarnbih el cmto del sistema. Además.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 Línea paralela aritmbtica Línea paralela de instrucciones Arquitectura paralela RICC Procesamientovectorial Arreglo de pmcesador S'IMD 9-1 Procesamiento paralelo El procesamiento paralelo es un término que se usa para denotar un grupo de técnicas significativas que se usan para proporcionar tareas sirnultArms de procesamiento de datos con el fin de aumentar la velocidad computaciw nal de un sistema de computadora. esto es. puede leerse la siguiente instrucción de la memoria. el sistema puede tener dos o más procesadores operando en forma concurrente. un sistema de procesamiento paralelo puede ejecutar prosesamienta concurrente de datos para conseguir un menor tiempo de ejmuci6n. con 6 1 . los descubrimientos tecnológicos han reducido el costo de la circuiteria a un punto en donde las técnicas de procesamiento paralelo son eron6micamente factibls. En lugar de p-ar cada instrucci6n en forma secuencia1 como en una computadora convmcional. ta cantidad de circuiterla aumenta con e l procesamiento paralelo y. la cantidad de p-nto que puede lograrse durante un cierto intervalo de tiempo. . S i n embargo. E 1 propbito del procesamiento paralelo es acelerar las posibilidades de prmesamiento de la computadora y aumentar su eficiencia. mando se ejecuta una instrucción en la ALU. E i sistema puede tener dos o más ALUS y ser capaz de ejecutar dos o más instrucciones al mismo tiempo. Por ejemplo.

. ' ' MuiUplicdci6nde punuofloeanie r Divipi5n de puntoflotante " * - . ~ 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. bajo la supervisi611de una unidad de control. 16gicas y de corrimiento pueden separarse en tres unidades y dividirse los operandos a cada una. Figura 9-1 Procesadar con unidades funcionds miiltiples.El procesamiento pwwo pmde cangiderarse desde diversos niveles de .eri f~wa &al -hit a la vez.de m e r a simd&@. A la memoria + ñqiistmde pmadw w * . las op&adones adtmeticas. eistinguhw entre operaciones seriales y para].eiasmediante el tipo de @gis~r& ijue4utilizan. Por éjmplo. Los registros de corri&@qer&t. r Suma-mtade w f l - - .. E l procesamiento paralelo se establece al distcibi&t 1 b datos en^ la@unidades funcionales miütiples.cornplqi&d: &-el n i w d m& bajq.ri @mLlusbib de l b palabra en forma shdtdnea. mlenttas que los registras con m g aparaIela o ~9.

. pueden .A~ ~etaciones de puntb flokante se separan eri kres c i d h s que operan en par#lelo. Existen varias maneras de clasificar el procesamiento paralelo. pera operan sobre diferentes eonjuritos de datos.ejecutada en dada unidad fundonai se-hdica en cada bloque del diagrama. Puede considerarse a partir de la organbci6n interna de 106 procesadores. pbr lo que puede recomme uh nthliem rhiehttas otrb Ge incrementa. Una clasificaci6n presentada por M. de control. cootdinar todas la$ actividades entre los diversos componentes.Las instni~ionas. dependiendo de *la opwaci6n respeci%tcada. El procesamiento paraldo puede m r i r en el flujo de instrucciones.el procesridor constibyen un flujo de datos. La aperacib . J.la memoria constituye un pujo de insfrucciunes. de incremento. ion fnriependientes una de otra. desde i a estrudura de interconexión entre los procesadores o desde el flujo de informacl6n a travds del sistema. fliljp . en el flujo de datas o o ambo%. b s operandos eh los registrds s ' e aplican a una de las unidades. El sumador y el multiplicadof de enteros ejecutan las opera~iones aritm4tkas ton f i h & o s mitim~. I. tina unidad de procesador y una unidad de memoria. La secuencia de instrucciones leída de.dedatos iInieo (MISD) instmcci6n mdltipie.de una computadora única que contiene una unidad. Lri -unidad de memoria compartida debg contener >~6ddos. Por l o genaal.uniúilass fintiihdJes mtiii$piIes ta figura 9-1 muestra u m manera posible de separar la unidad de ejecutik en ah~. paralela pude logtarse mediaiike unidades funcionales múltiples o mediante u n arquitectura paraleh. Todas las unida de s. múliltipIes para 'que -pueda comunicarse con .ejecuhme en forma concurrente sobre dfferentes d a b .de datos d t i p l e (MIMD) SISD representa la o@nizaciGn .. Fiynn considera la orgmi~ci6n de un sistema de computadora mediante la cantidad de instrucciones y unidad= de datos que se manipulan m forma simultánea. En este caso el pmmiepito. SMD r e p r e s a t a una orgadzacihn qrre incluye muchas unidades de procesamiento bajo la qmvisión de una unidad cte control cornk.se ejecutan en forma m e n c i a l y el sistema puede o no tener posibilidades de procesamienko paralelo.unidades M&d& que m paralelo. kmfsrría Instmc&n de la unidad de control. La clasificaciún de FIpn divide a las computadora~en cuatro grupos principales de la manera siguiente: m Flujo de Fiuj~ de Flujo de Huj'? de instruccih Único. Las operacie nes ejecutadas -sobreIlm datos m . Todos 1 s p-Ores r & i . Za operacibn normal de una computadora es recuperar instrucciones de la memoria y ejecutarlas en e l p r e a d o r . mediante l a instiurrci6n asodada con los operandos. flujo . Las operaciones 16gicas de mmimiento p . flujg datqs h i c o (SISD) instruccí6ii ~i&Co~-&jode 'datos múltiple (m) instruccibn mLltiple. uría organlzacih inultihi6iml esti! seda con una unidad de control &ompl~$h $&a.

La estructura MiSD es s61o de interés tebrica porque no se ha construido h g h &terna prd~tico uiiLizmdo esta organhaciQn. E 1 resultado obtenido del cálculo en cada "gm@o s e transfiere al siguiente segmento en la línea. La simultaneidad de los cailculos es posible al asociar un registro con cada segmento en k iínea.datos han recorrido tados los segmentos. Procesamiento por arquitectura paralela Z P m c d e n t o de v-r 3. El nombre "hea" implica un flujo de infonnacibn similar a una iínea de ensamblado industrial. L a ocganjzación MIMD se refiere a un sistema de computadora~ capaz de procesar múltiples programas al mismo tiempo. dictado por la manera en que se divide la tarea.y el de la unidad de procesamiento de datos. E 1 procesamiento de vector se relaciona con los c4lculos que implican vectores y matrices grandes. Es caracbistico de las heas que varios cálcuios puedan estar en proceso en distintos segmento& al mismo tiempo. Una línea puede considerarse como un conjunto de segmentos de procesamiento por el que fluye informacidn binaria. Los procesadores de arquitectura paralela ejecutan cálculos sobre a q l m de datos grandes. Arreglo de procesadoma El procesamiento por arquitectura paralela es una técnica de implantaci6n en donde las suboperaciones aritmdticas o las faws de un ciclo de instntccibn de computadora w traslapan en su ejecuci6n. que s e presentan en el capitulo 13. El resultado final se obtiene despuh de que 1 . La mayoría de los sistemas de multicomputadoras y multiprocesador pueden clasificarse en esta cateprh. ' IA dasiffmción de n y n n depende en la d ' b c i a en& d de$mpeno de l a unidad de control . Un tipo de procesamiento paralelo que no entra en la dasificaci6n de Flym es la arquitectura paralela @ipe-line)Las Sinicas dos categorías utilizadas de esta clasificaddn son los procesadores de arreglo SIMD. 9-2 Arquitectura p d e l a ta arquitectura paralela o de lineas paralelas (pipline] es una técnica m la que se descompone un prtrceso secuencia1 en subaperadones. analizados en la secci6n 9-7y MIPVPD. y cada subprose ejecuta en un segmento dedicado especial que opera en forma conaurente con los otros segmentos. En este capitulo consideramos el procesamiento paralelo bajo los sitodos guientes temas principales: l. Exúatba las características de desempeño del sistema de computadora mis que sus interconexiones estructeiraks y operacionales. Los registros proporcionan aislamiento entre cada ceso . Cada q p e n t o ejecuta un procesamiento parcial.322 cAPmnoNUEVE Paralelismo y pnxesamiento de v e c b los prwesadores simultáneamente.

D e esta manera la irdormaci6n fluye por la Unea un paso a la vez. Al B 1 ci . 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. 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 . E l multiplicador y el sumador son circuitos Figura S2 Ejemplo de ptmesamienio p d e l o .segmento para que cada uno pueda operar sobre datos distintos en forma un demplo simultánea. Tal vez la m e r a más simple de apreciar la arquitectura de luieas paralelas es imaginar que cada segmento consta de un registro de entrada seguido de un circuito combinatorio. Se aplica un reioj a todos los registros después de que ha transcurrido un tiempo suficiente para ejecutar toda la actividad del segmento. La organizacibn de la linea se mostrara mediante un ejempIo simple. 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.

con d a b s nuwos en cada pulso de reloj. R2?3. cada ciclb.de. h TABLA P1 Contenido de l e g i s b en e l ejemplo de arquitectura paralela Ji*Bi Az* Bn A3*B3 + Ci + Cz + C3 Al* B q C 4 As*& + C s A** 3 6 + C 6 AI* B. + Consideraciones generales Cualquier operación que puede descomponerse en una secuencia de suboperaciones de aproximadamente la misma complejidad. transfiere el producb de R I y R2 dentro de R3. El primer pulso de reloj hanskm . El sepndo pul. + C. transfiere C. de reloj pbciuce una nueva salida y mueve los & k m un paso adebnte en la lhea. E 1 mismo pulso de reloj tramfie~e & y B~ dentro de R1 y R2. Las suboperaciones ejecukadps en c d a segmento del conlas siguientes: RI+Ai. De ahf en a d h t e . y B3 dentro de R 1 y R2. i i a &nica es eficiente para . rel~j trans8ere:d p d h * de-R1 y. puede implantarse mediante un pcoeesador de arquitectura paralela. R4+ Ci ~5-33 Ft+ue. y Gl$entro de R4. E m I tercer pulso de reloj opera sobre los tres segmentos en forma simultánea. l*R44.ducto son A'.ir A.R2 dentro de R3. y B. csmbinatorios. ~denhode Rl y m. el reloj debe continuar hasta que emerge la iriltima salida de la línea. Se necesitan tres pul&&de e l o j para llehhr la lhea y recuperar la primera salida de ES.Ai y Bl. dentro de R4 y coloca la suma de R3 y R4 dentro de R5. B : * l R . El efecto de cada pulso de reloj se muestra m la tabla 9-1. Cuando ya no hay datos de e n k h disponibles. hhltiplicar E introducir Ci Sumar Ci al aroducto + ~4 m &e0 ~+tm se cargan. Coloea a A. Esto sucede en tanto fluyan nuevos datos denh del sistema.

para compkhr n tareas utilizando una bezi de & se ntos & : n d í m k + "($t . l'a tarea TIse maneja mediante el segmento k hqm& del.tiempo igual a (n . el diagrama deyfigura 9-4 muestwcuawi &qfrri&bs y seis tireas. Este &S un diagrama que muestra Ia utilizacidn del %menta como una funcibn del tiempo. egkn e iIidic~-en el &&rama.1) = 9 ciclos de reloj.e@mctura general de una línea de cuatro qpentoi.t R 3 + S4 + R4+ A - - Figura 9-3 k e a paralela & cuatro segmentos. una vez que la linea está llena. LOb opnandos recorren los cuatro s e g m e n t m en uns secaenda fija Ca6. Ahora ~ ~ ~ s i ~ n icaso o sen ~ donde e l selutiiiza una línea de k segmentos para ejecutar n tareas con un tiempo de ciclo de reloj t. Por ejemplo. ejecutadas en t u a m egmentos. la Unea completa una tarea en cada ciclo de reloj.l)t. se ilurba en la f i g u ~ 9-3. E l diagrama muestra seis tareas de Ia TIa la T . estii ocupado can T p mientras que e l segmento 1 est4 oreupdu con la tarea T2. El eje horizontal muestra el tiempo en ciclos de reloj y el eje verticai proporciona el número de qpnento.1) 'cidosde reloj. La. Ri+ 1 S2 + R1 t S3 . el segmmto '2. prlmer Giclo de reloj. Al continuar de esta manera la primera tarea TIse completa despuks del cuarto ciclo de1 reloj. No importa cuantos segrnentm existan en el sistema. D e ahí adelante. E l diagrama espacio-tiempo de un conducto cori c u a b segmentos se muestra m la figura 9-4. diagrama espacio-tiempo de-pefid de la . m4 Entrada " F SI C .. .Por lo tanto.enla %ea. p t a tqmpleiar-todas hs opciones e~ 4 + (6 . Defjnimos una tarea como la operaci6n total ejecutada &do w recorren 'todos Ios Begrnentos en l a Ift~ea. La informacidn fluye entre dapaa adyacentes baja el control de ua reloj comilin aplicado a todos tarea los regis!ms en forma simultánea.datqs. porque existen ke a .arquitectufa paraleía puede ilustrarse mediante un diagrama espacio-tienipo. Al princip'o. &$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. 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 después de un . El tiempo r e q d d o . sólo se necesita un p"1ado de reloj para obtener una salida. La primera tarea TImcdhun tiempo igual a ktP paga coiqdetar su operacibn.aqueIlas aplicaciones que necesitan.repetir la misma tarea muchas veces con dikwtes wnjunw de .

= k$ Al incluix esta supo&i&n. un sistema de arquitectura no paralela necesita nktp = 100 X 80 = 8tMO ns para completar las 100 tareas. Para hacer más claro el s i e c a d o de la rielaeión de aceleracidn.88.y k n .. consideremw el siguiente ejemplo numérico. A continuación considemm una unidad de arquitectura no paralela que ejecuta la miama operad611y requiere un tiempo igual a f. para completar cada tarea. Considemndm que f. = €4 = 4 X 20 = 80 m. tendremos f. en donde k es la cantidad de segmentos en e l conducto. E l sistema de arquitetura paralela necesitad (k + tn .1 se aproxima a1 valor de n. = 20 ns e l tiempo que s e necesita para pmu>cesar una operación en cada segmento. Consideremos que la tiene k = 4 segmentos y ejecuta n = 100 tpras en m c i a . + .l)fp = (4 99) X u] = 2060 ns para terminarse. n se vuelve mucho más grande que k .tiempo para iínea paralela. Bajo esta condici6n. Sea t. El tiempo total requerido para n tareas es n f .1 . la aeeleracibn se reduce a: Esto muestra que la miixima acelemci6n tddca que puede pmporcionar un d u d o es k. 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. 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. L a relaci6n de aceleración es igual a 8M30/2060 = 3.Figura 9-4 Diagrama &acio.

la acderaci6n se acercarA a 4. los circuitos paralelos aceptan cuatro conjuntos de datos de entrada en forma simultánea y ejecutan cuatro tareas al mismo tiempo. Si consideramos que t. Debe elegirse e l c i c l o de reloj para que iguale el titiempo de retraso del segmento con el máximo t i e m p o de propagación. N 6 W que el circuito de cuatro unidades de Ja iigura 9-5. aunque nunca se b p por m m p h la dima velocidad Urica. Cada circuito P ejecuta la misma tarea de un circuito con arquitectura paralela equivalente. constituye una organhcián de instmcci6n hita. En lugar de operar con los datos de entrada en secuencia. En l o que se refiere si la v w d a d de operacidn esta es equivalente a una línea con cuatro segmentus. como en una Unea. Los diferentes segmentos pueden requerir tiempos diferentes para completar su suboperacih. Esto provoca que los otros segmento8 desperdicien tiempo mientras esperan el siguiente ciclo de reloj. MuScos de los W t r u s inhmdios no se en un M t a de una sola unidad d cual. Esto se ilustra m la figura 9-5. k técnica de arquitectura paralela proporciona una operacibn más +da que una secuencia puramente serial. datas múltiples (SIMD). en donde están cmeados en paralelo amtro h i t o s idénticos.Corsforme auentai d n r o de tareas. = 60 n s . lo cual es igual al número de segmentos era el conducto. N o obstante. . es nexsario construir k unidades idénticas que operarán en pacalelo*Esto implica que puede esperarse que un pr-dor de arquitectura paralela de k segmentos iguale el desmpeíío de k copias de un circuito de arquitectura no paralela equivalente bajo condiciones de operad611iguales. porque se u t i h Ja misma instrucción para T r a r sobre datos múltiples en paralelo. la acelaacibn se toma 60/2Q = 3. Existen varias razones por las que una arquitectura pardela no puede operar a su máxima velocidad &rica. 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. Para duplicar la ventaja de velocidad tebrica de un proceso paralelo mediante unidades funcionales mdltiples. por lo general puede ~onstruirsepor completo como un circuito combinatorio.

Debe notarse que el clorrimknto debe estar disefiado como 'un circuito combina- -m m . Esto se apega al próeedimiento delineado en el diageama de flujo de la figura 10-15. 2.suboperaciones. Ndhnalizar el resultado. b t o provoca un alineamiento de las dos mantisas. Una línea de insfwmiones !opera sobre un flujo de inst~ucciones al sobreponer las fases de recuperación. Se escoge el exponente mayor como el exponente del resultado.decodificación y ejecución del ciclo de instrucción. como se muestra en la sección 10-5. Puede ejecutarse la suma y resta de punto flotante en cuatro segmentos. un multiylicador de arquitectura paralela es un arreglo multiplicador como el que se describe en la figura 10-10. como se muestra en la figura 9-6. La diferencia entre exponentes determina cuántas veces debe ejecutarse un corrimienko a la derecha sobre la mantisa asociada con el exponente menor. Una línea aritméticas divide una operación aritmética en suboperaciones que se ejecutan en los segmentos de la línea. Ahora mostmremos un ejemplo de una unidad paralela para suma y resta de punto flotante. multiplicación de números de punto fijo y cálculos similares encontrados en problemas científicos. c m sumadores especiales diseñados para minimizar el tiempo de acarreo mediante los producbos parciales. En las siguientes secciones se ejcplican los dos tipos de líneas. Las entradas para la línea sumadora de punto flotante son dos números binarios normalizados de punto flotante. se encuentran unidades aritfnéticas dk arquitectura paralela en computadoras de gran velocidad. A y B son dos fracciones que representan las mantisas. en tanto que a y b son los exponentes. Los registros etiquetados R se colocan entre los segmentos para almacenar los resultados intermedios. Las operaciones de p~opagaciSn de punto flotante se descomponen con facilidad 'en. 3. 4 + ? ! Línea #paralelaari. Las suboperaciones que se ejecutan en los cuatro segmentos son: -- . Sumar o restar las mantisas. 4. Alinear [Ias fnantisas.328 CAP~TULO NUEVE ParaIeEsmo y procesamiento de vector Existen dos áreas de dieefio de computadoras en las que es aplicable la organización paralela. .tmética 9-3 Por lo general. En esencia. Se comparan los exponentes al restarlos para determinar su difeencka. a PPICIILi - 1 . pero se usan algunas variaciones para reducir el tiempo de ejecución de las suboperacimes. Comparar los exponentes. Se usan para implantar operaciones de punto flotante.

.SECCI~N 9-3 Línea paralela aritmética 329 a Exponentes b Segmento 2 : Segmento 3 : segmento 4: Figura % Arquitectura paralela para suma y resta de'punto flotante.

aunque Ia figura 9-6 hace derada a números binarios. = t. . . tendra un retraso t. 3. Consideremos los dos números de punto flotante normalizado& Se restan los dos exponentes en e l primer segmento para obtener 3 .torio para reducir el tiempo de corrimiento. = t3 -it.2 = 1. como el exponente del resultado. Se escoge el exponente más grande. El siguiente ejemplo numérico puede achrar las suboperaciones que se ejecutan en cada segmento. En la linea paralela de punto flotante se implantan el comparador. i t2 + t3 + t4 + t. 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 fracción con un primer d@to diferente de IE. corrimien.. Si ocurre un sobreflujo. EI siguiente segmento z r x o m a la derecha la mantisa de Y para obtener: . = 320 ns. y decrementador con circuitos combinatorio. Supongamos que los retrasos de tiempo de los 4 segmentos son ti = 60 ns. f2 = M ns. = 1 1 0 ns. 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. t3 = 100 ns. En este caso. la mantisa de la suma o diferencia s e recorre a la derecha y el exponente se incrementa en 1. - Esb-alinea las dos mantisas bajo e l misma exponente. E 1 resulkado se normaliza en el segmento 4. Pqr simplicidad utilizamos números decimaies. Un sumador-sustractor de punto flotante equivalente no paraido. Cuando ocurre un sobreflujo.9 que el sumadar no paraielo. la cantidad de números O significativos en la mantisa determina el número de conhientas a la izquierda y la cantidad que debe restarse del exponente. = 10 Se ~ l m i o n a d ck10 de reloj para que sea 1. t4 = 813 ns y que los registros de interfaz tienen un retraso de f. s u ~ t r a c b tincremenkador ~. Las dos rnanfisas se suman o restan en el segmento 3.b. sunador. el sumador paralelo tiene una aceleracidn mayor 320/110 = 2.

Las instrucciones se hsertm en el registro intermedio FZFO para que puedan ejecutarse en un &quema primero en entrar. provocando que un segmento r e hasta que o t r o termine su c o m u n i c a ubn. primero en salir. . c s c b L * El procesamient~por h e a paralela puede ocurrir en el flujo de datos y también en e l flujo de instnicciones. inicia la siguiente fase de recuperaci6n de instniccions. i a cmtpbcioms m hsbmmíones 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. Cuando hay espacio en e1 # e g & ~intermedio FEO. en otros segmentos. puede colwarse un flujo de instnicciones en una cola. . En ocasiones. Existen Éiertas diuc&& q u . ' . 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. debe vaciarse h línea y deben descartarse todas las instnic ciones que s e han leido de la memoria después de la instnicci6n de brinco. en espera que lo decodifique y procese el segmento de ejecución. la computadora m i t a prmesar d a inst n i d 6 r i con l a siguiente secuencia de pasos. se resuelven los conflictos de acceso a memoria al usar m). L los operandos de h memoria. Segmentos diferentes pueden necesitar tiempos diferentes para actuar sobre la información que ilega. :Ejecutar la instnicei6n.Deeodificar i a instrucción. Una línea paralela de instrucciones lee inshuccionea ronseativas de la memoria mientras. primero en s a h Este es un tipo de unidad que forma una cola en lugar de una pila. 2 . se eiecutarr instnicciones anteriores. 6. Una pmibk di~pesibn asociada con tal un brinco fuera de secuenkuema es que una insmiccibn puede cia. hede imphkarse el segmento de recuperaci6n de XIlk tniaciones mediante un registro intermedio (buffer) primero en entrar. 1 . En tal caso. la unidad de aonhol. 3. R m p r a r la instrucci6n de la memoria. Por ejemplo. Se saltan algunos segmentos pata &&as operaciones.9-4 Línea paralela de instrucciones t . 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. Almacenar el multado. Dos o d s segmentos pueden requerir el acceso a la memoria al mismo tiempo. . Cuando h unidad de ejecuci6n no e s t i usando la memoria. 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.. 5. una instnicci6n de modo de registro no necesita un &culo de d i c i ó n efectiva. Cakuiar la &recci6n efectiva. Par l o tanto. evitardn que la línea paralela de iristrucciones funcione a s u vel&dad máxima. en el lugar adecuado. El registro intermedio actiia como una cola de la qye el control obtiene las instrucciones para la unidad de ejecucibn.

Ejemplo: Línea parlela d e . pueden leer& en forma simultánea una palabra de instrudbn y una palabra d~ datas de dos mdduloc diferentes.memo* par$ qc-w 4s insbgcgiones y los datos en mbdulos separados. funci6n depende de la instrucción .neelesltacada p a paral terminar su. El tiempo que.unsegmento la decodificaci6n de la instrwci&n y el ~ $ 1 4 de0 la & i i 6 n ektiva. ~ h s ~ c c i o nde e s cuatro segmentos Consideramos que pueden combharse a . y de h m m como se ejecuta. .de .de instrucciones en xgmentas de igual duracibri. el ciclo\. j . Dé esta Manéra. Además. consideremos que la mayoria de las i n s ~ ~ o n whcan es e l multado en un registro de A I Figura 9-7 hquitectura paralelg de Uüde cua@ scgmcntm. E l diseno de una línea paralela de iristruccime =A m6s eficiente s i se divih.das can&s.

DA es el segmento que decodifica la instrucción y calcula la dirección efectiva. pueden traslaparse y estar en proceso hasta cuatro suboperaciones en el ciclo de instrucciones. Mientras se ejecuta una instrucción en el segmento cuatro. los cuatro segmentos se representan con un símbolo abreviado. La figura 9-8 muestra la operación de la línea paralela de instrucciones. se terminan las operaciones pendientes en los últimos dos segmentos y se borra toda la información almacenada en el registro intermedio de instrucciones. cuando se reconoce una solicitud de interrupción. 4. Por lo tanto. 1 . EX es el segmento que ejecuta la instrucción. . De vez en cuando. la siguiente instrucción en secuencia se ocupa en recuperar un operando de la memoria en el segmento 3. La figura 9-7 muestra como puede procesarse el ciclo de instrucciones en la CPU con una línea paralela de cuatro segmentos. 3. El tiempo en el eje horizontal se divide en pasos de igual duración. FI es el segmento que recupera una instrucción. Esto reduce la línea paralela de instrucciones a cuatro segmentos. Después. En el diagrama. FO es el segmento que recupera el operando. pueden recuperarse y colocarse en una localidad del registro intermedio FIFO la cuarta instrucción y todas las subsecuentes. Figura 9-8 Temporización de línea paralela de instrucciones. una instrucción en la secuencia puede ser del tipo de control de transferencia del programa que produce un brinco fuera de la secuencia normal. para que la ejecución de la instrucción y el almacenamiento del resultado puedan combinarse en un segmento. En ese caso.SECCI~N 9 4 Línea paralela de instrucciones 333 procesador. hará que se "vacíe" la línea paralela y vuelva a iniciar a partir de un nuevo valor de dirección. 2. En un circuito aritmético separado puede calcularse la dirección efectiva para la tercera instrucción y. De igual manera. cuando está disponible la memoria. la línea paralela reinicia a partir de la nueva dirección almacenada en el contador del programa.

trans£erencia de control. Sugongzm~s que k h í p i i 6 n 3 es yna ipstmi&n de transferencia de control.Puede o& QQO retram en la línea si 4 segmento EX necesita almaqmar 4 respltadg de la ct-ación en la aiemoria de datos mientras el segmento FQ w i t a recuperar . . En auSencia de una instnicci6n de .ejecuta la . +pu&(: la k a paralela. CmjZrClos de recurso$.Pne$.den rgsolverge al . Si no i da la .X. Ocurre una dependencia de datos mando una Xnstrucci6n necesita datos que todavfa na est& disponibles.provocados al a la memoria dos gegmentos diferentes. producen difrcuttades de hnsferencia de control a partir de instrucciones que modifican el valor cid FC. una insbfucci6n en el segmento FO puede necesitar un operando que se está generando.. En ese caso. q m t EX ~ haya knnhad~ su operacibn.por +bque pude avanar la l~peracibn en FI y FO. Por l o tanto.instruccionesprevias no terminan sus operaciones.instrucción debe esperar a que la primera instnicci6n le deje disponibles los datos. hasta que se. e n el ~ p w i t DA n . De igual manera. mediante una instmcci6n anterior en el segmento EX. ~ 8dfmmtes.. Por ejemplo. en en momento.uí$za~ memorias de instrucciones y de datos sepawdw.DA de las otras instrucciones. al mismo tiempo.s de instrucciones y datos . Surgen conflictm de depen&ncia de &tos cuando u n a uistrucción depende dd resultada de una anterior. al mismo tiempo.. pero éste todavía no está disponible. la segunda.normal. e1 segmento FO debe e s p p r . Gran parte de estos conflictos pue.instnicci6n de transferencia de control en el paso 6.la hstmicción recuperada antes. en e l paso 4.seb hodifica esta hímmi6n en el segmento DA m e3. '3. existen tres dhultades principales que provocan que una iínea de instruccbnw se apam de su operacibn. puede uwme . ' En general. 1 .se nwa hstruqci6n en e1 paso 7. en d pasa 4. co&úa la efeeucibn hasta que se encencyehtca una nueva htmmi6n de trawfmncia de control. cada segmento *pera m b imshuc. se 4-b la inskrucWr) m q y n e n t ~ . 2.mmado~ time nwwx!ia. Si w da la transhcias . puede ocurrir una dependencia de direccibn. separadas. cuando no puede calcularse una direccidn de operando porque . cmflict~e de condwto Se considera qge el pr. Tan pronto com~. hasta que d . Dependencia de los datos Una dificultad que puede producir una degradaci6n del desempeño en una línea paralda de instrucciones se debe a una posible coIisi6n de datos o direcciones. Ocurre una rolisi6n cuando no puede avanzar una instrucei6n porque ciertas .el opera~do para la hstruccihn 2 se -pera en ei &en@ FQ. paao 4 se detiene b transferencia de Fi a.Por l o tanto.~&erencia.un operando. e decodifka la instnicri6n 3 y en-dsegpenta se m p e r a & la memoria la instrucción 4.

Este enfoque mantiene la secuencia de programa al usar hardware. Un procedimiento empleado en algunas carnputadoras es proporcionar 4 campitador que @aduceel lenguaje de programacibn de alto nivel a un pmgrarna de lenguaje de . el controI selecciona l a direccibii objetivo si se satisface la rogdicibri o la siguiente instrucció~i secuencia1 si no se satisface. para insertar los retrasos requwidos.detecta ktnicciones cuyos operandos fuente son destinos de instrucciones que se encuentran m6s adelante en la línea. E l compilador para tales computadoras est& &&a40 para . pasa el resuhado dimctamente la entrada de la ALU. 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. L s computadoras w n arquitectura paralela enfrentan tales conflictos de dependencia de datos de divasas maneras. Este m6todo s e cafgp pclspuesta de~~omina carga psPwstEi O retardoda. la circuikria comprueba el operando d e s h a y. Las computadoras con .. Una transferencia incondicional siempre altera el fiuja secuencia1 de1 programa al cargar e l coiitadar de programa con la direcci6n objetivo. utiliza hardyare especial para detectar un comfiiqto y despu4s evitarlo pl direccinnar b s datos mediant e trayectorias espwiaIes entre segmentos de la Ilnea.los datos en confiicta por medio de la inserci6n'de instrucciones de no coperación. Este rnktcrdo necesita trayectorias de hardwmm a&cioililIes por medio de multiplexores y el circuito que detecta el cmflicto. produciendo dificultades en la aperacibn de l a Iinea paralela de instrucciones.ALU a un registro destino.direcci6~ querida. Por ejemplo en lugar de transferir un resultado de la . la instrucción de transferencia de control interrumpe la secuencia narmaI del flujo de instrucciones.hasta que está disponible la.mdquina. una instrucción cQn modo de direccionarniento indirecto por registro no puede avanzar a recuperar e l operando si l a instrucci6n anterior esth cwgando la dirección en e l registro. eR la siguiente seccibn se presenta un ejemplo de este prwe. Como se mencion6 antec. la responsabilidad para resolver los probJ9as de connictos de datos.necesario al retrasar l a carga de . Por lo h t o . Por ejmplo.&ieiito.detectar un conflicto de datos y reordenar las instrucciones conforme sea.no e@ disponible la informacidn que necesita el modo de direccionamiento. La detección de esta situaci6n hace que la iiistrucci6n cuya fuente no estd disponible se mtrw suficientes ciclos de reloj para evitar el omfiicto. Un verificador vsrifica&res es circuito que . En una instruccidn condicional. cirmitos E l mbtqdo más d b t o es h r t a r circuitos vertjímdores. auatrcs de operandos Qt~. si se necesita como fuente en la siguiente instrucción. Una instruccidn de trarisferencia de coiitrol puede ser condicional o incondicional. llamada a w i ~ c ede oprnndos.atécnica. el acceso del operando en la memoria &be retras. sin accesas el archivo de registros.

Un ejemplo de transfe- . Si está eíi el BTB. Cuando l a hea. El BTB es una memoria asociativa (v&ase la secci61112-4) incluida en el segmento de recuperación de la lhea. El ciclo de programa puede ejecutarse en forma directa. la Iinea paralela empieza a recuperar con anticipaci6n el flujo de instrucciones de la trayectoria predicha. También almacena unas cuantas htrcicciones que se encuentran despiiés de la instruccidn objetivo de la trmsfemcta. flujo de imskuccianes de la secuencia de programa correcta. Si la condición de la transferencia se cumple. la ventaja de este esquema es que las inshmiones de transferencia de control que han ocurrido con anticipci6m 6 disponibles con fadidad en la iííea. la línea paralela conkin$a a partir de ia lashucci6n objetiva de la transferencia. busca I a memoria asociativa BTB para la dlmd6íi de la Instrucci6n. En este prdimienpof el pmxsador detecta las instrucciones de transferenria de control y reordena la secuencia de código de lenguaje de mdquina al ihsertar'instniceiones iitiles que conservan s i n interrupciones la operaci6n de la línea paralela. Otro pmcedbiento que utilizkn algunas computadoras es la prediddtr de trrinsf~enck de wntrot y tinm praieh. Cuando se detecta un ciclo de prcrgrama. decodifica una iastrucci6n de 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. se puede dispdner de la inshrucci6n en forma directa y la recuperacibn roh anticlpatibn cantinúa a partir de la nueva trayectoria. Una variante del BTB es el registro deciclo. Cada entrada en el BTB consiste en la instnicci6n de transferencia recuperada con anticipaci6n y la instrucc"i6n objetivo para esa transferencia.que se ejecuta la transferencia. el control seleccima el. sin interru~iones. Ambas se guardan hasta . Si la instrucci6n na estd en el BTB. Despub. sln tener quemaccesar la memoria hasta que se retira el modo de ciclo con la transferencia de control final. Una maner'a de manejar una transferencia condicibnal es recuperar con anticipacibn la ciireccih objetivo. la línea paralela cambia a un nueva ciclo de instrucciones y almacena la instrucci6n objetivo en el m. además de la instmccibn que sigue a la transferencia. de muy aIta velocidad. Otra posibilidad es usar un wghfro de ratrnFcación objetivo (branch target buffer. 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. Una predicci6n correcta elimina ei tfempo perdido causado por el proceso de transferencia de control. En ese momento.registro de r#tlpifi~~~ción objetivo arquilectura partilela emplean d h t e s técnicas de hardware para minimimr la degradaÚ6n . que se mantiene en e l segmento de remperaci6n de instruceisnes de Ia linea paralela.del desempeño provocada por las instruccioiies de transferencia de control. incluyendo todas ias trmferencias. Este es un pequefio archivo de registros. BT3). se almarena por compleito en el registro de ciclo. Un procedimiento usado en la mayoría de las procesadores RTSC es la trmferench -!a O retardada.

gran parte de Ias máquinas TUSC u t h dos canales separados con dos memorias: una para almacenar hs iiistmccioiies y otra para almacenar l o s datos. lo que se hace es empezar cada instrucción 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. Por 10 tanto. . Puede usarse la sencillez del conjunto de instrucciones para implantar una linea paralela de instrucciones con un número pequeílo de operaciones y que cada una se ejecute en un ciclo de reloj. 9-5 Arquitectura paralela RISC En la seccibn 8-8 se present6 la computadora con conjunto reducido de histrucciones (RISC). Debido al formato de instrucciones de longitud fija. l o que permite tener un flujo continuo del conducto.deusar un conjunto de instrucciones eficiente.SECU~N $5 hquite&ma paralela 3 i S C 33'1 . En algún momento. rencia retardada es la iriserci6n de w a instnicci6n de no operación d w & de una iristnacei6n de transferencia de conSro1. Como se meiicionb mi la = & n &8. Por lo general. no es necesario calcular una dirección efectiva o recuperar operandos de la memoria. durante h ejecución de la instniccibn de no ope~ati6n. Eiitre las caracteristicas que se le atribuyen a RTSC está la capacidad . Para evibr mnElietos entre un acceso a memoria con el fin de recuperar una instrwcibn y cargar o almacenar un operando. J a línea paralela de instrucciones puede implantarse con dos o tres segmentos.recupera la hstrucci6n de la memoria del programa y el otro segmento ejecuta la instrucci6n en la ALU. Esto hace que la computadora recupere la b c i n nbjetivo. Un segmento . La ventaja de la R15C &re la CICC (computadora con conjunto de hstsucciones complejo) es que la RTCC puede h e r segmentos paralelos.segmento mis grande requiere dos o &S ciclos de reloj. Como todos los operandos estsin en registros. No es posible esperar que cada instrucción se recupere de la memoria y se ejecute en un ciclo de reloj. una de las principales ventajas de la IUSC es su capacidad para ejecutar instrucciones a una velocidad de una por ciclo de reloj. necesitan tres o cuaba etapas en e l egme~ito. las iristrucciones de transferencia de datos e s t h limitadas a bs instrucciones cargar y almacenar. en tanto la S E utiliza muchos segmentos en su arquitectura paralela y e i . En la siguiente secci6n se p m t a m ejemplo de transfemch de control pospuesta. Puede usarse un tercer segmento para almacenar el resultado de la operacidn de la ALU en un registro destino. E l a s instrucciones utilizan un dimcioiiamiento Mirecto por registros. ejwidn& fnstmcctión eii un solo cid0 En la arquitectura RISC. En realidad. las dos memorias pueden opwar a la misma velacidad que el reloj de la CPU y se denominan memorias cach6 (véase la sección 126). Todas las instrucciones de manipulacibn de datos tienen operaciones pgistro a registro. al requerir sólo un d o de reloj. la decodificación de la operaci6n puede ocurrir a1 mismo tiempo que la selecci6n de registro.

dependiendo de la imstrucci6n decodificada. los prmesadores RlSC se basan en la eficiencia del cornpiiador para detectar y minimizar los retrasos que se encuentran con estos problemas. dependiendo de la instrucci6n codificada.En esta hhla apreciamos que existen tres tipos de instrucciones. Las instrucciones de m k a l de transferentia del programa utilizan valores de registro y una constante para evaluar. La instru~ción se decod&a y se ejecuta una operacih ALU en el segmento A. ta secci6n de control recupera la instntccí6n de la memoria del programa dentro de un registro de instnrcci6n. Se usa una memoria de datos para cargar o almacenar los datos de un registro seleccionado en el archivo de registros. la direecibn de transferencia. Operaci6n de la ALU E : Ejwufar instruccidn El zepento 1 recupera la instruccibn de la memoria del programa. Ejemplo: Unea paralela de instrucciones de tres segmentos Uh conjunto +pico de instrucciones para un prúcesador MSC se a l i s t a en b tabla 8-E. 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. La ALU se utrliza para tres funcione diferentes. maltia la direecibn efectiva para una instruccibn de emga o heen. 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 . ias instrucciones de rnanipulaci6n de datos operan sobre los datos en l o s registros del procesador.de un registro y un desplazamiento constante proporcionado a la instrucci6n.aWentci o calcula la direcci6n de traderencia para una ~ ~ c c i Q n de transferencia de control del programa.por transferencias de control. T h lugar de diseliaf hardmre para manejar las dificultad& e i a d a s con conflictos de datos y pérdi&c. El seginento B dirige la laida de la ALU a uno de tres destinos.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. 16gkas y de corrimiento. Ejecuta una operaci6n para una instrueci6n de madpulaci6~ de datos. Consideremos a b r a la operación de hardware para dicha computadp. la cual se transfiere a un registro o al contador de programa PC. ra. La unidad del pme6ador m s t a de un namero de registros y una unidad aritmBtlca 16gica (ALU) que ejecuta las operaciones ariúnéticas. El ciclo de imstrucei6n puede dividirse en tres suboperaciones e implantarse m tres segmentos: 1 : Recupmci6n de instnicci&n A . La instnicci6n se decodifica al mismo tiempo que se seleccionan b s registros necesarios para la ejecuci6n de la instrucción. .

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 dirección 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

CAP~TULONUCVE Paralelismo y procesamiento de vector

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 todavía no se ha transferido de la memoria. Depende del compilador asegurarse que la instrucción después de la instrucción cargar, utiliza los datos recuperados de la memoria. Si el compilador no puede encontrar una instrucción útil para ponerla después de la carga, inserta una instrucción no operación (no-op). Este es un tipo de instruccik que se recupera de la memoria pero que no tiene operación, por lo tanto, gasta un ciclo de reloj. Este concepto de retardar la utilización de los datos que se cargan de la memoria se denomina carga pospuesta o retíardada. La figura 9-9(b) muestra el mismo programa con una instmcción n m p insertada después de cargar a la instrucción R2. El dato se carga dentro de R2 en el ciclo de reloj 4. La instrucción sumar utiliza el valor de R2 en el paso 5. Por lo tanto, la instrucción no-op se utiliza para avanzar un ciclo de reloj con el fin de compensar el conflicto de datos en la línea paralela. (N6tese que no se ejecuta ninguna operación 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 más simple porque no tiene que comprobar si el segmento del registro que se accesa es válido o no.

Transferencia pospuesta o retardada
Como en la figura 9-8 se mostró que una instrucción de transferencia de control pospone la operación de la línea paralela hasta que se recupera la instrucción en la dirección de la transferencia, en la sección anterior se analizaron varias técnicas para reducir los retrasos por transferencia de control. El método más usado en la mayoría de los procesadores RISC es apoyarse en el compilador para definir las transferencias, con el fin de que se efectúen en el momento apropiado en la línea paralela. Este método se denomina trancferencia pospuesta o retardada. El compilador para un procesador que utiliza transferencias retardadas está diseñado para analizar las instrucciones antes y después de la transferencia y volver a arreglar la secuencia del programa al insertar instrucciones útiles en los pasos retardados. Por ejemplo, el compilador puede determinar que las dependencias de programa permitan que una o más instrucciones anteriores a la transferencia de control se muevan dentro de los pasos retardados después de la transferencia de control. Estas instrucciones se recuperan despues de la memoria y se ejecutan mediante la línea paralela, en tanto la instrucción de transferencia de control se ejecuta en otro segmento. El efecto es el mismo que si se ejecutaran las instrucciones en su orden original, excepto que ya no existe el retardo de la transferencia de control. Depende del compilador encontrar instrucciones útiles para colocarlas después de la instrucción de transferencia de control. Cuando esto no es posible el compilador puede insertar instrucciones no-op.

'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 revisión 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 instrucción 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 dirección 103. La instniccibn de sumar se recupera de la d-ión 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 instrucción de la dimi5611de t r ~ ~ c h .
9-6

Procesamiento vectorial

Existe m tipo de problema computacional que est6 más 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 días o inclusa semanas para terminar. En muchas aplicaciones científicas y de inpiería el pmbkma ptreEk formularse en térmims 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 Análisis 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 diseño, muchos de 1 - cálculos requeridus no pueden l i q m a cabo! dentro de un tiempo razonable. Para conseguir el nivel querido de desempeño de calidad es necesario utilizar la circuitería mas rapida y mnfiabIe y aplicar p d m i e n t o s innovadores de técnicas 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 números se formulan como vktores y matricei de números &'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.

...

i

I

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 después 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 operación 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 deaüno

o vechr. Fignia 9-11 Fommte & insmwión para p ~ i a i m t de

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 diseñar 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 espei€im un grupa de registros de CPU.

Mdtiplicacidn de matriz La multiplicad6n de rn4tri-z es una de las operaciones compulacionales m6s
intensivas que se ejecutan en las computadoras con procesadores de vector. La mdiiplimci6n de dos mittrices n X n consta de operaciones de 2 productm internos o d. opemcime multipi3carsumar. Una m a t r i z n X m de números tiene n renglones y m - b l m a s y @ d e ' c6nsideram que constituye un conjunto de n vedore de tengl6n o unanjunto de m vactores de columna. Considemos por ejmnp10, l a multiplicraeión de dos matrimi 3 X 3 A y B.
41 di2 'rii, k z [&) - d n
m

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!

,

* h r+@o8 B) número en e l p c k . w l ó n y la primera columna de la matriz C se calcula con i = 1, j = 1 , para obtener
,L

,,',

I

'

)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'rián acumulativa, el
,
' i
m

.'

,

P

I

,.

*

u 'd h 2 pmducb de dos matrices n X

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 cáicuio 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 están en la memoria o en registros & procesadw. Se considera que, la línea 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 están llenas ambas líneas. Los páres Al y B1 se ínfroducen y multiplican a una velocidad de un par por cido. Después & 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 están 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

la suma en cuatro &mes

de la maneea siguiente:

Fwnte
B

Figurai9-12 Lima paralela para calcular un producto interno.

UMparalela dei m u i ~ d o r

Línea paralela del aumador

Cuando Xa no hay más téminos de producto par sumar, el sistema inserta cuatro ,ceros en la lbea del multiplicador, Entonces h línea 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 módulos 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 módulos. 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 información de un cawl de direcciones común y los registros de datos cpmuñican con un canal de datos bidireccional. Pueden utilizarse los
Pi&ra 9.13
&&&de d i d w

OrgariízacXn de mcmoria de módulos múltiples.
8 8

,

-

-

11

ti

t

1

AR
lr

A R
lf

AR
lr

AR
1

'
de

Arreglo de
memoria

Amglo de

Vria
1i

Arreglo de
, memoria

memoria

1

t
DR

ir
DR

t
DR
L l r

1

DR
J,

r

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 están en proceso de leer o m i i r una palabra y cada módulo 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 técnia 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 módulos, las direcciones pares pueden estar en .unmQdulo y-las direcciones impares pueden estar en otro. Cwndo la cantidad de módulos 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 línea paralela de instruccicines puede aprovechar los m 6 d u b de memoria múltiples para que cada segmento en la línea 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 cálculos ciwitificos. Para acelerar la ~peracibn, b s componentes se juntan para minimizar h distancia que tienen que recorrer las señales ekctr6nicas. Lns supercomputadoras también utilizan técnicas 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 rápidos y un uso amplio de procesamiento paralelo, Est4 equipada con unidades funcionales miíliiples 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 números de punto fIotante. Las supercomputadoras no son eonvehierrtes pata procesamiento cotidiano normal de una instalaci6n de computadora típica. Su uso se limita a ciertas aplicadones científieaas, como pfedicci6n numérica del clima, análisis de ondas sísmicas 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 término meggups se iitilUa para representar millones de flops y gi&ops para representar mil millones de flops. Una supercom-

4

putadora típica tiene un fiempo de ciclo bAsico de 4 a 20 ns. Si e l procesador puede calcular una operación de punto flotante por línea 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 prímera 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 línea 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 operación 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 líneas 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 más 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 múltiples para habilitar las operad~m de vector de registro a registro. Existen cuatro lííeas 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 máxima capacidad pude procesar cinco gigaflops.

9-7 Arreglo de procesador SIMD
Un arreglo de procesador es un procesador que ejecuta cAlcu1os sobre arre glos de datos grandes. E 1 gmino se utiliza para hacer referencia a dos tipos diferentes de procmadores. Un areglo di? procesudor mwcludo es un pmesador auxiliar conectado a una computadora de prop6sito general. Pretende mejorar el de&mpeiIo de la computadora anfitribn en tareas de cdlmilos num&iicose6pecfficos. Un arreglo & proctbtih SlMD (single instruction, multipk data) es un procesador que tiene una orgariizacián de instniecibn
dnica, datos múltiples. Manipula matrucciones de vedor mediante miiltiples unidades hciona~es que responden a una instrucci6n común. Aunque ambos tipos de procesadores de arreglo manipulan vectores, su organizaci6n interna es diferenie.

Arreglo de procesador conectado Un tureglo de pmsador conectado ~ t diseñado á como un periférico 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 más 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 propósito 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

-=

Memoria de veioddad alta a canal de mmwrh
Memonlalocal

I Unidad de mmd m a e s m U MI -l m 41 M 2 m m M 3 11 a m p a i PEn W 1 . La funci6n de ¡ a unidad de control maestro ea decodificar las instrucciones y deteminar &no SS van a ejecutar.El sistema con el procesador conectado satisface las necesidades para aplicaciones aritmt5ticas com- plejas. Un diagrama de bloque genecal de un arreglo de procesadar se muestra en la figura 9-15.al a una fracci6n del costo de las supercomputadoras. L a memoria principal se utiliza para almacenamiento del programa. cuando se conecta a una computadora VAX11. una unidad aritmética de punto flotante y registros de trabajo. E l objetiv~ del procesador de arreglo conectado es proporcionar posibilidades de mdpulaci6n de vector a una camputadora convenciar.350 mParalelismo y praoesamiento de vector necesitan proceqamiento de &tos convenciq~al. por l o que proporcionan una organizacidn de flujo de instnicciones ficol flujo de datos m~ltiple(SIMD). Las instrucciones de pE. Por ejemplo. Arreglo de procesador SIMD Un arreglo de procesador SIMD es una computadora con mUltiples unidades de procesamiento que operan en paralelo. La unidad de control maestro dirige las apmaci~nes en los elementos del procesador. A l p o s fabsicantes de procesadores de arreglo conectado ofrecen un modelo que puede conectarse a diversas computadorae anfitridn. las unidades de procesamiento e s t h sincronizadas para ejecutar la misma operaci6n bajo el control de una unidad común. en donde cada uno tiene una memoria l c a l M. el FSP-lM/MAX de Hoating-Point Sysaumenta el poder de dlculo de la VAX a 100 megaflups. Cada elemento del procesador incluye una ALU. Contiene un conjunto de elementos de procesamiento (PE) idénticos.

. Los procesadores SIMD son computadoras altamente especializadas. Los componentes de ci están 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. . El procesador de arreglo SIMD más conocido es la computadora ILLIAC N. Las instrucciones de vector se transmiten a todos los PE en forma simultánea. con el fin de controlar el estado de cada PE durante la ejecución de instrucciones de vector. Los operandos de vector se distribuyen a las memorias locales antes de la ejecución en paralelo de la instrucción. 9-2. la unidad de control maestro almacena los iésimos componentes ai y bL de A y B en la memoria local M ipara i = 1. Primero. 2. 3. 4. 9-4. Dibuje un diagrama espacio tiempo para una arquitectura paralela de seis segmentos que muestre el tiempo que se necesita para procesar ocho tareas. Cada PE tiene una bandera que se activa cuando el PE está activo y se desactiva cuando está inactivo. Especifique una configuraciónpara realizar esta tarea. en partes de 64 palabras. En ciertos cálculos científicos es necesario ejecutar la operación aritmética (Ai + B. n. Cada PE utiliza operandos almacenados en su memoria local. La misma tarea puede procesarse en una arquitectura paralela de seis segmentos con 9-3. no son muy eficientes en otros tipos de cálculos o para trabajar con programas de procesamiento de datos convencionales. causando que la suma se realice en forma simultánea.Problemas 351 control de programa y escalares se ejecutan en forma directa dentro de la unidad de control maestro. Por ejemplo. Sobre todo son convenientes para problemas numéricos que pueden expresarse en forma de vector o de matriz. Si se va a procesar una longitud de vector menor que 64 conjuntos de datos. Sin embargo. 9-1.desarrollada en la Universidad de Illinois y fabricada por Burroughs Corp. la unidad de control selecciona la cantidad correcta de PE que van a estar activos. Después transmite la instrucción sumar de punto flotante ci = ai + bi a todos los PE.)(Ci + Di) con una serie de números. supongamos que un arreglo de procesador contiene un conjunto de 64 PE. Por ejemplo. La unidad de control debe dividir los vectores con longitud mayor de 64. consideremos la suma de vector C = A + B. Determine la cantidad de ciclos de reloj que se necesitan para procesar 200 tareas en una arquitectura paralela de seis segmentos.. Liste el contenido de todos los registros en la arquitectura paralela para i = 1 a 6. Un sistema no paralelo necesita 50 ns para procesar una tarea. Esta computadora ya no está en operación. Esto asegura que sólo están activos durante la ejecución de la instrucción aquellos PE que necesitan participar.

382 CAlWüíD NUEVE Paralelismo y procesamiento de vecbr b * 9-5. ~Cbrno podcmos reducir el tiempo total a aproximadamente la mitad del timp calculado en la parte a? iC&w. a.. y tp= 45 m. ~ C des l el-tiempomhimo de a& de reloj que -puedeutiihme? b. Cada segmento contiene varias compuertas AND y un sumador binario similar a un arreglo multiplicador. Un &ana. M d w las c w b instnicciones en el prapma siguiente. p E. 'Determine la ~ a z 6 n de aceleracibn de la arquitectura pardela pam IN t a m .~ C u h t a s compuertas A N D hay en cada segmento y qu6 tamaño de s. Suponga que la primera instrucción enipieza en el paso 1 en la ltnea paralela utilizada en la figura 9-8: Especifique cual.sumas 100 pares de nilmerus en la Enea? b . . 9-13.segmentoes de 30 ns. 99. un ciclo de reloj de 10 ns. 940.Úiaríam^os el sumador de punlo flotante de Enea paralela de la figura 9-6 para sumar 100 nilimeros de punto Elatante Xl+ X2+ X3+ . 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. a . ~Cuái es l a máxima aceleracibn que puede l v ? E s necesario disekr una Iinea paralela para un multiplicador de punto fijo .no paralelo puede ejecutar la misma operaci6n al quitar R3 y 324.siguientes tiempos de r de la memoria dentro propagaci6n: 40 para los operandosque van a k de los registro Rl. 85 ns para la sefía1 que se va a propagar por el mdtiplicador.2 *e los . t3= 95 m. ¿cuál 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.gueafecta a dos enteros binarios de ocho bits.Fonnule unzr Unea paralela de instrucciones de &s t o s para una computa$ora.¿Cuál es l a máxima aceleración que pude C Q I ~ S ~ ~ & M ? L21 arquitectura paralela de la figura 9. . i 9 9-7.umador se necesita? b.opÍddciones se ejecutan en los cuatro segmentas durante el p c o 4. + Xlod . $i = 30 m. El retardo de los registros de interfaz t. cuánta 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 . =SO n s . 4 . ='5 m. &@fique las operaciones que se van a ejecutar en cada segmento. Expiique cuatro posibles -quemas de circuitería que puedan usarse en una líhk parakla de instrucciones para minimizar la degradaclbn del rendimiento provocada por las instrucciones de transferencia de control del programa..como se muestra en Ia figura 10-10. ¿Cuántos segmentos hay en la í í m ? c Si el retraso de propagad6n en eada. cuánto tiempo se necesitaría pa. 9-8. d.arquitecturaparalela para 10 tareas y vuelva a hacerlo p a p a 100 tareas.

# Pamllei Pimessing Architmture ami VLS1 Ebrdwre. Proporcione un ejemplo que utilice carga reardada con la línea paralela de tres segmentos de la seccidn 9-5. a. Computer Arckitectare: A A d e r n SptIresis. Dasgupta. 1989. Considefe la muldplicaci6n de d a matrices 40 X 40 utilizando un proc=dor de vecbr.para ea!cuhr la matriz del producto? ~Cuintos ciclos de reloj se necesitan para procesar un producto interno en la línea paralela de Ia figura 9-12. S. ¿Cuánto tiempo se necesita para llevar a cabo estos cblculos? Considere una computadora con cuatro procesadores de punto flotante de arquitectura paralda. Un c&lcula de predicci6n del d i requiere 250 mil millones de operaciones de punto flotante. ~Cubintos términos de produeto hay en cada p d u c t o interno y cuántos peoduatos intefnos deben evaluarse? b. 2. A.cuando se usa para evaluar el producto de dos matrices 60 >C #? ¿Cuhntas productos internos hay y cuántos 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. Englewd C W . cuántas operaciones mdtipliear-sumar se necesitan. 2 Nueva York John Wilegr. DKegama. .Loaa ADD IWC STORE RL+M[3LZ1-RS+R2 H[3331 R3+R3 1 M[31i4]+R3 + + Proporcione un ejempb de un programa que produzca un conflicto de dabs en la Knea paralela de tres segmentos de la seccitrn 9-5. Vol. ¿Cuánto 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 línea paralela can un ciclo de 10 ns? 1 . E l problema se calcula en una computadora que puede ejecutar 100 megaflops. 1989. NJ: h t i c e Hall. Propwcione un ejemplo de un progama que produzca una $rdida por transferencia de control en la línea paralela de tres segmentos de la secci6n 9-5. L . 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. Suponga que cada procesador utiliza un cicb de 40 m.

21. Lilja. G. y J. 47-55. Tabak. F .CoiFnputw Sysfemf Concqts snd Design. NJ:Pientice Hall. 10. NJ: Prentice Hall. \ 1840. Pollard. D . 9. NJ: l'rentiee Hall. Vol. 4. 12. . 7.J. Englewood Cliffs. y A. 6. Vol. Carrputet. . Stane. CompMer Ardritsctirre: S@~~oftware and hlmdware. S .Reading. 1990. "Reducing h e BranchPenaltiesin Pipeline Processors". 1991.pp. . San Mateo. D . 11. 6-22.A. Kain.H. Ctl: M o r p Kaufrnann Publishers. ~ y p. J. Vol. . J.Coflpkr.Nueva York: McGraw-Hill. "BranchPredidon Strategiee and Branch Target Buffer Design". 1 7 . Cotilputer Design and drckikhm. PaWson. MuItipmessm.Ardu'tectnre:A QuanfitatiwAkproach. 1990. Lee. K F . 1 (Enero WW). N: Prentice Hall. No..Computer. 1990. J. 8. Englewood CliEfs. R. A. Hays.354 -NUEVE Paralelismo y p-miento de vector 3.H : . ed. . L989. IvlA:AddisonW d e y . d 2a. High-Ptqhmnce Computer Architature. Nueva York: McGraw-Hili.. 1984.J. 1988. Gibson.. m t h .No. 2a..C m p u f & A r c h i ~ e a n OrgnnhtCon. 4 .A. Computer Architechire and ParaEIeI P w s s i n g . Briggs. 2. E n g i e w d Ciiffs. 7 (Julio l W ) pp. L. H w a n K. D . Englewood Cliffc. .Hennessy. L.

1 10-7 Introducd6n Sumayresta Aigoritmm de mdLipIicaci6n Algoritmos de divisi6n Operaciones aritrnéíicas de punto flotante Unidad ariWerr decimal Operaciones aritméticasdecimal- Las instrucciones aritméticas en las computadoras diiitales manipulan los datos para producir los resuItados necesarios para la solucibn de problemas computacionales. multipHtaci6n y dfvisibn. Los niimeros de punto fijo pueden tqresmtar e n k m o fracciones.ESTE C ~ U O 1ü-1 10-2 le3 104 10-5. D e estas cuatro operaciones básicas es posible formular otras operaciones aritmgticas y resolver problemas científicos mediante mktodm de anUiis numérico. El pmcesador aritmé!ica es muy simple s i sblo se incluye una instrucción de . Estas instrucciones ejeaitan c6lcuIos aritm6ticos y son responsables de la mayor parte de la actividad para el procesamiento de datos en una computadora. Los niimeros negativas pueden estar en repremmtaci6n de un complemento de signo o de magnitud de sipo. 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. El tipo de d a b que se considera residen en los registros del procesador durante la ejecuci6n de una instruccidn aritmética se especifica en la definición de la instrucci6n. Un procesador aritmético es la parte de una unidad de procesador que ejecuta operaciones aritmkticas. resta. Las cuatro operaciones arilmkticas biisieas son suma.

Los pasos de decisión se indican dentro de cajas en forma de diamante. Datos binarios de punto fija en r. U n metodo conveniente para presentar algoritmos es un diagrama de flujo. &ten tres maneras de representar números binarios negativos de p u b fijo: magnitud con signo. 3. Por lo general. Los pasas computacionales se especifican en el diagrama de flujo dentm de cajas rectangulares. resta.realizar la operaci6n y lograr un resultado correcto. .estar fmilidzado por completo con la secuencia de pasris que se van a . tin algoriho contendrá: varios pasos de procedimiento que dependen del resultado de los pasos anteriores. Como se mencionb w la seccibn 3-3. Datos binarias de punto fijo en representaci6n de complemento a 2 con signo. complemento a 1 cun signo o complemento a 2 con signo. 10-2 Suma y resta . 2.sumar bhria de punto fijo. de las cuales surgen dos o más trayectorias Jternativas. Datos biarios ¿e punto 8flotante.en código binario WD). y para comparar los signos y las magnitudes de los números. Este conocimiento es vahoso & d o lag operaciones van a implantarse mediante hardware. La mayoría de las computadoras utiliza la reprem~taci6n de complementa a 2 c m signo cuando ejecutan operaciones aritméticas con enkm. Cuando nos maeiPlaron a ejecutar las operaciones aritmkticas bisicas aprendimos la representadhn de magnitud de signo. La solución de cualquier problema que está definida mediante un número finito de pasos de procedrmiento bien definidos se denomina algoritmo. Sin embargo. la myoría de las computadoras usa la representacibn de magnitud con signo . Para operaciones de punto flotante.epresentaci6n de magnitud con signo. el algoritmo es ligeramente mAs complicado y su implantación requie re circuitos para sumar y mtar.el d i h d o r debe. 4 Datos decimales . Este es un algoritmo simple. Sería mAs complwdo si incluyera las cuatro operaciom aritm&cas para datos binarios y decimales en representaciones de puto fijo y flotante. Cuando los números negativos estin en representación de magnitud con signo. rnultiplicaci6n y divisida paza los siguientes tipos de datos: 1 . En este capitulo desamHamos los diferentes algaritmos aritméticos y mostramos el p d i m i e n t a para obtenerlos con hardware digital.-ir con el fin de . Consideramos la suma. En la seci6n 3-3 se definid un algoritmo para la suma de dos números binaríos de punto fijo cuando los nhneros negativos están en su representaci6n de complemento a 2 con signo. porque para su implantaci6n 9610 necesita un sumador binano paraleb.

ritm$ticacompIementaria cuando se ejecuta iyra operacidn .deresta con. números en representación de magnitud con signo. Mientras el minuendo y d sustrzyndo iniciales estén en forma de magnitud con sipo. Un repaso de este prodimiento ser&útil para derivar el algoritmo de hardware.i t o s en un paso intermedio no altera que Ia representacidn sea en magnitud con signo. En otras palabras.opefa~i6n aritmbtica. Por ejeppl% es conv@mte emplear . TABLA 10-1 Suma y resta de niimpros de magnitud de signo Operación Sumar magnitudes Restar magnitudes Cuando A > B CuandoA < B Cuando A = B . N o significa que no puede usarsg aritmdtiea cpmplementaria en un paso intermedio. Estas condiciones se lisbn en la primera columna de la tabla 10-1.e a Ja mpsmtacibn de los M e r o s en los registros antes y después de la ejecuci6n de h . Las otras c~lumnas en la tabla muestran la operación real que se va a ejecutar con la magnitud de los núnwms. el multado debe wr +O y no -O. Representemos la magnitud de los dos números mediante A y B. cuando se restan dos números iguales. para datos representados en complemento a 2 con signo. Cuando los niimeros con signo se suman o restan. La Última columna se necesita para evitar un cero negativo. lápiz dos números binarios con signo es simple y directo.a. una vez más. El procedimiento para sumar y restar con papel y. e l hecho de que se hayan u~do c o m p M . dependiendo de los signos y de las operaciones ejecutadas.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. encontramos que existen ocho condicioncs diferentes por considerar. Ea importante wordar que la represmtacibn adoptada para los niunerus n ~ t i v o se s wfiei. a l igual que la diferencia final. para Suma y resta con datos de magnitud con signo I a representaci6n de números en magnitud con signo nos resulta familiir magnitud porque se usa en los eálculos arihdticos cotidianos.

Escoja el signo de resultado para que w igual a A si A > B o el complemento de signo si A B. Este procedimiento requiere un comparador de magnitud. wk B de A y haga positivo el signo del resultado.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 paréntesis deben usarse para el algoritmo de resta): AlgmAtmo de suma (resta): cuando los signos de A y B son idénticos (diferentes). se n-ita un circuito comparador para establecer si A > B. con A. Los dos algoritmos son similares. sabemos que la resta puede realizarse mediante complementai. compare las magnitudes y reste e1 nrimero mds pequeño del m6s grande. o A < B. mme las dos magnitudes y agregue e1 signo de A al resultado. los dos flip-flops que contienen 1m signos compondienles. el resultado de una cornparacidn puede determinarse del acarreo final después de la resta. el flipflop AVF de sobreflujo de suma contiene e1 bit de sobreflujo cuando . A = 3. Tercero. Una investigación cuidadosa de las alternativas reveIa que el uso del complemento a 2 para la resta y la comparacibn es un procedimiento eficiente que requiere sólo un sumador y un cornplementador. Sean A y B los dos n h e m s que contienen la magdtud de los nfimeros y A. se necesitan dos circuitos sustractores paralelos para ejecutar las micmoperacianes A . L a resta se realiza al sumar A al complemento a 2 de B. juntos forman un registro acumulador. Por lo tanto. El resultado de la operación puede transferim a un tercer registro: sin embargo.A. Puede determinarse la relaci6n de signo a partir de una compuerta OR exclusiva. se necesita un sumador paralelo para ejecutar la microoperacibn A + B. y Bs como entradas. Consideremos ahora la impIantaci6n de hardware en los algoritmos anteriores. un sumador y dos sustracbles. Segundo. Si las d i magnitudes son iguales. Primero. ConsM de los registros A y B y de loa fiipflops con signo A. excepto por la comparación de signo. y B. 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. Cuando los signos de A y B son diferentes (idénticos). La figura 10-1 muestra un diagrama de bloque de la circuikria para implantar las operaciones de suma y resta. eso se puede evitar si el resultado se transfiere a A y A. A y A. Primero. puede encontrarse un procedimiento diferente que requiera menas equipo. hplantaci6n de hardware Para efettuar las d& operaciones aritmLticas con hardware.B y B . y B. donde puede comprobarse para determinar las magnitudes relativas de los dos ndmeros.mestén almacenados en registros. Segundo. El acarreo de salida se transfiere al flip-flop E. S i n embargo. primero es necesario que los dos n5. y sumar.

como se muestra en la figura 47. se suman A y B. La auma de A y B se realiza m d h t e d siimador paralelo. tas magnitudes se suman con una microwperaciSn EA + A + B. Esto es igual a A más el. si es 1. el acarreo de entrada es 1 y la salida S = 1 A + B + 1. Si la salida de la compuerta es O. + Algoritmo de Iiardware E I diagrama de fiuja para e . El registro A proporciona otras microoperaciones que pueden necesitarse cuando especificamos la secuencia de pasos en e l algoribno. en el capíhilo 4. don* EA es un registro que combina E y A: ' E lacarreo en E después de la suma. Cuando M = 1 . El complementador consta de compuertas OEl exclusivas y el sumador paralelo se forma de circuitos sumadores completoc. los signos son idénticos. La salida S (suma)del sumacbr se aplica a la entrada del r e g i s t r o A. Para una operación de restar. algoritmo de hardware se presenta en h figura 10-2. Cuando M = O . el acarreo de entrada es O y la sazida del sumador es igual a la suma A B. Los dos signos A. los sipo5 son diferentes. la salida de B se transfiere al humador. dependiendo del estado del control de fiado M. signos idknticw dictan que se sumen Ias magnitudes. La seiial M se aplica bnbib d aacarreo de entrada del m d m . complemento a 2 de BI l o cual es equivalente a l a resta A . Ei valor de E se transfiere al füpflop AVF de sobreflujo de 6uma. y B. Se restan las dos ma&tudes si los signos son diferentes para una oprakibti de súmr o idénticos para una opera&n de restar.B. El complementador proporciona una salida de B a el complemento de B. el eomphnmto a 1 de B se apfica al sumador. constituye un mbreflujo s i es igual a 1. se comparan mediante una compuerta OR exclusiva.Figura lb1 -are para suma y mta de magnitud con signo. Se restan las . signos diferente determinan que se sumen las magnitudes. Para una opaci6n de sumar.

e . .: .l. .A.' 8 h i ' ' .. consideramos que el registro A tiene e incrementar. ' : . . h ... r . 1 : . de modo que AVF se borran a O.l k.~. A. / J . t . ...1 . 1 8 .. .. sobreflujo.. .. . si se restan los números. ..1 1 1 .' Si este número es O. debe hacerse positivo para evitar un cero negativo. Sin embargo. . : i i . . 1 .1 1. No puede ocurrir un . . . .~'. . 1.. A+A+1 A. .:. . . . Para este caso es necesario tomar el complemento-a 2 en A. 1 J. > :'n . +A. . Un cero en E indica que A c B. 8 m t: i i 1 . .11: ' 8 .si. 8 f complementar e incrementar -p.--' 8 l . ILIL V I J e.') .II.~ V. '. ..l.L2 .' ... r.. Un 1 en E indica q u A ~ r B y que el número en A es el resultado correcto. .... !'. r. 1.:' 8 C! . 8 r . + *f I e. En ..d.' .CAP~TULO DIEZ Aritmética de computadoras -eraci6n Restar *ración Sumar h 1 ..-N ' 8 1 Figura 10-2 Diagrama de flujo para las operacianes sumar y restar. . ! !~t+mi'.. magnitudes al sumar A al complemento a 2 de B...t. T. + O 1 . 1 .aendo en B Sumando en A Adendo en B . '%1! 8.. . +A " A&#& . . .& '1 I ..J:*I ' . el signo A.. .'d . . ii-". . por lo que circuitos para las microoperaciones de corn~krnentar se obtiene 'el complemento a 2 a partir de estas dos microoperaciones. +... . 1. .# .. . Esta operación puede realizarse con una microo'peración A c A + 1. . 8 A<B 1 .i. . ' .. V d . : r . I r " .". A 1 . i : ... ' . . r . : '817 8 .

La suma de dós números en forma de complemento a 2 con signo consiste en sumar 10s ntímenis con los bits de s i p o tratados de la misma manera que los otros bits en el niimero. El multado final se encuentra m el registro A y su signo en A. Cuando se suman dos númer~s de n dígitoc cada una y la suma ocupa n 1 digitos.. cuando A < B. E l bit de la extrema izquierda de un ntlmem binario representa el bit de signo: O para positiva y 1 para negativo. para obtener e l signo correcto.O N 1 0 . Complemen*y sumador paralelo . Entbnce es n h a r i o camplmentar A. por lo que no se requiere un cambio en 4.Sin embarga. todo el número e n h a a e representa en su forma de complemento a 2. E l efecto de un sobrdujo sobre la suma de dos números de complemento a 2 con signo se analiza en la w i h n 3-3. Esta es la misma configuraci6n de la figura 10-1. S i el hit de signo es 1. a vdor fina1 de E es inmaterial. 4-33 se representa corno DOlOOOOl y -33 como 11011111. Por lo tanto. La resta consiste en tomar primero el complemento a 2 del sustraenda y despuh sumado al minuendo. el signo de1 multado es eZ complemento de1 signo original de A. decimos que ha ocurrido un cobreflujo. valor en AVF proporciona una indicación de sobreflujo. Puede detecta= un sobreflujo al inspeccionar los dos 6 1 ~ 0 acarreos s de la suma. se detecta el &reflujo cuando la saiida de la compuerta es igual a 1. La configuración de registros para la implantacih de hardware se muestra en la figura 104. N6tese que 11011111 es e l complemento a 2 de O O l O O O O 1 y viceversa. a e presentaron en la secci6n 3-3. Cuando los dos acarreos se aplican a una compuerta OR exclusiva. el signo del resultado es igual al signo de A. Se descarta un acaireo de la posición de bit de signo. Se resumen en esta seccidn para una referencia fácil. 2 Suma y resta 3 3 ' 6 1 otras trayectorias del diagrama de flujo. Suma y resta con datos de compfemmto a 2 con signo La representacidn de mímeros en complemento a 2 con signo. junto con los algoritmos aritm&tlmspara la suma y h mita. + Figura 10-3 Hardware para s u m a y resta de complemento a 2 con signo.

El bit de la extrema izquierda en AC y BR representa los bita de signo de los números. La operacidn de resta se logra al sumar el contenido de AC al complemento a 2 de M. y en casa contrario s e desactiva aO .. Debe verificarse si ha ocurrido un sobreflujo durante esta operaci6n porque los dos números sumados podrían tener el mismo signo. E 1 algoritmo para sumar y restar dos números binarios en representauh de complemento a 2 con si= se muestra e n el diagrama de flujo de Ia figura 10-4. se activa en. Tomar d c~mplemento a 2 de BR tiene el efecto de cambiar un número positivo a negativo y viceversa. notamos que es mucho m4s sencillo sumar y restar números si se mantienen kis números negativos en su representacidn de complemento a 2 . Al comparar este algoritmo c o n su contraparte de magnitud con signo. en lugar de la de magnitud c o n sipo.1 si hay sobreflujo. Nombramos AC (acumulador) al registro A y EiX al registro B. las computadoras adoptan esta representacidn. Los dos bits de signo se suman o se restan junto con los otros bits en e l complernentador y en el sumador paralelo. En este caso. La suma SE obtiene a l siimar el contenido de A C y BR (incluyendo sus bits de signo). E l programador debe recordar que. Por esta r d n . se descarta el a c a m a ~ . si ocurre un sobreflujuI aparwaA un resultado errSm en el registro AC. B 1 bit de sobreflujo V se activa en 1 si la OR exclusiva de los dos iiltimos acarreos es 1).que los bits de signo no esqn separados del resto de los registros. excepto Figura I W Algoritmo pata sumar y mstw números en rrprrsentacidn de c~mplemmb a 2 con signo. . E i flip-flop V de sobrefluja. que nos resulta m8s familiar. ~ salida.

S i son diferentes. Este proceso se ilustra mejor con un ejemplo numérico. en lugar de ejecutar un corrimiento del muItiplicando a la izquierda. BI multiplicador se almacena en el registro Q y su s@o en Q . El . Si el bit del mdtiplicador es un 1. es conveniente cambiar un poco el proceso. 23 19 - 10111 x 10011 Multiplicando Multiplicador 10111 o m + 00000 10111 IQlf1 437 110110101 Producto E l proceso consiste en buscar primero en los bits sucesivos del multiplicador. se copia el multiplicando. el .E l cbntador secuencia1 SC se inicializa al phcipio en un número igual a la cantidad de bi! en el multiplicador. -do el bit correspondiente al multiplicador es O. es conveniente propordonat un $rimador para la suma de s61o dos números binarios y acumular sucesivamente los productos parciales en un registro. el producto parcial se morre a la derecha. La chuiteria para la multiplieaciSn consiste en el equipo que ce rnuestra en i a figura 10-1 más dos registros. en lugar de proporcionar registros para almacenar y sumar en forma simultánea la misma cantidad de números binarios que la que hay en el multiplicador. S i son iguales. Tercero. El signo del producto se determina a partir de los signos del multiplicando y el muitipli~dar. @timo.10-3 Algoritmos de multiplicación La multiplicación de dos números binar& de punto fijo en repre~entaci6n de magnitud con signo se hace con papel y lápiz mediante un proceso de operaciones de corrimiento y suma sucesivas. el signo del vp@ucto es negativo: Implantación de hardware para datos de magnitud con signo Cuando s e efectúa la multiplicacián en una computadora digital. 10 qpe & como resultado ia colocacibn del producto parcial y del mulfiplicando en las posiciones relativas requeridas.bit menos significativo. el signo del producto es positivo. de otra manera se copian ceros. no hay necesidad de silmar todos los números O al producto parcial porque esto no alterarh su valor. se s u m a n los números y su suma forma e l producto. Éstos dos registros junto con los registros A y B se muestran en la figura 10-5. Primero. Los números copiados en iííeas sucesivas se recorren una posicih a l a izquierda a partir del número a n k i ~ r Por . Segundo.

'* O * F 5 ' B. IwF ya que se almacenará un producto de doble Longitud en los registros A y Q. el multiplicando e s a en el registro B y el multipücador en Q . . el mal ea el que debe inspeccionarse despues. De esta manera.-G u d s m o dentro de Q. un bit del producto parcial hace lo . Despues del corrimiento. .xecorriendo los bits del multiplicador una posición a la derecha. Figura 1D. el bit de 4 . Se comparan los signm y A y Q se activan para que correspondan al signo del producto. 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. 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. La suma de A y B forma un producto parcial que se transfiere al' registro EA. y Qw respectivamente.se forma el producto y d proceso s e detiene. E i praducto parcial y e l muitiplicador se recorren a la derecha.S Hardware para la operaci6n multipliw. Alg[~rítmo de hardware . Los registros A y E se borran y el contador -m&l (SC) se inicializa en un ntímero igual a la cantidad de bits del multiplicador.E se recorre dentro d e n l ap'bsieión mbs sigriificativa de A. El bit menos significativo de A se recorre a la posición m8s significativa de Q.(bit a la extrema derecha) e. 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. 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. y O se recorre m dentro de E. Al principio. e l fiip-fiop a la extrema derecha en el registro Q w d representado mediante Qw contendr2i el bit del rnultiplicador. A l principio. el multiplicando está en B y el multiplicador en Q.

Si es un O. eventualmente. el proceso se >repitey se forma un nuevo pxoduct~ p a h l . no ee hace nada. consistirá en n . la palabra lo ocupar4 el signo y la magnitud .Figura l M Diagrm de flujo para la qxmci6n' multiplicar. S i es un 1 . El pducta*finalest6 disponible con su signo. para formar el nuevo producto pareial. Qespu&s de l a iniciailiza~ib~ se prueba el bit de orden inferior del multiplicador en Qa. un bit . sustituye al multiplicador.1 bits. Se decrementa ei contador secuencia1 en 1 y se comprueba su nuevo valor. Si diferente de O. se ejecuta un commiento a la derecha en el registroJAQ una ~ez. Nótese que el producto parcial formado en A se recorre d e n b de Q un bit a la vez y.de. el multiplicando en 8 se suma al producto parciai p-te en A. Dsspués.B1p m c se ~ detiene ~ mando SéI = O.

e l producto puede obtenal ejecutar el corrimiento del multiplicando binarío 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.2 = 14. Opera con base en que las series de números O en el multiplicador no requieren suma. = O. E u m .2"' = 2 ' -' 2 = 16 . donde A contiene )os bib mas significativos y Q contiene los bits menos significawos.el aigoritma de Booth r e q u i e un examm dé losqbits del multiplicádor y ejecutar un corrimiento del producto patciaI. Recorrer EAQa laderecha Q.LA 10-2 EjempIo numérico para multiplicador binario '. e l número binario O01110 (+14) tiene una serie de digitos 1 de $ 2' (k = 3. donde M es el multiplicando y 14 el muitiplidr. MultiplIcaduren Q Qa= 1. El procedimiento sigue los pasos delineados en la tabla de flujo. Recorrer EAQ a la!derecha Qa = @RecorrerEAQaladefecha Q.en A y Q .=l. Por ejemplo.odejario s i n cambio. ppuede d i z a como ~ M X 2 ' . sumar B -doproaucto .M x 2'. puede sumarse el muItip1icando al producto parcial. rn = 1). Como d t a d o .mmarB. El ejemplo nmbrico anterior se repite en la tabla 10-2 para hacer m8s claro eI pracesa de mdt~plicacibn con hardware. 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. restarse. -B. sino &lo corrimiento y ue una S& de digitos 1 en el multiplicador de una 1 ponderación de bit de 2 a una ponderaci6n T puede katarse como 2 2m. de acuerdo con las siguien- + -te6 . I a multiplicación M X 14. E i n~mer~i puede como 2h1 . E Primer producto pardal 'Etac01 EAQ a l q derecha Q. = 1. Por l o tanto. Antes del corrimiento.

Si los dos bits son iguales a 01. respectivamente. Esto es similar a la figura 105. 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 dígitos 1 y a que la Ciltima operacidn será una resta de la ponderaci6n adecuada. Se conecta un flip-flop extra Q .como AC. Se inspeccionan l o s dos bits del multiplicadar en Q. un multiplicador igual a -14 se reprem~taen complemento de nlmeros 2 como 110010 y se trata como -z4 + 2' . El multiplicando se resta del producto parcial cuando se encuentra el primer 1 menos swcativo en una serie de digitos 1 en el multiplicador. BR y QR. B y Q. significa que se encontró el primer O en una serie de Figura 10-7 Hardware para el algosirno de Booth. AC y el bit extra QM1se inicializa a O y el contador secuencia1 SC se inicializa en un niimero n. . Q. renombrarnos los registros A.y en QW1. excepto en que los bits de signo no están separados de1 resto de los registros.2' = -14. La implantaddn de hardware del algoritmo de Bmth requiere la configuración de registros que se muestra en la figura 10-7. E I producto parcial no cambia cuando el bit multiplicador es idént i c o al bit multiplicador anterior.1. 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 dígitos O en el multipIicador. 3. . significa que se ha encontrado el primer 1'en una serie de ellos. igual a la cantidad de bits en eI rnultiplicador. a Q R para facilitar urm ddble hspecci6n de bit del multiplicador.Si los das bits son iguales a 1 0 . Para mostrar esta diferencia. Esto requiere una resta del multiplicando del producto parcial en AC. representa el bit menos significativo del multiplicador en el registro QR. Por ejemplo. El diagrama de flujo para el algoritmo de Bwth se muestra en la f i r a 10-8.

~igoritmo de Booth para rnultiplicaci6n de números de complemento a 2 con .368 CAP~~VLO D~EZ Aritmética de computadoras Multiplicar Multiplicando en BR C-) Figura 10-8 signo.

El valor final de Q.SECCI~N1@3 Algoritmos de multiplicación 369 ellos. el producto parcial no cambia. Esto requiere la suma del multiplicando al producto parcial en AC. Presenta la multiplicación paso por paso de (-9) X (-13) = + 117. El siguiente paso es recorrer a la derecha el producto parcial y el multiplicador (incluyendo el bit Q. Un ejemplo numérico del algoritmo de Booth se muestra en la tabla 104 para n = 5.+l es el bit de signo original del multiplicador y no debe tomarse como parte del producto. Esta es una manera rápida de multiplicar dos números porque sólo necesita el tiempo para que las señales se propaguen a través de las compuertas y formen el arreglo de multiplicación. los dos números que se suman siempre tienen signos opuestos. No puede ocurrir un sobreflujo porque la suma y resta del multiplicando siguen una a la otra. una condición que excluye un sobreflujo. 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 (véase la sección 4-6). Nótese que el multiplicador en QR es negativo y que el multiplicando en BR también lo es. un arreglo multiplicador requiere una gran . Cuando los dos bits son iguales. Como consecuencia. La multiplicación de dos números binarios puede hacerse con una microoperación mediante un circuito combinatorio que forma los bits del producto todos a la vez. El contador secuencia1 se decrementa y el ciclo computacional se repite n veces.. TABLA 10-3 Ejemplo de multiplicación 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 operación secuencial que necesita una secuencia de microoperaciones de suma y corrimiento. El producto de 10 bits aparece en AC y QR y es positivo. Sin embargo.+3.

por esta d n . El segundo producto parcial se forma al multiplicar al por bxboy se korre una posicihn a la izquierda. Figura lO. Los dos productos parciaies se suman con dos circuitos semisumadores (HA). A un bit del multiplicador se aplica la función AND con cada bit del multiplicando en tantos niveles como bits ~ieexistm en el multiplicador.cantidad de compuertas y. Esto es idhtico a una operacih A i N D y puede loparse con una compuerta AND. de otra manera produce un O. Como se muestra en el diagrama. 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. Los bits del mu1tiplicando son bf y & los bib del. El primer producto parcial se fonna al multiplicar s10 por blb& La muitiplicaci6n de das bits y b.mer producto parcial se foma mediante dos compuertas M. Por lo general. e1 pI. produce un 1 d los dos son dígitos 1 . Para los a-iflfm bits del mdtipbador j y h bits del multiplicando k necesitamos j x k m . """ Puede construizsse un muJkiplicador binario de circuito combinatorio eori m á s b h en una forma h i l a r . Para observar c6mo puede implantarse un arreglo multiplicador con un c i ~ u i t o combinatorio consideremos la multiplicaci6n de das números de 2 bits. E i 61th~ nivel da el producto.multiplicadoi!son al y a.parcial. como se muestra en la figura 10-9. . E3 c2 cl X 2 bita. 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.p d w b . y el producto es CH~CO.no resutí6 costeable hasta el d e d o de los circuitos integrados.9 Arreglo muiüplicador 2 . hay más bits en los productos parciales y será necesario utilizar sumadores completos para producir la suma.

.compuertas AND y-Cj sumadow de. - .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 . Repxle~~ntem el multiphando mediante b&&lbo y d.lograr prudwto de siete bita.$& para &tener un producto de j + k bik Coma d o ejemplo. E l diagrama lógico del multiplimdox se muesm en la fipca 10-10. mnsidesemos m chuitb md tiplicador que m d t i p h un n h r o bharb de cuatro bits con un número de tres bib.

El divisor B consta de cinco bits y el dividendo A de diez bits. La división b i r i a es m6s sencilla que i a divisi6n decimal parque los dígitos del cociente son 1 o O y no hay necesidad de estimar &tas veees cabe el dividendo del producto parciaJ. II Jal Dividendo A 5bits¿eA<B.ei6n de Hardware para dato. bcm&Bab~ymtux.para e1 bit del d e n t e en i a sarta pici6n arriba del dividendo. Después se recorre el divisor a l a de& y se resta del residuo parcial. de magnitud con signo Cuando = efectúa la divipi6n en una computadora digital. Si el miduo parda es menor que el divisor.introducir~enQ Rgiduo < B. ~n lugar de ejecutar un corrimiento sobre el divisor a la derecha. corrimiento y resta sucesivas. por l o que colocamos un 1.introdudrOmQ knpluit.dcltetiene5bita 6bibdehrB Recrirrer B a la d d y regtar. Ndtese que el resuhado proporciona un cociente y un residuo. e1 dividendo o residuo parcial se recorre a la izquierda. el bit del cociente es igual a 1. introducir 1 e nQ R&d~ocB. Despub a recorre e l divisor una vez a la derecha y se resta del dividendo. con lo que se dejan los dos n b e r o s en h posición relativa . El prmesb contuiaa al comparar un residuo parcial con el divisor. dentro dd divisor. Como el n h e r o de S bits es menor que El. el bit del cociente es O y no se neeecita una resta.ín~ucirOenQ. En cualquier caso el divisor se recorre una vez a la derecha.rrcwrerBabdcxefha Residuo2 S R d d w Rnal Divisor Ejemplo de divisih binatia. es conveniente cambiar el proceso ligeramente. Los cinco bits más signX1cativos del dividendo se comparan con e l divisor. Si d residuo parcial es mayor o jgual que e l divisor.10-4 Aigoritmos de división I La divhi6n de dos números b i r i o s de punto fijo en representación de magnitud m signo se hace con papel y lápiz mediante un proceso de operaciones de comparar. El nhmm de 6 bils m mayor que B. E l proceso de divlsión se ilustra mediante un ejemplo numérico en la figura 10-11. La diferencia se denomina residuo parcial porque la división podb habeme detenido aquf para obtener un cociente de 1 y un miduo igual al residuo parcial. probamos de nuevo al tomar los seis bits mds significativos de A y comparar este nh-mo con B.

Si E = 1 . Un bit de cociente 1 se inserta en Q. Después el valor de B se suma para Figura 1 W Ejemplo de divisi&n& b con hardware digital. La resta puede loparse a l sumar A al complemento a 2 de B.000. DivisorB..A y Q El dividendo se recorre a la izquierda y el divisor se resta al sumar su valor de complemento a 2 . El ejemplo numérico se repite en la figura 10-12 para hacer mais c b el proceso de divisi6tr p"puestci. y se pietde e1 valor anterior de E.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. Si E = O. h p d s la información acerca de las magnitud= relativas está disponible a partir del a w m ñnal. L a c'lreuiteda para implantar la operaEi6n de división es iddntiea a l a que se requiere para la multiplicación y constas de ius componentes que se muestran en h figura 10-5. La información acerca de la magnitud relativa está dispe nible en E. s i g d b que A 2 B.requerida. Ahora se ejecuta.'dejarQ=O Sunriir 8 Resta&t*siduo Bh' U Q SmqrS + X E= 1 m i z a r Qm= 1 d. esto significa que A < B por lo que el cociente en Q. un commiento a la izquierda d registro EAQ cuando se inserta un O en Q.= 1. y el residuo parcial se recorre a la iquieda para W t i r el proceso.MQ &imatB+i E=Od+Qn=o Sumar B RWF -en@ residuo NoconaidemE k i d m en A: . s e queda como O (insertadv durante e l corMento).~El divisor se almacena en d registro B y el dividendo de dable IongituB se alniaeena en los regis.

Nótese que. el signo del cociente es mAs. Esto no es un problema d o se trabaja con papel y Upiz. Cuando el dividendo es dos veces más largo que el divisor. esto es de la misma longitud que los registros. A partir del. Esta condición de sobreflujo al dividiu d e b evitarse en operaciones de computadora normales. 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. Después se puede llamar a una subrutina que tome una medida c o d v a . Esto se debe a que la longitud de los registros es finita y no contendri un nSimero que exceda la longitud estándar. Por lo general. tenemos que considerar el signo del resultado y una posible condici6n de sobreflujo. L a co$ición de sobreflujo al dividir tambih cuida esta condici6n. S i los dos signos son iguales. porque todo el cociente ser4 demasiado largo para transferirse a una unidad de memoria que time palabras de longitud esthdar. Si son diferentes*el signo es menos. Lo llarnacemos un flipflop de sobreflujo al dividir y lo titularemos DVF. ejemplo de la figura 10-11. Sobreflujo al dividir La operacición de divisibn puede dar como resultado un cociente con un sobrefiujo. Utiharnos un registro que contenga el divisor y dos registros para contener al dividendo. por lo que el bit de sobteflujo requerirá un flipfhp ext. a . se detecta la mndici6n de wbreflujo cuando se activa un flip-flop -al. E i signo del cociente se determina a partir de los sipm de1 dividendo y del divisor. pero es crítico cuando la operacibn se implanta con hardware. La apadci6n de un sobreflujo al dividir puede manejarse de diveraas maneras. el cual es igual a cero. es reqponsabiiidad de los programadocomprobar si D W está activo después de cada instrucci6n de dividir. El signo del residuo es igual al signo del dividendo. puede definirse k condicidn para un sobrefiujo de l a manera siguiente: ocurre una condición de sobreflujo al dividir s i la mitad de los bib de orden superior del dividenda constituyen un número mayor que o igual al divisor. Antes de mostrar el algoritmo en forma de diagrama de flujo. El cociente se va a almacenar en un registro estándar de 5 bits. el d e n t e esti m Q y el residuo final en A. Esto ocurre porque cualquier dividendo ser4 mayor o igual al divisor. también se recorren los bits del cociente y. En d p a s computadoras. consideremos un sistema que tiene registros de 5 bits.-.ra para almacenar el sexto bit. después de cinco corrjmientw. mientras el residuo parcial se kcorre al a izquierda. 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. restablecer el residuo p d l en A a su valor previo. Otro problema asociado con la divisibn es que debe evitarse UM dhisibn entre cero. Para observar esto. Deben incluirse provisiones para asegurar que se detecte e s t a condici6n ya sea por la circuitería o programaci6n de la computadora. o en una combinaci6n de las das.

la aparici6n de un sobreflujo al dividir detenia l a computadora y esta condición se denominaba d e t m d n al dividir. B debe restarse de EA y debe insertarse un 1 eri Q. Como en la mdtiplicaci&n. Sumar este valor al complemento a 2 de'$ da como wdtada: - E 1 acarreo de esh suma no se transfkra a . E n la mayoría de las computadoras el p r m ~ e n t o se basa en proporcionar una solicitud de interrupción cuando M establece DVF.E l dividendo está en A y Q y d divisor en B. Detener la-operaciónde la computadora no es recomendabl&porque consume tiempo. Si A 3.1 bits. sabemas que EA > B. El signo del resulta& se transfiere a CS. En algunas computadoras antiguas. para que sea parte del'cociente. En este caso. 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.r " ' . Como un operando debe almacon su signo.1 bits. Si el bit recorrido dentro de E 1. para el bit del cociente.un d@to 1 seguida de n 1 bita mientras que B consta &lo de n . s u valor es EA . La intempcibn hace que la computadora suspenda el programa achiaI y se ilame a u m rutina de servicio que tome una medida correctiva. Se inicializa una constante dentro del contador secuencia1 S@ para especificar l a cantidad de bits en el cociente. 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 números e s a en su represmtadbn de punto flotante. Después es responsabilidad del usuario que escribid ei programa volver a fijar la escala de los datos o tomar cualquier otra medida correctiva.consideremos que los operandos se transfieren a los registras de una unidad úe memoria que tiene palabras de n bits. 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. se ocupará para el signo un bit de la palabra y la magnitud mnstard de n . S i A 2 3. E s i &seamos que E permanezca en 1. se activa el fip-flop DVF del sobreflujo al dividir y la.como poner una nueva escala a los datos para evitar el sobreflujo.operacibn se termina en h a prematura. por 10 que EA consta de. Algoritmo de hardware El algoriímo para dividir en hardware sis muestra en el diagrama de flujo de La f g w a 10-13. . Como e l registro A no alcanza el bit de orden superior del dividendo (e1 cual m t á en E). Se prueba una condici6n de sobreflujo al restar d divisor en B de la mitad de los bits del dividendo almacenados en A. no ocurre un sobreflujo al dividir. por lo que el valor de1 dividendo se restablece al sumar E a A.

significa que A B. -u& de n .complemento a 2 y el acarreo se transfme a E. El signo del . En el último caso.Operación diiHdir J nlvfdir magnltudw L 1 SC+n Q . Y EA + A + & DYF+ 1 YA>B Ei4*A+B DVFtO &+r t A 4 SC I SCtSC. . la magnitud del cociente se fonna en el registro Q y el rksiduo se encuentra en el registro A. se activa en 1. y el número original e =tabla al sumar B o A.ei d u o figura f 0-13 üiagrarna de flujo pam la operaci6n dividir. dejamos un O en Q. (el O w insertó durante e1 corrimiento).1 =O -7L & - +o PIN (dlvidlr e-@) en 8. significa que A 2 B. Si E = O.Si la operaci6n de corrLninto a la izquierda inserta un O dentro de E.1 veces. w resta el divisor al sume su valor de . por lo tanto Q. &te proceso se repite una vez más con e l registro A que contiene el residuo parcial. -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 . S i E = 1..

B no se suma si la diferencia es negativa pero. La manera más común e s especificarlos mediante un enunciado de dechaci6n real. I o s cuales s e especifican m e d i t e un enunciado de declaración mfem. A partir del diagrama de flujo en h figura 9-11. residuo parcial d e k x e s t i i b h para obtener el residuo parcial correcto. s i A r B. lo cual es igual que el ejemplo anterior. Para apreciar por qué es posible sta. si el atimo bit del cociente es O. Durante el siguiente ciclo. Con mucha f m e n c i a se incluyen las operaciones en la brcuikrb uiferna. se recorre a ia izquierda la diferencia negativa y después se suma B. pero quiere una 16gica de controI especial para mordar el resultado anterior. Por lo tanto. Esto da 2(A 0 + B) .B + B. El residuo parcial se recorre a la izquierda y Ios nifmeros se vuelven a comparar. En el metodo de no m establecimiento.B) + B = 2A .B. en oposici6n a números de punto fijo. 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 . En el siguimte ciclo. el número s e recorre a la izquierda y B se s m para dar 2(A .B. Cualquier computadora que tenga un c~mpiladar para el lenguaje de prognimatl6n de aIto nivel debe tener I a posibilidad de manejar operaciones aritmdticas de punto flotante. esto es B se resta y después se suma para restablecer A. se resta B de A. este número se recorre a la kquierda (o se multiplica por dos) y B ce vuelve a restar. 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.B. en lugar de eso. S i A < B no se hace nada. en el m&todode no restablecimiento. concidexlemos el caso en el cual A 2: B.SECU6N 105 Operacimes aribdlkas de punto flotante 377 cociente es@ en Q. Tambih. debe miam B. En el d t o d o de cmmparaa6nl A y B s e comparan antes de la operaci6n de resta. Hay disponibles otroe dos m6todm para dividir númefos.B = 2A . y el signo del residuo en 4es igual al signo origind del dividendo. Después. Otxos aigorlhnos &toda de ~fahiecitrrknto &todo E i mdtodo de hardware que r e acaba de describic se denomina mdtodo de wsfableeinihto.B. notamos que las operadona ejecutadas son A . B se resta si el vaior anterior de Q. Si no hay circuitei-ia disponible para las operacionés. b razdn de este nombre es que se mtablece el residuo pardal al sumar el divisor a i a diferencia negativa. La primera vez que se morre d dividendo. Este d + d o s e obtiene en ei mgtodo de no restablecimiento al dejar como esta A . & comparad6n y no ~stablecttn iento 10-5 Overaciones aritméficas de vunto flotante Muchos lenguajes de programacibn de alto nivel tienen una opcibn para especificar números de punto flotante.era un 1. el compilador debe diseña* con un paquete de subrutinas de enum'adu de dechneidn . El d t d o de mrnparadn y el m h d o de m r&f&k&kzfo.

de punto flotahte ser&1(F. la mantisa contiene la entidad máxima posible de clígitps significativos. un expon&& de 11 bit6 (excluyendo"susigno) y el hecho de que 2" . Un númera de puto flotante en los .11.pmto flotante. e l de niimeros que pueden alojarse es: &te n-em se deriva de una fracci6n que contiene 35 n~meros1. ia posicidn del punto de base y el valor de la base r se asumen y no se inciuyen en los registros. Un cero no puede nomalizarse porque no tiene un d@to diferente de cero.25 se r e p m t a en un se interpreta parsi t'epmsmtoir el número de punto flotante: . - -. Como debe reservarse un bit para el signo. qwbwros h mantisa pwde ser una fraccioii o ün 'itero. Por ejemplo. lo cual es aproximadamente.ramas y la QKuiWa de punto flotante sólo se omite en las muy pequeñas.53m x 109. . consideremos una t"prsentaci6n de fracci6n y una raíz de 10.1 = 2047. el cual es equivalente a un número dechal de diez dígitos. ' l a m x f m&- - dc Un nfimero de punto flotante se normaliza si el primer número m8s si@ficativo de la mantisa es diferente de cero. Aunque el'M o de programas es m8s caro. Concideranos una computadora con palabras de 48 bits. Los 48 bits pueden usarq para rep-tar un número de punto flotante con 36 bits para la mantisa y 12 para e1 exponente. Esto es aproximadamente igual a lo1'.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 número tan grande cdmo ( p . La repmsentaci6n de punto flotante aumenta e l rango de números que pueden alojarse en un regrstro dado. el que R incluye en la mayoda de las computadom es mucho más eMmk que el método de ptoa. Se T e p e senta en punto Botpnte mediante Lodos O en La mantisa y en e l exponente. +1014. 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. E I númep m8s grande que puede alojarse S aproximadamente. par l0Jtanto: -. Al considerar la repmtaci6n de fracci6n para la mantisa y a l tomar 10s dos bits de signo en consideraci6n. ' Consideracionesbásicas La reprwntacih-de datos de pmto flotante se introdujo en la sección 3-4. eI rango de los mímeros ente.registros de la computadora consta de dos partes: una mantisa m y un exponente e. Re esta manera.1). el con m = 53725 y e = 3 y n i u n a dechal 537.--T.

Las op-er&neg aritmficas con ni'tneros de punto flotante son miís campUca¿as. al recorrer la suma una vez a la derecha e incrementar el exponente. Cuando se su* dos mantisas normalizadas.exponente. la suma puede contener un dfgito de sobrefiujo.. Fara sumar o restar dos números. Una micm wmputadora de 8 bits puede utilizar cuatro palabras para representar un ndmera de punta flotante.que con niuneras de punto fijo. E l corrimiento a la derecha p d u c e una pérdida de b dígib ms ~ L v o sE l . E l alineamiento se ejecuta al alinear una mantisa mienhs se ajusta su expw nente. primero es necesario alinear e l punto de . en tanto que el primer mktodo puede producir un e-.S E C C I1 ~M Operaciones aritméii~as de punto flotante 379 Las computadoras con longitud. Cuando se restan dos nheros. porque las partes de los o m8s exponentes deben v o l v a iguales antes de sumar o restar las mantisas. el corrimiento a la izquierda produce una perdida de los d í g i h s mAs significativos. Un sobreflujo puede col'rregirse con facilidad.lS0000 x 10-' Es necesario que los dos exponentes wan iguales antes de que puedan sumarse las mantisas. /. Cuando se almacenan las mantisas en registros. Se reserva una palabra de ocho bits para el exponente y los 24 bits de las otras tres palabras se utilizan para la mantisa.de palabras m á s cortas utilizan dos pdabras para rep-tar un número de.punto f l o t a n t e . Consideremos la suma de los siguientes n6meros de punto flotante: + . como se muestra en el siguiente ejemplo: . puede sumarse la mantk: .base. 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. y su ejmci6n requiere más tiem~oy un hardware más complejo. Podemos recorrer el primer número tres posiciones a la izquierda o el segundo número tres posiciones a la derecha. el resdtado puede hhtener una mayoría de nheros O significativos. segundo m6todo es preferible porque & l o reduce la exactitud. hasta que es igual al otro . Despuds de que se hace estu.

Puede formarse el p d u c t o al multiplicar las dos mantisa~y sumar los exponentes. donde e es el pxponente real. utiiizamoe niuneros decimal. En el ejemplo anterior. La multiplicacibn y la divisi611 de punto flotante no necesitan un alineamiento de las mantisas.para mostrar algunos de los conceptos que deben comprenderse cuando se trabaja con .Se dice que un número de punto flotante que tiene un O en la posicibn m8s significativa de la manb. La mta de 50 proporciona los valores negativos en d rango de -1 a -50. 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. Las exponentes positivos en registros tienen e l rango de números de 99 a SO. De esa manera la representacibn de punto flotante de O ec una mantisa O y el exponente mAs pequeño posible. H registro del exponente contiene el número e + 50. El siguiente ejemplo puede hacer m8s claro @te tipo de representaciones. L a polarbación es un n~ímero positivo que se suma a cada exponente mientras se forma el número de punto flotante. es m8s senciUo comparar su magnitud relativa sin preocuparse por sus signos. se eviQ que el bit de signo sea una entidad -arada. 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. 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 . Paxa nomializar un número que contiene un sobreflujo inverso. Por lo tanto. Consideremos un exponente que varía de -M a 49. se ejecuta un pmdimienb de nomalizaci6n despub de cada operacibn para asegurar que todos lw resultados est2in en su forma normahada. La divisi611se realiza al dividir las mantisas y restar los exponen&. Otra ventaja es que el exponente polarizado miis pequeño posible contiene sólo números 0. Las operaciones ejecutadas con los exponentes son comparar e incrementar (para alinear las mantisas).por b que l o s dos tipos pueden compartir los mismos registros y circuitos. La ventaja de los exponentes polarizados es que &lo contienen n ú m ras positivos. De esta manera. para que internamente todos los exponenles sean positivos. se representan los exponentes en los registros como números positivos en el rango de 00 a 99. En h s eje+s anteriores. tiene un s~breujo inziw50. internamente. puede utilizarse un comparador de magnitud para apreciar i a magnitud relativa durante el alineamiento de la mantisa. se representa mediante dos *tos (sin signo) al sumarle una polarizaci6n de 50. En esta representacibn. En la mayoría de las computadoras. 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. es necemrio recorrer a la derecha das veces para obtener X lo3. Como consecuencia. Las operaciones ejecutadas con las rnantisas son las mismas que con los números & punto f i j o . sumar y restar @ara multiplicar y dividir) y decrementar (para nomalizar el resultado).

Ln parte de la mantisa time los mismos simbolos de letras rnayCiscub que la repmentaci6n de punto fijo. La diferencia estftba en la manera m que se manejan lbs exponentés. i a concatena96n de A. el registro B R s e subdivide en B. Rl diagrama muestra en forma explícita el bit más sigdkativo de A etiquetado mediante Al. AC y QR. 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. * Se considera que cada número dé punto flotante tiene una m t i s a en representación de magnitud con signo y un exponente polarizado. La ari&& d k c i r n a l de computadora se analiza en la m i b n siguiente. B y b. Q y q. El bit en esta p i c i 6 n debe ser un 1 para e l número que va a nomializarae. Como %la general. Por l o tanto. La org&aci6n de registros para operaciones de punto fiotante se muestra en l a figura 10-14. 1 o miamos ~ regfstros y el mismo sumador para bs operaciones de punto fijo. el AC time una mantisa cuyo signo está en A. Nbtese que el sfmbolo AC representa todo el registro. ' C o ~ ~ a c i de 6 n registros La confi'gurahón de re!ghtros para operaciones de punto flotante es muy similar a la dmrita para operacioaes de punto fijo. D e igualmanere. esto es.SECCI~N 10s Operaciones arihn6ticas Be punto flotante 3 8 ! l nameMs de punto flotante Es obvib que 1 . no tienen un bit de sipo . Como los exponentes están pala-dos. E1 exponente s t A en la parte del' registro r e p m t a d a por el símbolo de la letra a minúscula. y QR en Q. Rgura 10-14 Registros para aritméüca~ de punto fiotanb. para procesar h s m h s se usan. Para los exponentes se utiliza un sumador paralelo 7 baseparado. Existím €res registros.. y una magnitud que está en A. Los dpitmos d&arrollados en esta sección son para n h m binarioa.mismos conceptos se aplican tambih a lm Mmerqs bhrim. A y a. BR. IA parte del exponente utiliza d símbolo de letra m i n h l a eomspondienk.Cada registro & subdivide en dos pattes.

Ihbe realizarse el aíineamienb de las mantisas antes de su operacihn. Si los exponentes son dkentes. Aiinear las mantims. pero se repremtan como una cantidad positiva polarizada. pamms a $ecutar Ia operaci6n aritmética.salidas que indican su magnitud relativa. Si ninguna de los números es igual a cero. E l algoritmo puede dividirse m cuatro parta consecutivas. Micompk g i e n t w su signo.puntobinario reside a la *uierda de la parte de magnitud. No puede normalizam un número de punto flotante que es cero. 4. Para evitar es@ problqas. duran@ la multiplicación y la divisi6n. E l procedimiento de nomalizaci6n asegura que el resultado es@ normalizado antes de su transferencia a memoria. Si se u c i a este nWiero durante el c3lcul0. El. -- --JW@ a * 'Suma y resta mlr Durante la suha o resta. diagrama de flujo para sumar o restar dos números bmriw de pwto flotante se muestra en la £ i p a D15. Si los dos exponentes son iguah. y ei v&r ea AC es el resultadotado Si AC es igual a cero. Confome . La suma por diferencia S forma en e l AC. En l u ~ a r de comprobar l a presencia de ceros durante el proceso de normalizaci611. Si BR es igual a cero. . se normalizad el n suItado. Los exponentes tambikn s e conectan a un comparador de magnitud que proporciona ires salidas binarias para indicar su magnitud relativa. Después de cada operaci6n arimi&tica. el resuitado también puede ser cero. de ceros. Comprobar l a p-cia 2. para que se considere qqe el . se termina opaci6n. se termina el p m .normaliados. Después de que se suman o restan Ias mantisas. 3.mueven de v a la unidad de memoria estan siempre normalizados. los dos operandos de punto flotante estan en AC y en BR. el resultado puede estar sin normalizar. s i es necesario. s is e van a restar los mhems.la m a @ b con e l exponente menor se dwplaza a la derecha y s e . inicialmente. La r e p ~ q t a c i 6 n eritera para punto fiotatrte pmducqciertos problemas en el establ-ento de escalas. 1 . doptamoc una representación de fracciones. 'rcr Se considera que.deun sobreflujo de exponente. Sumar o restar las rnantisas.4Cy. todos los operandos de punto flotante que se '*@-q -. I a s nfineros de los registros esten . y por esta razbn. Normalizar el resultado. transferirnos el c o n W o & BR a . El mrnpqadqr de mapitud conectado a los exponentes a y b proporciona kes .! distinto.wmprobamos Ios ceros en un principio y. Se considera que los números de punto flotante s q tan grandes que es muy remota la posbihdi?d. procedemos a alinear las rrimths. no se considera un sobreflujo de exponentes.a B O .. El n h á o de la mantisp 1 tomar8 como Una fraccidrz.

SECCI~N 1~

Opraciones aritmt5ticas de

punto flotante

383

1

'

IL

Figura 1&15

Sumri y resta de nhmms de p u t o flotante.

incrementa su exponente. Este pmceso se repite hasta que los dos exponente8
m iguales.

u

La suma y resta de las dos mantisas es idéntica 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 podría tener un sobreflujo inverso. Si la manüsa es cero, todo el número 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 más 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

--_

I

Mdtipliacih La multiplicación de dos números de punto flotante requiere que multipliquemos las mantisas y sumemos ios exponentes. No es necesaria una comparación 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 números 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 números de precisidn única. Debido a eso, se tomarán 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 multiplicación puede subdividirse en cuatro partes:

'

1

I

L Comprobar la presencia de ceros.
2. Sumar los exponentes. 3. Multiplicar las mantisasl 4. Normalizar e l producto.

Los pasos 2 y 3 pueden hacerse en forma simuItánea 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 multiplicación de punto flotante Se comprueban los das operandos para detemiinar s i contienen un cero. Si algún opando es igual a 4 el producto en AC se inicializa

m IM

0peracim-marhndticas de punto flotante

385

m O y la cyemcibn se temina. S i ninguno es igual a O el proceso continúa 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 Multipliuiuón d e - n w - m de plinto flotante.

Multiplicar manüsa

shl AQ
U'@-

1

=1
f

Y

i1

m

386

cwimm~ DIEZ Mhética 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 contenían fracciones. E l operando normaIizado mAs pequeiio es 0.1, por lo que el producto m& pepueiío posible es 0 . 0 2 . Por b tanto, súlo 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.

P

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 fracción y no un entera. Para representar enteros, un dividendo de precisión ú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 pmisión única en el. registra A y se b m a d registro (2. Las ceros de Q e~tán-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 números 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 dividmído. La divisi611de dos ntímeros 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 después 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

3. A b e a r el dividendo. 4. Restar los exponentes. 5. Dividir las mantisas.

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 sería establecer e l cociente de Q R en el n-ctmero más positivo posible ( s ie l dividendo es positivo). O el número más 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 número 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 están normalizados, este alineamiento asegura que A c B. Despub, se resta el exportente divisor del exponente dividendo. Como ambos exponentes estaban polarizados originalmente, la operación 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. Después 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.

10-6 Unidad aritmetica decimal
El usuario de una computadora prepara datos con números dechales y r e c k resultados en forma decimal. Una CPU con una unidad aritmética-lúgica puede ejecutar rnicrooperaciones aritméticas con datos binarios. Para ejecutar operaciones aritméticas-con>datoadecimales, e necesario convertir

m..,

C'

SECCI~N 10-6 Unidad aritm6tica decimal

389

*

,

b s números decimales de entrada en binarios, para ejecutar todos los - cálculos con números binarios y convertir el resultado en decimal. Este puede ser un método eficiente en aplicaciones que requieran una gran cantidad de cálculos y una cantidad relativamente más pequeña de datos de . entrada y salida. Cuando la aplicación solicita una gran cantidad de entradas - y salidas y un número relativamente más pequeño de cálculos aritméticos, es- nids conmiente hacer la aftm6tica Hrterna de manera directa con los números decimales. Las computadoras capaces de ejecutar aritmética decimal deben almacenar los datos decimales en forma de código binario. b Después se aplican los números decimales a una unidad aritmética decimal ! tI capaz de ejecutar microoperaciones aritméticas decimales. a Las calculadoras electrónicas utilizan invariablemente una unidad arit1 1 mética decimal interna, debido a que las entradas y salidas son frecuentes. No parece existir una razón para convertir los números de entrada del teclado en binario y volver a convertir los resultados exhibidos en decimales porque este proceso requiere circuitos especiales y también necesita más tiempo para ejecutarse. Muchas computadoras tienen hardware para cálculos l o aritméticos con datos binarios y decimales. Los usuarios pueden especifi-, ' car mediante instrucciones programadas si desean que la computadora ejecute los cálculos con datos binarios o decimales. Una unidad aritmética decimal es una función digital que ejecuta . microaperaciones decimales. Puede sumar o restar números decimales, por 1! lo regular, al formar el complemento a 9 o 10 del sustraendo. La unidad , ,, acepta números decimales codificados y genera resultados en el mismo código binario adoptado. Una unidad aritmética decimal de una sola etapa t . consta de nueve variables binarias de entrada y cinco variables binarias de salida, porque se necesita un mínimo de cuatro bits para representar cada dígito decimal codificado. Cada etapa debe tener cuatro entradas para , un dígito sumando, cuatro entradas para el otro sumando y un acarreo de . ,.8lU#. 1 .L. ' " entrada. Las salidas incluyen cuatro terminales para el dígito de suma y uno para el acarreo de salida. Por supuesto, existe una amplia variedad de '' configuraciones de circuito posibles, que dependen del código utilizado para I I , , ~ representar los dígitos decimales. .

-- --

11

-

-

++

-

2

p

T

1,)'

'lA'

J.)-

-,

. , ,n

'r

lb

5..

. , 7 ) , ,- m . ) Sumador BCD " '.
f
l f

2

,

'S,

' I

11'

J .

1 1 ~ 1I ,

11

n

'

S

1

1 ,

,rl
l .

rr

17.2

"
I 4 I
Y

' 4

" "

VL

8

'l-

tb

Consideremos lb '&%unaaritmética dos dígitos decimales en BCD, junto con ." "!"' -*11 un posible a c a r d de una etapa bnterior. Como cada dígito 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 ' * dígitos 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 números binarios se listan en la tabla 10-4 y se etiquetan mediante los -* (.it>n*- símbolos K, Zg, Zp,Z2 y Z1. K es el acarreo y los subíndices 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.

r

''

,J~,CII,?,

?'

)

"
+

L,

1Ig

8

(

.

TABLA 1 W Detivaci6n de un wmador BCD
Sumadorbinario
Sumador BCD

K

Z e

&

Za

21

C

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

o

0 1
1

1 0
1

0 0
0

0 0 0 0 0 l

1 0
0

2 3 4
5

0 o

1

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 código 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 número binario de la primera columna en la representacidn correcta de dígito 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 número BCD correspondiente es idéntico y, por lo tanto, no es necesaria una conversión,Cuando la suma binaria es ,mayor que 1001, obtenemos una representacidn BCD no válida. 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 método para, sumar nCimeros decimales en BCD sería emplear un sumados binario de cuatro bits y ejecutar la operaci6n aribktica de un dígito a l a vez. El par de &@tos BCD de orden inferior se suma primero para

mmó~ i~ Unidad aritmética decimctl

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 automákica un acarreo de salida para el siguiente par de dígitos
significativos. E l &+te par de *tos de orden superior, junto con e l acarreo de entrada, se suma después 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 dígitos 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 también tienen un 1 en la picibn Zw ~ ~ además que c2 ,o &<deben s tener un 1. la condición 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 dígitos BCD en paralelo y produce un digito de suma también en BCD. Un sumador BCD debe incluir la 16gira de correccibn en su construcci6n interna. Para sumar O110 a la suma biñaria, ,utilizamos un segundo sumador binario de cuatro bits, como se muestra en la figura 10-18. t o s dos dígitos 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 dígitos 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 propagación d s cortos, los sumadores BCD incluyen los circui~QS necesarios para acameos antiapados. Adeds, el circuito sumador para la corrección no necesita los cuatro sumadoras completos y este circuito wuede optimizarse.

Resta BCD
Una resta d ' i t a de dos números 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

Aritmética d e computadoras

Adendo

Sumando

fnu
hacia afuera

JIMIIO ~its Sumado11 ' ' ae ' 4 "
"

I

Lz -

Acarreo

I

de entrada

Acarreo de salida

1
rtrn

Sumador binario de 4 bits

I

d

"-

::&Ez;:~d
J

d

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.

d

minuendo. Como el BCD no es un código autocomplementano, no puede obtenerse d complemento a 9 al complementar cada bit en el código. Debe formarse mediante )un circuito que reste cada dígito BCD de 9. El complemento a 9 de un dígito decimal representado en BCD puede obtenerse al complementar los bits en la representación codificada del dígito, siempre y cuando se incluya una corrección. Existen dos métodos de corrección posibles. En el primero, se suma el binario 1010 (decimal 10) a cada dígito complementado y al acarreo descartado después de cada suma. En el segundo método, se suma el número binario 0110 (decriinal 6) antes de que se complemente el dígito. Como un ejemplo numérico, 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 método 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 número 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

106 Unidad ariimCtica decimal

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 después cornpl+ mentar proporciona 1 5 - ( N + 6) = 9 - N, queves10 que s e necesita. El complemsnb a 9 de+und.@to BCD también 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 dÍgito 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 operación sumar/mtar. Cuando M = O, s e suman los dos digitos; cuando M = 1 se restan los digitos. Sean las variables bidrías 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

M

A partir de estas ecuadorres obmvamos que X = 3 c d o =1 , las salidas x producen e l complemento a 9 de B.

Figura lb19 Una etapade una unid9 arhéüca decimal.

Por conveniencia. para números decimales. Consiste en un surnador BCD y un complementador a 9.enla figura 10-19. apirddR d w Una etapa de una unidad aritmgtica decimal que puede sumar o restar das digitos BCD se muestra .A B 1 representa una transferencia de la suma decimal formada al sumar el + + TABLA 10-5 Shh108 de miaoo~&raciones arihn4ticas decimales A+A + B Sumar *@ros derimales y transferir la suma dentro de A Complemento a dígitas 9 de E E Contenido de A mls complemento a Qt+Qt + 1 dfgitos 10 de B dentro de A ~ t . las didas S forman la suma de A d s el complemento a 9 de B. Por lo tanto.+ ihammmtarnberoBCDenQt dsh A -Commiento d 4 al a áerecha del registro A dshlA Corrimiento decimal a ia izquierda del registroA .+N-? . 10-7 Operadones aritdticas decimales Los algoritmos para las operaciones4 aritméticas mn datos decimales son similares a los algaritmos para las operaciones correspondientes de datos binarios. excepto por una Siera modificación en los algoritmos de multiplicacibn y división.s a l i h S fonh2ui lasuma de A y B! Con M = 1 . Con M = O las. 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. siempre y cuando interpretemos los símbolos de la microoperaci6n en forma adecuada. . pueden usarse los mismos diagramas de flujo para ambos tipos de datos. Para números con n &&os decimales necesitamos n etapas como &a. lo cual es equivalente a una operacibn de resta si w descarta el acarreo de la iiltima etapa. Cada grupo de cuatro bits representa un digito d&aI y debe tomarse como una unidad cuando se ejecutan microoperaci~nes decimales. Como se muestra en la tabla 1 M una barra cobre el símbolo de la Letra del registro repmenta el complemento a 9 del número decimal almacenado en el registro. Las salidas brmdn l a suma de A m8s el complementa a 10 de B. El mddo M controla la operaci6n de la unidad. el símbolo A +. pero les daremos una interpretacibn dlferente. A1 sumar 1 al complemento a 9 se prcduce e l comple_mento a 10. Los números decimales en BCD se almacenan en Ios registros de la computadora en grupos de cuatro bits. ~ + f i . De heeha. utilizaremos b s mismos sfmbolos para microoperaciones aritmdticas binarias y decimales. Ellacarreode saiida Ckl de-etapa debe ccnahnc a l ata-m de entrada Cf de la siguiente etapa de arden superior..

Los datos binarh deben mnplear un sumador b i r i o y un complementada. mientras se transfieren los bits de cada dígito d i c a d o . . consideremos un qistro A que contiene el decimal 7860 en BCD. Para k digitos decimales. como se muestra en la figura 10-19.1emento a 10 con signo. un contador binarlo cubre una secuencia de 1111 a 0000 cuando se decrementa. h s datos decimales deben emplear una unidad arihbtica decimal capaz de sumar los números K D y formar el complemento a 9 del sustraendo. loa dígibs se aplican a un W o sumador ECD en f o m serial.el simbolo se aplicada a i tipo de datos que se usa. En este caso. el algoritmo para nameros de complemento a 2 bbrios con signo se aplica a lw números decimales de cony. Como un ejemplo num&rIro. El uso de símbolos 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. uno a la vez. esta confiracion requiere k mici00peraciones. De igual manera. de 0000 a 1001 y de regreso a 0000. A un corrimiento decimal a la derecha o izquierda.* contenido original A al complemento a 10 de B. Si & l o s e está conside rando un tipo de datos. El rnktodo paralelo utiliza una unidad aritm& tica dechal compuesta de tantos sumadores BCD como dfgitos hay en el ndmero. 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. L a suma se forma en paralelo y 6610 requiere una microoperacih Iln el métado de * t o serial y bit paralelo. Un contador b h a h recorre 16 esbdm.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 también a los números decimales de magnitud con signo. efi paralelo. seria mejor adophr un dmblo~ diferente para'el comphénto a 9. le antecede la letra d para indicar un corrimiento sobre los cuatro bits que contienen los dígitos decimales. dado que 9 es eI última contea. como se muestra en 4 figura 10-20. Un contador decimal va de iOD1 a 0 0 . Un contador decimal recorre 1 0 esbdw. De igual manera. 'Los datos decimales pueden sumarse en tres diferentes formas. L a suma se forrha al ejecutar un corrimiento de los niimms decimales por e l sumador BCD. cuando se incrementa. siempre y cuando interpretemos 10s símbolos de la microoperaci6n en forma correcta. del 0000 to 1111. incrementar 6 decrementar uh registro es igual paraJbin&os y decima1% excepto en la cantidad de estados que se permite que tenga eI registro. una para cada .

I 0 0 0 0 0 0 1 1 Sumando Surm S FA CAdda I I 1I I I 1L I I l t Figura 1 0 7 i lTres maman de ~umarnilrrserwrddmaimz .1 O 1 Q.

d ~ b e cmgirse dentro de un dlgito BCD vblido. m w o paralelo e sd~ido pero d t a una gran cantidad de sumado~es. El método de digita. la suma binaria se corrige al sumarle O110 y generar un acarreo para el siguiente par de dlgitos. En el caso decimal. mientras que un multiplicador binario sólo tiene dígitos O y 1. el multiplicando debe multiplicarse por el dIgito del multiplicador y sumarse el resultado al producto par-. S i es mayor o igual que 1010. Multiplicad6n La multiplicaci6n de ndmeros decimales de punto fijo es simüar a la de números binarios. Es m6s h t o que e l método pardeb por el tiempo que se para desplazar IQSdigitos. consiste en comprobar la suma binaria. 3 / 3 . en los que Figura 10-21 Reghfros para multiplifación y divisibn a-knética decimal.corrimiento digital. por todo el sumador serial. analizada en la seccibn 10-6. Esta operación puede realizarse al sumar el mItjplicando al producto parcial una cantidad de veces igual al valor del digito muItiplicador. d d comparten todos los dígitoet. En el caso binario. La organizaci6n de're&tros para la multiplicacih decimal se muestra en la figura 10-21. El métdo totahente setlal. Un mdtiplicador decimal tiene digitos cuyo valor flucth de O a 9. excepto par la manera en que se forman los productos parciales. quiere una cantidad mhima de equipo pero es muy lento.Consideramos aquí niimeros de cuatro dígitos.dy bit paralelo $610 mpiere un sumados BCD. los bits se recorren uno a la vez por medio del sumador mmplel~. Esta correcci6n. se suma el multiplicando al producto parcial si e l bit multiplicador es 1. La suma binaria formada despu4s de cuatro corrimientos.

aaw c a i &Lh. El dígito menos significativo en el registro Q de repmxnta mediante Qp Este dígito puede incrementarse o cada decrementarse. es f ~ m el x complemehto a 4 del divisor cuando se resta de un residuo parcial. B. para un. Un bit (el signo) se transfiere a B. Un operando decimal que proviene de Ia memoria consta de 17 bits. durante la multiplicacibn. es alojar un sobreflujo o mientras swna el multiplicando a l p d u & parcial. y se coba la rniapitud del operando en Figura 1&22 Diagrama de flujo para multipliEaa6n decimal. . durante i a divisihn. . El propdsito del e o t A. E l pmp6sito del dfgito B. La unidad aritmética BCD suma los cinco digitos en paralelo y colma la suma en e1 registro A de cinco dígitos. B y Q . denominados mediante 4 y Bw que pmporcionan una extensibn de un digito m4s a los registros. A. Los q i s b A y B tienen cuatro bits rnds.total de 15 bits por número. y Q.b q 8 . Existen tres registros.d dlgito ocupa cuatro bits. y cada uno tiene un flip-flop de signo correspondiente A. El acarreo final va al flip-fiop E.

to multiplicador. el digito del cociente no s e iocremenh. Cualquier dgito de sobreflujo temporal residid en A. se resta e l divisor al sumar su valor de comphento a 10. E1 resultado de Ia operacidn tambmbién tiene 17 bits de longitud y no usa la parte A. (insertado ahí duranfe el cofrimiwito). Si E = 0 .que es lo querido. los dlgifos del cocieñte pueden tener chalquiera de diez valores de O a 9. Al principio. ihspués.-pués se repite el proceso k veces para formar un producto de doble Z~ngituden AQ. y puede variar su valor de O a 9. excepto que. División L a divisidn decimal es similar a la divisi611binaria.Como Be se limpi6 al inicio. hasta que se produzca un residuo negativo. Al principio s e borran tanto E. Ensepida. El dfgito en e1 cociente d e j a la cantidad de restas acumuladas. El acarreo en E determina la magnitud relativa de A y B.Si es diferente a O. Se repite este p m hasta que la . Esta coloca un O en A. En el método de divisibn-restablecer.Es simiir al algoritmo con datos binarim.el residuo parcial ':va'Vmtro del divisor. y transfiere e1 siguiente digito del multiplicador a QL. el produtto parcial y el multiplicador se recorren una vez a la derecha. pero excluye la que produjo la diferencia negativa. Se comprueba e1 dfgito de arden inferior del multipIícador m QL. Después. por supuesto. i h esta manera. s e sestab1we el residuo correcto al sumar el divisor. excepto por h manera en que se f m n los bits del cociente. El algofitmo de divisidn decimal se muestra en la figura 10-23.. E 1 dividendo (o residuo parcial) se recorre a la izquierda. pero se suma e1 divisor para restablecer el residuo positivo.N o * consideta el valor de E. S iE = 1 . El dígito del cociente en QLse incrementa una vez y e1 divisor se resta de nuevo. Despub s e eneúentfa el miduo en el registro A y el cociente está en e l registro Q. . significa que A 2 B. el dígito del a t e n t e se hace igual a la cantidad de veces que . como A.los 16 bits inferiores de B.s i m a que A < B. su valor de complemento es 9. El algoritmo de muItiplicaci6n decimal se muestra en la figura 10-22. tantas vmxs cpmo sea necesario.resta produce una diferencia negativa que se reconoce cuando E es O. e e suma una vez el multiplicando en B al produdo p a r d en A y se decrementa Qt. Cuando ocurre esto. De esta manera. se resta el divisor del dividendo o residuo parcial. 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 dígitos de cociente. con su dígito más significativo colocado en A. se suma el divisor para restablecer el residuo parcial y QL se queda en O. Se comprueba QLuna vez más y ce repite el proceso hasta que es igual a O. En =te caso. el muitipkando en B se suma al produdo p a m d una cantidad de veeea igual a i 1U8. del registro A. se borran los registros A y Be y el contador secuencial SC se inicializa en un número k igual a la cantidad de &@tos en el multiplicadoi. .

. La multiplicaci6n y divisibn de las mantisas deben hacerse mediante los métodos ya descritos. microoperaci6n.Dividir (Q cociente esta en a) Agura 10-23 D i a m a de flujo para divisi6n decimal. 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.Operacionesde punto flotante tas operaciones aritméticas de punto flotante decimales siguen los mismos pxocediiientos que las operaciones bbarias.

O' lb110 L n -L 2 .@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. 0 101101 . 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. ~ @determine b. (+. Utilizando estos . .aig@itnoaand@m ' d d a m los siguientes números de magni.\w si&m@ phmerosqeprenta el bit de signo. ' Considere los n r l r n q ~ s bjn?&s cuapdo e s t h en repreaentacidn de crrmplsmwito a 2 coa signo.'OllIl$ b . i tiiilf~ .&riJuyenda d sQno). 3W.+) b* 6 q : + J-%). s . narhm& n -X se rqresarita como ~ ~ . r p F e n Q r cada r&tem. E 1 bit a la .q.1 0 1 m b e. Muestre & dp&edin&&~tod r d%~/6n di1Zobrefi ujd que m s t e en bmpioGr. ~ ~ . funciona en . p 10liO'. gata la m B @ i i h $ Vn . En w ' a b h s . O OUW83. 2011Q c. donde el O significa el bit de y %la magnitud de k kits.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.l.& i d & d ~ ~ i ? ~ ~ t (5.8 P' d siek b i t s ~ a ~ ~ a a & l ~ o h e m ~ i I r l ~ En ~ cada n acaso.ka e i -el b i t ~ s i complenia ~ 3.~ . Utiliee + + - . si k y un .Q>+ .b T m 1 .l q Gltimm a ~ r w sno ..9olWbjg alcpmpm& 'bs~a$nrreo hacia s adentro y h a & afuera % 3 .ds X:Utr'nCrmwo p b s i t h so representa como O + X . c: A W - 10-4.la trayectoria general que toma el.-lL Ejerirte las wacioiies z t e s con n & binarir* y mn niimems negativos en representad& complemento a 2 con signo. . OllM1 1. utilizando sdlo ". Cada n h r o tiene n bifs: u w para el sipo p k : = n.(-q+ (rb)= -15 m n mimeras binarios en ~e~resentacirin de caplemento a 1 con signo. 9. O 01111 d.b.f-ud' c m 48r(s. En reaaa eawi p r & w ó n eel valor de AVF.~-&-@d$rl d.ex@ew kqgi&. k &gte:& q p e m c i D . 1.con s w o cwmdotserestan las mapjtudes mediante hs operaciones A+AyE&+-A*B: 10-2.E " bib qa. . de la piccbn de bit de signo.

el multiplicando + 15. es necesario restar 64 para tener una suma de exponentes polarizados. tistelarrpresentaciónpl~adetodoslw~tesde64a~. d Demuestfe que. Compruebe que la muhipli~ci6n de dos nheros de n dígitos en base r proporciona un producto no mayor de Zn dígitoc de longitud. es necesario sumar 64 para tener una diferencia de exponentes polarizados. fiemuestfe que. c .de computadoras b . mando los números negativos estiIn en repmentación de complemento a 2 eon signo: 1 I . Demuesb que &e enunciado implica que no puede ocurrir un sobrefiujo en la operaci6n de mu~tipiicaci6n. Derive un algoriimo en forma de diagrama de flujo para la comparaciónde dqs niimera blnatim con signo.b) OMXlllll entre 0011 (utilice un dividendo de acho bits). a . Considere registras de Unco bits que contengan los números con signo. A. Derive un alpritma para evaluar la raiz cuadrada de un n h e m binario de punto Ej.&vi$6n de b m a b de punto fijo sin mtablcimiento. Muestre e l rnntaido de los q i s t r o s E.delos tegis. ~ 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. Utüice mmpuertas AND y sumadores binarios. m a M v e un aigaritmo en forma de diagrama de flujo para el método de . l a constante utihzida para polarkm es 64. M u m el eontenida. Sugieraunprocedimiento d f i c a d o para detectar un sobreflujo cuando s e utilizan números de complemento a 1con signo. despuzs de la resta de dos exponentes polarizados. Muestre el groepa de multiplicacib paso por paso utilizando el algoritmo de Booth (como en la tabla 10-3) cuando se multiplican los siguientes números binarios.E. Diseííe un arregl~ mdtiplicador que funcione sobre dos números de cuatro bh. Q y SC (como en la figura 10-12) durante e1proceso de divisidn de: a) 101OM)ll entre 1 0 1 1 . A. Demuectre que al sumar B después de la operacibn A + + 1 restablece e l valor origiinal de A.No se induyen Ios signos. Un numero b W o de punto flotante tiene siek bits para un exponente phrfiada. Derive un algoritmo en forma de d i i m de flujo para sumar y restar dos nilmeros binarios de punto fijo cuando los níunems negativos están en reprmntacibn de complemento a 1 con signo. 1 1 1 1 1 (multiplicando) y 10101 (multiplicador). En ambos casos. Q y SC (como en la tabla 10-2) durante el proceso de multipüeaei6n de dos nrimeros binarios. b . Demu&re que puede UWW un comparador de magnitud de s i * bits pmacompamb~tudrrlativade~dosexpmbes. después de la suma de dos exponente p h r k d a s . despuk de una d&$i6n? I .

Para w h c @ de e n t m a &mws& que sise utiiii m de p d i n bnica. e d e r a n d o eqm~entes pdiarizadas y tomando mi cuenta que % l o puede recorreme AC. . r Rivlr km ires dhgqpiw de f l " p y m n h . Demucsire que no puede haber uh sobreflujo de mantisa después de una * & n de mthltipbción 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. 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 .dupanbe ia d t i p . 1 W . se usa e n & número más grande para determuiar el &tsdo. dónde puede muL un mb. 1024. (n -1) debe sumarse al pradwbde qwmk en el AC. . y h dhhibit ! k i la cantidad de bits en la parte de mapitudde k mantupa (n . 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.&rrna eantiddd de lugares igual a la d i h e d a entre ios exponente. Al revisar y comparar para de bita de izquierda a derecha f 0-19. '"pp~apdp6&flrq'p del 8ugokivdeapmehtesi el es más negativo que el nhnem m g r s ' m u e A a que puede alojanse en ei registro. a= opnci6rrdE aur n d d e mrnplemento a 2 mn w 1 0 2 1 ..S~6cutre&. p r o b e l m a s J e & b h iriL. . R e p i t a . 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. Sin utllinrat un í 5 h m d o r de magnitud. s L p h 10-W para mhems bharidsde magnitud con signo. La mantisa debe ser una fracción ' i u s aipritmos a las *apaeigtbes'aride punto flotante m la '-ióm 1W no la @Ididid de sobreflujo o sobreflujo inverm del'expmte. Cuando sealinean bmdhwdurante la suma o mta. b . 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. - 'Exz . 1 d~tepuedeser~que~n~tl.Wanb una b . 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 .n&ujo de explente. C i e l n d m e m d e ~ b es mayor que n 1 . derive un algoritmo en brma de diagtama de flujo para alirbeat las m a n h y colel exponente mayor enLel AC. i a manga siguienk m h r rl expo nente más ppeiío d d mayor y r a la derecha fa m t k que tiene d -te más peq. S i u p i a de m m i l a mmtisa de d m a m de p b= .Z r 10-23.1 ) . la difeiencia .deteqmmtp. -J 4 10.hmtisaconel menor m reame p r Wpleta fuera del 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#.

En me I a .sle m. -i Uldl?. 1 e m . Es wesario diseiiar un oumadbr para dos digitos decimales reprei código de e ~ r tres . de cuatm bits inferior de la figura 10-1 puede suatituirse con m d d o r completo y0d&semisumadores. ~mE.c@$perlg que se utülza para la sumq y resta de dos nilimeros d w 4 -?negativ~ en . .dabsbim&sa M&. l ¿Cuáles Ia ~ ventaja de~ ud&r k t e z e i lugar de BCD? 10-29. . e ~uiJ&rnfl~j~. biste MOS les bits de entrada y de salida de la n unidad. Dibuje el diagrama de bloques 1. . 8 . que seva 9 a W p r a l a . seq?-tan w c&hgo .h&ica &ecimakd&tres etapas y muestre e6mo se . UtilPzando übiw & d i & ciicuitk combicionales.. DetnuestreqÚe el &dor de exceso t mp i d e constniime eon 7 suma-u\ ' dores mf"ip1ebs y dos @ve&#.~ se en l a ff&ua.. a W t i n 0 8 aritm&& 8e iunto flotante en l a &10-5 de 1 .h i w y r e s t a de dos Números n ~ ~magnibddeon t a ~ ddp . . bom Q.implantaestaoperakih. Dibuje ei d*a& 1'6gim.? &hwb $~wf$$do *.Demu&re -. . - que si se u t i i i a d v i d d de mantisa de precisibn Muestrela d~~ d ~ ~ .. .. . ' &muestre que el sumador bit&. p d u & d t a d a s mrredd 'I . wmw de wlida es igriaI d -a sin carregir.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.repmmtaaón de complemento a 10 Idique cdmo se .'. . . '. t d g í ñ k &pifia en la figura 10-22 y b ) la divisibn ~~..1) debe restaredJ dividendo de exponente cuando se .Wia"Ea'gura ~ t m 1O 2 1es cero al final de: a) la khkiüpUaühdermia1. . lisie ebmo d& interpretarse d a dnhlo d e n n i ~ a d h .lC)-23. 1WU. ci6v desp* d dos dfgim eoq un sumador bimrio de cuatro bits es oomp sigue: a.ie'ios ' . Q y SC durante i a multiplipd6n y b) 999 X 199. 10-27. Q y SC durante la divisibn decimal (figum'iü-23)de 36W/32.km rrgiahosy4. de una: unidad1 ari. . Mue&rBd -contenido de lm A. C o m h registrae de dos dlgib. (tabla 3-6).(tabb Una entrada de mntrol de ~ q de p $se ~ pel dígito o no. Si el acarreo de saW = 1 . b . .. .. derive las hui. . . 10. (n .32 M v e el circuitop a w w eornplementador a 9 cuando los d í @ hd-es . summ W 1 1 . cfo* b o o f F~ a ~el com$lem&nta:dora 9 BCD de la figura 10-19. II &o . * t q y tome~l :iWS.. c 3 el acarreode q d a =+O. 'Demuesireque 673 &5ú pude calcularse al sumar 673 al complemento a U3de 356 y-de-mr elatafteu~fd.&tech un .b . . E. m ? I 1 2 % . M g W 4 . . . Considere regisim de . ? . B. p r 1107 e i p p y el acarreo de gsta suma. .e Indiquecomo w detecta 10-28. Demuestre que la correcseyts¿o& a . b 1 .l. +.lWr'bue$trequed ~ ~ b A. bniea.. dslelplal (+a 10-22) de: a)+X 4 como el rnuitiplicador.

1 M 3. Cmpukr Afifkmdic in Thmy and Practice. 8.. F . Hamacher. Hap.Nuwa York McGraw-Mil. Hwang. Hill. G. 1 m . J. Digiktl Systm: rúlrduwire Orgmtlzntion and h i g n . 4.L. C. Nuwa York JohnWiiey. Vranesic.1976. 3a.l. Nueva York JohnWiley. Blaauw. . y W. Decimal Arithmetic. Zaky. Ed. NJ:Prentie Ha11. CompirterArchi&re ami Organiration. 1980. K . W. C m p t e r Organiuition. 7. . 2. Nueva York: Aeademic Prws. . y G :R Petemn. Nueva York: MeGraw-Hili. Ed. 1990. Cavanagh. Englewwd mi. 1979. V. .. 1987.. H . 2a.Miranicer. . J. Digiftzl Gwpfer Arithmetif. G. 3a Ed.1979. 4. F. Nueva York: John W i . V.J. Nueva Ywk McGraw-Hiii. Kuliiih. F . Schrnid.-1 Systemii IrnpiemntaFion. 6. Z. y S. G. J.Computer Atr'thmetk.

. & e p ~ ~ e n t o ~ c e n ta ra uri l dispositivo extremadamente 1 ' fáp& capaz c k ejecut2u.para el ushrio. EN WTE CARfTUW tivo vos I n e e e de rrqf&ia ! - m . Por otra p r & ila-un&d . Xn veIoeiW más alta pibb pah ihtroducir informaEi'6ñ de esta depende de kvelmidad para elear de una pwsona. subditema de entrada-salida de una computadora. i 6 n d 3 ' . i m pmgtamas' gr datos debren introducirse a la memoria de Irí . que permite a una p w m htrodudr uifo&8ti dhTidrice en fomh direda Cada v a que se oprime una l a .operacidma muy alta Velocidad.*. i a tie4nihd envía un c d c t w cudificado en binario a la computadora. denominado B/S.c a -m m B1. d e 1 A--diiammh @M) P-dor de dtr'ada4ida @ O P ) d d i ' . .a-un plocesador h f o r m c i h de enhada mediante un tedado lento. p~oporcim u n .d o de comiinxcaciófi eficiente && el sistema central y el mbhte extemo.. w&na de datos M d w d e framkml& ~ ~ d interrup&n~.es a través de un Wiado tipo máquh' ' & &tr.computadora para su p ~ ~ ty he o miiltados " que se obtienen de los C~ICUIDS hben grabarse o q$trarse. 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 ' . Cuando se handñeie.

Para producir un patr611en l a pantalla. -pitores es un cursar qye marca la~ ~ m. b.. d .mayor park 44.m~. . de matriz..*r una computadora de manera eficiente.t-p. for.la. y deben ha*-rse a m& de almacenamiento como discm o cintas . dw la pvtj!k a . Los dispositivos de entrada o saIida conectados a la computadora tambi4n Q + ' m el llaman &@Qs.Una .mmor. cci+quier linea.cantidad de programas y datm.& donde todos-b r c a r a c m inhoduci. d e . Consismonitor y kclado . En ql.upr: puede w v . LOBperif&ícw que proporcionan a h c e n a miento &liar paia el Usiema p? cintas y discos magn&ticos.@aqsfieredespués a L a memoria de la ''c~mph&i@d Bg L a r ve i W d . A q f se .&gné~'ess.bmer por el tub.~ Entre i a ~ ~ ~ m8s M comunesS =tAn los teclados. -Ia.6 insertad n el siguiente'carácter en la pantalla. &ka uq.y i m p q r a s .dmcien& que aparezca en la pantqiIa . o . opesjtr en b q de 8q&jez..simuWm. La .hv$s del t e e W : = t r w t a la mputadora m .h.& c.de. . deben p m a r a M con ariWpaeibn u n ag .UIM memoria ! Mdmtw de. e l papel de.@ de Ata v~IorT.gpod~ !deb w e . 4. Ha y tres tipos b 8 ~ h ~ d i 1~ daw.h Wrmbal. Estos dispositivos están diseñados para leer hformaci6n hacia adentro o afuera de la unidad de memoria a n t e un comando de la C m y. El haz puede desviarse en forma horizontal y vertical. . w n base en la p i c h del. pero los más populares'titW8-un 'tubo de rayos catódicos (CRT)..carmkres colocadas en la o . k s resul@dusde los programas tarnbikn . -le6 ' h o m n t a k y verticales desvW e 1 3 b a y:l o ham. fa Wormacié del .mcacarA~brC l a meda gira a la posici6n se !m m . E i texto se transfiere a . Los rqpnjtores d e .el . .text~editado se almacena . mientras espera que el pps+40r~~estwd iiegue la irúomiacidn.'&y diferentes tipos de mo~tores de video. . a una impresora para proporcionar ypa d i d a inprqu&. como discos.. Fn q un Wla* como clisposüivo de entrada y una panfalla como dispositivo de &da.resulbdos. h s &ha de edicibn agregan . -.de puntos y laser. dispmitivbi que están bq<> co~tml directo de la computadora e s t h conectadoe en linea. sin entrw:en d-lles de BU con$thicci&ninterna.-~ynpu:kd~~a.Tnpr.mrwteds@ . ddesde los se h a n i * 8. .bloqpe de h ib$?m~w P M P D * ~ Un w @ o ~ p -k f e .. b ~ . -. r w. +$npmorade rnargada. W.. 11. %B . d i & se . ~ & i o n a T un 6 breve análisis de su funcionamiento. i m m a s d&qwac&m: de mawb. =@dada de la. sobre un .pntie*neu n ' d h a cqm 1 .con la pantalla y la haga brillar en punm ~ l e c c i o ~ d o íLas s .A~ .a cualquier pwki5n en la pantalla. m p t a & r acomo8 ...w . El monitor puede . ..que.. los mo~@~res .E l CRT contiene un caiión electFdnico que envía un haz de electrones a una pantalla fosforescente al frente del tubo. m mates + 'd * ! t l : = tsrde. .Mir . video son los p e r i M h de uso mds común. *o. p~tr6n viswb. Los periféri'cm sixí dihpz1sitivirs efectromecAnico$ y eleetromagn&ticosde cierta comple jidad.q9eIeJ. sie r o ~ ~ W a ' q u son e parte del sistema total de la computadora. de @ circunferm&.. una rejilla dentro del CRT recibe un voltaje variable que hace . earfickr úni~%~wia palabrq o.M mtziem .dad. l q r a n h$ocaciór).

w utilizan principalmente para almacenar archivos he datos: por ejemplo. la oprime . Cada punto pude impon & . El accew es secuencigd y consta de registros que pueden accesarse uno despuks de otro. seria ~mkibitiva entrar en detalles de h a htconexiones necesaFias entre la computadora y 'cada perifkrico. zippiada y-dmpuékuh imán. Despuk. como provisidn de partes de máquinas. d& proporcionarse un m h d o para captar las condkiofies de estado del proceso y enviar Males de control al procesa . El a c h se consigue al mover un .contra la cWa:Le de matrhlde puntos &tiene un conjunto de puntos n lo:largo del de+lmpM6m. el patrón se 'transfiere sobre el papel i p l que en una máquina copiadora. Es und de Id rn6todoa :más baratos y lentos para . los d i se tiM. * cinta ~qagriéticq disco magnhtiw f . 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. En este capiSu10 be presentan ciertas M c a s comunes . Las cintas y discos se anaIizan mérs adelante en la wcibri 12-1. Para tales aplicaciones. los lectores de caracteres óptima y mapdticos. el registro de l a n6mina de una compania. m u m 8 a 1 0 largo de un mecanismo esfaciomio de lectura-emiturd.1 . que se coptroIe. & dispgtivtw de entrada y salida que comunican con las personas y la computadora. L. depndiertdo de los mm&r&especificos que es& impresos en la lúiea. Na?odas las e n t r a b provienen de pemnas y no todas das salidas están dirigidas a eiias.mecanismo ae lecturassc@ura sobre una pis'h en la superficie magnetizada. los canvertidones analgicos-digitales y equipo diverso de adpuisici6n de datas.Por ejempIo. &as cintas tnagn&cq. juntb mn su como memoria auxiliar. por l o general s e relacionan con l a transferencia de informa- . procediientas de ensamblado en Wea y p m s quimieo~ e Xnduatriales. hhptewra hser utiliza'un tanibor fotogrbfico rotatorio que se emplea para-imprimir las-imágenes de caracteres. al que =-aplica itna corriente.jzan para el almacenamiento de grandes cantidad* de programas y datqe. La oqy$mción de entrada-salida una computadora es una W 6 n del tamaño.yde los dispitivos conectados a eiia. Sobre todo. !con u b cubierta de material ma@tico. Otros dispositivos de entrada y 'salida que se ennientran en sistemas de computadora son los gmikadores digitah. Como cada periférico se comporta eri forma d i h a t e de los demás. Las computadoras se utilizan para controlar varios p m s en tiempo real.- ' &. 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 Nféricos conectados al sistema. una impresora de matriz de S X 7 puntos que imprime 80 caracteres por línea tiene varias lineas horizontales y cada una consta de 5 X 80 = 4(30 puntos.arb mayoría de los p e r ~ ~ ~ S " Caractexes alfariuméricos ASCW L . de la computadora'. confonne Ia cinta.

- . -.. DC2 DC3. ..: . . a * GS i . h g x 101 1010 ~11001 LF FF S I E. S K L I \ *'*A l - k 1 { I +. ..m Rs *. EOT n C 4 01.. h s . . .y% . ~ .. .i&rmación (American Standar Y - SQH S'IX i ETX OlOO .- 1 . . 1 .: Separador de mgistm de unidad " ' Separador l y h r . ./ I1 . l 1 f.h-!~nir! m . ~ ) n -ri. SYN 'CAN S & ' 1 T ' c S dhw t e U f X J j v w BEL rn IW FS SUB . ..< = ! '. ' > '-SP - Aimentacibn de forma FS Retornodecarro G S Teda de maykuhs oprimida RS T & de m a m s sin oprhIrUS Espacio DEL -.r~i'.i io de.01 0110 O111 iOoQ ENQ ACK NAK.. . .. 4 DLE DCI l.ii.. . Y z .Escape de enlace de datos _Controlde &positivo 1 b b l de dispositivo 2 1 Control de dispitivo 3 '~ontrol de dispositivo 4 ~Reconwimiento negativo 7rriactivos i n c m Fin d& blque de hgnsrnisibn ComienzD de texto ~ i ae n texto Fin de h8misconsulta helar P h de medio FF S I m. .I SO . ' N 8 1 - A II ' Q a . El &digo ario eatirrdar para los mractems &ar~um&icos es el ASCiI por sus siglas en inglés (leneriEan Sandsld Codefor Informafion Jnterchnge. . / -3 M ' N O I m n O 1 ' 1 DEL - '. a S .? '1 I . . C M i o Estannr-. ! . Sustttuto 4bpe sep&dor de archivo Separador de grupo . ~idn alfanumérica hacia y desde e1 dispitivo y la computadora. 4 b q r % m! ir=.

Incluye los controles de máquina de escribir común. los son inicio cte texto (start o cuales se utilizan para enmarcar un mensaje de texto cuando se transmite por un medio de comunicación. BS). Los caracteres imprimibles consisten en 26 letras mayúsculas de la A a la Z. los 10 números del O al 9. utilizan para otros símbolos. Se listan de nuevo debajo de la tabla con sus nombres funcionales. El código ASCII contiene 94 caracteres que pueden imprimirse y 34 caracteres que no se imprimen y que se utilizan para diversas funciones de control. pero la mayoría de las computadoras manipula una cantidad de 8 bits como una unidad única llamada byte. los caracteres ACCII se almacenan uno por byte. la letra A se representa en ASCII como 1000001 (columna 100. Algunos ejemplos de caracteres de control f text. STX) y fin de texto (end o f text. dependiendo de la aplicación. separadores de información y caracteres de control de información. FS). Por ejemplo. CR). con mucha frecuencia. ETX). Por ejemplo. RS) y separador de archivo @le separator. algunas impresoras reconocen los caracteres AXII de 8 bits cuando el bit más significativo se desactiva en O. renglón 0001). como retroceso (backspace. Los periféricos conectados a una computadora necesitan enlace de comunicación especial para funcionar como una interface con la unidad de procesamiento central. *. Los 128 caracteres adicionales de 8 bits con el bit m6s significativo activado en 1 se . El propósito del enlace de comunicación es resolver las diferencias . donde b7 es el bit más significativo. tabulación horizontal (horizontal tabulation. y 32 caracteres . El bit extra en ocasiones se utiliza para otros propósitos. Los caracteres de control se utilizan para direccionar datos y formar el texto impreso en un formato preestablecidu. en divisiones como párrafos y páginas. HT)y retorno de carro (cawiage return. Existen tres tipos de caracteres de control: afectadores de formato. puede emplearse el octavo bit para indicar la paridad del carácter del código binarie 11-2 Interface de entrada-salida La interface de entrada-salida proporciona un método para transferir información entre dispositivos de almacenamiento interno y de E/S externas. como el alfabeto griego o una fuente de tipo cursivo. Los caracteres de control de comunicación son útiles durante la transmisión de texto entre terminales remotas.SECCI~N 11-2 Interface de entrada-salida 411 byte dar Norteamericano para Intercambio de Información). especiales como % Los 34 caracteres de control se representan en la tabla ACCII con nombres abreviados. Los separadores de información se utilizan para separar los datos. Cuando se utiliza en la comunicación de datas. y $. Los afectadores de formato son caracteres que controlan la distribución de la impresión. Utiliza siete bits para codificar 128 caracteres como se muestra en la tabla 1 1 1 . 26 letras minúsculas. Por lo tanto. Incluyen caracteres como separador de registro (record separator. Los siete bits del código se representan mediante bl a b7. El ASCII es un código de 7 bits.

. I - . TAXI @-. por l o general. '. porque :&-'comufücantanto con el canal del práesador roxrnarcm kl diqmsit9Vo pBrico.. . '. 1 . .l.0 . ~ ~ i b'..elethdnicos: Rax. ii i Iiah I DimCih Control . -e puede . . + l.lo tantoI8puede querirse una m d 6 n ~ d e . beas S e 2 . ~ b r e w ~ d e s e f & h + -... .-l. Y ' ' '.de E/Si :conha de. Canal de EIS y módulos de interface . J : '. a ..del fmrh-de la :paIabfaleÉila &U y en la inemoria. .cada periférico. --..+! . . f i d t a r & m meranlsmo de sincronizaci6n. ' v de o gentrada-aalida. - -1.( ' ' . . m '. . de $/S a d .. @e mn dispwitivm. i : .. irate* . .-a! l . . Estos comp~¡nwit&~~&:llanian nrlefam. ...r.'. loi s@hnas de'tomputadara incluyen componentes &e dimitería' e$&dea erifre h 'EPU los peri@ricos para supemisaz y ~ & u ~ ~ n t d ha r~ las trdr&cias Tdemtrada y salida. n - .h e a s de datos. Las diferencia5 qua existen principales mn. 4 k Las modús de opación de tos peiWddo&hn diferentes uno de otro y cada ttno~d& estar ^confro~o para i i b 'perturbar La operación de otros p e f i M m éoaktadói a la C m . fii~& li-1 ~'C&h& n . -11 . * L .la computadora central y . j . . Adedm ~e a d a 2 dispsitivo puede tener su propio controlador que aup e h las apaci~nes del rne&iisrno paizimlar en*& piférico.-lL!*. . . es menor que lá vel~ídad de-tramferemia de la CFU y. . W &dip:de daW y 10s hmmtod en las pWirQ. . n' l...L. .-: .I a I .. 3.sun dkpilifok ehtmmecánicas y debromagnéticos ysu manera de 6peraei@i7es dikmt~te a la de la CPU y la memoria. . 4 ! # &e +g.-.. 2 Para resorver estas diferendas. r Q m . . &. en .2 La *iddad de & a d e & x h de datos ¿e los perifdricos.icos son diferentes . . . i * I . ~r Un enlace d e ~ r ~ d c a c i 6 n M t éritre í p h el 'prceesadory varios periférico8 s e <mueípth m la figura 11-1t E i canal. 1 ..

salida de datos y conundo @ ssitroí .en m c i a . El canal de E/S del prwesador se conecta a todas las interfaees del periférico. m posible que La eomputadqra quiera coqvobar el.wntm~dor que opera el djs~ositiviodectmmecanico particular. una. . Para comunicar~e+wn iui.. htrueci6n que . Cada periférico tiene su pmPi~. disposiiko particular. La cinta ma@th uUsa en algumas computadoras~para e l almacenamiento de zespaldos. el procesador mIwa una d h d 6 n da dispositivo en E s .perifkriw y .Se emite w mmndo & . dimxionamiento. . Un controlador puede alojarse en forrna separada o puede integrarse ffsicamente con el periférico.cada psrifQlco :redi< su propia secuencia distin#a. Estos m r e s se representan al activar bib en un +tro de estado que el procesador pueda leer en ciertos inktv&s. -a que.de comandos d. ~ Cuando la interface detecta BU propia direccib. Cada hterfare deoodifíca h ~ ~el mntkol .del. dependiendo de su modo de operación. ~ pueden ~ i a . Un :GBM& de salida I &&S hace que la jntmíace mpmcia transfiriendo &@S dei m a l a uno de sus ~ i s t r o s . Todois los perifdricos c u y a s .-l?ok ejmpio.k i o n e s no corresponden a la direccibn en el canai. Cada .. que ae mg i b e del canai de E/$ y las.TambiBn sincrDniza el flujo de datos y ..periférico.d p e d é r b y el pmtesador.periféricoy prop~rciwia sdíales pata el conhdor del .de& m i o m i e n t o . mmir uno o m68 errores que detecta la Interface. . el ~1~ntro1ad. son inhabilitados por su interface. Cada dispmitivo p&iw tieaie~asociada-urna unidad de interface.utiliza un ~ ~ i c r ~ de d esfado o para p h r divwsas condiciones de *do en la jntmfwe y un pevi~Bco.comand* .Se clasificgn como contml.líneas del canal y e l dispositivo que controla.o~ de irn-ra w hace carpdel movimiento de papel. activa B2L. 1 ( : + .d periférico 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. etado dd p&érico antes:de que se inicie una transfeeenrk D ~ b x t S e : h .= rebobine o para que empiece a moverse: hacia adelanh E l :~omamdo de control particular que se emite d p & .denomina un comando de E/S y es. Se .w ejecuta m i a interface y estb conectada a la unidad periférica. trayectoria entre las . 1~ . ~ 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 .h s& hionarniento. estado.&eas . . eonhi. E l c6digo db W a ' e . Al W m a tiempo que queda &pmible la Ldirefci6n en las h a s de . e 1 para aCtiv+r*.lsupervim la transfewck entre. Por ejmpl~.LaLite&ce ~ h i o n a d a responde al código de función y avanza a ejecutarlo. la-tenm~rizaci6n de l a impresi6n y h seleccib de los caracteres que se imprimen.' 1 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. . Uriea wnectada al canal de WS contiene un decdidkerdor de direecibn que monitorea ias. Una i n t e r f e puede recibir cuatro tipos de. el procesador propordona . La intwpmtacibn del comando depende del perifériio que d i d o n a el prwesador. bterpreta paria e l .un c6digo de funci6n en ias üneas de control. es datos de salirfa entrada de datos.

. En -este casa Ia Interface redbe datos del pedérico y los :coloca en su registro intermido. d a d . u * un canal.wemus E%S mapeada en memoria .El ~xucwadar vedbs i las &tos disponibles mediante un lrorrmaru$ode estados y después envh un m a n d a de entrada de datos.de procesamS~nb central &lW). 1 . Comd . : . a su W t r o intermedio' fbuffer). direeeiorm y Ifnea8 de control de lectura/escritura. la c o r n p u l d ~ Ziene ~ conjuntm de canales de datus. 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- . E l cbthnth de mhdn de &os es lo bpuesto al dk salida de datos. )la interface comunica con e l controlador de la a t a y envfa b. tu10 para accesar la memoria. m m p w d o r de. comdn para hnsferir hfomaci6n entre la m&oria Q rlre EX9 y la rCPU. m r a .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. En la seccibn 11-7 -anahmo8 con m a p r detalle lav h u O n del IOP.para la transferencia de h h r 0 % I. de control y de direcciones indépendientes.. &-'y beas de &iiYtril.A I canal de memoria Memás de+comuniaarse con . 1 T I ' ..HS aisiada. 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 .l3/S separado (ID promsorr IUP) ademds de la . xi Abhas &mputado~. donde el procesador Ios un ammdo de mtroL Desp&. rmsteidn -ea& &positivas externos y 'Ea memoria interna.su espacio de E/S. i P n 2 i .. 1 En el prima mdtodo.:el pmesadoc debe comucon la unidad de+memoria. Esto se hace eili mputadoras' qiie dr&rui. FM&O de un car(al de memoria. d a b que se van a almacenar. el canal de memoria contime datos. 3. U U h r dm canales separadas.diépidvw & enataáa y silida m e d i t e un canal de E/S separado. El IOP se comunica también min 1 . wo para la memoria y el o b para las Ef3. m .del canal. Utiliear un canal común para memorWy E/S con Uneae de control c o m w e s . E l p+ib del IOP es pqomionar una aqector$ inidepndbnte. h~difer&>iaentre una tramfemncia .d canal de E/S. .y e l otñ> para las EfS. & U r un canal común pah memoria y E/C pero tener h e a s de control separadh~ para cada u&. ' e de & n h & . 1 . La inkface coloca dos datos sobre las beas de datos. msus &edsR&. El prowsador de E / & l a a* masionei3 s e denomina a a d de t i & & . _ . ]En seguida. ' . ntetnotia'se comunica con la B U y el NOPl por.

mmpentes externos que la direccibn es para una palabra de memoria y no-para una interface de E/S. Las líneas de control de lectura de m & y E S U ~ ~ U M memurh ' ~ ~ so habilitan 'durmte ' m transferencia a meididria.mina EJS m irt~kce como parte del sistema 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. L a CPU-espei:iicab si la dirección en las lineas N a* r. El mgtodo E/S aislada separa memoria p la6 drrecciones de E/S para que 10s valores de h dirección de memoria no se afecten con la asignación de dirmciones de interface. cuando la CPU recupera una instrucci6n o i d operando de la memoria. '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 . La CPU puede manipular datos de B/S que Siden en'+tras de_interface con la misma instruccih que se iaSiIii para.de d M 6 n n &pafa palabra de memoria wpara un registro de interface al. Bsto permite a la . tiene su propio espacio de . porque cada q. no hay instrucciones especificas de entrada o salida.lec@ra y escritura y no hacen diferencia entre direcciones de memoria y E. coloca la dirección asociada con 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 ewrihíra sízparadgs. Esto informa a I*. coloca la d Í c i 6 n de memoria en las lfneas de direccidn y habilita la línea de ccm-tro1 de iectura de memoria o de escritura de memoria. Esta configuracih se denop & &e n h. direccionamientb. manipular palabras de memoria. se pueden coimar en cualquier direcci6n mientras no existe t i d i & . Por otra parte.un registro de interface y n b para una palabra de memoria. En una organizacih da E/S mapeada en La memoria. en general. D e manera típica.y saW. habilita Ia lfnea de control de lectura de E/S @ara entrada) o de qxritura de E/S (para salida).leetyra o esmituia.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. las líneas de control Mwu y E/S whsm se habiütaii(durailteuna transferada de E/S.instrucción dentro de las Uneas de dirección comunes.)s. Las direcciones asignadas para ntmwria registros de interface no pueden utilizarse para palabras de memoria. la C m tiene ' h h c c i o n e s distintas de entrada . EIS aislada En Ia configuraci6n E/S a&&. y cada iina de estas instmccione s e asocia con la direccidn de un registro de interface. Esto informa a los componentes externos conectad~s al canal comdn que h direcci6n en las i í í s de direcciún es para . Cuando la CPU reciipera y decodifica e1 caigo de operacidn de una instniccidn de entrada-salida.. La computadora trata a un registro de rnpeada & ~a .haMíat una o dos meas posibies de .: - \ . 10 cual ereduce el rango de direccioh de memoria disponible. memoria. Esta corifiguraci6n aisla todas las direcciones de interface de E/S de las direcciones asignadas a memoria y se denomina método de E/S aislada para asignar direcciones en un canal común. se reserva w w t o del e6paaio de diredunamiento total para registroe de interface pero. Al mismo tiempo.

. ' pwmA - . htru+ones de E/S. J n eje(nplo . .. L a wmtaja . . computadora utilizar ias. - Ala CPiJ . Con las E/S mapeadas en memoria todas las instruc. b i d - 'd'e'd I d . E'emplo de interface WS. Canal de datos 4 " - m . . En una computadorii tipicai hay mas instnicciones de referencia a memoria que . puedo d i EIS .deuna i n t e q h c e de B/S se muestre en forma de diagrama de bionuF 9k figura 11-2. . - . . m .q~ismas instmccionm para trsuisfererina ae entrada&la o para transferencia &m-oria.. u ~ dpara a s .registros de E/S. utilizarse para introducir y sacar datos de 1 .es que las instrucciones de q g a y a ~ ~ e n a n ) i e a t o . 1:. . ~ i ~ ui1-2 r i ' Ejernpl6 de unidad &e ln&&& de E/S.que hacen referencia a mem~ria tambidn e s # hdisponibles para E/S. : a . cioqp. . .. . .leer: y escribir en h memoria pueden. .Consta de dos registros de datos Uamados puertos. .

CS) cuando se. un registro de control. el puerto A puede definirse como un puerto de entrada y el puerto B como un puerto de salida.. Por ejemplo. s610 sacará datos.Por lo tanto. i ~ E C ~ I ~ N .-. Los cuatro registros comunican en forma directa con un dispositivo de E/S conectado a la interface. acopladores de canal y circuitos de temporización de control. 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. selecciona la interface mediante el canal de direcciones. el contkol y la información de estado se realizan siempre mediante el canal de datos común. respectivamente. un registro de estado. Estas dos entradas seleccionan uno de los cuatro registros en la . Pueden darse instrucciones a una unidad de cinta magnética para que rebobine la cinta o para que se arranque con un movimiento hacia adelante. El circuito habilita la entrada de selección de integrado (chip select. Al cargar los bits apropiados dentno del registro de control. La diferencia entre datos. Los registros de la interface comunican con la CPU por medio del canal de datos bidireccional. Las dos entradas de selección de registro RS1 y RSO. la transferencia de datos. debe proporcionarse un circuito (por lo general un decodificádor) para detectar la dirección asignada a los registros de la interface. la interface y el dispositivo de E/S conectados a ella pueden colocarse en diversos modos de operación. El canal de direcciones selecciona la unidad de interface por medio de la entrada de selección de integrado y de las dos entradas de selección de registros. Otro bit del registro de estado puede indicar que ha ocurrido un error de paridad durante la transferencia. con un dispositivo de entrada o con un dispositivo que requkre tanto entradas como salidas. un bit de estado puede indicar que el puerto A ha recibido un nuevo conjunto de datos del dispositivo de E/S. sólo introducirá datos. Por ejemplo. ppr lo general. no se necesita el código de función en el canal de B/S. La interface puede operar con un dispositivo de salida. Se pasa un comando a l dispositivo de EJS al enviar una palabra al registro apropiado de la interface. se conectan a las dos líneas menos significativas del canal de direcciones. En un sistema como este. Si la interface está conectadh a una impresora. Las entradas de selección de integrado y de selección de regisaro determinan l n a dirección asignada a la interface.1-Interface 1-2 de entradasalida - --L . la información de estado se recibe del registro de estado y los datos se transfieren hacia b s registros de los puertos A y 8. Una unidad de disco magnético transfiere datos en ambas direcciones pero no al mismo tiempo. La interface se comunica con la CPU mediante el calla1 de datos. Los datos de E/S hacia y desde el diposibivo pueden transhime al puerto A o al puerto B. por lo que la interface puede utilizar líneas bidireccionales. porque el comando se envía al registro de control. El registro de control recibe información de control de la CPU. Lectura de E/S y escritura de EkS son dos líneas de control que especifican una entrada o salida. y si da servicio a un lector de caracteres. En forma externa. control o información de estado se determina del registro particdar de la interface con el que se comunica la CPU.

l. pulso & kbilitacidn' Una manera de copepir esto es mediante un pulw de habilitación ( e s b W i E a ) proporcionado . Este tipo de acuqdo entre dos unidades independimks se conoce como r e m m ' m h t o rnwbo httdshsk.418 apfmm m c 6 O r g m i z d b de entrada-salida interface. pulso de relaje1designan dos unidades. cwtenido del regist~o.las dos unidsh es sincrona. entre las unidades que se camunicgn para W c a r eJ momento en el cual se estan transmitiendo datos. L o ~ s p u h de 1reloj se apkm a todos lca registros dentro de una unidad y todas las transferePiáas de datos entre +trog in-os en forma s h d á n e a durante el han+ -'de un.. La CPU transfiere infmmaci6n tiinaria al =gis& seleccionado m d h k el cana1 de datos cuando la habsta la entrada E/S &!ma.lade M a r a de. secuencia de control durante una transkmcia as-na depende de si la transferencia la inicia la &dad unidad destino. b. La ttamfereneia de dabs asínc~gna enbe dos unidades independientes requiere que se transmitan &lales de control. Ei método de pulso.que se transfiere con una #Mde control que M i c a Ip pnpmcia de &tos en el canal.un sistema digital se hcmnkin mediante pulsos de reloj pr(?~grcionados. y la unidad que recibe cQmo el destino. D e hecho. Bn general consideramw h unidad . Tmkxencia asbcrona de datos Las. por ejemplo la CPU y h i n k k de EjS..en l a tabla que acompaña al diagrama. M utwan ampliamente em n u m m orasiones que q u i e m la transferencia de datos entre dos unidades independientes.ng). que en ese caso utiliza su pmpi~ m i 9 para sus registros intemm. La unidad que recibe e l conjunto de datos m p n d e con otra &al de control para reconocer la -6n de l e datos. de la otra Este enfque s e utiliza con mucha bemenda en l a mayoria de l m s i s m de eo~putadora.. En la mayoria de los casos.se Iimitan a las transfemcias de E/S. El.. se dice que las dos unidasqn ashcmms una. k r ejemplo.= dice que la tr+ & &re .cuando se bahilih . S i los registros de la bjterface c o m p r h un reloj coma q n los . la tmpo~eibn i n m 4 enJc3idairnidad ind-ente de l a otra. la CPU es la unidad fuente durante una bderenciqdesalidao dee9PZhnayeslaunidadd&im duranteuna tmmk rieneia de entrada o de lwturq. En ese caso. se@p se e s p d c a .EiS.por ~ ~ ~ -ún. wlecckonado se traxlsfkre a la CPU mediante el canal de datos . 11-3. ~ < .estrobosc6picoy 4 metudo de reconocimiento de transferencia de datos asineron~s no.registras de la CPU. p r medio de una de-las unidades para indicar a la otra unidad &da tiene que ocurrir la trandamcia. Otro m W o muy gene-do es ac~mpafíar cada conjunto de datos . indwdientes una de la otrsi. opaciones i p m s en. Se acostumbra ~ p e d i c a r la transferencia yíncrona m t dos ~ unidel4e~independientes mediante un diapama de temp~rhd6nque m u ~ t r a la rela~i6nde temporhacián que debe existir entre las +les: de qntroj y &s d a s (en lm canales.que transmite como Is fuente.

. i ~ f r . En este caso. . uifotmando a : la fuente que proporcione los datos. t internos. La unidad h t e o la. 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-. figura 1 1 4 Pulso de habiltadón iniciadopo* fuente &a traqskmicia de datos. El canal de dam lleva la información binaria de la unidad fuente a la unidad destino. Como 8e muestra en e l diagrama de temporizacibn de la figura 1 1 3 @ ) . h h e r r t e activa el pulso de habilitaci6n.Control de habfitacihn E l método de control de habilitación (estroboscópico) de transferencia 'asincrona de datos emplea una línea de control única para temprizar cada transferencia. la unidad destino activa d pulso de habilitación. . Con frecuencia la unidad destino utiliza un flanco descendente del p u b de ih h'mb habilitación para transmitir el contenida del canal de datos a sus regiairos JR . E l estrobosmpio es una h e a hita que informa a la unidad destino cuándo está disponible en e l canal una ppiabra de datos vAlida. D e manera tlpica. L a figura 11-3(a) muestra una transferencia iniciada por la fuente. primero la unidad fuente coloca los datos en el canal de daDespubs de mun 'b'teve retraso. La figura 114 nuestra una tcansfetkmcia de datos iniciada 'por la unidad destino. Habrá disponibles nuevos datos vdlidos a610 degpu6 de que se vuelva a habilitar el pulso de control de habiiitacih.. L a infomci6n en el canal de datm y la sehl de habilitación se quedan en estado activo durante un &di ki . el W o de que la seiial de habilitacidn esté ddab'itada indica que el canal de datos no contiene datos vbtliclos. tiempo suficiente para permitir que la unidad destino z e c h los datos. para asegurar qui los datos se e s t a b b en un valor regular. ~ . el canal tiene heas miiltiples para transferir un b p o palabra completos. unidad destino pueden activar el pulso de habilitacibn. La unidad fuente i r F .

Por &-m&jmPlo. la CPU.tiempo muchas computadoras. coloca una piabra en el canal y le informa a a unidad de memoria.. bansíemcia de datos. La fuente quita los datos del canal espu& de un intervalo de . D e igual manera. datos deben ser vAlid08 y permanecer ea el canal e l tiempo suficiente que k unidad destino ios acepte. iniciá h operacibn de lectura para informar a !liga memoria. m 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 .De igual manera. d montrol de escritura de memoria de la CPU a una unidad de memoria. E l destino.. i i i d & iniciado m datino . . la cual es el destino.e l pulso de habilibci6n de la f e a 113 debe ~ e una r s e M de . 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..c6mo transferir datos. k transferencia de datos entre F a inrrface y un d+positivo @e E/S es controlada por un conjun&. que ésta es una operacidn de a w i t u r a .- !1 canal de datos. La CPU está siempre a cargo de os canales e i h m a a las unidadeslexkmas.ara . Puede utiiiime otra vez e l flanco kendente del pulso de LabilitaciGn para activar un registro destino. d 1 *S a bu& . - B. el pulso de habilitacid controla en realihd medbntebpulsos-de reldj en b CPU. una unidad .desventaja de que tramfemcia tiene destino realidad los datos que col& en el canal.h i u b .-L. en este caso la CPU. Por l o general. la m4 es la canal de da& La tramferemía de = S i r a la que se acaba de describir. de líneas de recanocimiento mutuo. h &%ente. Desl i a unidad destino habilita el pulso. + .

midade&la rwuencia de eventos listada en la parte (c) muestra los cuatro estados posibles que puede tener e1 sistema en cualquier momento. Ik liec* !a única dif&cia en& la h&cia iniciada por la fuente y ia iriiciada par d dbtiiió. para aceptar nuevos datos al dehabilitar su se-1 de datos acqofados.es el siguiente. @b9 'Ia el-6n de su estado inicial. La fipra 11-5 muestra el pmcedhiento de transferencia de datos cuandolo'inicia la fuente. WoWa m e s de. generada por la unidad estino. N 6 t e que la secuencia de eventqs m ambos casos sería iddntica si ' brlsli&erd&05%~&ial &e &m& p*h1dnt9d como el komplemento de datos dmpfdbs.este problema al introducir una segunda seiIal de control prop~ona una respuesta a la unidad que inicia la conlml de dos líneai 131 principio bbtm del d b p d o de recondmhto mutuo de dos líneas de transferencia de da. la cual invalida las datos en e l canal.Este esguerq pemite re€f%s& arbitrarios de un estado al siguiente y que cada unidad pes@sida apu propia vekidad de transferencia de datos. 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 . 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. la unidad fuente deshabiiita su seiial de datos vblidos.la transferencia no puede saber si la unidad fuente ha colocado . La unidad destino activa la señal de dalos aceptados des@& de que acepta los datos del canal. ia unidad fuente no envh lw datos siguientes hasta decpués que la unidad destino muestra su disponibilidad.~msferench' de &tos. La v e i ~ d a d a e transferencia está determinada por la unidad d s lenta.S i m a unidad & delectuo&. i aparticipacidn dctiva de ambas unidad. &E dos h a s de recanocimiento mutuo son &tos mílidos. La trhsferencia que utiliza lfneas dq reconocimiento mutuo iniciada por la unidad destino mudm en la figura 114. E l error puede detectarse' m d h k un m&&is& de ~hPO fmmmwido. + ---4 . que produce una desha que inicie ~~. En seguida. control está en la diceeeihn opuesta. La uriidad fuente inicia la transferencia al colocar los datos en el canal y habilitar su mial de datos válidos. . La utiliza la unidad d & h o para irífoqar la fuenSes i puede aceptar datos. En este caso. ue p e r a l a unidad fuente y. La secuencia de control durante la transferencia depende de la unidad que inicia la transferencia.. . De ahi ert adelante.pueIv.el procedimiento de recow cimiento mutuo sigue el mismo patrdn que en el caso iniciado por la unidad fuente. de la fuente al destino. El mgtodo de reconocimiento mutu~~handshake). 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. Una h e a de control estA en la misma dired6n que el flujo de datos en e l m a l . mmP1etafr&'ia .& h k los datos en el canal. La utiliza la unidad fuente para informar a la unidad destino si hay datos viilidos en d canal.+EI diagrama de twipocizaci6n muestra el+intercambiode señales entre l a d o s . no &. después Ia wiidad destino deshabilita su señal de datos a c q ~ o y s el sistqa a su estado inicial. &tos ncqtados.

id 1 .la> e 1 b-. 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..i I : ¡ 4. i . 1 .SIa! m 'm F i . La &tal de tiempo transcurrido puede utilizarse para interrumpir e l . . . iiii fiI > L . I ~ .l . t#n.t.. ~ i j + .~tn-~ t . Si la seiIal de recormhiento mutuo que proviene del &kho no =ponde dentro de un cierto tiempo. r 1 - 1 ui3di j l .fl: .?#Av ~ p il 4 t . I . m ' )LEC &. i :i l .r td.i f8. para ejecutar una rutina de que realice una acción de recypación de econveriente. : .-h la 9 --.. .. r ~ 3 " 8 . f .Jy. -* tdl' T . l ~ b p ~ ! f i ihi~¡q:.d.7!h Tcnsk&a iniaadapc kmkuüiizando remnocimiento muhm.+iigib IL. ~ ~ .f~m< .*=a r r m d l Ir r r . wk . j 3 ~ 2 : . Lrn . -. .t u ~ . ~:J v fi-attc .*.j a l b m . b r 1 . por lo tants. p v d o ry.. . 5 A -. * ++- : i w tdc i.* ' A " " 6..r . - t s a n s b c b de d a b p no se qompleta dentro de un tiempo paedebmhdo. l a unidad ednsidera que ha mrrido un error.-~ l L b 1 4 t q .::. I j ~ t ~ r & ~ ~ 3 I . .h:r.:IA. *S: v..Ir.:. .h. ( l t .i - -' .:-a. .. ..1! : L ) R !&ll4:it? ~ L. .1 ~dofi't:.~:ir-p ~ .a iri 9 1 1 ~ t .rAA -!. c .i 7 Figura 1 1 5 u:. ! 1- . batosaceptadm & r k + q r .+. .~:)! ~ r d !d. t >¿ . 1 t .- L ! L.- '.. . t + .l.L ---.. t t . (a)Dlrgnmakbloqm~!iy . ' . ~. . .lq$~ II 16.:r-. n r i .1 i -iii. . 4 . I L / T ~ ~ I ~ : i a GP .

5) diagrsma de tem- d 1 1 x136irw Unldaad& .se envla en secuencia uno a la vez. c) ~eaienci de eventm Deehabilitat&m d i & . Acepku datm de c w l . Este método requiere el uso de un par de conductores o un conductor y una .m I iRrR tu Unldad fuente CbhrdabaCwaL Hab&lar&hdl&3. Esto' d@&i qué uii mensaje de n bií5 debe transmitirse a travk de n trayectorias conductoras separadas. . Canal de data . .. -29 . ' L . Figura 114 TrmimrKh iniciada pS* destino u t i M o m z o n d e n i o mutuo.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.a 4 T l Y :IFrTd!I i -a ' r b g IiP A 4 . La m h c i a de datos entre &S unidades puede hacerse en fomia paraJela o serial: En la transmisidn de datos paralela. Transferencia seriJ asinaona . DeshaWütar Livdhr'datw m osrnd ( 6 Wl). 3 Wgmm de bloque I I . cada bit en el mensaje tiene ¡$u prkpia trayectoria y todo el merwaje se transmite al mismo tiííp'o. qdl . En la transferencia de datos serial cada bit en el mensaje.- I U Canal de da' . 3 1 .

e a ~ d ~ c t p r e ~ ' La tramdsi6rr serial puede ser shcrona o asíncrona. Esto contrasta con la informacibn sh~zon&. En f o m peri6dica se transmiten &he de sina-ci6n entre las dos unidades para mantener sus doies en sincronía uno cortc~l m. es siempre O y se utiliza y r a ipdim. l.analiza más adelante en la secci6n 11-8. . en la cual \os bits deben transmitirse en forma continua para conservar suicronizada la frecuencia de reloj en ambas unidades.d comienzo de un carácter.asinnvma - bit de inicio .2ue se transmite e l Bltimo bit de cardcter. .En h ttansmisibn ashcrona. 4. En Ia transmisidn serial de larga distancia. la misma frecuencia. S :siempre 1 . sblo se envia infinfqmnrrnci. bit de cuando la línea retorna al estado 1. por al menos un tiempo eorrespnndknte a un bit. E l primer bit. La tran8misibn serial e a d s l ~ t pero a es menos cara porque * s61o req& u n pt?r de . Lbs-bib de c a x a c k siempre van después del bit de inicio. Tamaiih se ü h i i para distancias cortas y mando la velocidad a imprtante.. La trans' misi6n serial shcrsna ?. l o s bits del carActer y los bits de paro.b b&ia cuando está disponible y la lima estd desocupada cuan do. tierra comi5n. cada carácter consta de tres partes: un bit de inicio. La iniciaci6n de una trammisián de&ar&cter se detecta a partir del bit de i n i c i a 4 cual es siempre 0. ..^ hay inhmci6n por transmitir.Con esta técnica. Un cadcter kansmitido pude-qektatlo el reeptar a partir del con* cimiento de las reglas de trapismisi6n: -. Despu& de.Ir . utilizada en niuchas terminales interaZvVas -&pIfea bits especiales que se insertan en ambos extremas del c6digq de_carAckr. liarnado el bit de inicio. la línea se mantiene en el '&a& 1. 2. La convención es que el transmisor está en el estado 1 cuando no s e transmiten caracteres. La transmisibn paralela es más rapida pero requiere muchas heas. 3.Cuando nodse =ti enviando un carkter. En la 11-7se mu-a un * l o de este formato. se detecta un . . En la transmisidn sinmona. Una témiea seria4 de transmisihn asíncrona de datos. 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. E l ú l h o bit. Uamado e l bit de paro. cada unidad es manejada por un reloj -aradade.

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. Al final del catacter. Un reloj en el receptor examina la línea en los tiempos de bit dnwnientes. ~igunas terminal. La k e a permanece en el estado 1 hasta que se transmite otro carácter. La interface se inMallzia 'para .tiempo para un bit ea 9. Para imprimir un carácter en la impresora. Después de que se trmsmiten los bita de' caracteres. Cada caracter transmitido coqsta de un bit de inicio.Al usar estas reglas. consideremos la transmisión aerial de una terminal cuya velocidad de transfekcb es de 10 caracteres . i3l & m p de paro awgura que no Ilegarb un carActer nuwo durante uno o das 1 i e . 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. Cada vez que se una teclaAuna terminal mvía 11 b i t a en forma serial a lo largo de una línea. el receptor puede detectar el bit de inicio mando la Enea pasa de 1 a O.. Dcho bits de informaci6r1.mmodo de tfanshmW partidar mediante un byte de +eonholytese carga dentro de sir reghtro. El tiempo que la linea permanece en este estado depende de l a canti¿ad de tiempo requerida por el equipo para volve& a sincronizar.enmn un6 o dbs bits de paro.par segundo.1s para la transferencia. 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 . m ~ de ~bit. 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. d e k recibirse un mensaje de 11 Mts a través de otra línea. La interface de Ia terminal consta de un trzmmbr y un receptor. pero las temínales más nuevas utilizan s ó l o un bit. El transmisor acepta un caracter de 8 bits de la computadora y p d e a enviar un mensaje serial de 11 bits a través de la lInea de la im~resora. El receptor conoce la velocidad de transferencia de los bits y la cantidad de bits de carackm que debe aceptar.demtmL E l +tro transmisor h t e d a w d+e comunfmci6n asfkmna . Como se van a transmitir 11 velocidad en b d i o s bibt se s a k que el . la h e a ae conserva en el estado 1 por un período de al menw uno o dos tiempo8 correspondientes a un bit.y dos bits de paro. J asinc~ma seunirihue% tra 'enl a figura 11-8.para total de 11 bits. se. Como ejemplo. 10 caracteres por segundo significan que cada carActer n w i & 0. 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.elechmnecAnicas antiguas utxlizan dos bits de paro. E l diagrama 'de bloque de miaintedacé de &nunicación El . Funciona-*emo transmisor y v t o r .09 m s . para que el transmiso~ ye l ~ q t o puedan r volverse a sincronizar.

1 o 1. acqta. R@m* I d .ainpa~Uta. se transfiere al registro receptor..w - .. . (Slegie-de-0 *. L a parte i dmtM $e ~ t r @&o o de corrimhto y.sei.wurrir dwmb la tmwnhih.dehtegrhdg y . . . &te byte & comiden~ pam trammisibn serial.&qLwntrol d-esa:kifjn. .b ~ .de lectura y d t w a reoeptora recibe infomci6n . F 4 sbeas. m mm1 I -9 . 'I ... c i ~ .. Terhp- control Le-de B/S . 1 '- Registrode a Recibir da- ~ * 1 ~ ' ' 1 '.anelsogistm~e~~doseutilVan . . de broqte d e h a i n l u h a b p i i de ~~n - islnamu. . ~ s & m W g ~ y p ~ r . @ kamk un: m@m de de&w.. X@rd'tl-& r.de h CPU a bvds del anal de datos. .&imd*regEBCro = ' RS .&Jm4i. e m r e a ' p p .La CPU puede deecimar que el registro recepbr lea el byte a trav~del~ana~d~lo. cuanda se a-ula un byte de datos completo. RD' .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 algún . a &ha w. buitwqdeI¿/S - .

registro de estade La CPU puede leer el registro de estado en cualquier momento para comprobar s i han ocurrido erro=.comhimto al registro de mceplci6n. La CPU puede transferir otro carácter al registro transmisor. l o s bits de &&r que entran se colocan en el de corririoiento en donde se reconen a la velcieidad de baudio . La U ? U a lee eL registro. establecida. La opracibn. cuántos bita hay en cda~sadder/ la. La interface ver$. 1 La opera& de -h -parte mqptora de h interface es similar. del regis@ de . en paralelo. ta operación de la parte :de transmisor de la inkrfaee B la siguiente. 'f.. la CPW transfiere un carácter al registro transmisor.decisión de generar una comprabacih de.registrg de estado y comprueba la bander? y. Después*de i & i r los bits.res emm p o s % ! . lee los datus d4 registro mxptor. Una vez que re ha detwtado un bit de-&ici~. despuds de comprobar la bandera en el -m@tro de estado. se lista en la tabla que acompaña al diagrama. 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. 4 . Un bit ae utiliza para indicar 8i 4 registro &ansmisor está vado y otro se emplea para indicar 1 el registro wceptor mta Ileno.de &tos. s i pt+ activa. como la velwidad en baudios que se va a utiiizar.de mgistro (ES) s e asocia con los contrales de lectura (RD) ydtura Ros.y la interface desactiva la bandera para marcar h o e l qbtro.. El confml receptor monitorea la línea 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 . Elbcarácter 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 vacío .dealto. b CPY lee. según .La agrada de decd6n de inkgrado (CS) Be u t i l i z a para sehionar la interface a -v€s del canal de direcciones. la paridad y eithtos bits de alto se -den a cada car$&'r:: Das bits en d r&strobde mtadq re usan como banderas. ta entrada de m h n de &#os estA en el atado 1 cuando la h e a está inactiva. . xegistrw son & l o de escritura y dos son d i o de lectura. S i está vado.=CPtOf coiriunican con la CPU. cualquiera emm posibles durante la transmisibn " activa bita apropiados en el . el .que cornpnieba iq inke$a@ durante la transmi- m). El primeic hit en el registro de corrimienh de1 transmisor se activa m O para generar un bit de inicio. ~ t vado á reeisho tmmimr.puede ka~~mitiise el mdcter un bit a la vez . El registro seletcionado es una porción del vahr RS g de 1 w estados RD y WR. En seguida. &ra. La sekabn . Se dice que l a interface es de registm dbble porquepuede cargarse un nuevo carkkr tan pronto comed anterior comienza la transmisi6n. ' la interface comprueba la paridad y los Pi+g. de estado y comprueba la bandera para obsemar si . se t m h m el cardcter.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 operación wpecífico porque define ciertos parhmetros.el registro Qammimr. al colmar b d a t o s en el mgistro de codmiento a la velocidad de baudios ' mpecificada.

L< manera que el primer dato que entra es el primero que sale. 8 1 ' + *. I . t .428 l.:m. n S O . Un error de paridad ocurre si la cantidad de dígitos 1 en los datos 1 'recibidos no corresponde a la paridad correcta. uno para cada registro. Por lo tanto. a n ... La característica importante -. . Los errares de e&anearnimto dan c6m6 Multado una p4fdida .~.. l Un buffer primero en entrar. el FIFO .! f l ~ R(1 + 1) acepte los datos del registro RI. I . indica que :n una palabra de datos de 4 bits está almacenada en el registro RI correspon. . . 1 r .. Ivelocidad lenta y después vaciarse a una velocidad más rápida. sión son el error de paridad. . 8 .. . primero en salir Prst-in. . 1 1 . 1 11 1. =+ Un flip-flop Fi en el registro de control que está activo en 1. un buffer lb r FiFO puede ser útil en algunas aplicaciones cuando se transfieren datos en I . de este buffer es que puede introducir y sacar datos a dos velocidades . . 4. rjri I. .. 8 ... * J . cantidad de bits por palabra al elevar la cantidad de bits en cada registro y .! diferentes y que los datos de salida están siempre en el mismo orden en el . mientras existan posiciones i ..(.l " Fhl se reactiva ($i+l= 1).4 . -17 ~ ~ ' l ~ ~ j í ~ ~ S - L :l.4 y un registro . Esto provoca que la bandera de control se 2 ' r. es más rápida que el destino. ' * 1--1 r~ 8 . 4l.' . 8 .: frJ diente.lrl. e 9 7 d . t S > i no se detecta el número correcto de bits de alto al final del carácter rsecibido. . F.-I'c 1. " . ' L . 3rd-out.-# . . I r J l . FIFO) es una unidad de memoria d e localidades adyacentes que almacena información de -. t.> . Un O en Fi indica que el registro correspondiente no contiene datos 1 . lb . Y . 3. 6 ) ~ . 1. Cuando se coloca entre dos unidades.'. d 1 m 8' A S 7 S J ~ I. 2. .. se genera un pulso de reloj que hace que el registro A ' r J. -! # S I .. . II~. I .I forma asíncrona. i = 1. corrimiento. válidos.< 1 1 . . Cada vez que el bit Fi del registro de control está activado (Fi = 1) y el bit . hacia la salida. . -h. r -. La misma transición de reloj activa '.. Un búffer FIFO tiene terminales de entrada y salida separadas. el búffer puede llenarse con datos a una . 7.' 7 más lenta que la unidad destino. Un error de superposición ocurre si la CPU no lee el carácter del . . ' puede aumentarse la cantidad de palabras al elevar la cantidad de registros. destino vacie alguna o toda la información del buffer. .-...~ mueva una posición a la derecha junto con los datos. 2. . .. Si la unidad fuente es .de caracteres en el flujo de datos recibido. { . Los datos en el registro I t r c n ~ ii / J. El registro de control dirige el movimiento de datos por los registros.:.- . 1 : .. . 1 Fi+l en 1 y desactiva Fi en O. + = j S L i y .. .. M . J T . CA-O o= Organización de entrada-salida .cual se introdujeron al buffer. : Bufhprimero en entrar.. i registro receptor antes de que el siguiente quede disponible en el registro de .t. 3. .~II . I . . s i a .C~ puede almacenar cuatro palabras de cuatro b i t s cada una. de control con flip-flops Fi. el error de configuración y el error de superposición. .*p: . Consta de cuatro registros de 4 bits RI. m llf. I = 1. 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. primero en salh ' 8 .. . el FiFO es útil para aquellos casos en donde :. a * . 3 j' l. El buffer FIFO apila los datos conforme llegan y los entrega en el mismo orden cuando se necesitan. . 3 .. 1-~.. J . 4 .. -rnr .a ' nin los datos fuente arriban en grandes cantidades que llenan el buffer.ir . I I * e ' ' f 11. - P I N . . pero que i ! r: el tiempo entre esos arribos es suficientemente largo para que la unidad .. Un error de posición ocurre . > ' ' v : El diagrama lógico de un buffer FIFO típico 4 X 4 se muestra en la r ~ q . 1 . El FIFO .. se mueven hacia abajo del FiFO. Puede aumentarse la rI . I G figura 11-9. . . Si la fuente .!I .

I 4. . I ( L. . '. 1 . d J m '8- R 1 Fí m Borrar 4 Entrada preparada -11- '' '' I . i r A -LB .(' . - - R1 7 11 1 11.: C !Iseñal entrada preparada. ' F . I1. . . .. T J . * t Registro de 4 bits .. A Reloj 1 4 A Reioj 1 : 11 4 1 I 1 i + L A-' 8 . L 7 < .. inicializar todos los flip-flops del registro de control en 'O. Se utiliza un borrado general maestro para . Esta operación 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. 1 s . '. ' . . . . . ... .: vacías adelante de él..I ' I Entrada de datas . > m ! . L R2 J . F1-- - .I c l t.. 8 . 4 # ~ ~ 8 . . l 7' I - 'I A ' ! L .#T . C Registro de4Mw i ' Registro d e 4 bits -de Salida datos ! l v 7 4 Ir w 0 A 1 Reloj . 1 . Se cargan los datos de las líneas . F1. 'i' < # : I r & . Esto ocurre cuando se desactiva el primer flip-flop . t. S : . I . - ií . . 2 -S . Borrado maestro Figura 11-9 Diagrama de circuito de buffer FIFO 4 X - ' S I . ~3 R4 C + c - Registro de 4 bits .indicando que e1 registro RI está vacío. ' I Insertar h P I - I...f..i) A 1 0 1 0 Reloj 1 . Se insertan datos dentro del buffer siempre y cuando esté habilitada la . .

Algunos modos utilizan la CPU como una trayectoria intermedia. Esto habilita la línea entrada p r p r a d a . lo cual deshabilita el control mhda preparada. Nótese que las dos lineas de control entrada preparada e insertar constituyen un par de heas de reconocimiento mutuo initiadas por el destino. . La transferencia de datos entre la computadora central y los dispositivos de E/S puede manejarse en diversos modos.haciendo que se deshabiiite la salida preparpda. La linea de control siida preparada est6 habilitada cuando se activa el último flip-flop de control F4. Cada transferencia de datos se inicia mediante una instmcci6n en el progzama. indicando que hay datos válidos en el registro de salida R4. 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. i a infomacibn transferida de la computadora central a un dispositivo externo se origina en unidad &-memoria. lo que indica que e1 FIPO est& ahora ocupado y no puede acepta? mAs datos. Sólo después de que la sefial borrar regresa a O pueden moverse l o s datos de R3 dentro de R4. pero la fuente o destino final es la unidad de memoria. N6tese que las dos Imeas de control salida prqarada y borrar constituyen un par de líneas de reconwimiento mutuo iniciadas por la fuente. lo cual indica que los datas en la salida ya rio son vAlidos. Por lo general. la transferencia es M i y desde un registro de CPU o aerMco. E/S programada 2. Se necesitan otras instrucciones para transferir los datos hacia y desde la CPU y la memoria. Si el FIFO está vacfo. E/S iniciada por intempción 3. no habrdi datos en R3 y F4 permanecerá en estado inactivo. otros transfieren los datos directamen& a y de la unidad de memoria. rl H - Y 11-4 Modas. El procesa de avancB comienza siempre y cuando eR2 estg vado. Esta desactiva Fq. y esa misma unidad deshabilita la señal de control borrar. S Ee i m esta lleno. indicanda que las entradas esfdn ahora disponibles para otra parabra de datos. Los datos en RI se transfieren dentro de R2 y se desactiva F1. l. La CYU s61o ejecuta las ihstrucciones E/S y puede aceptar los datos en forma temporal. ta unidad destino acepta los datos de salida de R4. permanece activa y la linea entrada preparada permanece en el estado O.930 W ONCE Chgarhcibn de entrada-salida de entrada al habilitar el reloj en R1 mediante la línea de control insertar. El mismo reloj activa F. La transferencia de datos de y a perifkrims puede manejarse en uno de tres modos posibles.de transferencia La irúormacibn binaria recibida de un dispositivo externo por lo general se Almacena en la memoria para su pmesa&ento posterior. h datos recorren la pila de registros hasta d extremo de salida.

Puede evitarse al usar una opeidn de interrupción y comandos espdales para informar a la interface que emita una reíial de solicitud de interrupcibn mando están disponibles los datos del dispodtivo.Transferir datos bajo e l control del programa requiere que la CPU &ice un monitorea constante de periféricos. la CPU permanece en un ciclo de programa hasta que la unidad de E/S indica que está preparada para transferencia de datos. la interface sigue monitoreando dispositivos. Una vez que se inicia una transferencia de datos. 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. 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. Cuando la interface determina que el dispositivo está preparado para transferencia de datos. las transferencias a memoria de E/S no son frecuentes en cornparacibn con el acceso a memoria del pmcesador. observar en detaIIe todo b que acontece (enla unidad de interface y en el dispositivo de E/S. Ejemplo de EíS programada En el mdtodo de E/S programada. lkpende de las instrucciones programadas y ejecutadas en la CPU. Cuando se detecta la señal de interrupcibn externa. E l WP puede manejar muchos periféricos a travds de un DMA y la opci6n de interrupción. Cuando e l controlador de memoria concede la solicitud. La CPU d o retrasa su operacibn de a c e a memoria para permitir la transferencia directa de E/S a memoria. es necesario que la CFU monitoree la interface para ver cuándo puede volveme a ha= una transferencia. Como la velocidad de los perifgricos por lo general es menor que la velocidad del procesador. la CPU detiene un momento la tarea que está procesando. Este es un proceso que consume bastante tiempo porque mantiene ocupado el pmcesadox en forma hmxsaria. la computadora se divide en tres módulos separados: la unidad de memaria. ~ Q S procesadores E/S se presentan en 1a sección 11-7. Una transferencia de un dispositivo de E/S a memoria . En e l acceso directo a memoria. (DMA). En ese lapso. Cuando se hace la transferencia. Mientras tanto. genera una solicitud de interrupción a la computadora. l a transferencia DMA se analiza con mayor detalle en la sección 11-6. 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. el DMA solicita ciclos de memoria mediante el canal de me moria. iti t e m p d d n IOP En el mbtodo de E f S programada. ta transferencia de datos bajo E/S programada es entre la CPU y un periMrico. Con tal sistema. la CPU y el IOP. la CPU puede avanzar a ejecutar owo programa. el DMA transfiere los datos directamente a la memoria. el dispositiva de E/S no tiene acceso directo a la memoria.

ihpués. e l siguhtcs byte de datos. Un diagrama de f l u j o del programa que debe escribirse para la CPU. la Cmr o la interface de8activan e l bit de bandera a O . Eeuihua de 3/SL r Datm aceptados * F = Bit &-huiera Figura 11-10 Transferencia de datos de dispositivo E/S a CPU. Esto se apega al procedimiento de reconocimiento mutuo establecido en la figura 113.432 cAPfnno ONCE oqankaci6n de entrada-sdida requiere que la CPU ejecute varias instrucciones. el dispositivo l o colma en e l canal de E/S y habilita su línea de datos V A M O S . E s t á -rito un programa para la computadora con el fin de comprobar la bandera en el registro de estado. dependiendo de c6mo están disefiados los circuitos de l a interface. Pueden necesitarse otras instrucciones para verificar que están disponibles los datos del dispositivo y para contar b cantidad de palabras transferidas. Si Ia bandera es igual a 1. E l dispositivo transfiere bytes de datos uno a la vez. 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. La interface adiva un bit en el registro de estado que denominaremos bit de "bandera"o bit F. se muestra en la figura 11-11. 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. Una vez que se desactiva La batuda. Esto se hace al leer el registro de estado dentro del registro de Ia CPU y comprobar e1 valor del bit de bandera. pero no transferiri otro byte hasta que la interface deshabilite la línea de datos aceptados. conforme están disponibles. Se considera que el dispositivo estii enviando . L a interface acepta el byte en su registro de datos y habilita l a límea de datos aceptados. l a interface d~habilital a linea de datm acepta& y el dispositivo puede transferh. Cuando esti4 disponible un byte de datos. Ahora el dispositivo puede deshabilitar la línea de datos vblidos. la CPU lee los datos del registro de dabe. entones. para determinar si se ha colocado un byte en el registro de datos mediante el dispositivo de E/S.

3. Leer el registro de estado. . una secuencia de bytes que debe abcenarse en la memoria.-6~ 11-4 Modos de bansferem5a 433 Ir r ZRer registro de datos l f Comprobar bit de bandera 1r =0 =1 11 Leer registro de estado 11 Transferir datos a memoria 11 no s i 11 Figura 11-11 Diagrama de flujo para programa de CPU para inkwlucir datos. Leer el registro de datos. La transferencia de cada byte requiere de tres instrucciones: 1 . 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á.

En principio. EIS iniciada por intenrupcibn Una alternativa para que la CPU no tenga que monitorear en forma constante la bandera. es permitic que la interface informe a la computadora cuando esté lisb para transferir datos. Para apreciar por qu4 es ineficiente. La diferencia en la velocidad de transferencia de informacih entre la CPU y el dispositivo de E/S hace ineficiente este tipo de transferencia. En otras computadaras el vector de interrupción es una direcci6n que . Una tarea c o m h de proaama. la fuente que interrumpe proporciona la información de l a transferencia a la computadora. Después que termina la transferencia. Mientras la CPU estd corriendo un programa común no comprueba la bandera.434 CAPmmmcs Organizacr6n de entrada-salida . la computadora retoma al programa previo para continuar lo que estaba haciendo antes de la interrupción. Esto significa que la CPU comprobará la bandera 10. Este modo de transferencia utiliza la opcibn de interrupcibn. La CPU se desvía de l o que esta haciendo para atender la transferencia de entrada o salida. Cada byte se lee en el registro de la C P U y despuh se transfiere a la memoria con una instnrccibn de almacenar. la direcci6n de transferencia de control del programa e asigna a una posici6n física en la memoria. En algunas computadoras el vector de intemipcibn ES la primera dirección de la rutina de servicio de E/S. . Esto es equivalente a un byte cada 10000 micro-sepndos. La CPU está gastando tiempo mientras comprueba la bandera en lugar de hacer alguna otra tarea de procesamiento Ú t i I .E/S programada es particularmente útil en computadoras pequeñas de baja velocidad o en sistemas que &Sin dedicados a monitorear un dispositivo en forma continua. existen dos m4todos para lograr esto. Un programa que almacena caracteres de entrada en el búff~rque utiliza las instnicci&es definidas en el capitulo 6 se lisfa en Ia tabla G21. se interrumpe momentáneamente el avance de la computadora con el programa actual y se informa que se ha activado i a bandera. 131 m4tcdo de. Uno se llama i n t m p ' d n con M o r y el oim i n t m p d n sin wctor. En una intermpci6n sin vector. Consideremos que el dispositivo de entrada transfiere sus datos a una velocidad promedio de 100 bytes por segundo. l b una intempcibn con vector.E/S y ~ a l m a c e n w f a en s un buffer de memoria.000 veces entre cada transferencia. Esta informaci6n se llama el vecfor de intm~pci6n. consideremos una computadora tipica que puede ejecutar las das instrucciones que leen el registro de estado y camprueban ¡ a bandera en un micro-segundo. La manera en que el procesador &%e la d k c i ó n de transferencia a la rutina de servicio varíq de una unidad a otra. cuando se activa la bandera. La CPU responde a la señal de interrupeibn al almacenar la diFecci6n de retorno del contador de programa dentro de una pila de memoria y despuh transferirse el control a una rutina de servicio que procesa la transferencia de E/$ requerida. Sin embargo.qi6n de E/S es transferir un bloque de palabras de un dispositivg ~.

L a mayoría de los sistemas operativos contienen diversas programas de E/S para soportar la línea de perifkricos particular que se ofrece para Ia computadora. En la secci6n 11-5 se muestra un sistema de intempci6n con vector. Por esta razdn. h s rutinas h E/S deben emitir comandos de control para activar el perifdrico y para comprobar el estado del dispositivo. se proporciona entonces un comando de control para ejecutar una funcibn de dispositivo. 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. Por lo general. se incluyen dentro del sistema operativo. L a CPU responde a la solicitud de intempibn al almacenar la dirección de retorno del PC dentro de una pila de memoria y despuks el programa se transfiere a una rutina de servicio que procesa la transferencia solicitada. E i control por programa del equipo de entrada-salida es una empresa compleja. algunos procedares también salvan dentro de la pila la paiabra "deestado del procesador (PSW) y cargan una . 11-5 Prioridad de interrupci6n ta transferencia de datos entre i a CFU y un dispositivo de E/S la inicia la CPU. con el fin de determinar cuándo estd Esto para transferencia de datos.los programas de E/S deben inicializax el canal de DMA para comenzar su operacibn. La disponibilidad del dispositivo puede determinarse de una kfial de intempcibn. Sin embargo. 10s fabricantes proporciorian rutinas de E/S para lbs periféricos estandar como parte del sistema de computadora. Como se analizó en la secd6tl 8-7. como detener la cinta o imprimir caracteres. Una vez que está preparado. En las transferencias controladas por intempci6nJ los programas de E/S deben enviar comandos al periférico para interrumpir cuando estb preparado y para dar servicio a la interrupci6n cuando m r r a . En la transferencia DMA. 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.sEC&N 1 1 5 Prioridad de intempdh 435 apunta a una posición en la memoria en la cual se almacena la direcci6n inicial de la rutina de servicio de E/S. Con frecuencia las traasferencias están acompafíadas de mmprobacibn de errores y otros pasos iitiles. sin entrar a detallados programas en lenguaje de miquina. la informati611se transfiere dato a datu hasta terminar. 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. la CPU no puede comemar la transferencia a menos que e l dispositivo t é preparado para comunitarse con la CPU. En algunos casos.

si se posponen o interrumpen. La rutina de servicio particular alcanzada. Por lo tanto. el sistema debe dkdir tambih a cual dispositivo atender primero. el tiempo requerido para *gistrarlas puede exceder el tiempo disponible para atender el dispositivo de E/S. cada fuente de intermpci6n tiene su propio vector de interrup- .prioridad de intewupcibn encuesta nuwa PSW para la rutina de servicio. 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. si hay muchas interrupciones. y cada dispositivo puede originar una solicitud de interrup ci6n. También existe la posibilidad de que varias fuentes soliciten servicio en forma simultánea. Cuando dos dispositivos interrumpen Ia computadora al mismo tiempo. I a computadora atiende al dispositivo con mayor prioridad. s i su señal de interrupción este activada. Se prueba phmero la fuente de prioridad más alta y. El sistema también puede determinar cuales condiciones se permiten para interrumpir a la computadora mientras se da servicio a otra interrupción. pertenece al dispositivo de prioridad mas alta entre todos los dispositivos que interrumpieron a la computadora. E I orden en la cual se prueba detemina la prioridad de cada internipci6n. Una priot. puede utilimse una unidad de circuito de prioridad de inkmpci6n para acelerar la operacibn. La primera tarea del sistema de interrupción es identificar la fuente de la interrupcidn. Se usa un procedimiento de "encuesta" para identificar la fuente de prioridad más alta por medio de programacibn. Aquí na consideramos la PSW para no complicar el analbis de las interrupciones de E/S. prueba la fuente con Ia siguiente prioridad hacia abajo y asf sucesivamente. pueden producir consecuencias serias. Se asignan niveles de internipci6n de alta prioridad a solicitudes que. En una aplicaci6n típica. Una -unidad de prioridad de intemipcidn de circuiterfa funciona como un administrador general en un ambiente de sistema de interrupciones.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 condición ae va atender primero cuando llegan al mismo tiempo dos solicitudes. Los dispositivos con trarw ferencias de alta velocidad como discos magnéticos reciben una alta prioridad y los dispositivos lentos como los teclados reciben baja prioridad. Para acelerar la operd6n. dekrmina cuál 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. el control se transfiere a una rutina de servicio para esta fuente De otra manera. En este mhtodo existe una dirección de transferencia de control común 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. se conectan varios dispositivos de E/S a la computadora. En esta situaci6n. Acepta solicitudes de interrupción de muchas fuentes. Puede establecerse la prioridad de interrupciones simultáneas mediante programación o circuiterla. En este caso. La desventaja del mdtoda de programaci6n es que.

Por l o tanto. La &l de reconocimiento pasa al siguiente dispositivo por medio de Figura 11-12 Inteaupfi6n con prioridad por cadena de margaritas.por los dispositivos de prioridad inferior hasta e l dispositivo con la m6s baja prioridad. no se necesita el registro porque todas las decisiones Ias establece la unidad de circuiM de prioridad de interrupcibn l a función de prioridad de eimiitería puede establecerla una sonexión serial o paralela de heas de interrup c h . C a d de datoe. Este m b d o de conexi6n entre tres dispositivos en h CPU se muestra en la figura 11-12. La CPU responde a una solicitud de hternipci6n al habilitar la Iinea de reconocimiento de intermpci6n.WWd - de iritwudon - : INT CPU h m w i m h b de fnterrupdbn U INTACK . que se coloca al iiltimo en la cadena. La conexihn serial también se conoce como el d o d o de cadena circular. Cuando no está pendiente ninguna interrupcibn.ci6n para accesar en forma dwcta su propia nitina de servicio. seguido. E s b es equivalente a una operación OR lógica negativa. Unea de solicitud de htempcidn es común a todos los dispositivos y forma una conexión de 16gica alambrada. la ünea de interrupci6n va al estado de nivel bajo y habilita la entrada de interrupci6n en la CPU. E3I dispositivo 1 recibe esta señal en su entrada de prioridad PI). I3ispitlvo 2 : PI Po 1 - MBpositlvo 3 PI m - AIsiguienie dhposftivo Y . Prioridad de cadena de margaritas El rndtodo de cadena de margaritas (daisy chain) de establecer prioridad consiste en una conexi6n serial de todos los dispositivos que solicitan una internipci6n. Si cualquier dispositivo tiene su señal de inkrmpci6n en el estado de nivel bajo. la línea de interrupción permanece en el estado de nivel alto y la CPU no reconoce interrupciones. La. El dipasitivo con la prioridad más al& E coloca en la primera posicibn.delpmesador 1L VAD 1 MspIdvo 1 :PI PO A VAAD 2 I ' YAD 3 i .

S el dispositivo 1 tiene una interrupcidn pendiente. 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. Entre d s lejos esti el dispositivo de h primera posicl6n. un Figura 11-13 Una etapa del arreglo de prioridad de cadena de margarita. El dispositivo activa su &pflop RF cuanao desea interrumpir a la CPU.Por lo tanto. transmite la &al de reconocimiento al siguiente dispositivo al colocar un 1 en su salida PO. Si e l dispositivo no tiene interrupciones pendientes. procede r inserta su propia direccih de vector (VAD) de interrupción. Entanceb. Un dispositivo que solicita una i n b mpci6n y tiene un 1 en su mhada PI acepta b señal de reconocimiento al colocar un O en su salida PO.0 ONCE Organkción de entrada-wlida direecidn de wector h salida de prioridad (PO)s610 d el dispositivo 1 no está solicitando una interrupción. bloquea la señal de reconocimiento del siguiente dispositivo al colwar un O en su salida (PO. La salida del ffip-flop RF recorre un inversor de colector abierto. Un dispositivo con un O en su entrada PI genera un O en su salida PO para informar al dispositivo con la siguiate prioridad más baja que ha bloqueado la señal de r&onocimienb. es menor su prioridad. 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 señal de reconocimiente de intempcih de l a CPU. VAD Entrada de prioridad. para que la CPU la utilice durante el ciclo de intemipcibn. dentro del cana1 de datos.cmhJL. PI ' I W t u d de dfreEd6ar M &plitivo 1 Salida de prioridad i S Q RF PO -R 7 - Solicitud de interrupción a CW .

Otra salida del mdificador activa un flip-flop de estado de intwnifi6n @T) cuando ocurre una inteirypcibn que no está enmascarado. Esta mdici6n pasa la señal de reconocim i e n t o al siguiente dispositivo a través de PO. E l disco magn6tic0. El registro de msscara tiene l a misma cantidad de bits que el registro de interrupcibn. Consta de un registro de interrupcibn cuyos b i t s individuales se activan mediante condiciones externas y se desactivan mediante instrucciones de programa. el circuito puede incluir un registro de mAscara. cuyo propósib es controlar el estado de cada solicitud de interrupcibn. Idgicn de prioridad Inkmpci6n de prioridad paralela El m W o de interrupción de prioridad paralela utiliza un registro cuyos bits se adivan en forma wparada.circuito que proporciona la lógica de alambrado para la h e a de interrupci6n comiin. como es un dispositivo de alta velocidad. B1 programa puede habilitar %odahabilitar el flip-flop de habilitacibn de h k m p c i h (intmpt enable. La señal 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 . Mediante instrucciones de programa. Se considera que cada dispositivo tiene su propia d i d 6 n de vecter d i s W . De esta manera. PO y la línea de habilitación a la VAD S Q ~ iguales a O. Bta condici6n colma un O en PO y habilita la h i 6 n del vector para el canal de datos. La impiesora tiene la siguiente prioridad. Puede programarse el registro de mAscara para deshabilitar interrupciones de prioridad menor mientras s e esta atendiendo un dispositivo de prioridad más alta. También puede proporcionar una opcibn que permita que un dispositivo de prioridad alta interrumpa la CPU mientras se atiende un dispositivo de prioridad menor. entonces PO = 1 y se deshabilita la direccidn del vedor. Si PI = O. mediante la señal de interrupción de cada dispositivo. Si PI = 1 y R F = O. es posibl~activar o desactivar cualquier bit en el registro de &&ara. La 16gica de prioridad para un siskma de cuatro fuentes de interrupcibn se muestra en la figura 11-14. El dispositivo está activo cuando PI = 1 y RF = 1. Se desactiva el flip-flop RF despu& de un retrasa suficiente para asegurar que la CPU ha recibido la dfrec-ch de vector. sin considerar el valor de RF. recibe la prioridad m6s alta. se aplican a una compuerta AND para producir las cuatro entradas hacia un codificador de prioridad. h prioridad se establece de acuerdo con la posicidn de los bits en el registro. seguida por una lectora de caracteres y un teclado. Cada bit de interrupcidn y su bit de mascara correspondientes. Además del regis& de interrupcih. la cual se transfiere a la CPU. Las salidas de IST que recibieron la h u 6 n AND con IEN proporcionan una señal de Hiterrupi6n común para h CPU. El d i c a d o r de prioridad genera dos bits de la direccibn de vector. IEN)para proporcionar un control general subre el si~tema de interrupciones. se reconoce una interrupci6n &lo si el programa activ6 en 1 su bit de mascara corregpondiente.

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 . del canal de dAhora explicaremos el circuito M c a d o r de prioridad y después analiarqno6 la interaccibn entre el controlador de prioridad de interrupcibn y la CPU.440 ONCE Orgmh66n de entrada-salida Figura 11-14 Ckuiterfa ae prioridad de intempci6n.

+ J. la CPU no considera la solicitud de intermpci6n que proviene del IST.I{ y = ILI.Las letras X en la tabla representan condiciones no signiicativas. la d M 6 n de vector puede formarse al agregarse ceros a las salidas x y y del codificador. la entrada que tiene la prioridad mayor tendrá preferencia. una computadora tendí8 más de cuatro fuentes de interrupción.gan al mismo tiempo.O 1 1 1 1 x x o + + +1 . sin considerar l o s valode las entradas de prioridad menor. se desactiva XST a O y las otras salidas del codificador no se utilizan. 2. cuando esta entrada es 1. Las funciones booIeanas listadas en la tabla especifican la 16gica interna del codificador. i.114 Prioridad de uiWru@~ 441 TABLA 11-2 Tabla de verdad de codiñcador de prioridad Entradas 10 11 I z 13 x Salidas y TST Funciones booleanas x = I'. un codificador de prioridad con ocho entradas generará una salida de tres bits. Si todas las entradas son 0. ( I S T ) = I. Por ejemplo. Con esta selección se le asignan los números b'inarios 0. Se genera I a salida para I2 6610 si las en~adas de prioridad mayor son O. E l bit IEN controiado por programa le pennite al . 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. La salida del ccdificadox de prioridad se utiliza para que forme parte de la direcciSn de vector con cada fuente de mtempci6n. "' * - lie. Puede asignacualquier valor a los otros bits de la direcci6rt de wctor.i. E610 ~e debe a que la direcci6n de vedor no se transfiere a la CPU cuando IST = O . La salida es O1 si Il = 1 siempre y cuando lo = O. y 3 a los vectotes de interrupción para los cuatros &positivos de E/S. sin considerar el valor de las otras entradas. Se activa el estado de interrupción (1ST) 9610 si una o mAs entradas son iguales a 1. y así sucesivamente hacia abajo en el nivel de prioridad. Cuando IEN se desactiva. por lo tanto. La tabla de verdad de un dificador de prioridad de cuatro entradas se proporciona en la tabla 11-2. L a entrada Io tiene la prioridad mayor. I1 tiene el siguiente nivel de prioridad. Por lo general. 1. Por ejemplo. o O 0 0 i O 0 0 x f 0 0 x X 1 0 0 1 1 1 .1. por lo que se marcan em condicimw no significativas. la salida genera una salida xy = 00.

hemos analizado los aspectos de la circuitería de un sistema de prioridad de interrupciones. L a figura 12-15 mu-tca el programa que debe residir en la memoria para manejar el sistema de interrupciones. Si ambas IEN e IST son iguales a 1 . Duran& 6 siguiente fase de búsqueda. Durante d ciclo de internipci6n la CPU ejecuta la siguiente secuencia de mierooperaciones: SP tSP . ta computadora tambi6n debe tener rutinas de programaci6n para atender las solicitudes de inkrcupci6n y para controlar los xegistros de la ciruiitería de interrupcibn. Si se ha insertado una instniccibn en e l programa para desactivar IEN. E 1 nombre simbblico de cada &m q m t a la direccih inicial del programa de servicios. 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. programa de servicio - . Después reconoce la intempci6n al habilitar Ia línea INTACK ia unidad de prioridad de interrupción 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 búsqueda. La mayoría de las computadoras incluyen eircuiterla interna que desactiven IEN a O cada vez que el procesador reconoce una intemipcibn. la CPU pasa a un ciclo de intemipci6n.1 Deaementadar apuntador de pila M[SP]+PC Salvar PC dentro de la pila ' N A C K t1 Habilitar reconocimiento de internipci6n Transferir dwcci6n de vector a PC K+ V m IEN +O Dehabilitar interrupciones paskriom ir a recupera la instrucci6ri 1La CPU salva la direccidn de retgrno en PC dentro de la pila.programador elegir entre usar o no b opcibn de intemipci6n. 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 técnicas de circyiteria y programación.. el control continúa con la siguiente instnicdbn. Una instrucci6n para activar XEN indica que la opci6n de interrupción se usará mientras corre el programa actual. significa que el usuario no dque su programa se interrumpa. La pila que se muestra en el diagrama se usa para almacenar la direcci6n de retorna despub de cada interrupción. Hasta aquí. Cada dispositivo tiene su propio programa de servicio que puede alcamrse medite instrucci6n de brinco (JMP) almacenada en la direccibn asignada al vector.

la dirección S 6 se wlva dentro de l a pila y d control se hansfiere al programa de servicio DISK.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 rnagnétim 2 JMP RDR JMP KBD pmgiama prindpa! 3 t "1 -1 Programa para dar semido a impresora en línea P m p m a para dar servicio a h o r de m e r e s hograma w dar wrvWo a teclado Pila 256 750 Figura 11-15 kograme. Salva la d k c i & nde retorno 750 en la pila y. la tíl*a htruccián recupera la dirección de retorno de la pila y retorna el coqtrol al programa principal en Ia dirección 750.simaoensdoen memoria para atender interrupciones. 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 . Al final del progrwa KBD. h J d e interrupción KBD. La instnicci6n en la localidad 3 se ejecuta después. Esto retorna el control a la rutina KBD para que continde atendiendo el teclado. después acepta la diremi611 de v d o r 0000M)ll del canal y la transfiere al PC. produciendo urva trmfemnuia de control a la-i u . Por lo tanto. Al final del ciclo de instrucción. la instruccihn de retorno se recupera de la pila y coloca 256 en el PC. Cuando termina el programa de servicio del disco. 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 dirección 255 en el programa KBD. u q dispositivo de prioridad mayor puede interrumpir a un dispositivo de prioridad menor. 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. la coriiiputdora va a un ciclo de interrupción. ta última instrucción en cada rukina*esun retorno de la instrucción de interrupción.

Operaciones inicial y final Cada rutina de servicio de interrupción debe tener un conjunto de operacio- nes inicial y final para controlar los registros en e l sistema de cimiterla de interrupci6n. pero no antes de que se hayan deshabilitado h s intempciones de prioridad menor. Desactivar e l bit en el registro de intwrupci6n que pertenece a la fuente que ha sido atendida. 5. Proceder con la rutina de servicio. por lo que no ocurre ninguna pérdida de información. Desactivar los bits del registro de máscara de prioridad inferior. Restablecer la direcciBn de retorno dentro del PC y establecer IEN. Recuerde que la habilitacibn de interrupcibn TEN se desactiva al f m l de un ciclo de intempci6n. El bit de estado de internipci6n de& desactivarse para que pueda volverse a activar cuando ocurra una interrupcibn de prioridad mayar. Activar el bit de habilitacidn de interrupción IEN. 4. 3. Aunque a las fuentes de intempci6n de prioridad menor se les asignan bits de ndmero mayor en el registro de mAscara. Salvar el contenido de los registros del procesador. La secuencia inicial de cada rutina de servicio de inkrrupci6n debe contener instrucciones para controiar la cimitería de intmupcidn de la siguiente mera: 1. Reactivar los kts de prioridad de nivel menor en el registro de cubierta. 2. Este flip-flop se debe activar de nuevo para habilitar solicitudes de intemipcidn de Prioridad mayor. La secuencia fmal de cada rutina de servicio de interrupcidn debe contener instnicciones para controlar la circuitería de interrupci6n de la siguiente manera: 1 . 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.de1dispositivo de baja prioridad. Activar el bit de habilitaa6n de inkmtpci6n IEN. se activa la habilitación de intempcibn IEN para permitir que otras interrupciones (de prioridad mayor) y la computadora procedan a atender la solicitud de intempcibn. 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. 5.Despuks. la prioridad puede cambiarse si se desea. 3. 2 Recuperar el contenido de los registros del pxocesador. Desactivar el bit de estado de interrupcibn IST.444 0 - Oxgankación de entrada-salida transferencia. 4. . porque el programa puede utilizar cualquier configuraci6n de bits para el registro de máscara.

Un a . es posible reducir el tiempo entre la mpci6n de una interrupcidn y la ejecución de las instrucciones que atienden l a hm'te de interrupción. de otra manera.inicialmente se desactiva IEN y máis tarde se reactiva despub de que se transfiere la dirección de retorno h PC. La circuitería puede salvar dentro de fa pila el contenido de los registros del procesador antes de transferir d control a la rutina de servicio. m La C W puede cokarse en un estado inactivo de diversas maneras. Un controlador DMA funciona sobre los canales para manejar la transferencia en forma directa entre' el dispositivo de E/S y la memoría. figura Am . De esta manera. la CPU está inactiva y no tiene el control de los canales de memoria.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 interrupción. E s t o se hace al insertar las instrucciones adecuadas al principio y al final de cada rutina de servicio. Cuando esta entrada activa. y las lineas de lectura y d t u r a u . DMA). Por esta raz611. tas operaciones final y inicial que acabamos de listar se denominan operacimres generales de gestión o quehaceres dodsticos. N6tese que la cimiterla debe diseñarse para que no ocurran interrupciones mientras se ejecutan los pasos 2 al 5. También se le pueden asignar otras operaciones iniciales y finales. el canal de datos. con h e n c i a está limitada por la vel-idad de la CPU. No son parte de1 propio programa de servicio pero son esenciales para procesar interrupcic~ nes. la CPU termina la ejecución de la inshucción actual y coloca el canal de direcciones.E l conbolador DMA utiliza la &bada de solicitud de anal (BR) para a_\ 4 -solicitar a la CPU que entregiie el control de los anales.' m d t o d o c o m h que se usa con mucha frecuencia en los micxoprocesado~. 11-6 Acceso directo a memoria ( D m ) La bnsfemcia de datos entre un dispositivo de almacenamiento rhpido como un disco magnktico y la memoria. Quitar la CPU de la trayectoria y permitir que e l dispositivo periférico maneje en roma directa los canales de memoria mejw rada Ia velocidad de transferencia. irl: d e s deshabilitar los canales mediante señares de control e s ~ i a l e s La .Durante una transferencia DMA. La circuiteria puede hacer en forma a u b matica algunas de las operaciones generaieg de gestidn. 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. Todas las operaciones generales pueden implantarse mediante prograrnaci61-1. 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.11-16 -muestra dos e l e s de mtrol en la CPU que facilitan la transferencia solidtud de canal DMA. El retorno al programa interrumpido se consigue al cargar la dirección de retorno en el PC. Esta técnica de transferencia se llama acceso diredo a memoria (Direcf Memoy Access.

urop b lr n . 1 intempdbn 4 Solicitud de DMA Reconocimiento de DMA L La figura 11-17 muestra el diagrama de bloque de un controlador de DMA típico. DMA se comunica con el periférico externo mediante líneas de solicitud y reconocimiento al utilizar un procedimiento preestablecido de reconocimiento mutuo. Los registros en el DMA se seleccionan mediante la CPU por medio del canal de datos al habilitar las entradas de selección de DMA (DS) y de selección de registros (RS). Este registro se decrementa en uno con cada transferencia de palabras y realuia una prueba interna en busca de cero. Cuando BG = 1. un registro de cuenta de palabras y un registro de control. La unidad se comunica con la CPU mediante el canal de datos y las líneas de control. + Acopladores de canal de direcciones Selección de DMA Selección de registro Registro de dirección Registro de cuenta de palabras Escribir Solicitud de canal Cesión de canal Interrupción Lbgica de WR control Registro de control 1 de E/S Figura 11-17 Diagrama de bloques de controlador DMA. Las entradas lectura (RD) y escritura (write. la CPU puede comunicarse con los registros de DMA por medio del canal de datos para leer de o escribir en los registros DMA. El registro de cuenta de palabras contiene la cantidad de palabras que se van a transferir. 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.SECCI~N11-6 Acceso directo a memoria (DMA) 447 Canal de direcciones de datos I e Acopladores del canal de datos . Cuando la entrada de cesión de canal (BG) es O. El registro de direccionamiento contiene una dirección para especificar la localidad deseada en la memoria.e m4 ( 1 0 - irlñncs'UM . El registro de direccionamiento se incrementa después que cada palabra se transfiere a la memoria. Los bits de direccionamiento van a través de búffers al canal de direcciones. d h f m . Todos los registros en el DMA aparecen ante la CPU W Y " . * nl NI o. El controlador de DMA tiene tres registros: un registro de direccionamiento.. WR) son bidireccionales. El registro de control especifica el modo de transferencia.

-f.... . p. ~ zar la transferencia entre el dispositivo periférico y la memoria.... Cuando el di*spositivo periférico envía una solicitud al DMA. Cuando BG = 1. La d C ..-.. .. d'rreccionamiento dentro del canal de dirección. Un control para especificar el modo de transferencia como de lectura : o de escritura. v i ~~i+Jr. . El DMA tiene su propia dirección. --3. 8 1. 1 -.-a CPU inicializa el DMA al enviar la siguiente información por el canal de _ _ . líneas DS y RS. Por lo tanto. - 113 m ~. La dirección inicial se almacena en el registro de direccionamiento. . . 1 . informando a la CPU que ceda los canales.*: '7 lms lador de DMA activa la línea BR. . .. 1-1 Una vez que el DMA recibe el comando de control de inicio.* l . .... . .. la cual activa las li.I I I ~ I I !S- . . Un control para iniciar la transferencia DMA. Nótese que las líneas . Una vez que se inicializa el DMA.. que incluyen la dirección para seleccionar registros DMA particulares. .-.. .. RD y WR c . RD y W R son líneas d e salida del Ir. r . Después el DMA pone el valor de su registro de t ~ mm-n ? . . ñIr i l ----! 2. :-'.! 'JI~-:~ envía un reconocimiento DMA al dispositivo periférico. ' J J 1 1'8.Y . .. .l $ dirección inicial del I ) l t e .. LI1 r 4 S m! . . j l . d e memoria en donde están disponibles los datos (ppp lectura) o donde se van a almacenar los datos . fiiYi'i8 1 18. el contro.7 S . r 1 .( ( '.. t. .--.n~ Lí l. ' E.l I ..~ jc r 7 9 internos del DMA.y continúa la transferencia de datos entre la memoria y la unidad periférica hasta que se transfiere un bloque completo.#. o que desee comprobar cuántas palabras se han transferido.1 ~frl-l. (para La cuenta de palabras. .. Primero. .b a r . - ]--N . s6lo que reciba una señal de internipción.l.I. la CPU inicializa el DMA. . La CPU inicializa el DMA por medio del canal de datos..--* datos: .U I ~ ~. L'L ' .-gr escritura).I.. .. .# 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 dirección y de datos como con cualquier r. transferencia depende del estado de la línea BG.i. 1' .-. la CPU detiene la comunicación con el DMA. L. A-' ! I .. informando al DMA que sus canales ' : 1 están deshabilitados. El proceso de inicializa-.rill 13 .' .wll .en un sistema I ! c l .~! ii n 1 1 ~ ' - t .I.448 CAP~WLO ONGE OrganizAciSn de entrada-salida como registros de interface de E/S. puede comenr .. S IA l! : # . ..<$ . .l > Da posición del controlador DM enke los otrdki ~com~onentes . qpe es el número de palabras en el bloque de memoria. 1 I n i z T . . .. . la CPU puede leer o escribir de datos. L -.' 4. La dirección de la r11. 1 1 unidad de interface..-le....a La CPU responde con su línea BG. 3..- tb. La cuenta de palabras se almacena en el registro de cuenta de palabras y la información de control en el registro de control.> S I v.< N .-1 r- dentre de 10s registros DMA bajo el contr~l de programa mediante el canal r I !- - 7 . activa la señal RD o WR y + ciw.. el DMA empieza .cidn es esencialmente un programa que consiste en instrucciones de E/S . I ~ ~ I : son lheas de entrada que permiten a la CPU comunicarse con los registros I-''.a:' ~: 1 RD y WR en el controlador DMA son bidireccionales. Cuando BG = O.r'1 1 l d ~ r a n g f e r e n c i a ~ ~ ~ r.... ' .i t -13 J S a.\ 8 r : . .i t 4pi . . e* Ir(-[ . - 1 . *. Después de eso.

el DMA incrementa su registro de direccionamiento y decrementa su registro de cuenta de palabras. Por cada palabra que se transfiere. controlador DMA a la memoria de acceso aleatorio para especificar la operación de lectura o escritura para los datos. Cuando el dispositivo periférico recibe un reconocimiento de DMA.~ ~ ~ ~11-6 1 6Acceso 1 4 directo a memoria (Dh4A) 449 - : Interrupción + BG CPU * BR RD Memoria de acceso aleatorio WR Dirección Datos ri RD WR Dirección Datos Control de leaura t 1 1 ir t 1 Selección de dirección Control de escritura 7 Canal de datos + 7 y i A Canal de direcci6n A 7 RD + DS Y Y Rec6nocimiento DMA 4 Y WR Dirección Datos -.RS = BR BG Controlador de acceso directo amemoda Solicitud DMA Dispositivo penifbrico de E/S Interrupción Figura 11-18 Transferencia de DMA en un sistema de computadora. Si la . En seguida. coloca una palabra en el canal de datos (para escritura) o recibe una palabra del canal de datos (para lectura). la unidad periférica puede comunicarse con la memoria por medio del canal de datos para una transferencia directa entre las dos unidades mientras la CPU está momentáneamente deshabilitada. Por lo tanto. el DMA controla las operaciones de lectura o escritura y proporciona la dirección para la memoria.

En este caso. cada canal time un par de sefíales de control para señales de solicitud y reconocimiento que est4n conectadas a dispositivos perifkrims separados. El valor cero de este registro indica que todas las palabras se transfirieron exitosamenk. lee el contenido del registro de cuenta de palabras. Tambih es ú t i l para actualizar la pantalla en una terminal interactiva. La CPU puede leer este registro en cualquier momento para comprobar la cantidad de palabras que ya se han transferido.menta de paIabras no alcanza cero. Un controlador DMA puede tener m6s de un canal. D e manera típica. el DMA deshabilita la h e a de solicihd de canal para que la CPU pueda continuar ejecutando su programa. Cuando el periférim solicita una transferencia. la línea estarA activa tan pronto como se termine la transferencia previa. 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. l a transferencia DMA es muy útil en muchas aplicaciones. una computadora puede inco'p~ar uno o m b p-dores externos y asignarla la tarea de cornunid h c b w n k con todos los d"p0sitiv0~E / S . mediante una transferencia de DMA. puede clasificam como un procesador con capacidad de acceso dirwto a memoria que comunica con dispitivm de E/S. Para un dispositivo de alta velocidad. Un prr>cesador de enhadasalida (IOP}. de cuenta de palabras llega a cero. eI DMA detiene cualquier transfemcia posterior y retira su solicitud de canal. Cada canal también 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. . E1 contenido de la memoria puede transferirse a l a pantalla en forma periódica. el DMA comprueba la linea de solicitud que proviene del @rico. la h e a de solicitud DMA puede venir un poco mis tarde. Cada IOP atiende tareas de entrada y salida. Un p-doi que comunica eon berminales remotas por teléfono y otros medios de comunicacibn en forma serial se Ilama un procesador de c o m h c i 6 n de datos (DCP). Si el registn. En esta cdiguración. Tambibn informa a la CPU de la terminación mediante una interrupcibn. En este caso. relevando a la CPU de los "quehacexesdo&tieos" que involucran las mnshencias de E/S. Cuando la CPU responge a la intempcidn. S i la velocidad dei perifhrico es mas lenta. el sistema de computadora puede dividirse en una unidad de memoria y vaRm procesadores que comprenden la CPU y uno o más IOP. Despuk se inicia una segunda transferencia. y el prweso continda hasta que se ha transferido todo el bloque. 4 11-7 Procesador de entrada-salida (LOP) En lugar que cada interface se comunique con la CPU. Se utiliza para transferencias rApidas de informaei6n entm discos magn&cos y memtF na. e l DMA vuelve a solicitar los canales.

I m datos se reúnen en el IOP a la veiddad del dispositivo y a ia capacidad de bits mienkas la CPU ejecuta s u propio pmgrama. . El IOP proporciona una trayectoria para traneferencia de datos con diversos dispositivos pmWic08 y la unidad de memoria. Además. que debe s e r inicializado por completo por la CPU. E l B Unidad de memorla - 4 Y = enuadasddm WP) m d w de Canal de E/S Figura 11-19 Diagrama de bloque de una computadara con prmesador de E/% Los formatos de datos de ios dispositivos pe&rims difieren de ioe formatos de datos de la memoria y la CPU. la CPU tiene i a tarea de inicializar un programa de E/S. lógica. A diferencia del controlador de DMA.pmwaniierrto de WS E i IOP es sidar a una CPU. . k a n s f e d de control y traducci6n de cbdigo. el IOP puede buscar en memoria y ejecutar sus propias instn-iccionea Las instrucciones T O P están qecíficamente disefiadas para facilitar las transferencias de E/S. excepto que esta diseñado para manejar los detalla del p t o de E/S. Después de que los datos 'se reúnen en una palabra de memoria. el IOP priede ejecutiir o. 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. D e igual manera. Por ejemplo.kas tareas de pmmmientob como aritmética. La unidad de memoria ocupa una posicibn ~entral y puede comunicarse con cada p-dor mediante acceso directo a memoria. "robar" un c i c l o de memoria de la CPU. Por b general. En lo sucesivo el IOP opera en forma independiente de la CPU y contintra transmitiendo datos de dispositivos externos y la memoria. El diagrama de bloque de una computadora con dos procesadores se muestra en l a figura 11-19. . 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. se transfieren del IOP directamente dentro de la memoria a).El IOP debe estructurar palabras de datos de muchas fuentes difemtes. L a CPU es responsable del prmesamiento de datos necesarios en k solución de tareas eomputaciortales.

la unidad de memoria actúa como un centro de mensajes en donde cada procesador deja información para el otro. memoria. para distinguirlos de las instrucciones que lee la CPU. Las palabras de comando constituyen e l programa para e l IOP. Los comndos son preparados por programadores experimentados y s e almacenan en I a memoria.La CPU envía una instmcci6n para probar la trayectoria de IOP. Las instrucciones que un IOP lee de la memoria en ocasiones se denominan comandos. L a secuencia de operaciones puede realizarse como se muestra en el diagrama de f l u j o de la figura 11-20. cada procesador es independiente de lbs demas p cualquiera puede iniciar una operad6n. Para apreciar la operacibn de un IOP típico. Se asigna a la CPU la tarea de iniciar d a s las operaciones.La comurllcacidn entre el IOP y los dispositivos conectados a él es similar al metodo de'transferencia decmtrol del programa. E 1 IOF responde al insertar una paIabra de estado en la memoria para que la CPU h compruebe. Este es un ejemplo simplificado que omite muchos detalles operativos para un panorama de los conceptos básims. 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. De cualquier manera una instnrccidn y un comando tienen funciones similares. Las instrucciones de CPU proporcionan operaciones para iniciar una transfenmcia de E/S y también para probar condiciones de estado de E/S mcesarias para t m c decisiones sobre varias actividades de E/S. A su vez. mostraremos un ejemplo especifico del mgtodo con e1 que se comunican la CPU y e l TOF.Cuando se desea una oizeracidn de E/S. la CPU envía la instruccibn para comenzar . En k mayorla de sistmas rompuhclo~b81~. la C W informa al IOP d6nde encontrar el programa de E/$ y despues deja los detalles de la transferencia a1 IOP. En computadoras a mala muy grande. Por ejemplo una eon-dici6n que sobmarga de IOP. p r o las instnieciones de E/S se ejecutan en e l IOP. dependido de la computadora particular considerada. Comunlcaci6n CPU-IOP L a comunicacl6n entre la CPU y el IOP puede tornar diferentes formas. que se examinar4 después. L a comunicación con la mhoria es similar al métcdo 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 muchos casos. 1a CPU es el amo que dirige mientras el IOP es bn pmesador esclavo. Si todo d t á en orden. La CPU informa al IOP dBnde encontrar los comandos en la memoria cuhdo es hora de ejecutar el programa E/S. iin programa de la CPU. Los bits de la palabra de estado Mitan la condición del IOP y d dispditivo de E/S. 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 .

Ahora la CPU puede continuar con otro programa mientras el IOP está ocupado con el programa de EtS.-W~BB del IOP ' ~ z p i o h r tray&rla del IOP r - ~ ~ p ~ f w i r p a h b r de a atado a upa localidad de memoria Si el eetaüo wtil b m . envía uqa solicitud deirikrrupci6n a h CPU. aim z Conducir tmmferendaa de E/S usando DMq: preprar reporte de wtado a una pdd4n de memorla para una iraderienda correcta la transferencia de E/S. Ambos programas hacen referencia a la memoria mediante una transferencia DMA. Cuando el IOP termina la ejecuci6n de su programa. ia direcci6n de memoria recibida con esta instniccibn le dice al I O P en dónde encontrar su programa.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. enviar htmcci6nde inici b E/S al IOP L m el pmgrama IOP La CW continúa . La palabra de estado indica si ha terminado la transferencia o s i ha ocurrido cuaiquier emir durante eiia. De .

L a figura 11-21 muestra los formatos de palabra asociados con la operacidn del canal. En ese caso. detener dispositivo. Proporciona una conexión a varios dispositivos de alta velwidad. El canal de bloque multiplexor combina las carackkticas de los canales multiplexor y selector. El significado de los cuatro cbdigos de Canal de WS IBM 370 E l procesador de E/S en la computadora IBM 370 . se denomina a n a l . El formato de instrucci6n de E/C tiene tres campos: c6digo de operaci6n. la velocidad de Ia CPU puede deteriorarse porque con frecuencia tendr4 que esperar que el IOP conduzca transferencias de memoria.completo a diferencia de un canal multiplexor. detener E/S. cada canal puede estar conectado a varios dispositivos y a cada dispositivo se le asigna una dwcu6n. 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.la inspeceibn de ios bits en la palabra de estado. direccidn del canal y diici6n del dispositivo. El canal selector está diseñado para manejar una operacibn de E/S a la vez y se usa normalmente para controlar un dispositivo de alta velocidad. De igual manera. E l código de operacibn específica una de ocho instrucciones E/S: iniciar E/S. pueden u t i l i z a r una aprkiable cantidad de los ciclos de memmia disponibles. iniciar envio raipido de Ef S . que sólo puede transferir un byte a la vez. Sin embargo. Existen t r e tipos de canales: multiplexor. pero todas las transferencias de E/S pueden c o n d u h en un bloque de da. por l o que se h i t a el n b e r o de dispositivos que pueden estar en operación por el tiempo de acceso a la memoria. El sistema de computadora puede tener varios canales y a cada uno se le asigna una direcci6n. También establecen uno de cuatro c 6 d i p de condici6n en un registro de pmsador llamado palabra de estado del procesador (PSW). aIgunas unidades que son riipidas. 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. borrar E/S. como las diseos magnéticos. La CPU puede comprobar el c6digo de condición en k PSW para determinar el resulado de i a operacibn de B/S. El 1OP cuida todas ias transferencias de datos entre varias unidades de E/S y la memoria mientras la CPU prwesa otro programa. El canal multiplexor puede conechrse a varias dispositivos de velocidad lenta y media y puede operar con varios dispositivos de E/S en forma simultánea. Una configuraci6n de sistema de computadoras típico incluye vanos canales y cada uno de ello5 está conectado a uno o m á s dispositivos de E/S. probar E/S. selector y bloque rnultipIexor. la CPU determina si l a operacibn de E/S ha terminado satisfactoriamente s i n errores. El T O P y la CPU compiten por el uso de la memoria. probar canal y almacenar identificaci6n del canal Los canales direocimados responden a cada una de las instrucciones de E/S y las ejecutan.

si la operación de E/S comenzó exitosamente y si se almacenó una palabra de estado en la memoria por medio del canal. El campo de comando especifica una operación de E/S y los bits de bandera proporcionan Figura 11-21 Reiaci6n de formatos de palabra. en general. El campo de dirección de la palabra de estado proporciona la dirección de la última palabra del comando utilizada por el canal. hace referencia a la localidad 72 de la memoria para la dirección de la primera palabra de comando del canal (CCW). El campo de clave es un mecanismo de protección utilizado para evitar el acceso no autorizado por parte de un usuario a la información que pertenece a otro usuario o al sistema operativo. El campo de cuenta proporciona la cuenta residual cuando se terminó la transferencia. cuando el canal recibe una de estas dos instrucciones. 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 envío rápido de E/S es que la última requiere menos tiempo de CPU para su ejecución. especifican si el canal o el dispositivo están ocupados. El campo de cuenta mostrará cero si la transferencia se terminó exitosamente. si son operacionales o no.SECCI~N11-7 Procesador de entrada-salida (IOP) 455 condición es diferente para cada instrucción de E/S. Siempre está almacenado en la posición 64 en la memoria. Pero. El formato de la palabra de estado del canal se muestra en la figura 11-21(b). El campo de dirección de datos especifica la primera dirección de un búffer de memoria y el campo de cuenta proporciona la cantidad de bits que participan en la transferencia. si hay interrupciones pendientes. El formato de la palabra de comando del canal se muestra en la figura 11-21(c). E/S de ia IBM 370 a) Formato de instrucciones de E/S Clave Dirección Estado Cuenta b) Formato de palabra de estado del canal Código de comando Dirección de datos Banderas Cuenta (c) Formato de palabra de comando del canal .

Consta de tres palabras de comando. La primera bandera se activa en 1 en la primera palabra de comando para especificar "encadenamiento de datos". Después se escriben los 40 kytes de la tercera palabra de comando en una cinta como un registro separado. 4.456 c ~ f n n ONCE o Organización de entradaalida información adicional para el canal. significa terminar las operaciones de E/S para el dispositivo de E/S particular. Leer una cinta magnética cuando se mueve en reversa. 6. Da como resultado la cambinación de 60 bytes de la primera palabra de tomando con los 20 bytes de su sucesor dentro de un registro de 80 bytes. como rebobinar una cmta o pasicionar un mecanis. Aquf el campo de dirección de datos especifica la dirección de la siguiente palabra de comando que va a ejecutar el canal. Sic utiliza en lugar de una instrucción de brinco. Las seis banderas en cada palabra de control especifican ciertas interrelaciones entre las palabras de comando. Transferir datos de la memoria a un dispositivo de E/S. 5. aunque se utilizaron dos secciones de memoria. El campo de comando corresponde a un código de operación que ]especifica uno de seis tipos de operaciones E/S: 1. TABLA 11-3 Ejemplo de programa de canal de IBM370 - Comando P Dirección Banderas Cuenta Escribir en cinta Escdbir en cinta Escribir en cinta 4000 6000 3000 100000 010000 000000 60 20 40 . Cuando todas las banderas son igual a cero. Las siguientes dos palabras de comando ejecutan una función similak con una porción diferente de la memoria y de cuenta de bytes. 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. Leer. Le informa al canal qie transfiera su palabra de estado de . Se usa para iniciar una operación que no implica transferencia de datos. mo de acceso a disco. 3. Los 80 bytes se escriben en cintas sin ninguna separación o salto. en este caso. Transfw'r en el canal. canal a la localidad de memoria 64. Detectar. Un ejemplo de un programa de canal se muestra en la tabla 11-3. 2. Controlar. Escribir. Le informa al canal que la siguiente palabra de comando utilizará el mismo dispositivo de E/S. La priiiíera produce una transferencia dentro de una cinta magnética de 60 bytes desde la memoria comenzando en la dirección 4000. Leer en reversa. Transferir datos de un dispositivo de E/S a la memoria. la cinta. La segunda bandera se activa en 1 en la segunda palabra de comando para especificar "encadenamiento de comandos".

La operación comimm cuando el propma de la. Esta palabra contiene la direaci6n inicial del programa de d de E/S. d canal avanza a ejecutar el programa es+ficada mediante 1 w paUras de m a n d o de canal. En seguida. E l canal construye iana palabra de estado durante la t r a n s h c i a y la almacena en .Unidad de memorfa Palabra de estado tiel canal 64 Figura 11-22 PACi6n de la i n f o d 6 n m la memoria operaciones de E/S de ia 1BM 370. t Un mapa de la memoria que muestra toda la informaci6n -ente para el pcemmiento de E/8 se üus& w la figura 11-22.O U encuentra una instrucción de iniciar de E/S. B1 B/S va después a la posicióo de memoria 72 para obtener una palabra de direación de y a l .

El IOP obtiene la atención de la CPU al enviar una solicitud de interrupción. emite una solicitud de interrupción a la CPU. El IOP lee el mensaje. IOP de Intel8089 El procesador de E/S Intel8089 está contenido en un encapsulado de circuito integrado de 40 bits. ejecuta las funciones de E/S requeridas y ejecuta el programa de canal conveniente. Cuando ocurre una interrupción. El conjunto también incluye instrucciones especiales para iniciar transferencias de DMA y emitir solicitudes de interrupción a la CPU. La CPU comunica con el IOP al habilitar la línea de atención al canal. que sólo tiene seis comandos de E/S básicos. Dentro del 8089 hay dos unidades independientes llamadas canales. o sobre palabras de 16 bits. La CPU 8086 inicia una operación de E/S al construir un mensaje en la memoria que describe la función que se va a ejecutar. excepto que el conjunto de instrucciones se escoje en forma específica para proporcionar un procesamiento eficiente de entrada-salida. operaciones de transferencia condicional e incondicional y posibilidades de llamar y retornar subrutina. Las dos unidades comparten una memoria común mediante un controlador de canal conectado a un canal de sistema. La línea de selección la utiliza la CPU para seleccionar uno de los dos canales en el 8089. que Intel denomina "multicanal". como E/S a memoria. Un sistema de microcomputadora que utiliza el par de circuitos integrados 8086/8089 se muestra en la figura 11-23. el IOP 8089 tiene 50 instrucciones básicas que pueden operar sobre bits individuales o sobre bytes. La CPU y el IOP se comunican uno con el otro al escribir mensajes mutuos en la memoria del sistema. operaciones aritméticas y lógicas básicas. La CPU prepara el área de mensaje y la señala el IOP al habilitar la línea de atención del canal. y notifica a la CPU cuando ha terminado. Cuando el canal ha terminado su programa. El esquema de comunicación consta de secciones de programa llamadas "bloques". la CPU puede hacer referencia a la posición de memoria 64 para la palabra de estado. El IOP puede ejecutar programas de manera similar a la CPU. El IOP utiliza un canal local para comunicarse con diferentes unidades de interface conectadas a dispositivos de E/S. El 8089 está diseñado para funcionar como un IOP en un sistema de microcomputadora en donde el microprocesador 8086 se utiliza como CPU. El conjunto de instrucciones incluye instrucciones de transferencia de datos generales. las cuales se almacenan en la memoria como se muestra en la . El 8086 funciona como la CPU y el 8089 como el IOP. En contraste con el canal IBM 370. realiza la operación.458 CAP~TULOONCE Organización de entrada-salida la posición 64. El IOP 8089 lee el mensaje de la memoria. Proporciona una transferencia de datos eficiente entre dos componentes conectados al canal de sistema. memoria a memoria o E/S a E/S. Cada canal combina las características generales de una unidad de procesador con las de un controlador de acceso directo a memoria.

. La bandera ocupado indica si el IOP está ocupado o preparado para ejecutar una nueva operación de E/S. al igual que un apuntador de dirección a su bloque sucesor. La dirección del bloque de control se pasa a cada canal IOP durante la inicialización. Cada bloque contiene información de control y parárnetros. La CPU especifica una palabra de comando de canal (CCW) para indicar el tipo de operación requerida del IOP.sECCI~N11-7 Procesador d e entrada-salida (IOP) 459 figura 11-24. La CCW CPU 8086 4 c 1 1 Controlador de canal 1 - Sistema de canal Unidad de memoria I IOP 8089 4 V Canal local 1 b Interface Ld b Dispositivo de entrada Dispositivo de salida mm3up4 ?\3 rib -' miih U Figura 11-23 Diagrama de bloque del sistema micrpprocesador Intel8086/8089. Bloque de control Bloque de parametros Dirección Ti3 m Bloaue de tareas Direcci6n PB Direcci6n de memoria Cuenta de bytes k c i 6 n dispositivo Pista y m o r Estado A de IOP Figura 11-24 Posición de la información en memoria para operaciones de E/S en el sistema de rnicrocomputadora Intel8086/8089.

El IOP comienza a ejecutar el programa en el bloque de tareas utilizando la información en el bloque de parámetros. Aquí. La CPU puede hacer referencia a la palabra de estado para comprobar si la transferencia se ha completado satisfactoriamente. como iniciar operación. como impresoras. reanudar operación. La cuenta de bytes proporciona la cantidad de bytes que se van a transferir. y parar programa de E/S. Después de que se han inicializado bloques de comunicación. El IOP hace referencia al bloque de control y activa la bandera de ocupado. La dirección del dispositivo especifica el dispositivo de E/S particular que se va a usar. Es un procesador de E/S especializado diseñado para comunicar directamente con redes de comunicación de datos. Las entradas en el bloque de parámetros depende del dispositivo de E/S. suspender operacibn. Los parámetros listados en la figura 11-24 son convenientes para transferencia de datos hacia o desde un disco magnético. Después. dispositivos interactivos de exhibición visual. El bloque de paráimetros aontiene datos variables que el programa IOP debe utilizar para realizar su tarea. 5!i 11-8 Comunicación serial Un procesador de comunicación de datos es un procesador de E/S que distribuye y recoge datos de muchas terminales remotas conectadas mediante el teléfono y otras limeas de comunicación. La CPU obtiene el uso de la memoria compartida después de comprobar la bandera de ocupado para asegurarse que el IOP está disponible. Cuando se termina la operación de E/S. Después. El bloque de tareas contiene el programa real que se va a ejecutar en el Ii3P. Una red de comunicación puede contener cualquiera de una amplia variedad de dispositivos. la CCW se parece más a una instrucción de E/S que especifica una operación para el IOP. censores digitales o una opción de computación remota. el IOP almacena sus bits de estado en la localidad de la palabra de estado del bloque de parámetros e interrumpe la CPU. La memoria de dirección especifica la dirección inicial de un buffer de memoria.CAP~~W'LO ONCE Organización de entrada-salida 1íIP 1 t . El IOP responde a la señal de atención del canal al colocar la dirección del bloque de control dentro de su contador de programa. La CPU y el IOP trabajan juntos por medio de los bloques de control y de parámetros. la CPU continúa con otro programa. la CPU habilita la señal de atención del canal para informar al IOP que comience su operación de E/S. en el 8089 no tiene el mismo significado que la palabra de comando en el canal de IBM. Ce transfieren las direcciones PB (bloque de parámetros) y TB (bloque de tareas) dentro de los registros IOP internos. la computadora puede dar servicio a fragmentos de cada demanda de red de manera intercalada y . Entonces checa la operación en la CCW. la CPU lleria la información en el bloque de parámetros y escribe un comando de "comenzar operación" en la CCW. Los números del canal y sector ubican los datos sobre el disco. Con el uso de un procesador de comunicación de datos.

Como las líneas de comunicacidn ataban diseiradas originalmente para la comunicaciSn de canal y las computadoras se cotrtunican en téminos de señales digitales. s e necesita que los relojes en los rnúdems transmisor y receptor estén sincronizados en todas las ocasiones. h s módems utilizados en la transmisi611 sincrona tienen relojes internos que se inicializan a la frecuencia que se están transmitiendo los bits en la línea de comunicación. debe utilizarse alguna forma de conversihn.SECCI~N 11-8 Cmunimci6n serial 461 por lo tanto tener un desempeño aparente de servir a muchos usuarios a la vez. La manera en que esten conectadas ias terminales remotas a un procesador de comunicación de datos es mediante líneas telefbnicas u otras opcioneg de comunicaci6n privadas o púbIicas.denominan conjuntos de mddem datos. dependiendo del mgtodo de transmisibn de la terminal remota. Los dispmitivos de alta velocidad utilizan l a transmisi6n slncmna para &tener esta eficiencia. Este tipo de interface es simiIar a la unidad de interface de comunicaci6n ashcrona presentada en la figura 11-8. la lfnea de comunicaci6n contiene s610 10s bits de datos a partir de los cuales debe obtenerse la informacidn de reloj. Un procesador de coneunicacidn de datos se comunica con cada terminal por medio de un solo par de cabIes. Es obvio que e l procesador también debe comunjcarse con la CPU y Ia memoria de la misma manera que cualquier procesador de EIS. Todos los periMricos comparten e l canal común y lo m'& utilizan para transferir información h a c i a y deede el procesador de E/S. 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 comunicad¿n cbn 10s dispositivos de E/S. D e esta manera. Una Línea de comunicaci6n puede estar conectada a una interface síncrona o asíncrona. como 'se muestra en la figura 11-7. Para una operacibn adecuada. la transmisi6n sírtcrona 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 convertidores se . determinar si la informacibn es de datos o de control y responder a todas las solicit~desde acuerdo a procedimientos establecidos con anticipaci6n. Una interface asíncrona recibe datos seriales con bits de inicio y paro en cada carkter. Un procesador de E/S se comunica con los de datos h i r i i pmiféricos a traves de un canal de E/S común que consta de muchas líneas I de datos y de control. L a tarea del procesador de comttnicación de datos es transmitir y recoger informaci6n diiital hacia y desde cada terminal.Un módern convierte las seííales digitales en tonos de audio que s e transmiten por líneas telefbnicas y también convierten tonos de audio de la línea a señales digitales para el uso de la mdquinzi. S i n embargo. Se utilizan varios esquemas de modulricibn al igual que diferentes grados de medios de comunicacibn y velocidades de transmisi6n. sicopladores adsticos o rnddems (de "modulador-demdulador"). la computadora puede operar eficientemente en un ambiente de tiempo compartido. La información de control y de datos se transmite de manera serial con el resulbdo de que la velocidad de transferencia es mu&o máis lenta. La sincronizaddn de la secuencia la consigue el .

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. Pueden kmmi* datos entre dos puntos en tres modos diferentes: sítnphx. Si el receptor encuentra un error en el bloque transmitido. le informa a quien envia que retransmita el mismo bloque de nuevo. E l modem transfiere los datos recibid= junto con ei reloj a l a unidad de interface. Después de que se envfa el bloque completo. E l operador debe darse cuenta . & t e tipa de c6digo es conveniente para detectar errores de ráfaga que ocurren en el cmal de comunicacibn. Otra mCtodo utilizado para comprobar errores en la transmbi6n es la comprobad611 de redundancia cíclica (ciclyc. En la transmisi6n sinmona. W C i p l e x a dúpiex completa Una h e a s f m p k transmite informa&n s ó b en una d í i 6 n .ocurrir entre los relojes transmisor y receptor se ajusta continuamente al mantener e1 reloj receptor en la frecuencia del flujo de bits que Uega.6n de datos p o q w el receptor no puede comunicarse con el transmisor para módem receptor de las fransiciones . L a estación receptora calcula la LRC conforme recibe caracteres y h compara con la LRC transmitida. Ia transmisión s h m a debe enviar un mensaje continuo para mantener h s i n nizacibn. Las LRC calculadas deben ser iguaies para que los mensajes no contengan error. A diferencLa de la transmisi6n asincrona. @ t e caracter se llama una wmprobaci6n de redundancia longitudml (longitudid r e d d a n c y check.de . Cualquier cambio de secuencia que puede.trans-a de bloqw CRC de W que ocurren en los datos reciiidos. se mantiene la misma velocidad dedbits en el transmisor y en el receptor. Puede detectarse un error al comprobar k paridad en cada cardcter recibido.c a m El procesador mcomn 10s caracteres transmitidos del teciado a la computadora y loa retransmite a la impresora terminal. Este modo se utiliza rara vez en comunicaC. cada ear6cter tiene un bit de paridad que debe verificar el receptor. La interface o terminal en el lado transmisor también utiliza la infomddn de reloj de su m6dem. Los caracteres de control al inicio del bioque proporcionan la informaci6n necesaria para separar los bih que 1Jeganen caxacterw individuales. CRC).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.dundfancy check. Una de las huicionw de1 psocesador de comunicaci6n de d a b es verificar la presencia de errores de k'ansrnisi6n. el transmisor envía un carácter más que constituye una paridad sobre la longitud del m e n s a j e . E i pensaje consta de un grupo de bits transmitidos en forma seniencial coma un bloque de datos. en la cual cada carkter puede enviarse en forma separada con sus pmpios b i t s de inicio y paro. LRC) y es h acumulaci6n de las OR exclusivas de todos los caracteres recibidos. O t r o procedimiento utilizado en terminales asinmnas en las que interviene un operador humano es escuchar el eco de 1. Todo el bloque se transmite con caracteres de cm401 -les al comienzo y al final. en l a cual se transmite un bloque de caracteres completo. del bloque.esta manera. De.

Esto puede lograrse mediante iin enlace de cuatro cables con un par de h e a s diferentes dedicadas a cada dirección de transmisión. En la tabla 11-1 puede encontrarse una lista de los caracteres ASCII. Los ejemplos de transmisión símplex son la programación de radia y televisión. Cuando termina la transmisión en una dirección. Los protocolos se dividen en dos categorías principales. El propb sito de un protocolo de enlace de datos es establecer y terminar una conexión entre dos estaciones. Estos son el protocolo orientado a caracteres y el protocolo orientado a bits. Es un código de 7 bits en el que se usa un octavo bit para paridad. identificar al transmisor y al receptor. los módems y otro equipo utilizado en la transmisión de información entre dos o más estaciones se denomina enlace de datos. El tiempo requerido para cambiar una línea semidúplex de una dirección a otra se llama tiempo de vuelta.SECCI~N11-8 Comunicación serial 463 dúplex completo protocolo indicarle la aparición de errores. arreglar la prueba en un formato deseado y para la distribución de la página impresa. ríi m Protocolo orientado a caracteres El p~otocolooi-ientado a caracteres se basa en el código binario de un conjunb de caracteres. de acuerdo a las técnicas de ordenamiento de mensajes. el papel de los modems se invierte para habilitar la transmisión en sentido opuesto. Cada carácter tiene m código de 7 bits y se hace referencia a él mediante un símbolo de tres . Alternativamente. Una situación común es la de un modem que actúa como el transmisor y otro como receptor. El código tiene 128 caracteres. Los caracteres que rontrolan la transmisión se llaman caracteres de control de comunica&. asegurarse que todos los mensajes pasen en forma correcta sin errores y manejar todas las funciones de control implícitas en una secuencia de transferencias de datos. Se necesitan un par de cables para este modo. La transferencia de información ordenada en un enlace de datos se consigue mediante un pmfocolo. Los caracteres de control se utilizan para dirigir datos. Un sistema de transmisión semidúplex es uno que puede transmitir en ambas direcciones pero sólo pueden transmitirse los datos en una dirección a la vez. un circuito de dos líneas puede soportar comunicación dúplex completa si el espectro de frecuencia se subdivide en dos bandas de frecuencia no sobrepuestas para crear canales de recepción y transmisión separados en el mismo par de líneas físico. Una transmisión dúplex completa puede enviar y recibir datos en ambas direcciones simultheamente. Estos caracteres & listan en la tabla 11-4. los diez ntímeros y una variedad de símbolos especiales. Los caracteres gráficos incluyen las letras maflsculris y minúsculas. 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 información ordenada. El código que se usa con mayor frecuencia es el AKII (código estándar norteamericano para intercambio de información). de los cuales 95 son gráficos y 33 son de control. Las líneas de comunicación.

Una vez que se detecta un cariícter SYN. L . y despuhs envh el mensaje real. las dos unidades son sinanas en bits y caracteres. el car6cter SYN asignado time el d i g o de 8 bits OOOlOllO que tiene la propiedad que. el receptor ha "armado"un caracter. el receptor comprueba los tililtimos 8 bits recibidos. Cuando se utiliza el código AXII de 7 bits con un bit de paridad impar en la posicidn m8s significativa. Cuando d transmisor empieza a enviar caracte res de 8 bits. receptor reconoce estos caracteres como una cmdiión para sincronizar la línea y pasa a su estado inactivo síncrono. Además.se explica m fomia breve en la columna de fumih de la tabla. un campo de texto y . El papel de carActc?r en el control de l a transmisidn de da. El. emplea una serie continua de caracteres SYN.464 cAetruLo ONCE Organización de entrada-salida TABLA 1 1 4 Caracteres MQl de conhl de ~omunicacibn Cbdigo 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 bansrnisión Reconwimiento afiiativo Reconacimiento negativo Cmsdasilataminaleatáencendida Fin de bloque de datos Cmicter de control ~speciai ~adcter SYU h a s . En otras palabras. 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. Por l o general. con cada p h de reloj. 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 señal de ruido en la iínea. En a t e estada. envía primero unos cuantos caracteres. o s mensajes s e transmiten por el enlace de datos con un formato establecido que consiste en un campo de encabezado. cuando e l transmisor está desocupado y no tiene ningunos caracteres de mensaje que enviar. La serie continua de bits iniciales que acepta ei receptor se comprueba en busca de un carácter SYN. D e ahí en adelante el receptor cuenta cada 8 bits y los acepta como un sólo cadcter. se repite a sí mismo &lo despuh de un ciclo de 8 bits completo. ante la acwrencia de un corrimiento circuiar. aunque no se comunique infomaci6n significativa. El car6cter S Y N sirve como un agente de sincmnizaci6n entre el transmisor y e l receptor. Esto se repite despuds de cada pulso de reloj y después de cada bit recibido hasta que se reconwe un caracter SYN.

Cuando la üCC transmitida coincide con la que calcula e l receptor. Q caracter STX termina el encabezado y comunica . CRC). El campo de texto termina con J carActer ETX. Por 10 regular. Despuk eI mensaje se retransmite y se vuelve a comprobar. El carácter STX te& el encabezado y significa e l comienzo de la transmisidn del texto. 1. que comienza con cariicter SOH (inicio de encabezado). veamos m d k t e un ejemplo especifico el &todo con d cual se comunican una terminal y el procesador. Ejemplo de kansmisibn Para apreciar la funci6n de un procesados de comunicacibn de datos. Un formato de mensaje típico para un protocolo orientado a caracteres se muestra en la figura 11-25. &pués de b s caracte~s S Y N está e l encabezado. se transmite en forma serial como un c6digo binario de 8 bits que consta de un c6digo ASCU de 7 bits más un bit de paridad impar en l a octava posición más significativa. el receptor responde con un cadcter de reconocimiento negativo (NAK). incluyendo los caracteres de control. BCC) utilizado para la comprobacibn de error. p r o en g e n e d pueden tener cualquier conjunto de dos o mbs caracteres grAficoe. Cada carActer. El encabezado comienza con e l carhcter SOH y continúa con dos caracteres que especifican la d i i b n de la temimi. la respuesta es un recanocimiento positivo utilizando eI carActer ACK.SYN SYN SOH ñncabezado STX Tato ETX BCC Figura 11-25 Formato de mensaje ítpico para protwolo dentado a caracteres. Lo normal es que se intente retransmitir varias veces anks de que se conside que h h e a está defectuosa. E 1 último campo es un caracter de comprobaci6n de bloque (block check character. Los dos caracteres S Y N aseguran la sincmnizaci6n adecuada al inicio del mensaje. ta parte de texto del mensaje es variable en longitud y puede contener malesquiera caracteres ASCII. En este ejemplo particular. El encabezado consiste en uifomauón de direccidn y control. LRC) o una comprobaci6n de redundancia cíclica (cyclic redundancy check. direcci6n es T4. Si la BCC transmitida no coincide con l a BCC calculada por e l receptor. es una comprobacibn de redundancia Iongitudinal (longifudinal redundancy check. sincronizar el receptor y el transmisor. un campo de compmbacián de error. ES1 receptor acepta el mensaje y calcula su propia BCC. Se utilizan los dos caracteres SYN para. Un mensaje tipico que podrla envía= de una terminal al procesador se lista en la tabIa 11-5. La comunicaci6n con l a unidad de memoria y h CPU es similar a cualquier procesador de 'B/S. excepto los caracteres de control de comunicaci6n. h lobservar este mensaje s e descubre que hay varios caracteres de control que se usan para la formación del mensaje.

S i los dos coinciden. S i no coinciden ae retorna a la terminal un reconbcimiento negativo (NAK) que iniciaría una retransmisi6n del mismo bloque.0011 O111 OIWIO No. Si el procesador encuentra que el mensaje no tiene errores. a n a h el mensaje y prepara un mensaje de t a t o para responder a l a solicitud. Después de dos caracteres SYN. debe recordarse que cada carActer m el mensaje tiene un código de 8 bits y que cada bit se transmite en forma serial. 1234 K m LRC Fin de transmisi6n de texto Carácter de paridad longitudirtal el comienm de la transmisión de texto. Cada bit en este cadcter es un bit de paridad calculado de todos los bits en la misma columna en la sección de código de la tabla. el proeesador comprueba la paridad en cada carkter y ta&iQi calcula la paridad longitudinal.TABLA 11-5 - Transmisi6ai iípica de una termimi a proceaadar C6digo ShMo SYN SYN Comentarios Primer e c t e r s h n i z a d o Segundo sincxonizado SOH T 4 Inicio de encabezado I a ddrxeccibn de la terminal es T4 Inicio de bans-6n de texto STX ~ ~ de sddo de la cuenta h El texto d enviado BB y soiidtud para responder md sddo de ]a cuenta 1234 1011 m11 O011 o100 1000. Los caracteres individuales para este mensaje no se listan en la tabla porque ocuparían demasiado espacio. se envia de r e p m a la terminal un reconocimiento positito. En i a tabla 11-6 se lista una =puesta pica del procesador a la krminal. Los datos de texto que nos interesan aquí son "solicitar EI balance la cuenta 1234". e l procesador m o c e el mensaje p * con un c d c t e r ACK. La CPU envía una instniccih al procewdor de municación de datos para que ende el mensaje a la terminal. E l p m a d o r de comunicación de datos recibe este masaje y avanza a a n a k l o . La línea continua inactiva con un carkter SYN Mmtrhs . Usa la terminal T4 y almacena el texto asociado con el mensaje. Cuando la CPU reconme la interrupción. La LRC calculada se compara con el carActer LRC recibido. Sin embargo. El carácter de control El"X significa la terminación de h c a r a c m de texto. El siguiente carkter después de ETX es una comprobación de redundancia longitudinal (LRC). m i b e los caracteres. lo transfiere dentro de la memoria e inkrrumpe la CPU.

Se calcula un carActer LEC y se envla a la temiinal. Si la terminal responde con un cargcter NAK. Esta propiedad permite mdtiplexar a muchos usuario8 para eonsegiiir una mayor efectividad en un -S de tiempo compartido.. también está a p d o procesando otras tenninalea. impresora y dispositivos de arhiiirión visual que utilizan Transparencia de datos . ia wlddad de las k m h a b motas es atmmkwnte h t a en comparación con la ve-d del proce wdor. 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 líneas de comunicadh y atien$e a cada una por hma. 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.TABLA 116 T W i ó n M p h de p m d o t a temimi SYN SYN ACK SYN Primer cariícter sincronizado cargcter sincconizado E l procesad01 mmmce ei mensaje -o La línea inactiva . El mensaje de texto informa a la terminal que el balasice es $100. El mensaje tiene e l encabezado SOH y l a djreccibn de la tenninal T4. Mientras el procesador cuida esta terminal. También 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. d procesador xetransrnite el mensaje. Camo los se en fomia s e r i a l . SYN SOH T 4 hllneaestáinacava Iniciodeencabezado L a dirección de la terminal es T4 I n i c i o de transmisi6n de texto STX El twto enviado EY una respata de la computadora proporcionandoel saldo de la cuenta ETX L E Fin de transmisi6n de texto Carácter de pandad longitudid en espera de la respuesta.

D e otra manera. el transmisor inserta otro patrón de bits DLE después de él. Por lo tanto. Cuando la longitud de la parte del texto del mensaje es 'variable y contiene bits que se van a tratar sin ninguna xekrencia a algún código particular. La transferencia de datos se consigue en b s protocoIos orientados a caracteres al insertar un cariicter DLE {data link escape. Esta característica requiere que la lágica 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. 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. Por ejemplo. si los datos binanos en la parte del texto del mensaje tiene el patr6n de 8 bits 100M1011. se detecta el comienzo de un encabezado del cari5cter doble D E SOH. LDS mensajes m organhn en un fonnato especial llamado cuadro. 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. P d t e la transmisi6n de un flujo de bib serial de cualquier longitud sin implicar límites de caraderes. El receptor quita todos los caracteres DL.carbcter RLE &lo caracteres alfanuméricos. el r e q t o r tonía el siguiíente 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. el receptor lo considera como parte del texfo y continúa recibibndolo. se dice que contienen datos transparentes. 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. el receptor interpretar& &te como un car6cter ETX y considerar4 que se ha alcanzado el fin del campo de texto. Después el receptor debe contar la cantidad de bytes recibido6 para Uegar al final del campo de texto. Por lo tanto. por ejemplo cuando dos computadoras remotas envlan programas y datos una a la otra por un canal de comunicaci6n. escape de enlace de datos) antes de cada cardeter de control de copunicación. Un patr6n de bib arbitrario en e l mensaje de1 texto se convierte en un problema en el protocolo orientado a caracteres.E y después comprueba el siguiente paMn de 8 bits. Esto se debe a que el receptor interpretar8 de manera errónea cualquier patrón de 8 bits que pertenezca a un cargcter de control de comunicaci6n. Esto sucede. Si es otro patr6n DLE. Conforme se amplió el campo de comunicación de datos# se h a necesario transmitir información biaria que no fuera texto AXII. Además . - Protocolo orientado a bits E1 protorolo orientado a bits no utiliza caracteres en su campo de control y es independiente de cualquier o particular.

La otra es una estación secundaria. Un cuadro debe tener un mínimo de 32 bits er. Para evitar que ocurra una bandera a la mitad de un cuadro. Todas las comunicaciones en el enlace de datos son de la estación primaria a una o más de las estaciones secundarias o de la estación secundaria a la primaria. El HDLC (high-leve1 data link control. El campo de información no se limita en formato o contenido y puede tener cualquier longitud. Este Figura 11-26 Formato de marco para protocolo orientado a bits.procedimiento avanzado de control de comunicación de datos) adoptado por el American National Standards Institute son ejemplos de protocolos orientados a bits. Cuando dos cuadros están uno tras el otro. Cualquier enlace de comunicación de datos implica al menos dos estaciones participantes.y control. los campos de comprobación del cuadro. El campo de comprobación del cuadro es una secuencia CRC (yclic redundancy check. comprobación de redundancia cíclica) que se usa para detectar errores en la transmisión. un cuadro contiene los campos de dirección. El formato del cuadro para el protocolo orientado a bits se muestra en la figura 11-26. Bandera 01111110 Dirección 8bits Control 8bits informacióncualquier cantidad de bits Comprobaci6n Bandera decuadro O I ~ l I 1 1 0 16 bik .SECCI~N 11-8 Comunicación serial 469 bandera de ocho bits inserción de cero del campo de información. otra bandera o una secuencia de números 1 consecutivos. La bandera de terminación le indica a la estación receptora que los 16 bits que recibió constituyen los bits CRC.tre dos banderas para alojar la dirección. Los límites del cuadro los determina un número especial de 8 bits llamado bandera. control de enlace de datos síncrono) utilizado por IBM. La longitud máxima depende de la condición del canal de comunicación y su capacidad para transmitir mensajes largos sin error. la dirección y el control. Un cuadro comienza con una bandera de 8 bits 01111110 a la que le sigue una secuencia de dirección . el transmisor envía una serie de banderas para conservar la h e a en estado activo. Se dice que la línea está en estado inactivo cuando ocurren 15 o más números 1 consecutivos. control de enlace de datos de alto nivel) adoptado por la International Standards organizadon. Si no se intercambia información. Los protocolos orientados a bits consideran la presencia de una estación primaria y una o más estaciones secundarias. La estación que tiene la responsabilidad para el enlace de datos y que emite los comandos para controlar el enlace se llama la estación primaria. El SDLC (synchronous data link control. Al final del cuadro puede seguir otro cuadro. el protocolo orientado a bits utiliza un método llamado inserción de O. la bandera que interviene es simultáneamente la bandera final del primer cuadro y la bandera inicial del siguiente. Se envían algunos cuadros con ciertos mensajes de control sin un campo de información. control y comprobación de error. y el ADCCP (admnced data dañmun2catio~contml p~ocedure.

Despub de la bandera esa el campo de direccih que utiliza h estación primaria para designar la dirección de la estaci6n secundaria. Para hacer esto. Algunos protmlos arientados a bits permiten que se use un campo de direccidn ampiiado. El receptor siempre quita un O después de una sucesión de cinco números 1. Esta cuenta la proporciona la cuenta de envío N. Por lo tanto el patrón 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. 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.a d s se transmite un paMn 01111110 entre las banderas inicial y final. como se muestra en la figura 11-27. Un campo de dirección de 8 bits puede especificar hasta 256 direcciones. Cuando una estad611 s e a m h i a transmite un cuadro. E l campo de control viene en ires formatos diferentes. El formato de transferencia de infarmaci6n se utiliza para h transmisi6n de datos ordinarios. N . Una estacibn que transmite cuadros en secuencia cuenta y numera cada cuadro.470 cApfivrx> ONCE W c i d e i de entrada-sabia c a v o de control requiere que la eshcibn que transmite inserte un O despuk de que se sucedan cinco números 1 continuos. se desactiva m O el bit menos sigruficativo de un byte de dwcción si le sigue otro byte de direacibn. La cuenta N. Se usa un número 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. Cada cuadro transmitido en este formato contiene cuentas de envio y recibo. Esta cuenta la proporciona la menta de recibo N. la dirección le dice a la estacibn primaria cual eshción secundaria originb el cuadro. Una wtaci6n que recibe cuadros 8eeuenciados cuenta cada marco sin error que recibe. Enviar cuenta N. Como c o ~ e n c i a j.Kedhlr menta P/F E -binario tinal / .

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. Se usan para ayudar en la transferencia de infomaci6n porque confirman la aceptacibn de lcs cuadros anteriores que Uevan infonnaci6n. L . Los dos bits siguientes indican d tipo de comando.a la entrad4 CS de la primera unidad de y la sexh llneade diFemdnesiá m& a la entradaCSde la sexta unidadde interface. A esto le sigue un bit P/F y una recepcibn de menta de cuadro de secuencia. 11-1. el bit P se activa en 1. La estaci6n secundaria utiliza el campu de control para transmitir una respuesta a la estaei6n primaria. Los cuadros del formato supervisor no contienen un campo de informaci6n. L a estacibn primaria utiliza el campo de control para +car un comando para una estacibn secundaria. el formato sin numerar porque los dos primeros bits son Se 11. el campo P/F ae Iiama P (poll. Cada cuadro que envía la estación primaria a la estacibn secundaria tiene un bit de P inactiv~en O. Las cuadros de formato sin numerar se emplean para iniciaIizar funciones de enlace. Por lo tanto. colmar las estaciones en modo desconectado y otras operaciones de control de enlace de datos.13. m cinco bits de c6digo disponibles en este formato puede especificar hasta 32 comandos y respuestas. la línea de M ó n de orden superior es& wnectada.14 y 15. 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 dirección de E/S de 8 bita Cada una de las seis entradas dedeceih de inte@a¿o (CS) está conectada a una h de di& diferente. activa el bit F en l. pero se denomina F (final) cuando transmite una estaci6n secundaria. La estaci6n secundaria la utiliza para indicar el cuadro transmitido final. reportar errores de procedimiento. después Ia estad& secundaria responde con una cantidad de cuadros en la cual el bit F se desactiva en O. Mwstre el circuito externo que debe mneetapseentre la direcci6n de E/S de 8 bits de la CPU y las enkadas C$. . ' El f b a t o supervisor del campo de control se reconoce porque los dos primeros bits son 1 y O. El receptor mnfinna que se han aceptado los mareos de informacibn numerada al retornar s u cuenta N. Por lo tanto. encuesta) cuando transmite la estacihn primaria. Cuando la estacibn primaria tennina y está preparada para que responda a la estacibn secundaria. Cuando la estaci6n secundaria envía e l último cuadro.errors. a la estaci6n que transmite. comunican condiciones preparado u ocupado y reportan errores en la numeracibn de cuadros. Por lo m . La estaci6n primaria utiliza el bit P/F para encuatar a una estad611 secundaria que solicite que inicie la transmisi6n.RS1 y RSO de la interface. se u t i l i z a el bit P/F para determinar &do ha terminado la transmisi6n de datos de una estaci6n.

b. Las dos Iíneas de direcci6n de orden menor estan conectadasa las M 1 y RSO de bs seis unidades de interface. . Omitir la siguíente instrucci6n si ~ t activa á la bandera. Una unidad de interface comercial utiliza diferentes nombres para las líneas de reconocimiento a*ciadac con la transferencia de datos del . La interface de eomunieacih asincrona que se muetra en la figura 11-8 está conectada entre tma CPU y una impmra. Idover papel impreco para %ciar en siguiente página. estroboscopio)y la Ilnea de reconocimiento de saljda de interface se denomina IW (buffer de entrada ileno). Leer interface de registro de estado.d. 11-5. . Formule diagramas de temporizacibn para l-ra y escritura utiIizando un pulso de habilitacidn READ y un pulso de habilihci6n WRlTE. periférieos que produzcanuna salida aceptablepara 11-3. Obtenga un diagrama de flujo de secuencia de eventos para la kademncia del dispitivo a la interface y de la interface a la CPU. ¿Cuál es la diferencia. Una CPU con un reloj de 20 Mhz esta conectada a una unidad de memoria cuyo tiempo de acceso es de 40 nc. Liste cuatro dispositiv~s que la comprenda una p w n a . Dibuje un diagrama de bloques que m e g h e la CPU. . & A dispositivo de E/S dentro de la unidad de interface. b. Proporcione al menos aeis condiciones de estado para la especificación de bits individuales en el regisw de estado de una interface de comdcacibn asíncrona. cuando la CPU envia caracteres que se van a imprimir. Determine la direcci6n de 8 bits de cada registro en cada interface. Dibuje un diagrama de ternporizaci6n para l a transferencia de reconmia miento mutuo. c. Indique si los siguienke constituyen comandos de control. Induya la directi6n en el diagrama de tempari_zau6n. h a . .entre E/S independiente y E/S mapeada en memoria? ¿Cuáles son Ias ventajas y desventajas de cada una? 114. -I --" . 11-8. de estado o de traasferencia de dabas. C. 11-9. 11-10. 11-4.a . . Una señal de nivel bajo en Si3 carga datos vi! del canal de E/S dentro del registro de datw de la interface. e. Comprobar si está preparado el dispositivo de E/S. la interface y e l dispositivode E/S junto w n las hterconexionespertinentesentre las tres HA unidades. incluya un espacio entre los nombres y un punto despub de una inicial del wgundo nombre. 2 1 1 7 . l w a . . a.. Diiujje un diagrama de flujo que d d b a la -enda de operacionew en la parte transmisora de la interface. IBF va a nivel bajo despues de una señal de Lectura de E/S por parte de i a CPU cuands Iee e l registro de dabs. Buscar cierto tegistm e i una cinta magdtica. Eacrih su nombre completo en ASCn utühndo 8 bits por carsckr y con el bit de la extrema izquierda siempre O. Una señal 4 de nivel alto de i3F indica que la interface ha aceptado los datos. La línea de reconocimiento de entrada de interface se etiqueta STB (habilitación. .

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. Proporcione la secuencia de operaaones internas cuando se borra un dato de la FiFO y se inserta despuh un nuevo dato. Analice la dificultad que puede surgir. pero antes de que la CPU responda con el reconocimiento de interrupci6n7 .Problemas 473 tCdnt& bits hay en el registro de oorrimiento transmisor de la figura 118 cuando la . La información se borra a una velocidad de n bytes por qundo. a ¿Cuánto tiempo se necesita para llenar un buffer vado cuando m > n? b. b . ¿Cuál es Ia ventaja bhsica de utilizar transferencia de datos iniciada por InterrupEihsobre la transferencia bajo eI wntrol del programa sin interrup aones? En la mayoría de las computadoras se reconoce una internipcibn &lo despuh de la ejecuci6n de la instnieeih. Se inserta i n h c i 6 n denkm de un búffer FiFO a una velmidad de m bytes por segundo. L a máxima capacidad de bdffer es k by@. ~Cuálw son los vakres de entrada preparada. 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. ¿Cuántos caracteres por segundo pueden ixansmiürse sobre una línea de 1200 baudios en cada uno de los siguientes modos?(Considereun &diga de caracteres de ocho bib).interfaceesta conectada a upia terminal que neeesita un bit de alto? Liste los bib en el registro de