'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 . W! Suma y m t a 395 CL Multipliuwión 397 Diarisidn 399 Opacimres & punto flPtante 4~ Problemas Referencias & . mur'** - a bdn! CAP~~ULQ ONCE Organizaci6n de entrada-salida 11-1 .. . t .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 . 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' . 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 .

de RAM y de ROM 481 483 Mapa de direcci6n & memoria .~~ 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.ce de comunkwibtt mfnrrwra 425 Buffer prUnero m enirar.eremh D2MA 448 11-7 h c e a d o r de entrada-salida (iOP) Comunhci6n CPU-IOP . 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.rf.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.

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

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 .

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

los circuitos combinatonos y secuenciales. no obstante. Cubre el Algebra booieana. % ! definen SfmboIcxs paza microoperaeiones aritméticas. la computadora bhica utiliza el mismo conjunto I . lbgicas y de corrimientu.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. en los qistroe de l a computadora. m E 1 CapihSh 5 p m t a la organización y e l d i o de una computadora digital básica. . 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 . 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 . alguna expiencia en la progromacin de lenguaje ensamblador con unn miuncomputadora facilitar&Ia comprwisi6n del material. abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispodtivo de propbsito v a l con programas almacenados.P iones y las mciones ae conrroi en fonna simb6lic. El capitulo 3 muestra cómo se repmmtan en forma binaria b s diversos tips de datos que se encuentran en las computadoras digitales. sin embargo. El capitulo 2 explica en detalle la aperaci6n iópca de los componentes digitah más m u n a incluye decudifndofes. 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. Aunque 3a computadora es aericilIa comparada m las mmputadoras comerciales. 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. 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. 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 . 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.

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

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

Estos valores se procesan internamente por componentes que puedm mantener un número limitado de estados discretos.. las computadoras digitales funcionan mbs confiablemente si d o se usan d o s esMos. Por la restricci6n flsica de las componentes y porque la 16gica humana tiende a ser binaria (por ejemplo.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. A un digito binario s e le llama bit. h palabra digital implica que la información en la computadora se representa por variables que toman un número limitado de valores discretos. 9.. proposiciones de cierto o falso. . por ejemplo. se usaron principalmente para c6mputos numbricos. Las primeras computadoras electr6nicas di@akj desarrolladas a finaIes de los años 40. La informaci6n bit . h s computadoras digitales emplean el sistema r(urn6rico binario. 2 . s io n o ) . De esta apbcacibn ha surgido el término computadora digital. En este caso los elepentos discretos son los dí@toB. 1. que tiene dos dígitos: O y 1. En la grActica. proporcionan 10 valores discretos.. Los &@tos decimales O. 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.

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

como se muestca en Ia figura 1-1. impresoras. t i ' L 1 . terminales. Su funcibn es compensar las diferencias que existen entre las necesidad. varios registros para almacenar los datos y cirmitos de control para leer de la memoria y ejecutar instrucciones. Se le llama memoria de acceso aleatorio (RAM. dependiendo del interés del investigador. 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. 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.S E C C ~ ~1 N 1 Computadores digitsles 3 orgaeizaci6n de la complrfadora nible necesario para k operaci6n eficaz de la computadora. E l tema se considera a veces desde tres diversos puntos de vista. La memoria de la computadora almacena las instrucciones y los datos. La unidad central de procesamiento (CPU. 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.del usuario y la &pacidad de1 hardware. Cuando se trata del hardware de la computadora. El softwam del sistema es una parte hdispe~l~able del sistema total de la computadora. E l procesador de entrada/salida (XOP. El hardmre de la computadora se divide por lo general en tres grandes partes. 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. Lcw dqositivos de entrada y salida conectados a la computadora incluyen teclados. es costumbre distinguir entre lo que se refiere a la organizacihn de computadora. 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. central processing unit) contiene una unidad aritmdiica y 16giea para la manipulaci6n de datos. su diseño y arquitectura.

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

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

"" x a'AB $.* . OR A B - x=A+B 3 1 0 m tnwm Buhr A+-. * e".* .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 ". . ?=(m+ P xm A'B'+AB Figura 1-2 CompuertasMgicas digitales. #=A NAND 0 B x x = [AB)' . .

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

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

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. una funci6n NAND puede expmrse por o ($ + ?J). La identidad 14 no s6 aplica en el 4igebra ordinaria. En lugar de representar una compuerta NOR con un simbolo g r & OR (O)seguido de un circulo. que se tratan abajo. Por ejemplo.como se muestra en las *ra 14 y 1-5. que representa la funcibn (x + y)' ea equivalente a la funcih x'y'. La última identidad afirma que si una variable se complementa dos veces. Andlogamente. t a s identidades 15 y 16 se llaman teoremas de DeMorgan. Las identidades eniktadas en k tabla se aplican a variables solas o a las funciones b l e a n a s expresadas en tdrminos de variables binarias.Por esta raz6n las compuertas NOR y NAND tienen dos distinb shbolos grS~cos. . uno obtiene el valor origina1 de la variable. 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. 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. Análogamente. pero es muy íttil en la manipuhción de expresiones hleanas. De la identidad 5 de la tabla 1-1 encontramos que x + x = x.C'D + AB' + C'D Si x = AB' CD.Las siguientes cinco identidades (9 a 13) son similares a las del algebra ordinaria. podemos reprexatarlo por un simbofo gráñco AND precedido de clrculoa en todas sus entradas.la expresi6n puede escribirse como x + x. considere k siguiente expmidn algebraica hleana: AB' 4.

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

) x. C y la salida F. 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 .. . 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. El mgtodo de WI . ~= . considere la siguiente expresibn y su complemento 1 Y . 1-- . m p * L . Sin embargo. ta represen'tacibn de la tabla de verdad de una M 6 n es Cinica. el complemento de una función puede derivarse por medio del teorema de DeMargan. Note que el complemento de C ' es C . p r o la funci6n puede aparecer en muchas formas difermtes cuando se expresa algebraicamente. 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.la figura 19(a). ' f x. 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. Como un ejemplo. 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. La expresión puede simplificarse por medio de las relaciones bAsicas del Algebra booleana.m h expresibn complemento se obtiene intercambiando las operaciones AND y OR y complementando cada variable individual. . Cuando la funci6n se expresa en forma algebraica. Los dos circuitos son equivalentes y producen la misma relaci6n de tabla de verdad entre las entradas A.+ A- F = AB + C'D' + B'D F'= ( A 1 +B')(C + D)(B t D') *-a.T. B. La forma general del teorema de DeMorgan puede apresarse como sigue: ( x ~ X ~ X ~ . + xj + x. mapas proporciona un procedimiento sencillo y directo para simplificar las b expresiones h1eanas. 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.

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

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

* A L baww Figura 1 4 Mapa para F ( k B. . Los cuadrados wtantes marcados con 1 prbme~ ~ L 1 ~ * ~ c . 4.Hay cuatm cuadrados marcados can ntuneros &os que produce un 1 para la M b uno. . 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 .4. - figura í-9 Mapa para F(A. 2.5. ~ c d l d l i i . I h cuadrados adyacentes se combinan en la tercera columna.6). 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'. 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 .En el primer ejemplo simplificaremos la funcibn booleana E i mapa de tres variables para esta funci6n se muestra en la figura 1-8. L m cuatro cuadrados en la primera y cuarta columnas son adyacentes y representan el ténnino C'. A i ~ A . C)= Z (O. asl que producen el término AC'. 6 y 7 y se reconde la figura 1 7 @ ) . C 67). Esta columna pertenece tanto a B come a C y produce el término BC. Estos cuadradoe pertenecen a los os minimos 3. - r p m** dul . C) = E (3. 8. cada cual para los términos n .

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

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

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

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

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. Lm.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'. Nótese también que si los -tenminos mínimos "no importa" 1 y 3 no hubiesen sido induidos con los % o s . .2 y 6 y de los términos &irnos "no importa" 1 y 3.d u n t o de entradas y salidas. los valores binarim de las salidas son una combinación binaria de las entradas. diagramu se muestra un diagrama de bloques de un circuito combinatorio.en comparacibn la expmibn obtenida previamente. y entre éstas hay una interm-exihn de compuertas lógicas. Esto se escogi6 así porque esta a s i v i 6 n produce la exgmión booleana más simple. c m . Las n de bloqaw variables de entrada W r i a s vienen de una fuente extema.incluir > X.A a a i d - b t a eonsiste de los t4rmintis mínimo9 originales 0.a ' nwe'mm incI& bdas a algana de las -. 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'. 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. E n cualquier momento dado. las m variables 'W --'--" ~ ldr d e salida b i a s van a un destino externo. Adbqbut8!dtb&P 1-5 Circuitos combinatorios r . que requiere d o una compuerta AljD (Y) y una compuerta OR (O).2 5 *""*- 'Un circuito combinatorio es un arreglo de compuertas lógicas con un conm . AsI la expreaibn . -. En la figura 1-15. . Un circuito mmbirrato~o transforma la infor- . m q u e sf todos 1& m.Wmho mhimo 5 no se incluye en la M b n . 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. representa la funci6n bookana . función se determina completamente una vez que las X se asignan e l mapa a los unos o a los ceros. Puesto que los t h n h o s m h h o s 1 . El .

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

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

adyacentes. .a sumad~. Una expresi6n posible para C -a C = Ay + (x'y + q ' ) z 6Y Pigun 1-17 Mps para semisumadbr. Los mapas de la figura 1-17 sirven para encontrar las expresiona algebraicas para las dos variables de salida.22 c&ITlLO UNO CtmJtos de lógica digital TABLA 1-2 Tabia de wrdad pat.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. Cuando todos l o s bits de entrada son 0. & o &1' renglones baja las variables de &bada deignan todas las posiñles rrvn 9d I! combinaciones que pueden tener las variables binarias. Pero ya que la salida es 1 cuando un 4 -----número impar de entradas es 1 . si dos o tres entradas son igwles a 1. 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. 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. S es una función impar y representa la Aci6n XOR de las. ¿Lasalida C tiene.variabIes (véaae lo establecido al final de la s ~ d 6 n 1-21... Los cuadrados con unos para la salida S no e combinan en grupos de cuadrados .un a de 3.

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

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

La condici6n "sin cambio" puede llevarse a cabo deshabilitando la seiial de reloj o retroalimentando la salida en Ia entrada. 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.puhs de reloj--do S = R = 1 ya que produce un estado siguiente indekmimdo. Figura 1-20 Flip-flop R. Cuando las entradas J y K son ambas igual a 1. Q ( t + 1) Limpiar a O Establecer en 1 b) Tabla c n m c t d s t k .Las entradas J y K se comportan como las entradas S y R para iniciar y reiniciar el fiip-flop. 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. Esta condicih indeterminada hace al flipflop SR diflcü ¿e manejar y por 10 tanto. Aunque el flip-flop D tiene la ventaja de tener sólo una entrada (excluyendo a C). la salida del flip-flop va al estado O. Nótese que no existe una condicibn de entrada que deje el estado del flip-flop D sin cambio. El simbolo gráfico y la tabla característica del flip-flop D se muestran en la figura 1-20. respectivamente.De la tabla característica notamos que el siguiente estado Q(t + 1) se determina de la entrada D. E l fiipfeop SR no debe &ir Flip-flop D El flip-flop D (datos) es una ligera modificaci6n del flipflop SR. 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. La entrada D se muestra durante la ocurrencia de una transici6n de reloj de O a 1. Si D = 1. de manera que los pulsos de reloj conserven inalterado el estado del flip-flop. tiene Ia desventaja de que su tabla caracteristica no tiene una condición Q(f + 1) = Q(t) "sin cambio". pero si D = O. la salida del flipflop va a1 estado 1. 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.

Cuando T = 1 U = K = 1) una transici6n de reloj complementa el estado del flip-flop. 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 figura 1-21 muestra el simbolo g r á k y la tabla caracterlstica del flipfbp IK.El fiipfiop T. Este @p-flop. tiene sólo dos condicioms.ei1mte a Ia entrada S (inicio} del flipflop SR. . foggle). Figura 1-22 Flipflop T. Cuando T = O (/ = K = 0)una transicibn de reloj no cambii el &tado del flip-ficp. se obtiene del tipo JK mando las entradas J y K se conectan para proporcionar una entrad'a $ica designada por T. que se muestra en la f p r a 1-22. 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.1) = Q'(t) cuando tanto J como K s o n igual a 1. el flipflop JK tiene una ccmdici6n complementaria Q(t 4. La entrada J es equiv. En lugar de la mndicih indeterminada.por lo tanto. y la entrada K es equivalente a la entrada 8 ( r e i n i c i o ) .

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

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. Ei mdhdo es que la saiida cambia durante la trmsiciian de la h l del r e l o j de 1 a O. 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 .q. Fa tabla 1 3 enlista las tablas de excita& para lm cuatro tipos de flipflop Cada bbia consta de dos oolumnas.flfpflo~ ~mo*w~lawo *" a Otro tipo de fiipflop que se usa en algunos sistemas es el fiipflop amessclavo. 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. Este tipo de circuito consta de dos flip-&s. 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 ) .1) y wia columna para cada entrada para mostrar cómo se alcanza la transici6n requerida. La tendenaa es alejarse del uso del fiip-flop mo-esclavo y acercarse a los flipflops disparados por el flanco. 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. TabIas de excitacibn Las tablas caracteristicas de los flip-Aóps especifican el estado siguiente cuando se conlas entradas y el estado presente. Estas entradas son útiles para llevar los fiipflops a un estado inicial antes de su operación cronornetrada. i m fiipflops disponibles en c h i t c s integrados proporcionarh a veces terminales de entrada dca.

o ea lo d s conveniente. 3 1 diagrama de blques de un circuito secuencia1 sincm nizado por el d o j se muestra en la figura 1-24. en un flipflop JK.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. Adeds. Consiste en un circuito combinatorio y un niimem de fíipfiops sincronízados por el reloj. 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). puede incluirse cualquier n-ro de flip-flops. no tiene importancia si la entrada del flipflop es O o 1. Como se muestra en el diagrama.P Diagrama de blque de un circuito s e d 1 &mono con reioj. E l shbolo X en las tablas representa una condicibn "no importa" esto es. circuito completo se clasifica como un circuito secuencial. En general. pera K S O en el primer caao y 1 en el segundo. las safidas del circuito combinatorio van a las salidas externas y a las entradas de los flipflops. a su vez. Las salidas de los fiipflops. En ambos m J debe sw O. 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. el bloque del circuito combinatorio recibe seiíales binarias de las entradas exkmas y de las salidas de los flipflops. 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. Por ejemplo. . La compuertas por si mismas constituyen un circuito mbinatorio. 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. se aplican a las entradas del circuito combinatorio y determinan el comportamiento del cjrcuita. 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. pero cuando se incluyen junto con los flipfiops. 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. 1-7 Circuitos secuenciales Un circuito secuencid es una interconexión de fiipfiops y compuertas. e].

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

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

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

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

El diagrama de estado para e l circuito secuencia1 se muestra en la figura 1. Ejemplo de diseño El procabiento para diseñar circuitos secuenciales se demostrará con un ejemplo específico. D e la tabla de estado obtenemos la informacibn para conocer el diagrama del circuito 16gico. E1 estado del circuito permanece sin s u d o x = O. el estado del circuito permanece sin cambio. ~olrtador &ario. partiendo del estado M. Si x = O.m de estado de la figura 1-26 muestra claramente que. la salida es O &tras la entrada perma-a en 1 . . El estado de los flip-flops se cbnsidera como la salida del contador. 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. La entrada x es la variable de control que especifica cuándo debe proceder el recuento. E 1 diagrama k dibuja para mostrar que los estados del circuito siguen el recuento binario con tal de que x = 1. E l estado siguiente de 11 es 00.27. el cual causa8que el recuento se repita. El procedimiento de disefio consiste en traducir primero las especificaciones del ci~cuito a un diagrama de estado. 0 1 . Figura 1-27 Diagrama de estado para contador bimrio. El diagram a de estado se convierte entonces en una tabla de estado. EI contador bbinario necesita dos flip-flops para representar los dos bits. Este circuito wencial no tiene salidas externas y por lo tanto 6610 el valor de la entrada se etiqueta en el diagrama. 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.1 0 . 11 cuando la entrada externa x sea igual a 1.

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

el estado del flip-flop no cambia. Del diagrama de bloques de la figura 1-24. esto es. Además. Para m flipaops y n entradas. B y x. Procedimiento de disefio E l diseiilo de los circuitos secuenciales sigue el outline descrito en el ejemplo anterior. Las salidas son las variables Jh Kk JB y &.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). 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. 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. Así. Sabemos que un circuito secuencial consiste en un número de fiipflops y un circuito combinatorio. Asignamos entonces letras para d-ignar todos los flipflops y las variables de entrada y salida. 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. n columnas para las entradas y m columnas para el estado siguiente. 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. Si tanto J como K son igual a 0. Nbtese que las'entradas y K deteminan el y una compuerta siguiente estado del contador cuando ocurre la &al de reloj. un renglh para cada una de las combinaciones binarias del estado . notamos que las salidas del circuito cqmbinatorio deben ir a ias cuatro entradas Jh Kh JB y &. 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. la tabla de estado consistirá en m columnas para e l -do p-k. E i comportamiento del circuito se formula primero en un diagrama de estado. y procedemos a obtener la tabla de estado. Las salidas del circuito combinatorio se especifican bajo las columnas de "entrada del flip-flop". A s í .Analicemos ahora i a informach disponible en Ia tabla de excitaci6n como en Ia tabla 1-5.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. las entradas al circuito combinatoriu son la entrada externa x y los valores de estado presente de los fiipflops A y B. 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. una S-1 de reloj no tiene efecto. pueden obtenerse ahora las funciones booleanas simplificadas para el circuito combinatoria. El número de renglones en la tabla ser& hasta de 2"+". lias entradas son las variables A. cuando x = O.

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

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

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

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

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

para su identificaci6n. Conforme la tecnología de Ios circuitos inwgrados va mejorando. Un circuito intqpdo (abreviado C I ) es un pequefio cristal de silicio semiconductor. el número de compuertas que pueden fabricarae en un solo rnicrocircuito ha aumentado consideqablemente.a terminales externas para formar el circuito integrado. i m componentes electrónicos para las compuertas digitdes. liamado m ~ ~ ' t que o contiene .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. 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. Cada CI tiene una designad611numérica i m p m en la superficie del paquete. 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. La diferenciación entre los micmcircuitos que tienen ' m a s cuanlas compuertas internas y aquellm que tienen cientos o . 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.

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

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

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

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

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

. = 1 ' el dfgito oml de entrada es 1 o 3 o 5 o 7. D. cuya tabla de verdad se da en la tabla 2-2. Condiciones similares se aplican las otras dos 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. Un ejemplo de un codificador es e l eodificador de octal a binario. El codificado? puede implantarse con compuertas O R (O) cuyas entradas s e determinan directamente de l a tabla de verdad.+ D64-D. i D. una para cada digito &al.Figura 2. Estas condiciones pueden expresarse por las siguientes funciones booleanas: e m i s r& ~ . pero con m6s entradas y 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. T i e n e ocho erttradas.+ D.r e A. Las heas de salida gmeran un c6digo binario correspondiente al valor de entrada binario.+ D. h salida es A. Codificadores Un codlficador es un c h i t o &@tal que ejecuta Ia operacidn inversa de un demdificador.= D. Un codificador tiene 2" (o menos) heas de entrada y n Iheas de salida. el circuito no tiene significado. * El edificador puede implantarse con tFes compuertas OK.. de otra m e r a .= A.+ 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.

ya que seis variables de entrada pueden tener Z6 combinaciones binarias. La tercera entrada de la compuerta se conecta m 1. Esta es una tabla excesivamente larga y no se mostrará aquf. Una manera más practica de describir el funcionamiento de los multiplexores es por . Para demostrar e l funcionamiento de1 circuito. Las otras tres compuerbs AND (Y) tienen por lo -08 una entrada igual a O. Las salidas de las compuertas AND. La compuerta AND (Y) asociada con la entrada I2 tiene dos de sus entradas iguales a 1 . EI multiplemr de 4 a 1 líneas de figura 2 4 tiene seis entradas y una salida. La selecci6n de una línea de datos de entrada particular para la salida s e determina por un conjunto de entradas de &ccidn. lo que hace sus salidas iguales a O. Las dos entradas de selmi6n SIy So se decodifican para seleccionar una compuerta AND particular. U n a tabla de verdad que describa al circuito necesitará 64 renglon~. Un muitiplexor de 4 a 1 h e a s se muestra en la figura 2-4. se aplican a una compuerta QR única para proporcionar la salida iinica. Cada una de las cuatro entradas de datos de Io a 1% se aplica a una entrada de la compuerta AND. 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.de entrada y la dirige a una h a de saiida Cinica.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. considere el caso cuando S1S2 = 1 0 . 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 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. En general. y de modo similar para las otras dos combinaciones. 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 . La tabla de funcibn para el multiplexor se muestra en la tabh 2-3.Figura 2-4 selector Be datos A@&* dm medio de wia tabla de funci6n. BT multiplexor tambih se llama selector de datos. y en verdad d d i f i c a n las iheas de seleccibn de entrada. Las comptiertas AND y las inversoras del multiplexor semejan un circuito demdificador. 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. la entrada Il tiene un camino a la salida Y.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.A SeIeccibn S1 Salida so Y .

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

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

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

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. de información de las entradas a los registros se hace simul&eamente con los cuatro bits durante una finita transicidn de pulso. con .¿ 13 M o f Figura 2-7 Registro de 4 bib con carga paralela. La configuracidn 16gica de un registro de corrimiento consta de una cadena de flip-flops en cascada.

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

y no o c m un cambio de estado. 6.3. 5. Esto causa una operacidn de corrimiento a la derecha. Por ejemplo. la terminal marcada con un 1 en cada multiplexor tiene una trayectoria a l a entrada D del correspondiente fiip-flop.f l ~resultando . m Los registros de corrimiento se utilizan comúnmente para la interfaz de sistemas digitales situados remotamente unos de otros. La siguiente trmicibn de reloj transfiere a cada flip-fiop el valor b h r b que conteda previamente. N6tese que según la manera en que se dibuja el diagrama. en una operaci6n de carga en paralelo. Cada etapa consta de un flipflop D y un multiplexar de 4 x 1.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. resulta una operaci6n de corrimiento a la izquierda. Cuando el modo de control SISO= 00. se selecciona la entrada de datos O de cada multipfexor. Cuando SISO = 01. 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 . 2. Cuando SISO= 11. la operaci6n de corrimiento a la derecha desplaza los contenidos del registro en la dirección descendente. 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 . la informacidn binaria de cada entrada lo a la I3 se bansfiere al correspondiente f i p . Si la distancia enhe la fuente y el destina es muy grande. supongase que ea necesario transmitir una cantidad de n bits entre dos puntos.4. 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 -. transfiriéndose los datos de la entrada serial al fiipfiop A. Un estado de control que deje la informacibn en d registro sin cambio aun cuando los pulsos de reloj se apliquen continuamente. Cuando SISo= 1 0 . Una opera& de carga en paralelo y n h e a s de entrada asociadas con la transferencia en paralelo. n keas de salida en paralelo. y e l contenido de cada flipfiop Al transfiriéndose al flip-flop Ai para i = 1. Las dos entradas de selección S1 y So ~eleccionanuna de las entradas de datos del multiplexor para el flip-flop D. 2. ascmdente. 1 . Un registro de corrimiento bidireccional de 4 bits con carga paralela se muestra en la figura 2-9.

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

(c) complemaitando el bit de tercer orden porque los primeros dos bits de O111 son unos. como pue'de verse en l a figura 2-10. 0010. tos p u h s de entrada pueden ser pulsos de d'oj o pueden originarse de una fuente externa. 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. @) complementando el bit de segundo orden porque e l primer bit de O111 es 1 .unos. 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. M301. 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. 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.bits se acumula pueden tomarse de las salidas del registro . Por ejemplo. Los contadores se encuentran en casi todos 10s equipos que contengan 16gica digital. sucesivamente. La salida de un flip-flop no cambia si J = K = O. la cuenta binaria de O111 (7)a 1000 (8) se obtiene (a) complementando el bit de menor orden. Un circuito 'contador empleará usualmente flip-flops con capacidades complementarias. De las diversas secuencias que puede seguir un contador. la secuencia binaría directa ks ia más simple y Ia más directa. Pueden ocurrir a intervalos regulares o akatoriamente. 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. 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. y así. Los contadores binarios shcronos tienen un pamn regular.1.Lis entradas C de todos los flip-flops reciben el . Pasando a través de una secuencia de números binarios. 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. y (d) compIementando el bit de cuarto orden porque los tres primeros bits de O111 son todos . Además. Tanto los fiip-flops T como JK tienen esta propiedad.enparalelo. 0011. 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. Así. el transmisor ejecuta una conversibn de paralelo a serial en los datos y el receptor convierte los datos wriales que Uegan de vuelta a la transferencia de datos en parallo. U n contador que sigue la secuencia de niuneros binarios se llama contador binario. de O a T . como 0000.

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.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. Si la habilitacibn de contea es 0. se complementa cuando su contador se habilita y d reloj pasa a través de una transici6n positiva. - y K se mantienen en O y la salida del contador no cambia.

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

.

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

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

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

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

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

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

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

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. En este capitulo presentamos los tipos de. Los registros contienen datos o infomaci6n de control. se r e p m t a n en los registros de la computadora en forma de c6digo binario. 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. 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. Lios datos son n h e ros y otra infannaci6n en &digo biriario sobre los que se realizan operaciones para conseguir los resultados computacionales requeridos.EN ESTE 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 . y 3) otros símbolos discretos que se utilizan con pr~phitos específicos. Esto es porque los registros están formados de . En las computadoras digitales la informaci6n binaria se almacena en la memoria o en los registros del pmsador. 2) letras del alfabeto que se utilizan en el procesamiento de datos. Todos los tipos de datos.

5. m5s 4 unidades.16 shbotos del sisiema hexadecimal sbn O. Desafortunadamente. 6. C. 12. 9.736. Cuando se acostumbra representar digitos hexadecimales. decimal Sistemas numéricosi Un sistema numérico de h e .. 6. 1. Por ejemplo. El sistema numgrico bimrio utiliaa la base 2 . 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. los bimboXos A. 4. 13. E y F. es un sistema que utiliza diferentes simbolos para los digibos r. 3. tos diez símbolos son 0. D . 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.E .4. 7. F corresponden a los números decimales 10. C. 8. 6 y 7. Por eiem~lo. 4. A. B. 3. esto es. Los dos símbolos de dígito que se utilizan son O y 1. en especial el sistema.flip-flops y Ios flipflops son dispositivos de-dos estados que pueden almacenar solamente grupos de números 1 y O. respec'hvamente. 11. 1. 5. 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. más 2 decenas. Por ejemplo.5 se interpreta para representar la cantidad . o rak r. Sin embargo. Las n b e r o s se representan con una serie de símbolos de digito. D . e1 sistema de números decimales que se usa en forma cotidiana emplea el sistema de base lo.se . El sistema de nilimeros binarios es el sistema más-na#d para utilizar en una computadora digital. 8 y 9. 7 centena8. 2 3.decJmalm u e . Las. 2. los digitos se encerrarh entre paré&ds y la ba6e del nfimero se insertará cbma subíndice. En foma similar cada nihne~o decimal puede interpretarse para encontrar la cantidad que representa. B. es la forma que se ha adoptado. los últimas seis símbolos son idénticos a las letras de1 alfabeto y en ocasiones pueden causar ' conlusibn. m á s 5 dkimm. Pero en ocasiones es conveniente emplear diferentes sistemas numéricos. La serk de dígitos 724. 7. 5.utiliq para realizar cálnilos aritmCticos.4 en notación mtal se convierte a decimal como sigue: . 1 . 15. 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. 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. ' > . 14.

a binario.óB75. Esto se repite hasta que la parte fraccional es O o hasta que el número de digitos obtenido da una apmximaci6n conveniente.6875 en binario se realiza al se paca^ el ntimero en su parte entera 41 y su parte fracdonal . 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.6875 2 0.6875)10 = (101001-1011)* . 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). La W r a 3-1 muestra estos prdimientos. 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. 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. F m d h = 0. La parte fracciona1 se cpnvierte al multiplicarla par r = 2 para obtener un entero y una fracción. üe nuwo eI cociente s e divide entre 2 para obtener un nuwo d e n t e y un residuo. = (0. La nueva fraccidn (sin el entero) se multiplica de nuwo por 2 para obtener un nuwo entero y una nueva fraccibn. Este proceso se repite hasta que d cociente enteni sea O. b Por dItimo. 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. Figura 3-1 Conwrsi6n del d&cima141.0000 (4lllO ~(10IM1l2 E0.5000 x 2 1. La parte entera se convierte al dividir 41 entre r = 2 y obtener un cociente entero de u] y un residuo de 1. 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.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.6875 Eniero = 4 1 1 0 5 o 2 1 1 O o 1 mi o 0.7200 x 2 m x 2 1. las dos partes se combinan para proporcionar l a conversi6n total requerida.

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

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. Esto debe ser así por la conversidn directa que existe entre 10s nSimeras binarios y los =tales o hexadwhales.& N s i Tipos de datos 75 TABLA 3 .binarios ser6 necesaria una larga serie de digitos binarios. el n h e r o 99 decimal cuartdur. Puede expresarse en número octal como 7777 . Al comparar los números wtales y hexadecimales codificados en b i i rio con su equivalente en número binario. 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. encontramos que la combinacihn de bits en las tres representaciones es exactamente la misma. Para especificar e l contenido de registros rn&ante sus valo. 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. 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).se conviertev en binario da como resultado 1100011. 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. Si dejamos de considerar los ceros a la izquierda cn estas tres representaciones binarias. el número binario 1111 1111 1111 tiene 12 digitos. Por ejemplo. Por ejemplo. encontramos que Ia combinaci611 de sus bits es idgntica. 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.

Estas códigos. pueden contener de seis a ocho hits para cada dígito decimal. Cuando los números decimales se usan para cálculos aritmkticos internos se convierten en códigos binarios con cuatro bita por dlgito. b s númews decimales. Lw manuales de computadora siempre seleccionan la dcnominacidn octol o hexadecimal para -pacificar e i contenido de l o s mgistros. se introducen a la computadora como caracte xes alfanum6rims en código binarh. 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. . también es posible que la computadora realice operaciones aritmeticas directamente con números decimales siempre y cuando estén en forma codificada. S i n embargo. Una manera de ame giar este conflicto es convertir en números biniirios todos los números decimales de entrada. por lo pneral. de los que se hablad m á s tarde.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). 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.

Un conjunto de d i o elementos requiere un código de 3 bits.lO u 1 1 . Por ejemplo. Los 20 &@toa decimahs constituyen un conjunto de esa naturaleza. 01. 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 . pero cuando se representa en BCD. un conjunto de 16 elementos requiere un código de 4 bits y así sucesivamente. Un código binario que distingue entre 10 eIement08 debe contener d menos cuatro bib. Pueden obtenerse muchos c6digos diferates al arreglar cuatro bits en 10 combinaciones distintas.5. Este c6digo particular se llama decimal codificado en binario (binary-coded decimal) y por 10 general se representa con su abreviatura BCD. Por ejemplo. un conjunto de cuatro elementos puede representarse mediante un código de 2 bits.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.3. 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. En ocasiones se usan otros c6didos decimales. Es muy importante comprender la diferencia entre la conversi611 de números decimales biiarios y la cud@uci6ir biilarin de ndmeros decimales. donde a cada elemento se le asigna una de las siguientes combinaciones de bits 00. 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 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. se vuelve 1001 1001. pero seis de sus combinaciones no se asignarh.

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

1) . 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.1) . Por ejemplo. 10" .1 e un nnCunerri r e p m t a d o por n nueva Por e+nplo. Ahora.Para los n h a m dezimak r = 10 y r .N. - colnplenfettto a 9 El wmplemento (r -1) Woun~Nenbsserque~ndfgibos.1 = 9999 En coiisecuencia el complemrriito a nnQrneros 9 de un número decimal x obtiene al restar cada digito de 9. con n = 4 tenemos lo4 = 1000 y le .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 ) . Cuando e1 valor de h base r se sustituye en e l nombre. . lO" rep-ta un número que está formado por un 1 único seguido de n ame.elcwn~btoa(r-1)&N se dehe como (r" . por Io que el comphehto a n ú w m 9 de N es (10" .1 = 9.N.

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

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

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

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

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

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

86

CAP~TULO TRES

Repremtaci6si de datos

n h e r o s con sipo, el bit del signo se trata como parte del 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.

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

Una microoperación es una operación básica realizada sobre la información almacenada en uno o mas registros. decodificadores. Los sistemas digitales varían en tamaño y complejidad desde unos cuantos circuitos integrados hasta un complejo de computadoras digitales interconectadas e interactivas. El diseño de sistemas digitales utiliza de manera invariable un enfoque modular. Los diferentes módulos están interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones. 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. Los módulos se construyen a partir de componentes digitales como registros. El resultado de la operación puede sustituir la información binaria anterior-de un registro o puede transferirse a otro. elementos aritméticos y lógica de control.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.

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

La numeraci6n de bits en un registro de 16 bit. Los flip-flops individuales en un registro de n bits están numerados en una secuencia de O hasta n . 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). Otros nombres para registros son PC (contador de programa). las microoperacianes y las funciones de control que describen la organización interna del hardware de las computadorras digitales. Por ejemplo. porque la mayoría de las diferencias entre b s lenguaje de transferencia de registros. 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 . comenzando desde O eii la p i c i 6 n de Ia extrema derecha y aumentando los números hacia la izquierda. el registro que contiene una direcci6n para la unidad de memoria. 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. 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. Se puede apmder con facilidad otra sirnbología una vez que se familiariza uno con este lenguaje. como se muestra en el ejemplo (c).general se llama un registro de direccionamiento de memoria y se designan las letras MAR por sus siglas en inglés (rnemoy address register). para denotar la funci6n del registro. La figura 4-1 muestra la repxesentacihn de registros en forma de diagrama de bloque. IR (registro de instruccibn) y R1 (registro de pmesador). La manera mbs común de representar un registro es mediante una caja rectangular con e l nombre del registro dentro. Un registro-de 16 b i t s se divide . 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).SECCIm 42 Transferencia de registros 101 especificar las transferencias de registros. puede señalarse en la parte superior de la caja. por lo . E l nombre del registro de 16 bits es PC.en 2 partes en e l ejemplo (d). como en la figura 4l(a).1.

Representa l a necesidad de que la operaci6n de transferencia sea ejecutada s61i por el hardware si P = 1. P puede regresar a O en e l tiempo t + i. Una funcibn de control es una variable holeana. La letra n se usar4 para indicar cualquier cantidad de bits para e l registro. que es igual a O o a 1. 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.102 CAP~TULO CUATRO Transferencia de registro y microoperaciones denota una transferencia del contenido del registro R1 al registro R2. deseamos que la transferencia ocurra s610 bajo una condición de control predeterminada. La siguiente transicidn positiva de1 reloj en el tiempo t + 1 encuentra activa la entrada de carga y las. la . 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. el emhido del registro fuente R1 no cambia después de la transfe rencia. Las n salidas del registro R1 están conectadas a las n entradas del registro R2. Esto puede mostrarse mediante un enunciado si. 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. Cada enunciado escrito en notacián de transferencia de registros implica una estnictura de hardware para realizar la transferencia. En ocasiones es conveniente separar las variables de control de la operaci6n de transfemcia de registros al especificar una función de cmfrol. 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. Como se muestra en el diagrama de ternporización. El registro R2 tiene una entrada de carga que activa la variable de control P. P se activa m la secci6n de control mediante el flanco ascendente de un p u b de reloj en el tiempo t. Designa la sustituci6n del contenido de R2 por el contenido de R1. la transferencia ocurrird con cada transicidn de pulso de reloj mientras P permanece activa. Normalmente. de otra manera. La figura 4-2 muestra el diagrama de bloque de la transferencia de R1 a R2. Aunque la condición de control P se activa hediatamente después del tiempo t. Se considera que todas las transferencias ocurren durante una transicibn de flanco de reloj. Se sustituirá por un n h e m real cuando se conozca eI tamaño del rrgistro. entradas de datos de I D se cargan a su vez en el registro en paralelo. Por defini- ddn.

4-3 Transferencia de canal v de memoria Una computadora digital típica tiene muchos regiskm. Se usa una coma para -arar dos o m& operaciones que se ejecutan al mismo tiempo. 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. Los registros es& representados por letras mayCisculas y los nCimems pueden estar despub de las letras. La cantidad de alambres ser4 excesiva si se usan líneas separadas entre cada . y se deben proporcionar trayectorias para transferir infomacibn de un registro a otro. La flecha significa una transferencia de informacibn y su direccibn. 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. LQS símbolos bAsicos de la notaci6n de transferencia de registros se listan en la tabla 41. El enunciado + representa una operacibn que intercambia d contenido de dos registros durante un pulso de reloj común.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-Para un circuito lógico con pt bits. Las dos entradas de seleccibn SI y So seleccionan una de las entradas de datos del multiplexor y dirigen su valor a la salida. el diagrama debe repetirse n veces donde i =: 0. de bit que tienen O en B.l6gico.1. Los siguientes ejemplos muestran c6mo se manipulan los bits de un registro {representado por A) mediante rnimoop raciones 16gicas como una funcibn de los bits de otro registro (representados por B). En una aplicacibn tipica. Algunas aplicaciones Las micmperaciones 16gkas son muy útiles para manipular bits individuales con una parte de una palabra almacenada en un registro. Cada una de las mafm operaciones lógicas se genera por una compuerta que ejecuta la 'lbgica q d e r l d a . 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.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. 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. El siguiente qemplo numérico hace m6s clara esta opacibn: inicio selectivo . borrar un grupo de bits.1.. o insertar nuevos valores de bits en un'registro.. Pueden usarse para cambiar valores de bit. E s t o no afecia a las pasidone.n . La operaci6n & inicio selecb'w lleva a 1 lm bits del registro A donde hay uno^' mr&pdiaiks en d mgistm B. Las salidas de las compuertas s e aplican a las entradas de datos del multiplexor. tas variables de selecci6n se aplican a todas las etapas. El diagrama muestra una etapa típica con subindices i.2 .. 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.T m C U A ~ Tm&mda de registra y mimperaciom S 1 S o O m Salida &=AA3 Operaclbn .

Por l o tanto. por lo tanto los bits correspondientes de A se llevan a 1. 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 . la micmperacibn exclusiva-OR se puede utilizar para complementar selectivamente los bits de un registrador. 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. lía microoperacibn OR puede para lievar a 1 o iniciar los biis de un registro de manera selectiva. Uno puede deducir que la operación booleana ejecutada en los bits individuales es AB'. No afecta las posiciones de bits que tienen ' O en B. Por ejemplo: 1010 0010 A antes S (operando ldgico) A después Nuwamente. 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. por l o que los bits correspondientes de A se borran hácia 0. b s dos bits de A con sus ceros correspondientes en B permanexn sin alteraciones.lógico) A despds limpieza selectiva Asimismo. Por ejemplo: - 1010 E O110 A antes B (operando. 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. Uno de estos dos bits ya estaba en 1 y el otro se cambi6 de O a 1.los dos bits del extremo de B son unos. con lo cual se complementan los bits correspondientes de A. La operación de wmplemenlo selebtivo afmta a los biks en A donde están los unos mrsespondientes en B. los dos bits de la extrema izquierda de 3 son unos. 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. . 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.

120 CAP~IULO CUATRO T m f e m i a de registro y microoperaciones B. 1. O110 1010.dos bits corrqmndienb son ambos O o a m b 1. Los dos bits de la extrema izquierda pemaneeeh halteradas porque los bits conkspondienfes de B son unos. 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. supongamos que un registro A contiene mho bits. Por ejemplo. 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. y pbcas proporcionan una instrucci6n que ejecute la miaooperacl6n para limpieza selectiva. . Despub se verifica el mdhdo de todo$ O para detennhar s i los dos n5meros eran iguales. 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. 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. La operaci6n se realiza rnyante una microoperacidn OR exclusiva según se muestra en el siguiente ejemplo: Cwnda A y B son @S. La operación enmascarar es una microoperaci6n AND. La operacidn insertar introduce un nuevo valor en un grupo de bits.

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

y otro para iniciar Figura 4-11 kplazamiwito aritm6ticoa la derecha.. de sobreflujo para detectar un sobreflujo en un corrimiento a la izquierda arihética. Si V.. ~~ . debe transferirse dentro del flip-fi~p de sobreflujo con e! mismo pulso de reloj que ejecuta el corrimiento del registro. R. i~ @ m 4-11 muestra un registro tlpiw de n bik E i bit R. El corrimiento arihnktico a la iquierda inserta un O en Ro y recorre todos los otros bits a la izquierda. = 1. pero si V. es el bit maS si@ afivo del n h m y 4 ea e l bit menos sip%eakiva. al %do.-. 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. 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.y así suceivarmente para las otms bits en e1 re@m E i bit en & se pierde. -2 Puede usasse un ftipfiop V. = O. Ocurre un sobreflujo después de un corrimiento aritmktico a la izquierda si. En a t e tipo de configuracihn se necesita un pulso de reloj para cargar los datos dentro del registro.b s ni'imens ne~ativos estirt en su forma de complemento a 2. .. R. I R ~ 1- R "~ -2 1 R 1 Ro Bit de signo . -I de la p k % ne x mntiene el bit de signo. Esto sucede s i la multiplicaci6n por 2 provoca un sobreflujo.enparalelo y después ejecutar el cotrimiento a la derecha o la izquierda. .cambia su valor después del c~rrimiento. V. E 1 signo se invierte si el bit en R. antes del corrimiento.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 . 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. &be el bit de R. Por b tante Ri-2 queda igual. 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. El bit inicial & -l se pierde y se sustituye con el bit de R. 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. L i informaci6n puede t r a n s f e b a l registra . -1 no es igual a R. &.. no hay sobreflyjo. 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. . . 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.

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

los sis.124 C U A ~ Transferencia de registro y mi-peraciori~ Cuando S = 1 . S3 I shl 1 . 4-7 Unidad de córrlmiento lógico aritmético En lugar de tener registros individuales ejecutando Ias microaperaciones en forma directa. los datos de entrada se desplazan a la izquierda (arriba en el d3agrama).y salidas necesita n rnulfiplexores. La tabla de h c i 6 n en la figura 4-12 muestra cuAl entrada va a cada salida despugs del corrimiento. la cual se denomina unidad arihn4tica-l6gica. Un circuito por corrimiento con n entradas de datos . y se abrevia ALU F:igura 4-U Una etapa de la unidad de corrimiento aritrdtica-16gica. 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.

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

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

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

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

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

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

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. operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento. La organización interna de un sistema digital está definida por la secuencia de microoperaciones que ejecuta sobre los datos almacenados en sus registros. la estructura de temporización y control. El usuario de unq computadora puede controlar el proceso mediante un programa. Después se lleva a cabo. además. el diseño de la computadora. tiene la ventaja de ser lo suficientemente simple para mostrar el proceso de diseño sin demasiadas complicaciones. en detalle. puede recibir instrucciones acerca de la secuencia específica de operaciones que debe realizar. Un programa es un conjunto de instrucciones que especifican las operaciones. . La organización de la computadora se define mediante sus registros internos. y el conjunto de instrucciones que utiliza. La computadora digital de propósito general puede ejecutar varias microoperaciones y. Aunque la computadora básica que se presenta en este capítulo es muy pequeña en comparación con las computadoras comerciales.

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

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

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

La instnicci6n de direccionamiento indirecto necesita dos referencias a la memoria para buscar un operando. la segunda es para el operanda mismo. L a direccibn del operando en este caso es 1350. En la computadora que se presenta en este capitulo se utüizan los modos de direccionamiento directo e indirecto. La parte de direccibn ec el equivalente binario de 3 0 0 . d i m i d a efecfba de modo 1 = 1. El control va a la direccihn 300 para encontrar la direcci6n de1 qxrando. 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. 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. 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 . Por 10 tanto. El operando encontrado en la direcci6n 1350 se suma despub al contenido de AC.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 primera referencia se necesita para leer la direccibn del operando.

del procesador y no en la memoria.erando. las instrucciones de computadora se almacenan en posiciones de memoria consecutivas y se e j e c u h de manera secuencial. Esta$ necesidades dictan la configuraci6n del registm que se muectra en la figura 5-3. - Por lo general. El registra acumulador (AC) es un registro de procesamiento de prop6+to general. El registro de datos (DI?) contiene el operando que se lee de la memoria. Despugs continúa leyendo la siguiente instrucción en secuencia y h ejecuta y así sucesivamente.IR PC TR INP. 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 . 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 . 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.indirecto se utiliza como un apuntador a un arreglo de d a k El apuntador pu. La computadora necesita los registros del prmsador para manipular datos y un registro para contener una direccihn de memoria. Se utiliza el registro temporal (TR) para contener 10s datos temporales durante el procesamiento. 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. IA ir@ruccidn que se lee de l a memoria se coloca en el registro de instniccibn (IR). 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. E l control lee una instnicci6n de una diiecci6n especifica de la memoria y la ejecuta. Esto deja tres bits para la parte de operacibn de la instrucción y uri bit para especificar un direccionamiento diwto s! un indirecta. La unidad de memoria tiene una capacidad de 4 0 % palabras y cada palabra contiene 16 bits. 5-2 Registros de computadora -. como se hace en las computadoxas cómerciales. una a la vez. Se necesitan doee bits de una palabra de instnicci6n para especificar la direccibn de un op.& colocarse kn un regiStra .

Para leer una instrucci611. . El PC recore una secuencia de conteo y hace que la computadora lea instruccbnes 6ecuenhles almacenadas previamente en la memoria. Deben proporcionarw trayectorias para Wsferir firmaci6n de un registro a otro y entre Ia memoria y el registro. 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.unad i d 6 n de memoria. a menos que se encuentre una 'instnicción de transferencia del programa. Despub el PC se incremmta en uno.J Bus c m & del sistema La computadora básica tiene ocho registros. Una instrueei6n de transferencia del programa =licita una transferencia a una instruccih no consecutiva en >elprograma. una unidad de memoria y una unidad de control . Las palabxas de instruccibn se leen y se ejecutan en secuencia.(quese presentar4 en+lasección 5-4). contador de programa IPC) E i registro de direcGonamiento {M) de la memoria tiene 12 bits porque dste es el ancho de. 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. 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.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. El e s t r o de salida (OUTR]contiene un carade 8 bits para un dispositivo de salida. La cantidad de l í í s aerA exeesiva si s e hacen . 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.

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

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

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

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

FWJ SPA SNA SZA SZE HLT . El Bltimo bit de la instrucción estzi representado por el símbolo 1. Cuando I = 1 . dddo que e l dtimo bit es O.Lee cuatro bits de la extrema izquierda son siempre 0111. A1 mar el equivalente hexadecimál reducihia los 16 bits de un cddigo de instrucci6n a cuatro dlgitos. Los otms digitos hexadeci- . . Las instruceibnes con referencia a registro utilizan 16 bits para especificar una ope~aci6n. lo mal es el equivalente al hexadecimal7. Una instrueci6n con referencia a memoria tiene una parte de direcci6n de 12 bits. porque e l dltimo bit ea 1 . Cuando I = O.&ii rmh*folllar * & ~ I ' & Y ~ h. 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 .142 mmmmco . 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. donde cada digito h-decima1 es equivalente a cuatro bits. el dígito hexadeeimal equivalente de los altimos cuatro bits de la uistrud6n vhda de 8 a E. las iiltimm cuatro bits de una instnicci6n tienen un digito Irexadecimal equivalente de O a 6. 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.

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

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

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

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 .~rif~emenb W) Bwrar (CLR) bloj Figura 5a Unidad de control de la computadora bhica. ( N 6 M la relación entre la &al de temporizacidn y l a transicibn de reloj positiva correspondiente. 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. SC se incremehta con cada transici6n de reloj positiva. según s e muestra en el diagrama. Esto produce las secuencias y señales de temporizaci6n Tw Tp Ta Ti T4y así sucesivamente. La salida D3del decodificador de operaci6n se activa al .146 CA-O Organización y d i - de computadoras 1 1 1 1 .) Si SC no se borra.&ras entradas Salidas de mnml tttt 1 1 . a menos que su entrada CLR esté activa.

. 1. En tal caso es necesario proporcionar ciclos de espera en el procesador hasta que este disponible la palabra de memoria. 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. Se considerará que e l tiempo de un ciclo de memoria es menor que un tiempo de ciclo de reloj. Esto hace que ce active la M a l de ternprización Toen I lugar de Tg. r - Figufa 5-7 Ejemplo de d a l e a de temporizaci6n de control. 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. por lo general dura más que el ciclo del reloj del prwesador. Un ciclo de lectura o de escritura se inic-iar6 con un flanco ascendente de una seÍia1 de temporizacibn. En la siguiente transición de reloj positiva (la marcada con Tpen el diagrama) el contador se pasa a O. Para facilikr la presentacih. C.h m . 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. se usar4 la transicibn de reloj para cargar Ia palabra de memoria en un registro. Despu&. Esta relaci6n de temporización no es vilida en muchas computadoras porque el tiempo del ciclo de memoria. consi- . que podria activarse si SC s e incrementara en lugar de borrarse.

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

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

La figura 5-8 duplica una parte del canal del sistema de bus y muestra. TIa las entradas de control de los registros. 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 memoria y las entradas de seTecci5n del bus. 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. En e l diagrama se incluyen mriltiple compuertas OK de entrada.TI S2 - To SI Bus L Unldad de rnemdria Direcdn II = so 7 h r .porque hay otras funciones de control que iniciardn operaciones similares. Durante e l tiempo T3 la unidad de controI determina el tipo de instruc- .

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. 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. Los tres tipos de instniccibn p i b k de. 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 . que se dispone en la cornputadora básica se especifican en la f i a 5-5. AR t PC f T IRc-MIAR].ci6n que se acaba de leer de la memoria. ta salida del decodificador D7es. Por l a figura 5 5 determinamos que s i 4 = 1 .

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

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

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. 2. es necesario que la funci6n que se pretende ejecutar se defina con pmisi6n. e n la cual se Iistan las instrucciones. La tabia 5-4 lista las siete instrucciones de referencia a memoria. 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.deAC es cero (JC = 0) todos los flip-flops del registro son c m . Al revisar la tabb 5-2.incrementar PC una vez mAs (ailemZis. 4. . es negativo cuando ACt15) = 1.1 . AC es positivo cuando el bit de signo en AC(í5) = O. la &plicaci&nde una insímcci6n con palabras es extensa y no hay espacio disponible en la tabla para su explicacidn. El contenido . 3. Las enunciados de con& de condicibn deben reconcomo pafte. por i o generaI. que la función de las instrucciones de referencia a memoria puede definirte m forma precisa mediante la notaci6n de transferencia a registros. 5 y 6 del decodificador de operacibn que pertenece a cada instrucción se incluye en la tabla.incrementa durante la fase de b b q e d a 'eir d tiempo Td. Si MIAR] + 1 = O entonces PC c . el fiip-fiop itiicio-alto d e h iniciarse eñ forma manual. E e C . enconkamos que algunas tienen una d d p c i b n ambigua. 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]. 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.Para restalilla opwacih de la computadora. Esto se debe a que.de las cd¿lciones de control. Ahora mostrammae. La salida decodificada Di para i = 0 . PC+AR + 1 M[AR]c-'M[AR]+ 1 . se . ACt@kIR] M[AR] tAC PC+AR M[Al?l+$T. La insfrucci6n FKT borra un flip-flop de inicioalto S y detiene e l funcionamiento de1 contador secuencial.

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 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. E * C M SC + O Se usan otra vez las mismas dos seílales de temporizacibn. 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. los datos deben pasarse de l a memoria a un registm donde pueden ser operados sobre circuitos lbgiros. L a misma transicidn de reloj pasa SC a O. T4y Tg pero con el decodificadar de operacibn DIen lugar de Do el cual se utilizó para la inistrucmn AND. La suma se transfiere dentro de AC y el acarreo de> salida Cd se transfiere al flip-flop E [extenssn del acumulador).5. 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. 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. Esto es porque los datos almamad= en l a memoria no pueden procesame en forma directa. Al final de esta seccibn se presenta un diagrama de flujo que resume todas las mimooperaciones. . El resultado de la operaci6n w transfiere a AC. Se necesitan dos d e s de temporizaci6n para ejecutar la insfmrci6n. Ahora explicamos la operacih de cada instrueei6n y hacemos una h t a de las funciones de control y microaperaciones necesarias para su ejecucibn. Después de que se busea la instnioeidn en la memoria y se decodifica. a l transferir el cohtrol a l a seiíal de Wporizacibn To para comenzar un nuevo ciclo de instruccibn. 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. Las mictooperaciones para 'qsuhrla instrueddn son DITi: DR + M[AR] 4%:AC + A C f DR.

Por lo tanto.eeei6n de la siguiente instruccih en h secuencia del programa. 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. . SC +O BUN: Brinco incondicional Esta instrucci6n transfiere el control del programa a la instniccibn espeeificada por d i i 6 n efediva. esta uistnicci6n con una micreeracibn: QT4: M[AR] t AC. STA: Almacenar AC üsta inskucci6n almacena el contenido de AC en la palabra de memoria especificada por la dhecu6n efectiva. Al no condar el bus a hs entradas de AC pakmos mantener un ciclo de reloj por micrmperaci6n. La raz&npara no conectar el bus a Ias entradas de AC es el retraso que se encuentra en el circuito sumador y 16gico. El circuito sumador y Iógico m i b e informad6n de DK la cuaI puede transferirse a AC. Las microoperaciones necesarias para ejerutar esta instnicci6n son Al revisar el canal del sistema de bus mostrado en la figura 5-4 notames que no hay una trayectoria directa d d e el bus h s t a AC. 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. PC se inere~enta en el tiempo TI para prepararlo para la dii. 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. Como la salida de AC se aplica al bus y la entrada de datos de la memoria estA conectada al bus.LIJA: Cargar a AC Esta instrucción transfiere la palabra de memoria especificada por h dirección efectiva a AC. Al mtableeer SC a Q se transfiere el control a To. podemos ejecutar. primero a necesario llevar la palabra de memoria a DR y después transferir el contenido de DR a AC. Después ce busea y se ejecuta la siguiente instrucción de la direccih de meinoria proporcionada por d nuevo valor en PC. 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.

dimccidn d t ptnmo Un ejemplo nurndrico que muestra cómo se usa esta instnicci6n con una subrutina aparece en la figura 55-10. 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. 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 . El bit 1 es O y la parte de la dirección de la instnicci6n time el eq. K + AR +1 . la instruccibn BSA almacena la di&& de b siguiente. La dimci6n efectiva mAs uno se transfiere'despuésa PC para seniir como la direccibri de la primera hstrucci6n en la subrutina. que es la direccidn de la siguiente inshzieci6n en el programa (demiminada dirección de refmo). La instmcci6n BSA ejecuta Ia siguiente operacihn numérica: de esta operacidn se muestra en la parte @) de la figura. Esta operación se especificb en la tabla 5-4 con la siguiente transferencia de registro: M [ A R ] t PC. El regreso al programa original (y la di~eccibn 21) se consigue Figura 510 Epplo de la ejecuci6n de la instruccidn BSA.!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. Después de las fases de biiaqiiaquda y dwdificación. 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.uivalentebbrio de 135. PC contiene 21. Cuando se ejecuta.insktuccibn en secuencia (la cual esta disponible en PC) dentro de una pmiei6n de la memoria especificada por la direcci6n efectiva.

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

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 . Las funciones de control s e i d c a n eh la parte superior de cada bloque. Las microoperaciones que s e ejecutan durante los tiempos T4 T5 O T6 dependen del valor del &digo de la operacihn.SECU~ 5 4 instrucciones de referencia a memoria 159 todas las micmperaciones para la ejecucidn de las siete instrucciones de referencia a memoria. Esto se indica en el diagrama de flujo mediante seis trayectorias diferentes. 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. 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.

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

E l registro de salida OUTR funciona en forma similar pero la d-bn del flujo de irdoma& está invertida. y cuando se S e i n a la operaci6n activa FGO en 1. y para controlar la opci6n de interrupci6n. imprime el carácter correspondienk. Una vez que se desactiva la bandera. la infonnaci6n de AC se transfiere en paralelo a OUTR y FGO se desactivá a O. 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.Registros de *computadora Y fl~pnops I m p m o r a . para comprobar los bits de bandera. 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.= Interfaz OUTR - - r Teclado L Int& transmiswa registm de salidri en 1. La computadora comprueba el bit de la bandera. la infomci6n de INPR se t r d r e en paraielo dentro de AC y FGI se reinicia a O. Las instrucciones de entrada-salida . si es 1. El d i s p o s i t i v o de salida acepta la infomacibn codificada. puede i n t r a d u b informacihn nuwa dentro de N P R al oprimir otra teda. Mientras la bandera estd en uno. Ai principio l a bandera de salida FGO se activa m 1. si es 1 .

.

.

para que no puedan murrir m& intermpciohes hasta que se haya atendida la solicitud de i n b mipcidn de la bandera. Esto se muestra en la figura 514(a).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. Despuk el control inserta l a localidad 1 dentro del PC y a b i l i t a IEN y R . . El contenido del PC(256)se ahnacaa en la localidad de memoria O. Un ejemplo que mwtra l o que sucede durante d ciclo de intenipci6n aparece en la figura 5-14. +ea. Supongamas que ocurre una interrupci6n y R se inicia en 1 mientras el control está ejecutando la instrucción en la direcci6n 255. una pila de memoria. y R se rrinicia a O. y. Cuando el control danza la seítal de temporhci6n Toy encuenha que R = 1 .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] +. E i programador ha colocado previamente un programa de sewicio de entrada-salida en Ia memoria comenzando en la direccibn 1120. En este momentu) la d k & n de retorno 256 está en PC. PC s e inicia en 1 . 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. prmede ewi el ciclo de hkmrpciibn. una instruccibn BUN 1120 m la dirección 1.

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

El inicio del siguiente cielo de insItriccidn tiene la condicibn RT. modifica a la posición de memoria 1. y el contenido de PC es igual a 1.166 W m Organizacih y diseiio de computadoras sefíalesde temporizacibn Tw Tb o T2estZln activas.'I'G. La kercera sefial de temporizacibn incrementa PC a 1 . 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. Con la segunda seiZEal de temporizaci6n. D e otra manera s i R = 1. 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. la compubdora ejecuta un ciclo de instruccibn. Después el control recorre un ciclo de instrucci6n que busca y ejecuta l a instnickión BUN en la lacalidad 1. y desactiva IEN. el control recorre una fase de biisqueda s610 s i R = 0. Ahora modificaremos las fases de bdsqueda y decodificacidn del ciclo de instniccibn. Za razbn para hacer esto es que el tiempo en que se ejecuta la instruccidn y SC se borra a O. E1 ciclo de interrupción almacena la di-n de retorno (disponible en PC) dentro de h posici6n de memoria O. la computadora comprueba primero si existe una direcci6n indirecta y despuk continúa ejecutando la . El control regresa a la &al de temporización Todespuds de que SC se borra a O. A esto se a p k a la funci6n AND con IEN y r0'. el control reromera un cicIo de instrucci6n. E i flipflop de interrupcihn R puede iniciarse en cualquier momento durante las fases indirecta o de ejecucibn. Si R = 1 . incluyendo un ciclo de intermpci6n para la computadora básica. y el'control regresa a Toa b n a r SC a O. R y SC a O . Esto puede hacerse con la siguiente secuencia de micmpraciones: + Durante la primera M a l de temporización se borra AR a O. y el contenido de PC se transfiere al reghtro temporal TR. la direeeibn de retorno & almacena en la memoria en I a posicibn O y PC se carga a O. la computadora qecuta un ciclo de intempci6n. 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. desactiva IEN y R. Si R = O. En lugar de d o usar las d a l e s de temporizaci6n To. Si la initrucci6n de referencia a memoria.

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]

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

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

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

TR {de 16 bib cada uno) y AC. \ a Dibuje un diagrama de bloque de la computadora que muestre la memoda y los registros como en la figura 5-3.AR. 40 bits por palabra. UM eomputa$ora utiliza una memoria de 65. Tiene l o s siguientes *w: PC. ¿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. 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. (No utilice un bus consta de comh. Se ejecuta después de que l a computadora reconoceuna interrup56n mando FGO se convierte en 1 (mientras IEN = 1).536palabras con 8 bits en cada palabra. Un programa de salida reside en la memoria comenzando en la dirección 2300. 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).) b . 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 ] .5-15. 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.. 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. 3 8 4palabras. 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. IR (de 8 Wis cada m). SX 1 6 . No hay un bit indirecto.DR. 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 .si es neceario) para apegame a esta con& guraabn. Una computadora d i t a l time una W a d de memoria con capacidad de 1 6 . Dibuje la hplantiiei6n de hardware de R y la memoria en toma de diagrama de . $ 1 6 . requirimdo una direeabn de 16 bits. ¿Qué instnicci6n debe colocarse en la direcaón 1? b . 1 5-18.8 bits.Comience a partir de la señal de temprizaci6n TI 5-17. salidas de datos. Todos los operandos son de . FonnuJe un p d r m i e n t o para recuperar y ejewiar ~iristniccioms para e i a computadora. a. 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.

R Peterson. h s . F. C m p t e r Systm Conceptsand h i g n . J. Dibuje el diagrama 16gico que muestre las conexiones de las compuertas que forman las funciones de control y las entradas del fiip-flop F. 5-24.bloque. Booth. 5-20.J.Nueva York JohnWiley. NJ: P r e n b Hall. 199l. Nueva York JohnWiley.Intduction %oCompuler Enginwing.. Bedford. Gibson.A. 3a M. a & seleccionan l a entrada de control de carga de R. Computer En@'-n8. Utilice un fip-fiop ]K y minimice el 5-21.d incluye en e l diagrama y las entradas de ledura y d i u r a de memoria. G. . 1884. Derive la expresi6n h l e a n a para q (véase la tabh 5-7) M w h e que x. Denve las compuertas de control para la entrada de escritura de la memoria en la computadora básica. Hüi. C. 3. Muestre la Ibgica completa de los flipflops de interrupci6n R en la computadora básica. las entradas de selemi611 de los multipleK O que ~ uste.1980. E. E n g W Cliffs. . Digibl Syctems: ihrdware m i u r t i o n atd Lksigts. 5-25. Minimice el nGmero de compuertas. Ufilice un Bipflop JK y minimice e l número de compuwb~. 3a M. 2. número de compuertas. 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. 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). McNamara.L . el contenidode F no debe cambiar. Be& C. T . G. 1 9 8 ' 7 . y G . Mudge y J.. 5.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. Derive las compuertas de control asociadas con el contador de programa PC en l a eomputadora bAsica. PIIA:Digital M. Muestre c6mo las frinciones de control X. 5-22 5-23. 1 .

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

El hardware consta de ios componentes físicos y tado el equipo asociado.as F'rogrd6n de entrada-saüda 6-1 Introducción Un sistema de computadora total incluye tanto circuiteria (knrdwre] como progmw&n (sopzlMtre). 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. porque los das a ~ influye" b m o en d otro. Sin embargo. Emibir un programa para una computadora consiste en ~ ~ c aenr . Es preferible escribir programas con los símbolos m á s familbre3 del conjmto de caracteres alfandricos. Como consecuencia. forma direda o i n d i t a . a programas binarioa que reconozca el hardware.quienes se i n m en la arquitec tma de la computadora d&n conocer tanto l a con10 el softwm. una secuencia de instrucciones de dquina. 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. El software se mfie~ea los programas que están . ~~. si no e~ que imposible.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. ~~ . existe la necesidad de traducir los programas simb6licos orientado8 al usuario.&ritos para la: computadora.

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 .m e r a . ~ " ~ ~ ~ ~ * ~ n i n c e p ^ d e p r o g e a m a c i 6 n . 'es posible explorar la relación en& un programa y las operaciones de la circuikria que ejecutan las instrucciones. cuya organizaci6n de hardwa~ se exploró en e l capitulo 5. 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. E l primer dígito de una instruccibfl de referencia a registro es siempre 7. L ~ otras B 18 instniecione tienen un &digo de ope~aci6n de 16 bits.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. Kiten varios tipos de b g i ~ a j e s de pmgra~nati6nque uno puede . ~~ m m o Un pwama S iyia lista de instrucciones . A cada uistnicci&n asigna un shbolo de tres letras para facilitar h egcritura de programas simbólicos.de modo y el &ligo de opwacibn. El primerdigito hexndechal de ruia instrucci6n de referencia a memoria incluye el bit. la variación es de O a 6. Las primeras siete instnicciones son de referencia a memoria y las otras 18 son de referencia a registros y de entrada-salida.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. Una instnicci6n de referencia a memoria tiene tres partes: un bit de modo. En el modo indirecto. 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 . La letra M hace refemcia a 4 palabra de memmia (operando) que se encuentra en la direcci6n efectiva. E 1 primer dígito de una instrucción de entrada* es siempre F.l. 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 & . 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. 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. t)e esta . 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. Por ejemplo. ius otros tres digito~ espe5fi-n la direcci6.o enunciados para dirigir a la computadora con el pmpbito de que ejecute .~ = ~ . un c 6 d i g ~ de o p r ~ de 9 ires Pits. El conjunto d e inshucciones de ia computadora básica.184 b p m a ¿ ó n -.

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

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

Esto requerirh seis digitos por instrucci6n.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. Podernos reducir k cantidad de digitcrs por instruccibn si escribimos el equivalente odal del c6digo binario. podemos reducir cada instmcci6n a cuatro dígitas si ekribimbs el c6dQo hexadecirnal equivalente &mo se muestra en la tabla 6-3. la circuiterfa de l a computadora sólo reconoce este tipo de código de instrucciones. N o obstante. conservan su valor hexadecimal. ta ventaja de egcriiir prop. E l programa de la tabla 6-4.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í .ramas binariqs en forma octal'ohexadecirnal equivaiente debe s e r evidente a partir de este ejemplo. 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. 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. al @al que las operandos. Por otra patte.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. Es conveniente usar la representacidn hexadecimal. sin embargo. 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.

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

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

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

ciones wpeúGon operandos.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.23) = 83 + 23 = 106. 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. Un ejemplo 131 p r o p m de la tabla 6-8 es un ejemplo de un programa de lenguaje ensamblador. 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. y las tíltimas cuatro tienen seudohs~ccíones. El sustraendo es un número negativo. Esta nos dice que co- . Las tareas que ejecuta el ensamblador se m p r e n d e r h mejor si realizamos primero la traduceihn en papel. Una h e a de código puede tener o no m comentario. Comenzando desde la primera línea. encontramos una seudoinstrucción ORG. 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). y la última Cuando el programa s e traduce a código binarb y la computadora l o qecuta. Los comentarios se insertan s61o para explicar y no se consideran durante el ~~ proceso de traducción a b i r i o . tas siguientes seis líneas definen instnieciones de máquina. son útk para explicar e l programa y para comprender el pmcdhiento detallado que realiza el programa. La w t a se ejecuta al sumar el minuendo del compIwrrento a 2 del swtraendo.cci6n ORG para definir el origen del programa en la posicibn de memoria (1W)16. La primera lima tiene la seudoinstni.2 3 se convierte en + 23 y la diferenQa es 83 + (complemento a 2 de . T m ¿e las swdoinstrueel final del programa. 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. 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 . se d i z a r a una resta entre dos ndmems. Traduccihn a binario ensambtador La traducción del programa simb6Kco a biario se hace mediante un programa especial Iiamado mntblador. .

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. 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. en la tabla 6-9. 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. Luego asignamos piciones m c i a i a can paraeadaUneade~quetmgaunainstnmióndedquinau~perando . la d k x b . meontramos que el título SUB de la lfna 9 corrqmde a l a ~ i c de h la memorLa 107. El equivahte hexadechal del niunero binatio se coloca en l a posicidn 107.h e x a * de la iLIShZ1Cb6PL WiA debe ser 107.traducir. Por 1 0 tanto. El nombre M l i c o de la opaci6n es LDA. Al venfiear la tabla 6 1 encontramos que el prirher digito h-decimal de la. La -da línea time dos stnbolos. E ! simbolo END a i @ h el final dei programa shb6Zico y nos dice qw ya no hay limas por .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 . 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. SUB. Debe ser una instruccih de refmcia a memoria para estar colocada en la localidad 100. 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 . Como no tiene la Ietra I. 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. Examhmos la columna de etiqueta y encontramos este simbolo en h Unea 9. Cuando las dos partes de la instrucción se ensamblan obknemo~ el ckiigo hexadecimal 2107.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. asigpmps la posicibai 1 M 3a l a primera hsbu& despuBe de ORG. DE. No se hace ninguna traducci6n durante el primer examen. 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. instnrcción debe ser 2 E l valor biraario de l a parte de direccibn debe obtmem del súnboio de dixeaci6n SUB. 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).

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

El bit de orden superior es siempre O y los otros siete bits se +an median& ASCII. Esto hace que "elcarro"retome a su W 6 n inicial para comenzar a k c h r una nueva h . el programa simbbiiso dek almacenarse en memoria. Se utrliza un prcigrama cargador para introducir los caradel programa &¡Mlico en la memoria. El programa shnM~co de entrada se Uama prqgrattra fuente y el programa binario que resulta se llama programa objeto. su repmntacibn en la memoria debe utilizar un código de caracteres alfanuméricos.6-4 El ensamblador Un ensambfador es un programa que acepta un programa de lenguaje simb6lico y produce su lenguaje de &quina bhario equivalente. 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. 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 . El usuario telea el programa simb6lico en una terminal. 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. En la mputadora Msica cada carBcter se " p m t a mediante un código de 8 bits. A cada carácter le asignan d a dlgitos hexad&Ies que pueden convertirse con facilidad a su &ligo de 8 bib equivalente. 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 . Como el programa está formado por Antes de comenzar -- símbolos. El equivalente hexadecimal del conjunta ¿e carase lista en Ia tabla 610.

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

196 C ~ SEIS Programación O básica de la computadora Primera pasada 3. Las tareas que ejecuta el ensamblador durante la primera pasada se describen en el diagrama de flujo de la figura 6-1. Como las instrucciones están almacenadas en posiciones secuenciales.) Si la línea de código contiene un titulo. el ensamblador comprueba el símbolo del campo de instrucci6n. el contenido de LC se incrementa en 1 después de procesar cada línea de código. el ensamblador inicializa al LC en el número que sigue a ORG y regresa a procesar la siguiente linea. Si contiene una seudoinstrucción ORG. Si la línea de ckligo no tiene una etiqueta. 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. el ensamblador establece el contador de posición en O desde el principio. se almacena en la . 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. Para evitar una ambigüedad en el caso de que no estuviera ORG. contador de poskibn (LC) palabra de memoria llamada cont~dor de pcnsicibn (LC). Se analiza una línea de código simbólico para determinar si tiene una etiqueta @or la pmencia de una coma). Si la línea tiene una seudoinstrucción END. La seudoinstrucción ORG inicializa el contador de posición para el valor de la primera posición. el ensamblador termina la primera pasada y regresa para la segunda. (Nóteeseque una línea con ORG o END no debe tener un titulo. LC se inicializa al principio en O.

esperifkado mediante el contenida de L€. tabla de diredonea simbólicas junto con su ntimero binario equivalente. SUB y DIF. 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. Asignamos los siguientes nombres a las cuatro tablas: 1 . 2' Tabja MRI. MM. 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 .12. . ~a6k no-MRi. 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. 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. 4 TabIa de símbolos dg d M 6 n .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. E 1 programa tiene tres &mimes simbólicas.107 y 108. Despues tC se incrementa en 1 y se procesa una nueva lfnea de código. 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. de otra manera. Si la etiqueta contiene menos de tres caracteres. el ensarnblador genera la tabla de di&oneg simbblicas que se lista en la tabla 6. Cada shbolo de etiqueta s e almacena en dos posiciones de memoria y temina con una coma. 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. Tabia de seudoig&mcciones. Para el programa de la tabla 6-8. No se almacena nada en la tabla s i no se encuentra un título. el simbolo no puede inberpretarse.

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

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

La mayorfa de las computadoras l e dan a l programador mapr flexibilidad para escribir programas en lenguaje ensamblador. En ese caso. E i siguiente es un ejemplo de un programa Fortran que forma la suma de .no puede traducir tal simbolo porque no conme su valor binario equivalente. Por ej-10. 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.100nhneros enteros. se le puede permitir al usuario utilizar un número o un simbolo para especificar una direccibn. 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. . cornpiiadw El enuqdado número 3 se ejecuta 100 veces. Un programa de &tema que traduce un programa escrito en un lenguaje de programacibn. e l ' w m a emadlador se hace más complicado. en cada ocasión con un operando A@ diferente para cada J = 1 . Puede ocurrir otro error si e l programa tiene una direcci6n shrkdlica qUe+lamp. También pueden especificafse muchas otras 6eudoinstrucciones para facilitar J a tarea de programacibn. 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 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 .bCo apame como una etiqueta.. Los ciclos de programa se especifican en Fortran mediante un enunciado DO (hacer). . 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&&.100. Conforme el lenguaje de ensamblador se vuelve más sofisticade. Debe enfatizarse que un ensamblador practico es mucho m69 complicado que e l que e explid aquí. ' M e nacurrir otros errores y un ensamblador practico debe d-rh e imprimir un mensaje de emr para cada uno. 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. 2.. No obstant e . Muchos ensambladores le permiten al usuario 4 c a r una d b x i 6 n mediante una expqesi6n acitmttica.

6 ~ 65 CM-. E i valor de los opermdo~ está determinado a partir de un enunciado de entrada (no listado en d programa). Esto se aealka mediante la seudoinstrueti6n ORG en la línea 18. que eerpecifiea d or@m de ~ Q Soperanda El primer y el último operando se listan con un número decimal especifico. 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. H i primer enunciado del programa Fortran es un enuiciado DIMENSIUN. 0uN LOP STA HLT m 1 5 0 m 0 ' DEC-100 j ~ k c e n a suma r m. las localidades de la (150)16 a la (1B3)16para los 100 operandos. =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. 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. aunque estos valores no se conocen durante la compilaci6n. Si fueran del tipo real. El segundo enunciado infama al m p i h d o r que los números son enteros. Supongamos que e f compilador resma localidades.0 /Fin del programa slmbbiico . astos dos enunciados no son ejecutables y son similares a las swdoinstruaeiones de im lenguaje ensambiador. del pmpma 201.. PTR. 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. Este enunciado instruye al compilador para reservar 100 palabras de memoria para 100 operandos. m SUM.

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

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

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& .

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

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

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

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

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

La subnitina SH4 debe =tomar a la h l i d a d 102 después de que finahe su m . La Uistnicción BSA esta en la lacalidad 101.Esto se hace al enmascarar FPPO con e l contenido de AC. 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).ddinida por la M 6 n simb6b SH4 (la cual es 109). .Cuando se ejecuta la instruccihn BSA. l a unidad de ccmtrol almacena l a direccibn de retomo 1 Q 2 dentro de la posici6n. Para realizar una operación de desplazamiento lógico bs cuatro bib de orden menor deben iniciarse en c e r o . E l cálculo de l a subrutina circula el c o n ~ de o AC cuatro v a la izquierda. también transfiere el valor de SH4 + 1 al contador del programa. 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.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. 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 siguiente imlmccí6n que se encuentra a BSA SH4.

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

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

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

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. introducir carácter OUT /Escribir carácter STA CHR /Almacenar carácter HLT CHR. ramificar para comprobar de nuevo /Bandera = 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 retorno hacia el programa principal es a la instrucción HLT. Un carácter codificado en binario se transfiere al dispositivo de salida cuando se ejecuta una instrucción OUT (salida). La instrucción SKI comprueba la bandera de entrada para ver si hay disponible un carácter para la transferencia./Bandera = O. HEX 0057 /El carácter es "W" . sacar carácter HLT CHR. los datos requeridos están en el bloque que comienza desde la posición 200. 200 y -16 desde el programa principal y los coloca en su propia posición de almacenamiento. Cuando la subrutina completa su operación. 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. La primera parte de la subrutina transfiere los tres parámetros 100. La tabla 6-19(a) lista las instrucciones necesarias para introducir y almacenar un carácter en la memoria. El dispositivo de salida detecta el código binario y escribe el carácter correspondiente. Los datos se transfieren haeia y desde sus bloques mediante el uso de dos apuntadores. El contador asegura que s610 se muevan 16 datos. 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. b) Sacar un carácter LDA CHR COF. La primera introducción es una llamada a la subrutina MVE. SKO BUN COF OUT /Almacenar carácter aquí /Cargar carácter dentro de AC /Comprobar bandera de salida /Bandera = O. BUB CIF . brincar para comprobar de nuevo INP /Bandera = 1 . El tamaiio del bloque es de 16 palabras. Un carácter codificado en binario entra a la computadora cuando se ejecuta una instrucción INP (entrada).

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

La primera dirección del buffer es 500. 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.posici&n FEF). El programa utiliza un apuntador para llevar un registro de la posici6n achtalmente vacía en el buffer. /Sumar segunda palabra /SaItar s i AC B cero CMA INC ADD WD2 SZA m. 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. N6tese que se solicita la subrutina IN2 de la tabla 6-u) para introducir y empacar los dos caracteres. m. empacar dos caracteres en una palabra y almacenarlos en el buffer. 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.- BUN UEQ BUN EQL /Brincar a rutina "diferente" /Brincar a rutina "igual" . 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.macenarpalabradedoblecatackrenelbuffer /Incrementar apuntador /Ramificar para i n d u c i r rnhs caracteres /Primera direccibn de buffer /Pasieibn para aputitador ADS. No se u t i k un contador en el programa.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. El primer cardckr doble se almacena en la p~sici6n 500 y todrw los caracteres se almacenan en posiciones secuenciales. 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. 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. 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 debe incluir una instruccibn IOF para apagarh. h p u & se ejecuta k inskmcción de la ledidad 1. El ciclo de espera que comprueba la bandera mantiene ocupada la computadora con una tarea que emplea una gran cantidad de tiempo. La opción de interrupcihn es dtil en un ambiente de multiprogramaci6n cuando residen dos o mas programas en ia memoria al misms tiempo.) La opcibn de intwnrpci6n permite que el programa principaI avance hasta que el dispositivo de entrada o salida active su bandera como lista. La ventaja de utilizar la interrupción es que la transferencia de infmaci6n se inicia cuando hay una sdicitud de un dispositivo externo. la computadora completa la ejecuci6n de Ia btn-icri6n en procm y despuk reconoce la interrupción. Si no se usa la opcibn de inkrrupcidn. Mien tras tanto. i a computadora no tiene nada qué hacer. Este tiempo de espera puede eliminarse si se utiliza la opci6n de interrupcidn para notificar a la computadora cuando está activada una bandera. si no reside otro programa en la memoria. las palabras no aon iguales. Es obvio que. Si el multado no es cero. Cuando ocurre una coincidencia.saber si contiene cierto símbolo. a rutina de servicio puede almacenarse en cualquier parte de i a memoria siempre que . El mltado de esta acci6n es que la direceibn de retorno se almacena en la locaiidad 0. la computadora puede ocuparse en ejecutar otras tareas útiles. El programa puede servir como una subrutina en un programa de b-ueda de tabla. aunque dos o más programas pueden residir en Ia memoria. el ensamblador recupera el valor binario equivalente. Cuando una bandera esta activada en 1. En la tabla 6 2 2s e lista un programa para comparar dos palabras. La búsqueda puede realizarse al comparar d símbolo dado con cada uno de b s slmbols ahcenados en la tabla. 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. Si el resultado es cero. (131 intemrptor de mcmdido' de la computadora podría también apagar la intermpci6n. Xnterrupcibn del programa El tiempo de ejmsci6n de programas de entrada y salida se f o m sobre todo del tiempo que necesita la computadora para esperar al dispositivo externo para que active su bandera. El programa que corre debe incluir una uisttucci6n T O N para atender la interrupción. 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. esto inicia una rutina de ~ervicio para la transferencia de entrada o salida. Por lo general los otros programas esperan datos de entrada o salida. i . las dos palabras son iguales y ocurre una coincidencia. así que bien puede comprobar las banderas. La btkqueda termina cuando ocurre una coincidencia o cuando ninguno de los simbolis coincide. S6Lo puede ejecutarse un p&ama en un momento dado.

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

/La W w a estd apagada. SE. 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 . Pueden usarse interrupciones con otros pmp6sitos. comprobar siguiente bandera /La bandera eskA activada. 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. Además. 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. Rl. 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.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. como para procesar v r e s internos o candiciona de alarma especial. 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. m. .

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

comenzando desde la localidad A. 9 . 6-10. Esto es si& al enunciado de Fo&mn DIMEMIDN A(10). th Muestre que una palabra de memoria almacena el &digo b i i r i o tradu6-7. Iddifique el diagrama de flujo de la figura 6-1 para procesar '&a seudoinstruccibn. >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. y al enunciado 30 si A . 64. Demuestre cdmo pueden almacenarse en memoria las tablas MRI y no-m. al enunciado 20 si A . cido y proporciona su contenido binario. infoma d ensambladar que va a quedar l i W un bloque de 10 (decimal) loalidada.B = O. 6-11. 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. . ~Guá1 es el valor de la posición CXR cuando se detiene la computad~ra? b. a. Explique en palabras qu4 realiza el siguiente progcama cuando se ejecuta.B > 0. Muestre que se necesitan las cuatro palabras de memoria para almacenar la línea de d i g o y pmprcionar su contenido binario. 612. Liste el programa traducido en hexadecimal. 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.B <O. 6-8.6 4 6-5. b . 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 . b t ee l d i g o hexadwimal del programa traducido. Obtenga la tabla de direcciones simbblicas generada para el programa de la tabla 613 durante la primera pasada del ensamblador. a. c. la línea de d i g o 6 .. ¿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. Una llnea de código en un programa de lenguaje ensamblador es como sigue: DEC -35 a. Por ejemplo. Liste la tabla de direcciones simbb1ieas que se obtiene durante la primera pasada del mnibtdor.

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

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

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

Las variables de control pueden . decodificadores y unidades 16gicas arh&tieas. 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. La micrdprogramaci6n es una segunda altemativa para dheñar la unidad de control de una mrnpubdora digital. 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. mientras otras q~edaninactivas.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. El ~ t a d o activo de la variable de control puede ser el estado 1 o el edtado 0. Durante cuaIquier momento. se van a iniciar ciertas microoperaciones. 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. h unidad de control inicia una serie de pasos -&les de rnicroope raciones. En un sistema organizado con bus. La cantidad de tipos de operaciones dife rentes que estdn disponibles en un sistema dado es finita. las seirala de control que especifican micmperaciones son grupos de bits que seleccionan las trayectorias en los multiplk* res. según la aplicacidn.

La memoria principal estli disponible para que el usuario almacene programas. la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar. La microinstrucción especifica una o más microoperaciones para el sistema. que se denomina palabra d e control. Las palabras de control pueden programarse para realizar diferentes operaciones sobre los componentes del sistema. para evaluar la dirección efectiva. desde un disco magnético.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. El contenido de la palabra en ROM en cierta dirección especifica una microinstrucción. Cada instrucción de máquina inicia una serie de microoperaciones en la memoria de control. Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero.de la memoria principal puede variar cuando se manipulan los datos y cada vez que se cambia el programa. Estas microinstrucciones generan las microoperaciones para llevar a cabo la bfisqueda de la instrucción en la memoria principal. por lo general. La memoria de control se considera como una ROM. El microprograma consta de instrucciones que especifican diferentes señales de control interno para la ejecución de microoperaciones de registro. se utiliza para lectura. En contraste. Una memoria que es parte de una unidad de control se denomina memoria de control.' Una unidad de control cuyas variables de control binario se almacenan en la memoria se llama unidad de control microprogramada. 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. Cada palabra en la memoria de control contiene una microinstrucción. El registro de direccionamiento de la memoria . 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. por ejemplo. para . Las palabras en ROM se vuelven permanentes durante la producción de la unidad. La configuración general de una unidad de control microprogramada se muestra en el diagrama de bloques de la figura 7-1. dentro de la cual se almacena toda la información en forma permanente. Una computadora que emplea una unidad de control microprogramada tendrá dos memorias separadas: una memoria principal y una memoria de control.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 secuencia de microinstrucciones constituye un microprograma. Como no se necesitan alteraciones del microprograma una vez que la unidad de control está en operación. El contenido . la memoria de control puede ser una memoria de sólo lectura (ROM). Las unidades de control que utilizan la microprogramacibn dinámica emplean una memoria de control en la que se puede escribir. Un descubrimiento más avanzado conocido como microprogramación dinámica permite que un microprograma se cargue al principio desde una memoria auxiliar.

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

es la de la primera microinstmcci6n que activa la rutina de bdsqueda de instrucci6n. con el valor & la direcci6n como entrada y la paIabra correspondiente como sdida. Control de iínew internas 7-2 Secuencia de la direccion tas ~roinstnzcuones . 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.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. Los otros dos componentes: el secuenciador y la memoria de control son circuitos combinatorios y no necesitan un reloj. El contenido de la palabra especificada en ROM permanece en hs Iineas de salida. una vez establecida la confiracibn de la k u i t e r f a . Esta direccidn. Para apreciar la secuencia de la direcci6n en una unidad de contmI de programa. En el ejemplo que sigue consideramos un reloj de una sola fase. nb Se carga una dhcci6n inicial en el registro de direccibn de control d m d v nhm e mando se enciende la computadora. La configuraci6n de la circuikría no debe cambiarse para diferentes operaciones. No se necesita d a 1 de lectura como en una memoria de acceso aleatorio. 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. por 10 tanto no utilizamos un registro de datos de control.se almacenan en la memoria de control en grupos. L a principal ventaja dd control micropmgramado es que. en bnto su valor de dirección se encuentra en el registro de direcci6n. y rutina. no hay necesidad de cambios' posteriores. todo l o que necesitarnos hacer es especificar un conjunto de miccoinstnicciones diferentes para la memoria de control.mmputadora tiene su propia rutina de microprograma en la memoria de control para generar las miamperaciories que ejecutan la instrucción. lo único que debe cambiame es el rnicroprograma que reside en 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. cada grupo espeeüica una . por b general. ti L a rutina de bdsqueda puede sscuenciarse al incrementar el registro de direccionamiento de control por medio del resto de sus microinstrucciones. D e esta manera. Si desparnos establecer una secuencia de control diirente para el sistema. Cada instrucci6n de. 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. enumeremos tos pasos que debe seguir el control durante la ejecucidn de una ittstrucci6n de computadora.

la men'oria de control m n e la rutina que determina la dkeccibn efectiva del operando. Un procedimiento de mapeo es una regla que transforma e 1 cMgo de instnimi6n en una direcci6n de memoria de control. i m microprograma3 que. la inatmEi6n está en el registro de instrucción de 12L computadora. 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.en la memoria de conkm1 mediante iina mic~oi~strucei6n de brinco. las microinstrucciones que ejecutan la instniccibn pueden uenciarse al incrementar el registro de diicionarniento de conMI. Una opcián para ilamar y regresar solicitud de una subrutina y retorno. como un direccionamiento indirecto y los registros índice. el control deke retomar a la rutina de biíqueda.dirección para una memoria de control 4. 'Transferencia de control del programa condicional o incondicional. Cuando se termina la ejecuci6n de la instrucci6n.mapeo Al f i l de la rutina de búsqueda. Cada instrucci6n tiene su propia rutina de micropmgrarna almacenada en una cierta posici6n de la memoria de control. pero en ocasiones la secuencia de microoperaciones dependerA de los valores de ciertos bits de estado. h d i i d n del operando está disponible en el registro de direccionamiento de la memoria.y Ioe registros del procesador. la cual está ~wndicionadaal estado de los bits de modo de la operación. Puede lograme una rutina de c8lculo de direccin ektiva. dependiendo de las condiciones de los bits de estado. 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. La rnic~~instrucción en la memoria de control contiene un conjunto de bits paTa iniciar micmperaciones en las registros . Una instrucci6n de máquina puede tener bits que especifiquen diferentes modos de direccionamiento. tas direcciones de retorno no pueden almacenarse en RQM porque no es posible escribir en la unidad. las posibilidades de secuencia de direcci6n que se requieren-en la memoria de control son: EL Incrementar el registro de direccionamiento de control. 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. Una vez que se llega a la niti a querida. Cuando se M n a la rutina de c4lcuh de direccidn efectiva. 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. En seguida. 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. 3. En resumen.emplean subrutinas requerirán un registro interno para almacenar la d i d 6 n de retorno.

La transferencia de control del programa se consigue al esp~ificar la direcci6n en uno de los campos de Ia microinstmccibn. para seleccionar la microinstrucci6n siguiente en secuencia. El diagrama muestra cuatro trayectorias diferentes de ias que recibe la dirección el registro de direccionarniento de contra1 (CAR). Se transfiere una dilección externa a la memoria de control mediante un circuito 16gico de mapeo. 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. IA dirección de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza despub. Figura 7-2 Celección de una direcci6n para la memoria de control. DireEcion de transferencia de control .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.

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

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

as tarea del diseibdor generar el microc6digo para la memoria de corttrol. Pueden ahorrarse microinstrucciones al emplearse subrutinas que ~rtilizansecciones comunec de microcódigo. 1La unidad de control tiene un registro de direccionamiento de control CAR y un registro de subrutina SBR. 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. e n se m u e s t r a en la figura 7-2. aqui presentarnos una computadora digital simple y c6mo se programa. muchos microprogramas contienen secciones de c6digo idbnticas. el e t r o de direccionamiento AR. Consta de dos unidades de memoria: una memoria principal para almacenar instrucciones y datos y una memoria de control para almacenar el micropm grama. Con frecuencia. 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. Por ejemplo. 9 ' Configuracibn de la computadora El-pmgrama de bloque de una computadora se muestra en la figura 7-4. . Los regisiros del prpcesador son el contador de programa PC. Para apreciar este prweso. 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. 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. 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. 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. b k a generacih de código se llama microprogramacih y es un proceso similar a la programacibn de lenguaje de miiquina convencional. 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). p m r a en salir (LIFO).registra de subrutina del microprograma. el registro de datos DR y el registro acumulador AC. La memoria de control y sus registros se organizan como una unidad de control mkroprogramada. Se asoeian cuatro registros con la unidad del procesador y dos con la unidad de controI. Esta =uencia podfla s e r una subrutina que se solicite en cualquier rutina para ejecutar el dlculo de dire4411efectiva. El uso de una pila en ilarnadas y regresos a subrutina se explican con mayor detalle en la sección 8-7.

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

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

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

I -6) +O + .mroen AC Función BR M I 01 1 0 11 Slmbolo JMP CAU. CAR(0.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. 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.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. 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.

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

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

La primera direcci6n para las otras 13 rutinas está en los valores de dirección 12. La ejecuci6n de la tercera mfcrainsthcci6n (MAP) en la rutina de búsqueda da como resultado un brinca a la dimcibn Oxxxx00.. si la instmccidn es una ADD cuyo código de operaciSn es 0000. Por ejemplo. 60. El modo de direccionamienbs Micropxogama simbólico .. donde xxxx son los 'cuatro bits del código de operacibn.ronvmdones del lenguaje ensambIador definidas antes. La representaci6n de Eransfe rancia de registros muestra las operaciones de transferencias de registros internas que implantan cada miczoinstrucci6n. 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. 2 0 . respectivamente. tos valores de bit se obtienen de la tabia 7-1. la cual es la direccidn de inicio para Ia rutina ADD en la memoria de control.dqpu4s.Esto proporciona cuatro palabras en la memoria de control para cada rutina. . 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. En cada rutina debernos proporcionar micminstrucciones para evaluar la direccibn efectiva y ejecutar la instrucción. 16. La primera dimi611 para la rutinas BRANCH y STORE son O O001 0 0 (el decimal 4) y O O010 00 (el decimal 8). 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. utilizar un programa ensamblador para obtener una traduccihn a binario. ! % acostumbra ecribir microprogramas en forma simbblica y . la microinstmcci6n MAP transferirá a CAR la d k c i b n 000000Q. La mpresentaci6n binaria es el contenido real que de la memoria de control.

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

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

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

ser4 prhetico saltar a la direcci6n 64. P&OB hahr especificado &lo dígitos O en la palabra porque esta posicihn nunca se utilizar6. la ROM se sustituye con una RAM. También aumenta el tiempo de retardo de . 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. El microprograma binario que se lista en la tabla 7-3 especifica el 7-4 Diseño .dela unidad de control Los bib de la microinshuccibn por lo genera1 se dividen en campos. - ihi A b I contenido'de la paIabra de la memoria de control. 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. 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.La anterior puede retirarse e insertarse una nueva en su lugar.la dhwcidn 3 no se usa. la lista binaria de microprograma proporciona la tabla de verdad para fabricar la unidad. 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. S i embargo. Cada campo requiere un decodificador para producir las e l e s de control correspondienws. 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. Sin embargo. Cuando se utiliza una ROM para la memoria de control. Los diferentes campos que se encuentran en los formatos de instrucci6n proporcionan bits de control para iniciar microoperaciones en el sistema. 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 - . 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. es necesario generar un nuevo microp~~)grama y "enmascarar" una nueva ROM. debe especificarse al* valar binario para cada palabra en la memoria de control. y cada campo define una funci6n separada y distinta. La ROM est4 hecha de I C que pueden reemplaza= cuando es necesario y sustituirse por otm. Si se utiliza una memoria de control en la que s e pueda escribir. Los bits de la ROM se fijan una vez que se funden los enlaces internos durante la producción 'de la circuiterla. 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. Para modificar el conjunto de instrucciones de la computadora.

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

al igual que existen grandes unidades ROM disponibles en encapsulados de circuitos integrados. respectivamente. ADD Y DRTAC. como se muestra en la figura 7-7. Idgfcn y de com'mhnto m. las &lidas 5 y 6 del decodificador FI están conectadas a la entrada de carga de AR.) hay una transfemcia de PC a AR {representado mediante PCTAR). Sin embargo. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direcci6n para h memoria de control.Cbrno se muestra en la figura 7-7. . Para garantizar un amplio-rangode aceptabilidad. un secuenciador de circuitos integrados debe proporcionar una organizacidn interna que pueda adaptarse a un amplio rango de aplicaciones. y DR en la figura 5-19. Puede construirse un secuenciador de mimoprograma con funciones digitales que w? ajusten a una aplicacidn particular. estas entradas pwveridrdn ahora de las salidas de loa decodificadores asociadas con los símbolos AND. se transfxera a AR la informacibn de los multiplexores. La transferencia a AR ocurre can una transici6n de pdso de reloj sólo cuando* estiin activas las salidas 5 o 6 del decodificadox.de direccidn se llama muenciador de microprograma. para que cuando una de e k s esté activa. 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. La unidad de corrímiento lbgico aritmetico puede di&rse como en lm figuras 5-19 y 5-20. 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. 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. L s otras salidas del decodifkador que inician transferencias entre registros deben conectarse en fomia similar. De igual manera.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). 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. Semenciador de dcroprograma Los componentes básicos de una unidad de control minoprogramada son la memoria y ios circuitos que deccionan la direcci6n siguiente. 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. 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. Los muitipIexores seleccionan la información de AR cuando está activa la salida 5 y de PC cuando estd inactiva la salida 5. L a parte de seleccibn.

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. E l primero selecciona una direecibn de las cuatro fuentes y le marca una ruta hacia dentro del registro de direccibn de control CAR. El djagrama de bloque del semendador de microprograma se muestra m la figura 7-8. Hay das multiplexotes en el circuito. de la salida de SBR y de una fuente externa que Figura 7-8 wuenciadw & micrqprogramp r a una memoria de mnhol. 1 Externa . 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. 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. El segundo multiplexor prueba el valor de un bit de wtado wleccianado y el resultado de la prueba se aplica a un circuito 16gico de entrada. La salida de CAR proporciona la direecibn para la memoria de contral.

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

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 . sino un circuito combinatorio construido con compuertas. ~Cu4nbs bik hay en el campo ~d&&t de transferencia de control y en el campo d e s e l d i ' . una compuerta OR y un inversor. 10 ns para iransferir la mieroinshccibn al registro de datos de ejecutar 4 s dcr6cperaciongs requerGas que se e s @ ~ontroI~y 40 m h n mediantela palabra de m n ~ l . ~ C u A esll a d x i m a frecuencia de reloj que puede utilizar el control? 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. 18 ns para para.en cascada una serie de circuitos semisumadores (véase la figura M). c) rnimpmgrama: d) m i d i p . - .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).un.E l acarreo de salida de una etapa debe aplicarse a l a entrada de la siguiente. 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.~40 ns para accesztr la ROM de memoria de control. b) microinstnieei6n.transferir la direcci6n al q i s b de direcciona~m de ~ control..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.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. 7-1 7-2 7-3 74 ?* ¿Cual es la difapnciá entre. Puede diseñarse un incrementador de circuito combinatorio al poner . N6:tese que e l circuito incrementador del secuenciador de la figura 7-8 no es un contador construido con flipflops. Una entrada m la primera etapa menos significativa debe ser igual a 1 y próporeionar la operaci6n de incrementar en uno.

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

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

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

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

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

Cuando se incluye una gran cantidad de registros en la CPU es más eficiente conectarlos mediante un canal de sistema común. 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. modos de M ~ h $ m h tel ~cijnjdto . direcciones de retorna. la CPU. 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. resultados temporales. Este c&pítulod 4 la arganizaci6n y arquitectura de la CPU con énfa& en el punto de vista del usuario de la computadora. la estructura de memoria. 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. l~mitoo de ihstrucciones. El usuario que programa la computadora en lenguaje ensamblador o de n 8 p k a debe tomar en cuenta el conjunto de registros. . en gran parte. 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. Desde el punto de vista del diseñadw. LA última sección presenta el concepto de computadora can conjunto de instrucciones r e c i d 9 i (Rzsc). y productos parciales durante la mdGplicaci6n. e hstrucciones y la organizaci6n general de los registras J. En los capftulos S y 7 se desarrollaron ejemplos del diseño de unas CPU simples. sjnD también mientras ejecutan diversas micrmperaciones.. contadores. 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. 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. representa la eleccEon de la circuitería para implantar las instrucciones de m8quina. Es m8s conveniente y eficiente almacenar -tos valom intermedios en registros de procesador. Por I o tanto. lógicas y de corrimignk.! g~ el p m d o r . el tipo de datos que soportan las instrucciones y la funci6n que reaZXza cada instnicci6n. E l diseíto de una CPU es una tarea que. el conjunto de instruccione de k computadora proporciona las especificaciones para el d i d o de h CPU. 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.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. E i f o inüu e l a . Los registros se comunican uno con el otro no m510 para transferencia directa de datos.

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

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

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

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

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 . Este tipo de control se denomina control microprogramado. ta dtim charola que se coloca en la parte superior de la pila es la primera que se vuelve a tomar. 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). En las computadoras digitales. es evidente que pueden generarse otras muchas mimooperaciones en la CPU. A l leer palabras de control consecutivas de la memoria. La operación de una pjla puede compararse a un racimo de charolas. 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. ' 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. piia a lista iiltim~ en entrar.k 3 R2 R4tR4VR5 Rd R6GR&+i R6 m R7eA. En Ia figura 7-8 se muestra una unidad de coiitrol microprogramado. La palabra de control binaria para la CPU vendr6 de Ias salidas de la memoria de control marcadas con "mimooperacionestt.P' &Salida &R2 . Puede borrave un registro a O con una operación 0 R exclusiva.. 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. primero en salir (LTFO). La manera más eficiente para generar 'palabras de control con una gran cantidad de bits es almacenarlas en una unidad de memoria. Una unidad de memoria que almacena palabras de mtcoI denomina memoria de control. A partir de estos ejemplos. Esto se debe a que x @ x = 0 . 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).Salida *Entrada Rl E Entrada - R3 R5 R1 R4 R6 E ? Ninguno Ningnr. a través de la ALU. El registro que contiene . es posible iniciar la secuencia deseada de microopexaciones para la CPV. en las terminales de Alida.

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

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

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

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

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

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. Para la expresi6n anterior encontramos el operador * después de A y B. denominada notaci6n polaca inversn (ñPN) colma el operador después de los operandos. Ejecutamos la 0peraeiSai. Quite los dos operandw y el operador y wstittiyah por e l número que se obtiene de1 resultado de l a operaci6n. con RRN frecuencia denominada notaci6n polacnI coloca el operador antes de los operanda. 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.de los padntesis internos.por lo que ejecutamos C * D y obtenemos una instnicci6n con dos operandos y un opekdor: * H siguiente -radar com~wdn ri RPN es + y los dos operandos que S& van a sumar san los dos p r o d w I asi que mimamas las dm cantidades para obtener el mltado. La conversicin de nobcidn interna fija a notaci6n poiaca inversa debe considerar la jerarquia operacional adoptada para la notacibn interna fija. E l sfguiente operador es m y sus d& operado. Cuando w encuentra un operador. ejecute Ia aperaci6n con los dos operandos que . Cantinde analizando la expresibn y repita el procedimiento para cada operador encontrado hasta que no haya m8s operadotes. después las de los paréntesis externos . Esta jerarquía dicta que primero ej&utemos todas las operaciones aritm& ticas dmtio.A B y sustituhus A. Esta mp=ta&n.e encuentran en d lado izquierdo dd operador. La nofaci6n postm'urfija.previos son C y D.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.

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

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

Tales manuales explican la construcci6n interna de I a CPU. 2 . En esta sección. una computadora tendrA varios formatos de c6digos de'instrucciones. h s operaciones especificadas mediante instrucciones de computadora se ejecutan sobre algunos datos almacenados en b memoria o en registros de procesador. complementar y corrimiento. por ejemplo un campo que proporciona el nhmero de corrimientos en una instnicci6n de tipo corrimiento. Por lo general. restar. 3. 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. Los campos más comunes que se encuentran en los formatos de instrucciones son: l. Un campo de código de operacibn que especifica la operaci6n que se va a ejecutar. incluyendo los registros de procesador disponibles y sus posibilidades 16gicas. Los bits de la instruccibn se dividen en grupos llamados campos. Un campo de modo que especifica la manera en que se determina el operando o la dirección efectiva. Las operandos que residen en I a memoria se especifican . como sumar. 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. En wasiones se emplean otros campos especiaIes bajo ciertas circunstancias. 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. El campo de c6digo de operacibn de una instruccibn es uii grupo de bits que define varias operaciones de pracesadar.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. U n caknpo de direcci6n que represeata una direcci6n de mmoria o un registro de procésador. especificaii su formato en c6digo binario y proporcionan una definición precisa de cada instrucci6n. Los bits que definen el campo de modo de una instrucci6n especifican diversas alternativas para escoger las operandos de la direcci6n dada. Las operacionec mas comunes dispoi-iibles en instrucciones de computadora se listah y analizan en la secci6n M. Lus diferentes modos de direccionamiento que se han formulado para las computadoras digitales se presentan en la secci6n 8-5. TambiGn listan todas las instrnicciones que se implantan con hardware.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.

la instrucci6n para una suma aritmktica puede es~ribime en lenguaje ensamblador como RDD Rlr. Las computadoras pueden tener instrucciones de diferentes tamaiios que contengan una cantidad variable de direcciones. R 2 . AC es el registro acumulador y WXJrepresenta la palabra de memoria que se localiza en la dirección X. Por lo tanto. la instnicci6n . 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. El formato de instrucci6n en este tipo de computadora utiliza un campo de direccibn. Organizacibn de acumulador i'mlco.CPU: l . Sólo necesitan especificarse las &&dones de registro para R1 y R2 en ata iÍishucci6n. 2 Organización de registro general. e l nhero binario 010'1.SECCI~N M Fomtos de las instniccionec di-& de +sFro mediante sus direcciones de memaria. 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. una C m con 16 registros de procesador del RO a1 R15 WdrA un campo de direcEi6n de r e g i s t r o de 4 bits.Por lo W o . El formato de instrucci6n en -te tipo de computadora necesih tres campos de direcci6n de registro. Por 10 tanto. Por ejemplo. 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. Los operandos que residen en un registro de procesador se especihcan con una direcci6n de registro. B3 pera representar la operación R1 + IC2 + R3. Todas las instrucciones se ejecutan con un registro de acumulador relacionado. Un ejemplo de una organizaci6n de tipo acumulador es ¡a computadora básica presentada wi e l capitulo 5. 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. Un ejemplo de un tipo de organizací6n de registro general se presentd en la figura 7-1. 3. Por ejemplo. Organizacihn de pila. U n a $imccidn de registro es un n b a a binnrio de k bits que define uno de 2k registros en la CPU. Por b tanto. La cantidad de campos de direcciones en el formato de instrucCi6n de una computadora depende de i a organizacibn interna de sus registros. la instnicci6n ADD RltfB2 repxesentarh h operacibn R1 + Rl + R2.

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

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

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

La manera en que eligen los operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción. El resultado de los c6lculos se guarda despuks en la memoria con una inshucci6n de almacenar. es necesario convertir la expresi6n a motaci6n polaca inversa. Un programa para una CPU tipo RE€ consta de instrucciones LOAD y STORE que tienen una memoria y una direcci6n de registro. Las operaciones de sumar y muItiplícar se ejecutan con datos en los registros sin acceder a la memoria.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. 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. El siguiente es un programa para evaluar X = (A i B) * (C + D). e instnieciones de tipo computaciond que poseen tres direcciones donde d a s especifican registros de procesador. 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. 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 . E31 campo de operaci6n de una instruccidn especifica 4 opexaci6n que se va a ejecutar. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dwcci6n de la .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. 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.

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

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

Ya hemos defiriido dos modos de direccionamienta en el capíhiio 5. 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. En ocasiones el valor que se proporciona en e l campo de direccibn es la direccibn del operando. es necesario incrementar o decremenfar el registro despuks de cada acceso a la tabla. La direecibn ejectiva s e define como la &mi611de memoria obtenida del dlculo. excepto en que e l registro se ipcremenb o decremenka despu& (o antes) de que su valor se utilice para a-r la memoria. Esto puede lograrse al usar la instruccibn de incrementar o decrementar. La ventaja de una instaicci6. direccibn efedivu Modo de autoincremento o autodecremento: Este es similar al modo de registro indirecto. como este es un requisito común. el campo de direccibn de la inskucci6n proporciona la dimtibn en que se almacena la direcci6n fectiva en la memoria.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.ede +direecibnpara accesar la memoria una vez m As con e l fin &-&le leer la dimci6n efedtlva. La unidad de control en la CPU utiliza el campo de direccibn para obtener e l operando de la memoria.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. . 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. Se resumen aquí para que sirvan de referencia. fijado mediante el modo de difeccionamiento proporcionado. El control recupera la instrucci6n de la memoria y tiliza su. Es Ia direccidn en que e l control se transfiere en respuesta a una instmccidn de tipo brinco. 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. memoria en forma directa. 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.part. Modo de direccionamiento indirecto: En =te modo. ' . Sin embargo. Entonces uría referencia al registro es equivalente a especificar una d h x i 6 n de memoria. Cuando la direccibn almacenada en el registro hace referencia a una tabla de datos en la memoria. pero en ocasiones es sbla una direccidn desde la cual se calcula la di~ecci6ndel operando. La dimi6n efectiva es la direccibn del operando en una inshuccidn de tipo cornputacional. 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. El m& de direccionarniento indirecto también se explica e n la d n 5-1 junto con la figura 5-2.

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.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 cualquier caso tenemos un modo de dimcimamiento diferente que se utiliaa para una aplicación distinta. 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.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. 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. un registro de índice o un registro base. N6tese que si una instrucci6n de tipo índice no incluye un campo de direcci6n en su formato. 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. Cada opando del arreglo &e almacena en la memoria m relaci6n con la direcci6n inicial. 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. El registro índice es un registro de CPU especial que contiene un vaBr índice. El registro índice puede i n m mentar= para facilitar el acceso a operandos consecutivos. Con frecuencia se utrliza el direccionamiento relativo con instrucciones de tipo brinco. 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. Un campo de direcci6n de h instnicci6n define la dirección inicial del arreglo de datos en la memoria. la instrucci6n se convierte al modo de operaci6n de indirecto por registro. Esto es 24 posiciones de memoria adelante de la dirección de la siguiente hhucci6n.el contenido de [registro de CPU E l registro de CPU utilizado en el cdcuio puede ser el contador de programa. 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. . E 1 ciilculo de dreccibn efectiva para el modo de direecidn relativa es 826 + 24 = 850. Cuando se suma este número al contenido del contador de prugrama.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. cuando la direccidn del brinco está en el Brea que m i e a la palabra de la instrucci6n misma.

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

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

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

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

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. b importante es entender que cada histnicci6n puede ocurrir con diversos modos de direccionamiento. Como ejemplo.M[R1] AC c.M[RI]. E 1 caracter $ antes de una dirección hace el direccionamiento relativo al contador de programa PC. y AC es el registro acumulador. Por ejemplo. En el modo indirecto por registro. A su vez e l modo de autodecremento utilizaría un signo de menos. Una instrucci6n de modo indexado se reconoce por un registro que se coloca entre paréntesis despuCs de la dirección simb6lica.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 . 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* . La tabla 8-6 muestra la convenci6n recomendada del lenguaje ensarnblador y la transferencia real que se logra en cada caso. el nombre del regisffo que contiene la dimcci6n de memoria se encierra entre paréntesis. Otras normas del lenguaje ensamblador utilizan un carácter especial para asignar el m d o de direccionarniento. R1 es 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. R1.R1 AC *.R1 /'" cargar de inmediato se convierte en LDI. El carhcter # precede al operando en una instruccibn de modo inmediato. El carácter B simboliza una ditwei6n indirecta. X es un registro de índice. En cualquier casa. 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. ADR r e p m t a una direccibn. e l modo inmediato se reconoce por un signo # colocado antes del operando. El modo de registro se simboliza al proporcionar el nombre de un registro de procesador.

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

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

las relaciones xbO = O y xbl = x dictan . Por lo general. Las instrucciones AND.que una variable binaria a la que se le haya aplicado un AND con un O produce un O . activarbe en 1. Algunas instrucciones I6gicag y de manipulación de bits típicas s e Ustan en la tabla M . Par lo tanto. deben considerarse que las instmccianes ejecutan operacb~es de manipulaci6n de bits cudndo se usan en instrucciones de computadora. La instrucci6n complementar produce el complemento a 1 al invertir todos los bits del operando. se aplican las tres instrucciones 16gicas para hacer &lo esa. Para cualquier variable booleana x.- 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 . Para cualquier variable booleana x. 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 instruccibn AND t'ambign se llama máscara. o puede compJementarse. Existen tres operaciones de manipulacibn de bits posibles: un bit seleccionado puede borrarse a 0. La instrucci6n AND se utiliza para borrar un bit o un grupo seleccionado de bits de un operando. 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. OR y XOR producen las operaciones 16gicas correspondientes sobre los bits individuales de las operandos. porque enmascara o inserta O en una parte seleccionada de un operando.OR exclusiva Desactivar a Acti~. Por l o tanto. p e w la variable no cambia cuando se le aplica OR eon un O.m a . emplear un grupo de bits o insertar nuevos vahres de bib m los operandos almacenados en registros o palabras de memoria. pero la variable no cambia de valor cuando se le aplica un AND con un 1 .instrucciones Igicas. Aunque realizan operacbonm hleanas. es posible cambiar los vabres de bits. La instrueribn de borrar hace que e l operando especificado se sustituya con 0. 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.

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

Con tal formato es posible especificar el tipo de corrimiento. toda en una sola instrucci6n.bit de acarreo trata al bit de acarreo como una extensidn del registro cuya palabra se está mtando. 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 . La inslnicci6n de mtaci6n a través . pero se hacen circular hasta d otro extremo. al mismo tiempo. pero e l bit de signo no cambia. Cada vez que se recupera una instruccibn de la memoria. Algunas. la direccibn y la cantidad de corrimientos. 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. 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. un tipo de instrucci6n de contra1 de programa.del . Esta es una operación de combnhfo a la derecha en la que el bit final permanece igual.1 corrimientOs. el contador de programa se incrementa para que contenga la direcci6n de la siguiente instnicci6n en secuencia.dec6digo de operación.c ~ mw ó Conkol ~ del programa 289 derecha junto con el resto dd número. 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. Cuando se procesan en la CPU. Los bit6 recorridos en un extremo de la palabra no se pierden en un desplazamiento ldgiao. 8-7 Control del.computadoras tienen un formato de carapo múltiple para las instrucciones de corrimiento. 'l"YPE es un campo de 2 bits que espeeifiea las cuatro diferentes tipos de corrimientos.recorre todo el registro a Ia 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. Por l o tanto. Por otra parte. .programa Las instrucciones siempre se almacenan en localidades de memoria sucesivas. las instrucciones se recuperan de localidades de memoria consecutivas y se ejecutan. 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 . REG es una direccidn de W t r o que especifica la posici6n del operando. Las instrucciones-de rotacibn producen un carrimiento circular. Después de Ia ejecucibn de una instrucci6n de transferencia de datos o de manipulacibn de datos. 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 . transfiere la posici6n de la extrema izqukrda al acarreo y.

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

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

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

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

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

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

destruye l a . E1 retorno de la instrucción de subrutina lee (pop) la pi. el torno es siempre al programa que solicitd la última vez una subrutina. otras en una posicidn fija en la memoria.h y el contenido de su parte superior se transfiere al contador de programa. y así sucesivamente. La manera mis eficiente es almacenar la direcci6n de retorno en una pila de memoria. 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 nueva direccidn de retorno s e salva dentro de la pila. La ventaja de utilizar una pila. las direcciones de retorno secuencides pueden salvarse ¿&m de la pira. Esto da como resultado usa transferencia del control del programa a la instrucci6n cuya direca6n se almacenaba originalmente en la pmici6n temporal. algunas mas en un registro de procesador y otras en una pila de memoria. Algunas k almacenan en la primera posici6n de memoria de subrutina. 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.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. 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. Diversas computadoras utilizan una posici6n temporal diferente para almacenar la direcci6n de retorno. por lo general liamada ret~rno de la subrutina. Una subrutina remrsim es una subrutina que s e solicita a sí misma. La última instrucci6n de cada subrutina. El programador no tiene que preocuparse o recordar d6nde sa dmacen6 i a direccibn de rctorno. Ia circuiteria almacena en forma autodtica todas hs direcciones de retorno en una unidad.para la dimcidn de retorno es que cuando se solicitan subrutinas sucesivas.retorno de la posici6n temporal dentro del contador de programa. De esta manera. 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.

en principio. Estos tres conceptos de p m d i miento se detallan en seguida. El contenido de todos 1 .E 1 contenido de1 contador del programa. 3.SBCCION 87 Control del programa 297 b c i 6 n de . 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. S6io de esta manera el progrma interrumpido podrh reanudar exactamente como si nada hubiera ocurrido. como resultado de una soücitud generada en forma externa o interna. 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 ) . Cuando se utiliza una pila. & @ S de que se ha interrumpido un. 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. Esto no es deseable porque s e destruye XOCmaci6n vital.programa y se ha ejecutado la mtina de servicia. la CPW retorna al mismo estado exada que tenia cuando ocumb la intempcián.regi&os del procesador.retorno anterior. El c o n W u . 2. cada ckcci6n de retorno puede saIvarse dentro de la pila sin destruir ningún valor previo. El estado de la CPü al final del ciclo de ejecucih (cwndo se reconme la intermpcibn) está determinado por: ' 1 . I11 prodimiento de interrupcibn es. 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.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.de ciertas condiciones de estado. como se explica m A s adelante). 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. T. Esto resuelve eI problema de la subrutina reamiva porque Ja siguiente subrutina que sale es siempre la utima subrutina que se wlicit6. muy similar a una solicitud de subrutina. 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. 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 .

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

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

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

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

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

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

Como ejemplo. Los registros comunes se utilizan para e l intercambio de parsmetros y resultados entre procedimientos adyacentes. A 1 0 está activa una ventana de registro con un apuntador que la seiiala como activa. Los registros de1 $26 al R31 son comunes a los dos procedimientos y. El sistema tiene un total de 64 registros. supongamos que el procedimiento A solicita el procedimiento B. el procedimiento A almacena los parAmetros para el procedimientb 3 en estos registros. y por l o tanto. Los registros locales se utiliian para las variables locales. Las ventanas para procedimientos adyacentes tienen registros traslapados que comparten para proporcionar el paso de parámetros y resultados. 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. Cada solicitud de procedimiento prcduce la asignacibn de una nueva ventana. B concepto de wntanas con registros traslapados se ilustra en la figuxa 89. En cualquier momento dado. B. Cada ventana de registros consta de 10 registras locales y dos conjuntos de seis registros comunes a las ventanas adyacentes. .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. Cuando el procedimiento B está listo para retornar al 'final su computaci611. que consiste en un conjunto de registros del archivo de registrohlpara que la use el nuevo procediiento.por lo que las cuatro ventanas tienen una organización circular en donde A es adyacente a D. por lo tanta. 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. 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. Cada solicitud de procedimiento activa una nueva ventana de re@stras al incmentar el apuntador. pasará los paraimetros por medio de los registros del R42 al R47.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. Los registros altos del procedimiento llamado se sobreponen a los registros bajos del procedimiento llamado. L o s regístros traslapados comunes permiten que se pasen parámetros y el movimiento real de datos. Esto elimina la necesidad de guardar y restablecer las valom de los registros. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar un apuntador. Los registros del RO a1 R9 son registros globales que contienen parsmetros que comparten todos b s procedimientos. Los otros 64 registros s e dividen en cuatro ventanas para alojar b s procedimientos A. C y D. Si el procedimiento B solicita el procedimiento C. las parhmetros se transfieren en forma automdtica del procedimiento que Uama al llamado.

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

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

Par l o tanto. S2 especifica uoa constank de 1 3 bits de signo extendido. por lo que puede utilizarse en cualquig campo para especificar una cantidad de cero. El carhpo COND sustituye el campo Rd para instrueclones de brinco y se u t i l i para especifiieari yna de ' 1 6 condiciones de brinco posibles. Las 31 instrucciuqes de la RICC 1 se listan en la 'tabla 812. Se han agrupado en tres categorhs. Si el bit 13 de la instzucci6n es 1. Lns simbolos bajo las columnas del código de operaci6n y operando se utilizan cuando se d- . 16gicas y de corrimiento. Rs es uno de los r e g s i w fuente.'Si e l bit 13 de la instrudbn es O. el campo Rd de S bits selecciona uno de los 32 registros como destino para e l resultada de la operacibn. 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. la instnicci6n tiene un formato de tres direcciones. los 5 bits de orden menor de S2 especifican otro registro fuente. Las instrucc W de acceso a memoria utiliza Rs para especificar una direcci6n be 32 bits ea un registra y S2 para especificar un deplazamiento. El registro RO m n t h a &lo n h e r 0 ~ O. pero l a segunda fuente puede s e r un registro o un operando inmediato. 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 operación se ejecuta con los datos eapedicados en los c a * p Rs y S2. Para instrucciones de registro a registro. 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.

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

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

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

¿Cuaintos datos hay en la pila s i : 8-6. Un contador de d t u r a WC contiene 8 1 1 . Convierta las siguientes expresione aritmhticas de notaci6n polaca inversa a interna fija. Si hay 250 ir&truccioxm de das dimriones.y VAClO = O? b .ASC se h e m e n t a para cada palabra almamada y sed t a para cada dato mpetado. ~ 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: .OC4 en la pila de l a f@ra 8-3. 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. Una computadora tiene instrucciones de 32 bits y direcciones de 12 bits. 8-10. . Muestre cómo opera UM memoria FiR3 con tres contadores. 8-8. ¿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. Liste las mimooperaciones para las operaciones push y pop. bn contador de ledura RC contiene la direcci6n par1 leer de la memoria. la d l d b n para escribir en la memoria. Un sistema primero & e n & . Sea SP = OW. 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. a ¿LLENO = 1 . 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. Un conhdor de ahacaamiento disponiblelMC indica la cantidad de palabras almacenadas en FIFO. Convierta las siguientes expresiom aritmitieas de notad611interna fija a polaca inversa.8-5. &7. 8 1 2 .

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

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

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

parte superior de una pila de memoria es 5320.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. 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. ¿Cuál es la diferencia entre una interrupción de programa y una llamada . VAX 1 formatos de instrucciones variables. . Liste la secuencia de microoperaciones para el retorno de la instrucción de interrupción. ¿Después del retorno de la subrutina? &Cuálesa n las diferencias básicas entre una instrucción de transferencia de control. c. b. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrán una condición verdadera. El contenido del apuntador de pila SP es 3560. Sean A = 01000001 y B = 10000100.Determine las valores de los bits de estado C. ¿Qué contienen PC y la parte superior de la pila a. ¿Después de qué se ejecuta la instrucción de llamada? c. Mermine los valores de los bits 'de estado C (préstamo) y Z. Determine el valor de los bits de estado S. 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 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. Liste la secuencia de microoperaciones para el ciclo de interrupción. a. Liste las instrucci. Z.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. Evalúe la diferencia e interprete el resultado binario.B y actualizar los bits de estado. b. 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. El programa en una computadora compara dos números sin signo A y B al ejecutar ima resta A .B y actualizar los bits de estado. b. G a. a. d. Z y V. b. Sean A = OlOOOOOl y B = 10000100. Evalúe la diferencia e interpfete el resultado binario. c. La primera dirección del programa de servicio se toma de la memoria en la posición IAD +l. ¿Antes de qué se recupera la instrucción solicitar de la memoria? . El programa en una computadora compara dos númeras con signo A y B al ejecutar la resta A . 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. El contenido de 1. 1 e intel 386 son ejemplos de computadoras con La IBM 370.

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

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

un sistema de procesamiento paralelo puede ejecutar prosesamienta concurrente de datos para conseguir un menor tiempo de ejmuci6n. con 6 1 . esto es. Por ejemplo. el sistema puede tener dos o más procesadores operando en forma concurrente. la cantidad de p-nto que puede lograrse durante un cierto intervalo de tiempo. S i n embargo. mando se ejecuta una instrucción en la ALU.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. En lugar de p-ar cada instrucci6n en forma secuencia1 como en una computadora convmcional. puede leerse la siguiente instrucción de la memoria. 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. Además. . E i sistema puede tener dos o más ALUS y ser capaz de ejecutar dos o más instrucciones al mismo tiempo. tarnbih el cmto del sistema. ta cantidad de circuiterla aumenta con e l procesamiento paralelo y. E 1 propbito del procesamiento paralelo es acelerar las posibilidades de prmesamiento de la computadora y aumentar su eficiencia.

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

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

El nombre "hea" implica un flujo de infonnacibn similar a una iínea de ensamblado industrial. y cada subprose ejecuta en un segmento dedicado especial que opera en forma conaurente con los otros segmentos.322 cAPmnoNUEVE Paralelismo y pnxesamiento de v e c b los prwesadores simultáneamente. E 1 resultado obtenido del cálculo en cada "gm@o s e transfiere al siguiente segmento en la línea. Una línea puede considerarse como un conjunto de segmentos de procesamiento por el que fluye informacidn binaria. analizados en la secci6n 9-7y MIPVPD. 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.datos han recorrido tados los segmentos. L a ocganjzación MIMD se refiere a un sistema de computadora~ capaz de procesar múltiples programas al mismo tiempo. 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. Es caracbistico de las heas que varios cálcuios puedan estar en proceso en distintos segmento& al mismo tiempo. La estructura MiSD es s61o de interés tebrica porque no se ha construido h g h &terna prd~tico uiiLizmdo esta organhaciQn. Los registros proporcionan aislamiento entre cada ceso . 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 . Exúatba las características de desempeño del sistema de computadora mis que sus interconexiones estructeiraks y operacionales. E 1 procesamiento de vector se relaciona con los c4lculos que implican vectores y matrices grandes. Cada q p e n t o ejecuta un procesamiento parcial.y el de la unidad de procesamiento de datos. que s e presentan en el capitulo 13. En este capitulo consideramos el procesamiento paralelo bajo los sitodos guientes temas principales: l. El resultado final se obtiene despuh de que 1 . 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. Procesamiento por arquitectura paralela Z P m c d e n t o de v-r 3. dictado por la manera en que se divide la tarea. La simultaneidad de los cailculos es posible al asociar un registro con cada segmento en k iínea.

El registro contiene los datos y el circuito combiitorio ejecuta la subope~aci6n en e l segmento particular. 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. 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 . como se muestra en la figura 9-2 D e R1 a R5 son registros que reciben nuevos datos con cada pulso de reloj. Al B 1 ci . D e esta manera la irdormaci6n fluye por la Unea un paso a la vez. 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 d i d a del circuito combinadonal m un segmento dado se aplica al registro de entrada del siguienk segmento. La organizacibn de la linea se mostrara mediante un ejempIo simple. Cada segmento tiene uno a dos registros y un circuito combinatorio.

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

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

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

k técnica de arquitectura paralela proporciona una operacibn más +da que una secuencia puramente serial. Existen varias razones por las que una arquitectura pardela no puede operar a su máxima velocidad &rica. = 60 n s . 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. . por lo general puede ~onstruirsepor completo como un circuito combinatorio. En lugar de operar con los datos de entrada en secuencia.Corsforme auentai d n r o de tareas. datas múltiples (SIMD). la acelaacibn se toma 60/2Q = 3. Si consideramos que t. Para duplicar la ventaja de velocidad tebrica de un proceso paralelo mediante unidades funcionales mdltiples. Esto se ilustra m la figura 9-5. Los diferentes segmentos pueden requerir tiempos diferentes para completar su suboperacih. N o obstante. porque se u t i h Ja misma instrucción para T r a r sobre datos múltiples en paralelo. en donde están cmeados en paralelo amtro h i t o s idénticos. 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. 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. constituye una organhcián de instmcci6n hita. aunque nunca se b p por m m p h la dima velocidad Urica. 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. la acderaci6n se acercarA a 4. N 6 W que el circuito de cuatro unidades de Ja iigura 9-5. lo cual es igual al número de segmentos era el conducto. los circuitos paralelos aceptan cuatro conjuntos de datos de entrada en forma simultánea y ejecutan cuatro tareas al mismo tiempo. como en una Unea. Cada circuito P ejecuta la misma tarea de un circuito con arquitectura paralela equivalente. 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.

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

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. .

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

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

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

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

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

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

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

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

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

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

cuando se conecta a una computadora VAX11.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). el FSP-lM/MAX de Hoating-Point Sysaumenta el poder de dlculo de la VAX a 100 megaflups.El sistema con el procesador conectado satisface las necesidades para aplicaciones aritmt5ticas com- plejas. Contiene un conjunto de elementos de procesamiento (PE) idénticos. Cada elemento del procesador incluye una ALU. Un diagrama de bloque genecal de un arreglo de procesadar se muestra en la figura 9-15. en donde cada uno tiene una memoria l c a l M. las unidades de procesamiento e s t h sincronizadas para ejecutar la misma operaci6n bajo el control de una unidad común.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 . A l p o s fabsicantes de procesadores de arreglo conectado ofrecen un modelo que puede conectarse a diversas computadorae anfitridn.al a una fracci6n del costo de las supercomputadoras. Arreglo de procesador SIMD Un arreglo de procesador SIMD es una computadora con mUltiples unidades de procesamiento que operan en paralelo. 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. La unidad de control maestro dirige las apmaci~nes en los elementos del procesador. La funci6n de ¡ a unidad de control maestro ea decodificar las instrucciones y deteminar &no SS van a ejecutar. Las instrucciones de pE. Por ejemplo. L a memoria principal se utiliza para almacenamiento del programa.

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

no paralelo puede ejecutar la misma operaci6n al quitar R3 y 324.. d.umador se necesita? b. Un &ana. cuánto tiempo se necesitaría pa. $i = 30 m. y tp= 45 m.Fonnule unzr Unea paralela de instrucciones de &s t o s para una computa$ora. ¿Cuántos segmentos hay en la í í m ? c Si el retraso de propagad6n en eada.2 *e los . p E. El retardo de los registros de interfaz t. &@fique las operaciones que se van a ejecutar en cada segmento. 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 . Suponga que la primera instrucción enipieza en el paso 1 en la ltnea paralela utilizada en la figura 9-8: Especifique cual.segmentoes de 30 ns. + Xlod . . 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.sumas 100 pares de nilmerus en la Enea? b . ='5 m. 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. t3= 95 m.siguientes tiempos de r de la memoria dentro propagaci6n: 40 para los operandosque van a k de los registro Rl.como se muestra en Ia figura 10-10. =SO n s .gueafecta a dos enteros binarios de ocho bits. ~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 .. a.Ú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+ . . ~ C des l el-tiempomhimo de a& de reloj que -puedeutiihme? b. M d w las c w b instnicciones en el prapma siguiente.~ C u h t a s compuertas A N D hay en cada segmento y qu6 tamaño de s. un ciclo de reloj de 10 ns. a . Cada segmento contiene varias compuertas AND y un sumador binario similar a un arreglo multiplicador. 9-13.opÍddciones se ejecutan en los cuatro segmentas durante el p c o 4. 99.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. ¿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. 940. 85 ns para la sefía1 que se va a propagar por el mdtiplicador. 'Determine la ~ a z 6 n de aceleracibn de la arquitectura pardela pam IN t a m . 9-8.¿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.arquitecturaparalela para 10 tareas y vuelva a hacerlo p a p a 100 tareas. 4 .

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. 2 Nueva York John Wilegr. 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. 1989. Un c&lcula de predicci6n del d i requiere 250 mil millones de operaciones de punto flotante.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. Vol. NJ: h t i c e Hall. . Computer Arckitectare: A A d e r n SptIresis. Proporcione un ejemplo que utilice carga reardada con la línea paralela de tres segmentos de la seccidn 9-5. a. Considefe la muldplicaci6n de d a matrices 40 X 40 utilizando un proc=dor de vecbr. 1989. # Pamllei Pimessing Architmture ami VLS1 Ebrdwre. A. ~Cubintos términos de produeto hay en cada p d u c t o interno y cuántos peoduatos intefnos deben evaluarse? b. Englewd C W . 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. cuántas operaciones mdtipliear-sumar se necesitan. Suponga que cada procesador utiliza un cicb de 40 m. ¿Cuánto tiempo se necesita para llevar a cabo estos cblculos? Considere una computadora con cuatro procesadores de punto flotante de arquitectura paralda. ¿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 . 2. E l problema se calcula en una computadora que puede ejecutar 100 megaflops. L . Dasgupta.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. DKegama.

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

ESTE C ~ U O 1ü-1 10-2 le3 104 10-5. 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. Las cuatro operaciones arilmkticas biisieas son suma. multipHtaci6n y dfvisibn. Un procesador aritmético es la parte de una unidad de procesador que ejecuta operaciones aritmkticas. El pmcesador aritmé!ica es muy simple s i sblo se incluye una instrucción de . Los niimeros de punto fijo pueden tqresmtar e n k m o fracciones. resta. 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. 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. 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. D e estas cuatro operaciones básicas es posible formular otras operaciones aritmgticas y resolver problemas científicos mediante mktodm de anUiis numérico.

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

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

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

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

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

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

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

se s u m a n los números y su suma forma e l producto. La chuiteria para la multiplieaciSn consiste en el equipo que ce rnuestra en i a figura 10-1 más dos registros. @timo. S i son iguales. Primero. el . Éstos dos registros junto con los registros A y B se muestran en la figura 10-5. BI multiplicador se almacena en el registro Q y su s@o en Q . -do el bit correspondiente al multiplicador es O. no hay necesidad de silmar todos los números O al producto parcial porque esto no alterarh su valor.bit menos significativo. 10 qpe & como resultado ia colocacibn del producto parcial y del mulfiplicando en las posiciones relativas requeridas. El . Segundo. en lugar de ejecutar un corrimiento del muItiplicando a la izquierda. Si el bit del mdtiplicador es un 1.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. Tercero. S i son diferentes. 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. 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. 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.E l cbntador secuencia1 SC se inicializa al phcipio en un número igual a la cantidad de bi! en el multiplicador. El signo del producto se determina a partir de los signos del multiplicando y el muitipli~dar. se copia el multiplicando. 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 . de otra manera se copian ceros. el signo del producto es positivo. Este proceso se ilustra mejor con un ejemplo numérico. 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. es conveniente cambiar un poco el proceso.

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

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

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

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

~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.

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.. 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. Esto requiere la suma del multiplicando al producto parcial en AC. Cuando los dos bits son iguales. una condición que excluye un sobreflujo. un arreglo multiplicador requiere una gran . El contador secuencia1 se decrementa y el ciclo computacional se repite n veces.+l es el bit de signo original del multiplicador y no debe tomarse como parte del producto. Sin embargo. Nótese que el multiplicador en QR es negativo y que el multiplicando en BR también lo es. el producto parcial no cambia.SECCI~N1@3 Algoritmos de multiplicación 369 ellos. El producto de 10 bits aparece en AC y QR y es positivo. El valor final de Q. Como consecuencia.+3. No puede ocurrir un sobreflujo porque la suma y resta del multiplicando siguen una a la otra. Presenta la multiplicación paso por paso de (-9) X (-13) = + 117. 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. El siguiente paso es recorrer a la derecha el producto parcial y el multiplicador (incluyendo el bit Q. 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). los dos números que se suman siempre tienen signos opuestos. Un ejemplo numérico del algoritmo de Booth se muestra en la tabla 104 para n = 5.

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

- . 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.$& para &tener un producto de j + k bik Coma d o ejemplo. naesitamoe 12 compuertas AND y doe sumadores de4 bib p m .lograr prudwto de siete bita.compuertas AND y-Cj sumadow de.. E l diagrama lógico del multiplimdox se muesm en la fipca 10-10. Repxle~~ntem el multiphando mediante b&&lbo y d.multiplicador mediant e a f l y p Como k = 4 y j = 3.

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. introducir 1 e nQ R&d~ocB. dentro dd divisor. El prmesb contuiaa al comparar un residuo parcial con el divisor. de magnitud con signo Cuando = efectúa la divipi6n en una computadora digital.rrcwrerBabdcxefha Residuo2 S R d d w Rnal Divisor Ejemplo de divisih binatia. 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.dcltetiene5bita 6bibdehrB Recrirrer B a la d d y regtar. Ndtese que el resuhado proporciona un cociente y un residuo. En cualquier caso el divisor se recorre una vez a la derecha. probamos de nuevo al tomar los seis bits mds significativos de A y comparar este nh-mo con B. II Jal Dividendo A 5bits¿eA<B. El nhmm de 6 bils m mayor que B. Si d residuo parcial es mayor o jgual que e l divisor. Despub a recorre e l divisor una vez a la derecha y se resta del dividendo.ei6n de Hardware para dato. e1 dividendo o residuo parcial se recorre a la izquierda. Como el n h e r o de S bits es menor que El. es conveniente cambiar el proceso ligeramente. ~n lugar de ejecutar un corrimiento sobre el divisor a la derecha. Los cinco bits más signX1cativos del dividendo se comparan con e l divisor. bcm&Bab~ymtux. el bit del cociente es O y no se neeecita una resta. con lo que se dejan los dos n b e r o s en h posición relativa .introdudrOmQ knpluit. Si el miduo parda es menor que el divisor. 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. corrimiento y resta sucesivas. por l o que colocamos un 1. Después se recorre el divisor a l a de& y se resta del residuo parcial. El divisor B consta de cinco bits y el dividendo A de diez bits.para e1 bit del d e n t e en i a sarta pici6n arriba del dividendo.ín~ucirOenQ.introducir~enQ Rgiduo < B. E l proceso de divlsión se ilustra mediante un ejemplo numérico en la figura 10-11. el bit del cociente es igual a 1.

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

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

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

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

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

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

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

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

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

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

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.

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

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

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.

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

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

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

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

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

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

Sin utllinrat un í 5 h m d o r de magnitud.1 ) . -J 4 10.. 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. 1 d~tepuedeser~que~n~tl. y h dhhibit ! k i la cantidad de bits en la parte de mapitudde k mantupa (n . 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.deteqmmtp. 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 . 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#. e d e r a n d o eqm~entes pdiarizadas y tomando mi cuenta que % l o puede recorreme AC. Cuando sealinean bmdhwdurante la suma o mta. b .&rrna eantiddd de lugares igual a la d i h e d a entre ios exponente. - 'Exz . se usa e n & número más grande para determuiar el &tsdo. '"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. Al revisar y comparar para de bita de izquierda a derecha f 0-19.S~6cutre&. . p r o b e l m a s J e & b h iriL. 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. C i e l n d m e m d e ~ b es mayor que n 1 . (n -1) debe sumarse al pradwbde qwmk en el AC. 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. 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.hmtisaconel menor m reame p r Wpleta fuera del registro. 1 W . a= opnci6rrdE aur n d d e mrnplemento a 2 mn w 1 0 2 1 . R e p i t a . Para w h c @ de e n t m a &mws& que sise utiiii m de p d i n bnica. 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 . . 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.Z r 10-23. r Rivlr km ires dhgqpiw de f l " p y m n h . 1024. s L p h 10-W para mhems bharidsde magnitud con signo.Wanb una b . derive un algoritmo en brma de diagtama de flujo para alirbeat las m a n h y colel exponente mayor enLel AC. la difeiencia . S i u p i a de m m i l a mmtisa de d m a m de p b= . . dónde puede muL un mb.n&ujo de explente.

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

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

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

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

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

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

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

. 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. ..icos son diferentes .( ' ' .-lL!*.. ii i Iiah I DimCih Control . ~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. -11 . . n - ..L. . i * I . 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 . .-l. . .. 2 Para resorver estas diferendas. 3.. j . . f i d t a r & m meranlsmo de sincronizaci6n. . es menor que lá vel~ídad de-tramferemia de la CFU y.'.0 .+! . r Q m . porque :&-'comufücantanto con el canal del práesador roxrnarcm kl diqmsit9Vo pBrico.cada periférico. beas S e 2 . fii~& li-1 ~'C&h& n . ~ b r e w ~ d e s e f & h + -. Estos comp~¡nwit&~~&:llanian nrlefam. J : '.lo tantoI8puede querirse una m d 6 n ~ d e .del fmrh-de la :paIabfaleÉila &U y en la inemoria. .r. . . Las diferencia5 qua existen principales mn.-: . de $/S a d . ... . . . '. W &dip:de daW y 10s hmmtod en las pWirQ. m '. I - .I a I .la computadora central y . 1 . . --.sun dkpilifok ehtmmecánicas y debromagnéticos ysu manera de 6peraei@i7es dikmt~te a la de la CPU y la memoria. . '. por l o general. * L ..l. .elethdnicos: Rax. i : . ~ ~ i b'.-. en . &.2 La *iddad de & a d e & x h de datos ¿e los perifdricos. 1 .. n' l. a . . ' v de o gentrada-aalida.h e a s de datos. irate* .. Canal de EIS y módulos de interface . @e mn dispwitivm.. -e puede . . .. Y ' ' '. TAXI @-. 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... - -1. 4 ! # &e +g. + l.de E/Si :conha de.-a! l ..

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

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

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

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

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

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

unidad destino pueden activar el pulso de habilitacibn. para asegurar qui los datos se e s t a b b en un valor regular. h h e r r t e activa el pulso de habilitaci6n. La unidad fuente i r F . L a figura 11-3(a) muestra una transferencia iniciada por la fuente. t internos. La unidad h t e o la.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. i ~ f r .. la fuente no tiene que cambiar l a Inforrnacidn en el canal de da-. ~ . 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 . Habrá disponibles nuevos datos vdlidos a610 degpu6 de que se vuelva a habilitar el pulso de control de habiiitacih. tiempo suficiente para permitir que la unidad destino z e c h los datos. Como 8e muestra en e l diagrama de temporizacibn de la figura 1 1 3 @ ) . figura 1 1 4 Pulso de habiltadón iniciadopo* fuente &a traqskmicia de datos. La fuente quita los dakm del ranai en un breve periodo previo a la deshabilitaeibn del pulso de habitaei61~ En mlidad. D e manera tlpica. L a infomci6n en el canal de datm y la sehl de habilitación se quedan en estado activo durante un &di ki . El canal de dam lleva la información binaria de la unidad fuente a la unidad destino. uifotmando a : la fuente que proporcione los datos. La figura 114 nuestra una tcansfetkmcia de datos iniciada 'por la unidad destino. . En este caso. . primero la unidad fuente coloca los datos en el canal de daDespubs de mun 'b'teve retraso. 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. el canal tiene heas miiltiples para transferir un b p o palabra completos. el W o de que la seiial de habilitacidn esté ddab'itada indica que el canal de datos no contiene datos vbtliclos.

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

La trhsferencia que utiliza lfneas dq reconocimiento mutuo iniciada por la unidad destino mudm en la figura 114.& h k los datos en el canal. En este caso. después Ia wiidad destino deshabilita su señal de datos a c q ~ o y s el sistqa a su estado inicial.pueIv. control está en la diceeeihn opuesta. El mgtodo de reconocimiento mutu~~handshake). ue p e r a l a unidad fuente y. para aceptar nuevos datos al dehabilitar su se-1 de datos acqofados. &E dos h a s de recanocimiento mutuo son &tos mílidos.~msferench' de &tos. La uriidad fuente inicia la transferencia al colocar los datos en el canal y habilitar su mial de datos válidos. la cual invalida las datos en e l canal. La unidad destino activa la señal de dalos aceptados des@& de que acepta los datos del canal. WoWa m e s de.+EI diagrama de twipocizaci6n muestra el+intercambiode señales entre l a d o s . de la fuente al destino.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 fipra 11-5 muestra el pmcedhiento de transferencia de datos cuandolo'inicia la fuente. 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. la unidad fuente deshabiiita su seiial de datos vblidos.el procedimiento de recow cimiento mutuo sigue el mismo patrdn que en el caso iniciado por la unidad fuente. E l error puede detectarse' m d h k un m&&is& de ~hPO fmmmwido. + ---4 . De ahi ert adelante. Una h e a de control estA en la misma dired6n que el flujo de datos en e l m a l . .es el siguiente. i aparticipacidn dctiva de ambas unidad. mmP1etafr&'ia . La utiliza la unidad fuente para informar a la unidad destino si hay datos viilidos en d canal. 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 . . que produce una desha que inicie ~~.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. con el fin de que refleje su nuevo significado.. no &.S i m a unidad & delectuo&. generada por la unidad estino. @b9 'Ia el-6n de su estado inicial. Ik liec* !a única dif&cia en& la h&cia iniciada por la fuente y ia iriiciada par d dbtiiió. La secuencia de control durante la transferencia depende de la unidad que inicia la transferencia. En seguida. &tos ncqtados. La v e i ~ d a d a e transferencia está determinada por la unidad d s lenta.la transferencia no puede saber si la unidad fuente ha colocado . 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. ia unidad fuente no envh lw datos siguientes hasta decpués que la unidad destino muestra su disponibilidad. La utiliza la unidad d & h o para irífoqar la fuenSes i puede aceptar datos. N6tese que el nombre de la sefial generada por la unidad destino s e ha cambiado a prepara& pura &os.midade&la rwuencia de eventos listada en la parte (c) muestra los cuatro estados posibles que puede tener e1 sistema en cualquier momento.

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

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

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

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

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

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

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

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

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

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

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

-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. Leer el registro de estado. La transferencia de cada byte requiere de tres instrucciones: 1 . 3. una secuencia de bytes que debe abcenarse en la memoria. . 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 una intermpci6n sin vector. existen dos m4todos para lograr esto. La CPU se desvía de l o que esta haciendo para atender la transferencia de entrada o salida. 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 CPU está gastando tiempo mientras comprueba la bandera en lugar de hacer alguna otra tarea de procesamiento Ú t i I . 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.qi6n de E/S es transferir un bloque de palabras de un dispositivg ~. Una tarea c o m h de proaama. la fuente que interrumpe proporciona la información de l a transferencia a la computadora. En algunas computadoras el vector de intemipcibn ES la primera dirección de la rutina de servicio de E/S. Para apreciar por qu4 es ineficiente. l b una intempcibn con vector. Este modo de transferencia utiliza la opcibn de interrupcibn. EIS iniciada por intenrupcibn Una alternativa para que la CPU no tenga que monitorear en forma constante la bandera.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. Consideremos que el dispositivo de entrada transfiere sus datos a una velocidad promedio de 100 bytes por segundo. Mientras la CPU estd corriendo un programa común no comprueba la bandera. Cada byte se lee en el registro de la C P U y despuh se transfiere a la memoria con una instnrccibn de almacenar. Esto es equivalente a un byte cada 10000 micro-sepndos. .E/S y ~ a l m a c e n w f a en s un buffer de memoria. 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. la direcci6n de transferencia de control del programa e asigna a una posici6n física en la memoria. es permitic que la interface informe a la computadora cuando esté lisb para transferir datos. la computadora retoma al programa previo para continuar lo que estaba haciendo antes de la interrupción. Después que termina la transferencia. La diferencia en la velocidad de transferencia de informacih entre la CPU y el dispositivo de E/S hace ineficiente este tipo de transferencia. Esta informaci6n se llama el vecfor de intm~pci6n. Esto significa que la CPU comprobará la bandera 10. Sin embargo. 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. 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. En principio. cuando se activa la bandera.434 CAPmmmcs Organizacr6n de entrada-salida . 131 m4tcdo de. En otras computadaras el vector de interrupción es una direcci6n que .000 veces entre cada transferencia.

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 esta razdn. En algunos casos. Por lo general. 10s fabricantes proporciorian rutinas de E/S para lbs periféricos estandar como parte del sistema de computadora. la informati611se transfiere dato a datu hasta terminar. Una vez que está preparado. como detener la cinta o imprimir caracteres. Con frecuencia las traasferencias están acompafíadas de mmprobacibn de errores y otros pasos iitiles. 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. En la transferencia DMA. Como se analizó en la secd6tl 8-7. 11-5 Prioridad de interrupci6n ta transferencia de datos entre i a CFU y un dispositivo de E/S la inicia la CPU. Sin embargo.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. algunos procedares también salvan dentro de la pila la paiabra "deestado del procesador (PSW) y cargan una . sin entrar a detallados programas en lenguaje de miquina. con el fin de determinar cuándo estd Esto para transferencia de datos. 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 . 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.los programas de E/S deben inicializax el canal de DMA para comenzar su operacibn. 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. 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. 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. E i control por programa del equipo de entrada-salida es una empresa compleja. la CPU no puede comemar la transferencia a menos que e l dispositivo t é preparado para comunitarse con la CPU. La disponibilidad del dispositivo puede determinarse de una kfial de intempcibn. En la secci6n 11-5 se muestra un sistema de intempci6n con vector.

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

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

Entanceb. El dispositivo activa su &pflop RF cuanao desea interrumpir a la CPU. procede r inserta su propia direccih de vector (VAD) de interrupción. transmite la &al de reconocimiento al siguiente dispositivo al colocar un 1 en su salida PO. 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. para que la CPU la utilice durante el ciclo de intemipcibn. dentro del cana1 de datos. 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. 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.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 . S el dispositivo 1 tiene una interrupcidn pendiente. 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. Entre d s lejos esti el dispositivo de h primera posicl6n. La salida del ffip-flop RF recorre un inversor de colector abierto. bloquea la señal de reconocimiento del siguiente dispositivo al colwar un O en su salida (PO. un Figura 11-13 Una etapa del arreglo de prioridad de cadena de margarita. es menor su prioridad. La figura 11-13 muestra la 15gica interna que debe incluirse dentro de cada dispositivo cuahdo estA conectado en un equema de cadena de margaritas. Si e l dispositivo no tiene interrupciones pendientes. VAD Entrada de prioridad.Por lo tanto.

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

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. 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. si dos o m8s entradas .440 ONCE Orgmh66n de entrada-salida Figura 11-14 Ckuiterfa ae prioridad de intempci6n.

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

La pila que se muestra en el diagrama se usa para almacenar la direcci6n de retorna despub de cada interrupción. la CPU pasa a un ciclo de intemipci6n. Durante d ciclo de internipci6n la CPU ejecuta la siguiente secuencia de mierooperaciones: SP tSP . hemos analizado los aspectos de la circuitería de un sistema de prioridad de interrupciones. significa que el usuario no dque su programa se interrumpa. Una instrucci6n para activar XEN indica que la opci6n de interrupción se usará mientras corre el programa actual. Si se ha insertado una instniccibn en e l programa para desactivar IEN. la instrucci6n que se leed de la memorig serh la que esté localizada en la direcci6n de vector.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. Ptlhfinal de cada ciclo de interrupci6n la CPU comprueba IEN y la seiial de intermpcibn de IST. 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. Cada dispositivo tiene su propio programa de servicio que puede alcamrse medite instrucci6n de brinco (JMP) almacenada en la direccibn asignada al vector. E 1 nombre simbblico de cada &m q m t a la direccih inicial del programa de servicios. programa de servicio - . Si ambas IEN e IST son iguales a 1 . Hasta aquí. 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..programador elegir entre usar o no b opcibn de intemipci6n. el control continúa con la siguiente instnicdbn. Si alguna de ellas e s igual a O. Duran& 6 siguiente fase de búsqueda. L a figura 12-15 mu-tca el programa que debe residir en la memoria para manejar el sistema de interrupciones. Rutinas de pmgramaci&n Un siskeq de prioridad de interrupciones es una combinaci6n de técnicas de circyiteria y programación.

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. 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. h J d e interrupción KBD. 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 . produciendo urva trmfemnuia de control a la-i u . Al final del ciclo de instrucción. Salva la d k c i & nde retorno 750 en la pila y. Al final del progrwa KBD.simaoensdoen memoria para atender interrupciones. 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. Esto retorna el control a la rutina KBD para que continde atendiendo el teclado. Por lo tanto. la instruccihn de retorno se recupera de la pila y coloca 256 en el PC.la dirección S 6 se wlva dentro de l a pila y d control se hansfiere al programa de servicio DISK. La instnicci6n en la localidad 3 se ejecuta después. 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. 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. después acepta la diremi611 de v d o r 0000M)ll del canal y la transfiere al PC. Cuando termina el programa de servicio del disco.

Despuks. Desactivar los bits del registro de máscara de prioridad inferior. Salvar el contenido de los registros del procesador. 4. Proceder con la rutina de servicio. 5. por lo que no ocurre ninguna pérdida de información. Aunque a las fuentes de intempci6n de prioridad menor se les asignan bits de ndmero mayor en el registro de mAscara. Activar el bit de habilitacidn de interrupción IEN. Desactivar e l bit en el registro de intwrupci6n que pertenece a la fuente que ha sido atendida. Desactivar el bit de estado de interrupcibn IST. la prioridad puede cambiarse si se desea. Restablecer la direcciBn de retorno dentro del PC y establecer IEN. Activar el bit de habilitaa6n de inkmtpci6n IEN. Este flip-flop se debe activar de nuevo para habilitar solicitudes de intemipcidn de Prioridad mayor. Reactivar los kts de prioridad de nivel menor en el registro de cubierta. 5.de1dispositivo de baja prioridad. 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. 2 Recuperar el contenido de los registros del pxocesador. 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 . 4. El bit de estado de internipci6n de& desactivarse para que pueda volverse a activar cuando ocurra una interrupcibn de prioridad mayar.444 0 - Oxgankación de entrada-salida transferencia. 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. porque el programa puede utilizar cualquier configuraci6n de bits para el registro de máscara. pero no antes de que se hayan deshabilitado h s intempciones de prioridad menor. 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. Recuerde que la habilitacibn de interrupcibn TEN se desactiva al f m l de un ciclo de intempci6n. 3. . 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. 2. 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. 3.

El retorno al programa interrumpido se consigue al cargar la dirección de retorno en el PC. Por esta raz611. La circuiteria puede hacer en forma a u b matica algunas de las operaciones generaieg de gestidn. y las lineas de lectura y d t u r a u . de otra manera. con h e n c i a está limitada por la vel-idad de la CPU. DMA).' m d t o d o c o m h que se usa con mucha frecuencia en los micxoprocesado~. 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. figura Am .11-16 -muestra dos e l e s de mtrol en la CPU que facilitan la transferencia solidtud de canal DMA. E s t o se hace al insertar las instrucciones adecuadas al principio y al final de cada rutina de servicio.inicialmente se desactiva IEN y máis tarde se reactiva despub de que se transfiere la dirección de retorno h PC.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. No son parte de1 propio programa de servicio pero son esenciales para procesar interrupcic~ nes. 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. 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. De esta manera. puede perderse la direcci6n de retomo y la infonnaci6n de los registros de mascara y de1 procesador puede ser ambigua si se reconoce una instruccibn mientras se ejecutan las operaciones en este paso. Un controlador DMA funciona sobre los canales para manejar la transferencia en forma directa entre' el dispositivo de E/S y la memoría.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. Cuando esta entrada activa. la CPU termina la ejecución de la inshucción actual y coloca el canal de direcciones. Esta técnica de transferencia se llama acceso diredo a memoria (Direcf Memoy Access. irl: d e s deshabilitar los canales mediante señares de control e s ~ i a l e s La . la CPU está inactiva y no tiene el control de los canales de memoria. 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.Durante una transferencia DMA. 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. También se le pueden asignar otras operaciones iniciales y finales. el canal de datos. 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. Todas las operaciones generales pueden implantarse mediante prograrnaci61-1.

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

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

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.~ ~ ~ ~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 -. Por lo tanto. En seguida. coloca una palabra en el canal de datos (para escritura) o recibe una palabra del canal de datos (para lectura). el DMA incrementa su registro de direccionamiento y decrementa su registro de cuenta de palabras. Si la . controlador DMA a la memoria de acceso aleatorio para especificar la operación de lectura o escritura para los datos. Por cada palabra que se transfiere. el DMA controla las operaciones de lectura o escritura y proporciona la dirección para la memoria. 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. Cuando el dispositivo periférico recibe un reconocimiento de DMA.

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

que debe s e r inicializado por completo por la CPU. L a CPU es responsable del prmesamiento de datos necesarios en k solución de tareas eomputaciortales. Por b general. k a n s f e d de control y traducci6n de cbdigo. D e igual manera. "robar" un c i c l o de memoria de 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. El diagrama de bloque de una computadora con dos procesadores se muestra en l a figura 11-19. En lo sucesivo el IOP opera en forma independiente de la CPU y contintra transmitiendo datos de dispositivos externos y la memoria. La unidad de memoria ocupa una posicibn ~entral y puede comunicarse con cada p-dor mediante acceso directo a memoria. A diferencia del controlador de DMA. . Por ejemplo. 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 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. el IOP priede ejecutiir o. la CPU tiene i a tarea de inicializar un programa de E/S. 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. 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. . excepto que esta diseñado para manejar los detalla del p t o de E/S.El IOP debe estructurar palabras de datos de muchas fuentes difemtes. . lógica. El IOP proporciona una trayectoria para traneferencia de datos con diversos dispositivos pmWic08 y la unidad de memoria. se transfieren del IOP directamente dentro de la memoria a). Después de que los datos 'se reúnen en una palabra de memoria.kas tareas de pmmmientob como aritmética. Además.pmwaniierrto de WS E i IOP es sidar a una CPU.

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

El IOP responde al calocar el contenido de s u xeporte de estado dentro de una locaiidad de memoria especffica. Ambos programas hacen referencia a la memoria mediante una transferencia DMA. La palabra de estado indica si ha terminado la transferencia o s i ha ocurrido cuaiquier emir durante eiia. De .La CPU v n d e a la inferrupci6n a l emitir una htnrccibn para leer d estado de1 IQP. enviar htmcci6nde inici b E/S al IOP L m el pmgrama IOP La CW continúa . ia direcci6n de memoria recibida con esta instniccibn le dice al I O P en dónde encontrar su programa. Ahora la CPU puede continuar con otro programa mientras el IOP está ocupado con el programa de EtS. Cuando el IOP termina la ejecuci6n de su programa.-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 . 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. envía uqa solicitud deirikrrupci6n a h CPU.

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. borrar E/S. 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. Sin embargo. El significado de los cuatro cbdigos de Canal de WS IBM 370 E l procesador de E/S en la computadora IBM 370 . La CPU puede comprobar el c6digo de condición en k PSW para determinar el resulado de i a operacibn de B/S. E l código de operacibn específica una de ocho instrucciones E/S: iniciar E/S. la CPU determina si l a operacibn de E/S ha terminado satisfactoriamente s i n errores. En ese caso.la inspeceibn de ios bits en la palabra de estado. la velocidad de Ia CPU puede deteriorarse porque con frecuencia tendr4 que esperar que el IOP conduzca transferencias de memoria. cada canal puede estar conectado a varios dispositivos y a cada dispositivo se le asigna una dwcu6n. pero todas las transferencias de E/S pueden c o n d u h en un bloque de da. probar E/S. aIgunas unidades que son riipidas. 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. 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. El canal de bloque multiplexor combina las carackkticas de los canales multiplexor y selector.completo a diferencia de un canal multiplexor. selector y bloque rnultipIexor. se denomina a n a l . 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). pueden u t i l i z a r una aprkiable cantidad de los ciclos de memmia disponibles. El T O P y la CPU compiten por el uso de la memoria. iniciar envio raipido de Ef 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 formato de instrucci6n de E/C tiene tres campos: c6digo de operaci6n. 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. que sólo puede transferir un byte a la vez. detener dispositivo. Proporciona una conexión a varios dispositivos de alta velwidad. El sistema de computadora puede tener varios canales y a cada uno se le asigna una direcci6n. L a figura 11-21 muestra los formatos de palabra asociados con la operacidn del canal. direccidn del canal y diici6n del dispositivo. Existen t r e tipos de canales: multiplexor. De igual manera. 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 canal y almacenar identificaci6n del canal Los canales direocimados responden a cada una de las instrucciones de E/S y las ejecutan. detener E/S. como las diseos magnéticos.

El campo de estado identifica las condiciones en el dispositivo y el canal y cualesquiera errores ocurridos durante la transferencia. Pero. 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. El formato de la palabra de comando del canal se muestra en la figura 11-21(c). cuando el canal recibe una de estas dos instrucciones. especifican si el canal o el dispositivo están ocupados. El campo de cuenta mostrará cero si la transferencia se terminó exitosamente. 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. 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 . en general. El formato de la palabra de estado del canal se muestra en la figura 11-21(b). Siempre está almacenado en la posición 64 en la memoria. hace referencia a la localidad 72 de la memoria para la dirección de la primera palabra de comando del canal (CCW).SECCI~N11-7 Procesador de entrada-salida (IOP) 455 condición es diferente para cada instrucción de E/S. 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 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 cuenta proporciona la cuenta residual cuando se terminó la transferencia. si hay interrupciones pendientes. El campo de dirección de la palabra de estado proporciona la dirección de la última palabra del comando utilizada por el canal. si son operacionales o no. 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.

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

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. d canal avanza a ejecutar el programa es+ficada mediante 1 w paUras de m a n d o de canal. Esta palabra contiene la direaci6n inicial del programa de d 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 . La operación comimm cuando el propma de la.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. E l canal construye iana palabra de estado durante la t r a n s h c i a y la almacena en .O U encuentra una instrucción de iniciar de E/S. En seguida.

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

Cada bloque contiene información de control y parárnetros. 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.sECCI~N11-7 Procesador d e entrada-salida (IOP) 459 figura 11-24. 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 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. La dirección del bloque de control se pasa a cada canal IOP durante la inicialización. La CPU especifica una palabra de comando de canal (CCW) para indicar el tipo de operación requerida del IOP. .

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

sicopladores adsticos o rnddems (de "modulador-demdulador"). 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 computadora puede operar eficientemente en un ambiente de tiempo compartido.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. 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. Una interface asíncrona recibe datos seriales con bits de inicio y paro en cada carkter. Una Línea de comunicaci6n puede estar conectada a una interface síncrona o asíncrona. debe utilizarse alguna forma de conversihn. D e esta manera. Los dispmitivos de alta velocidad utilizan l a transmisi6n slncmna para &tener esta eficiencia. Los convertidores se . 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. como 'se muestra en la figura 11-7. Se utilizan varios esquemas de modulricibn al igual que diferentes grados de medios de comunicacibn y velocidades de transmisi6n. s e necesita que los relojes en los rnúdems transmisor y receptor estén sincronizados en todas las ocasiones.denominan conjuntos de mddem datos. L a tarea del procesador de comttnicación de datos es transmitir y recoger informaci6n diiital hacia y desde cada terminal. 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. Un procesador de coneunicacidn de datos se comunica con cada terminal por medio de un solo par de cabIes. 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. dependiendo del mgtodo de transmisibn de la terminal remota. determinar si la informacibn es de datos o de control y responder a todas las solicit~desde acuerdo a procedimientos establecidos con anticipaci6n. Para una operacibn adecuada. 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.SECCI~N 11-8 Cmunimci6n serial 461 por lo tanto tener un desempeño aparente de servir a muchos usuarios a la vez. 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. 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 sincronizaddn de la secuencia la consigue el . 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. 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 i n embargo.

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

Los caracteres que rontrolan la transmisión se llaman caracteres de control de comunica&. identificar al transmisor y al receptor. El código que se usa con mayor frecuencia es el AKII (código estándar norteamericano para intercambio de información). 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. Es un código de 7 bits en el que se usa un octavo bit para paridad. los diez ntímeros y una variedad de símbolos especiales. Las líneas de comunicación. Estos son el protocolo orientado a caracteres y el protocolo orientado a bits. Una situación común es la de un modem que actúa como el transmisor y otro como receptor. Cuando termina la transmisión en una dirección. de los cuales 95 son gráficos y 33 son de control. Los ejemplos de transmisión símplex son la programación de radia y televisión. El tiempo requerido para cambiar una línea semidúplex de una dirección a otra se llama tiempo de vuelta. Una transmisión dúplex completa puede enviar y recibir datos en ambas direcciones simultheamente. el papel de los modems se invierte para habilitar la transmisión en sentido opuesto. Los protocolos se dividen en dos categorías principales. 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. 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. El código tiene 128 caracteres. Los caracteres gráficos incluyen las letras maflsculris y minúsculas. Se necesitan un par de cables para este modo. 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. Estos caracteres & listan en la tabla 11-4. La transferencia de información ordenada en un enlace de datos se consigue mediante un pmfocolo. 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. En la tabla 11-1 puede encontrarse una lista de los caracteres ASCII. 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 propb sito de un protocolo de enlace de datos es establecer y terminar una conexión entre dos estaciones.SECCI~N11-8 Comunicación serial 463 dúplex completo protocolo indicarle la aparición de errores. de acuerdo a las técnicas de ordenamiento de mensajes. Los caracteres de control se utilizan para dirigir datos. arreglar la prueba en un formato deseado y para la distribución de la página impresa. 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. Alternativamente. Cada carácter tiene m código de 7 bits y se hace referencia a él mediante un símbolo de tres .

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

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

e l procesador m o c e el mensaje p * con un c d c t e r ACK. lo transfiere dentro de la memoria e inkrrumpe la CPU. se envia de r e p m a la terminal un reconocimiento positito.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. 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 . 1234 K m LRC Fin de transmisi6n de texto Carácter de paridad longitudirtal el comienm de la transmisión de texto. el proeesador comprueba la paridad en cada carkter y ta&iQi calcula la paridad longitudinal. Cuando la CPU reconme la interrupción. S i los dos coinciden. Sin embargo. Los datos de texto que nos interesan aquí son "solicitar EI balance la cuenta 1234". a n a h el mensaje y prepara un mensaje de t a t o para responder a l a solicitud. En i a tabla 11-6 se lista una =puesta pica del procesador a la krminal. 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. Después de dos caracteres SYN. S i no coinciden ae retorna a la terminal un reconbcimiento negativo (NAK) que iniciaría una retransmisi6n del mismo bloque. Usa la terminal T4 y almacena el texto asociado con el mensaje. El siguiente carkter después de ETX es una comprobación de redundancia longitudinal (LRC). Si el procesador encuentra que el mensaje no tiene errores. La LRC calculada se compara con el carActer LRC recibido.0011 O111 OIWIO No. La línea continua inactiva con un carkter SYN Mmtrhs . debe recordarse que cada carActer m el mensaje tiene un código de 8 bits y que cada bit se transmite en forma serial. El carácter de control El"X significa la terminación de h c a r a c m de texto. m i b e los caracteres.

. impresora y dispositivos de arhiiirión visual que utilizan Transparencia de datos . d procesador xetransrnite el mensaje. Esta propiedad permite mdtiplexar a muchos usuario8 para eonsegiiir una mayor efectividad en un -S de tiempo compartido. 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. 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. 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. 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. 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. Mientras el procesador cuida esta terminal. Camo los se en fomia s e r i a l . Si la terminal responde con un cargcter NAK. Se calcula un carActer LEC y se envla a la temiinal. también está a p d o procesando otras tenninalea. El mensaje de texto informa a la terminal que el balasice es $100.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 tiene e l encabezado SOH y l a djreccibn de la tenninal T4.

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

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

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

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

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

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. ~Cuálw son los vakres de entrada preparada. b .F$JQ = 0011. ¿Qu& sucede en i a interrupcibn de prioridad de lazo de margaritas que se muestra en la figura 11-12cuanda el dispositivo 1 soiicita una interrupción. Se inserta i n h c i 6 n denkm de un búffer FiFO a una velmidad de m bytes por segundo. después que e1 dispositivo 2 ha enviado una solicitud de interrupei6n a la CPU. $3 bCiffer está lleno? ' c ¿El bilffer contiene dos datos? a. c.interfaceesta conectada a upia terminal que neeesita un bit de alto? Liste los bib en el registro de paridad niando se trasmite h letra W utilizando ASCII con paridad par. 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. Trammisi6n &al asinmons con un bit de alto. Transmisidn s&al dincrona. a ¿Cuánto tiempo se necesita para llenar un buffer vado cuando m > n? b. L a máxima capacidad de bdffer es k by@. a. Transmisibn serial aslncrona con dos bits de alto. Usando la conñguraci6n establecida en el problema 11-16. ~Cudnta tiempo se necesita para que se vacíe un búffer lleno cuando m < n? c ¿Seneeesifa el brlifkr FIFO s i m = n? L a s bits en el registro de control de la FZtY)que se muestra en la figura 11-9 son F. pero antes de que la CPU responda con el reconocimiento de interrupci6n7 .fkujo(similara la de la figura 11-11) parad programa de CPU para sacar datos. 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. Considere la posibilidad de noxr la internipci6~1 en cualquier momento durante la ejecuci6n de la instnieci6n. obtenga un diagama de.Problemas 473 tCdnt& bits hay en el registro de oorrimiento transmisor de la figura 118 cuando la . ¿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. La información se borra a una velocidad de n bytes por qundo. Determine un procedimiento para especifiw y limpiar el bit de bandera. ¿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).

i C ~ h t a direcciones s diferentes Pueden formularse? 6Y . Liste las ocho direcciones de vector. -m 0 * . I a transferencia es mediante DMA. 11-22 Utilizando técnicas de disefio de c h u i b s mmbinacionales. Cualquiera de muchas fuente3 puede interrumpir a ia computadora y cualWW-1 &quier solicitud de inhrupcibn da como resultado e l aimacenamiento de la d d b n de retorno y la transferencia . a. . 11-23. ¿Cuánto se frenara la CPU debido a una transferencia DMA? el DMA tiene prioridad sobre la CPU cuando ambos solicitan una 11-50.ensamblan de un dispositivo que g i trasmite caracteres a una velocidad de 2M0 caracteres por segundo. como se muestra en la figura 11-18. Es necesario transferir 256 palabras de un disco magnético a una seccibn de memoria que comienza en la dirección 1230. Prupotelone los valore inicialesque debe transferir la CIW al controlador DMA. Obtenga la tabla de verdad de un d%cadorde prioridad 8 X 3. una cimiitería de interrupcibn de prioridad paralela para un sistema -w con ocho fuentes de interrupcibn m r m t i l 11-24. Dibuje el diagrama lúgico del circuito. comenzando con la de más alta prioridad.que describa la comunicación de canal CPU-E/S en la IBM 370. 11-29. ~Porqug kamfereneia de memoria? 11-31. Las palabras se. Considere que las t r e s q z del codificador de prioridad se utilizan para proporcionar una d i d d n de vector de la forma 1 0 1 w .La CPU recupera y ejecuta instrucciones a una velocidad de un rnill6n de instrucciones por segundo. 11-25.e ~ u ltL1 a la entrada de las primeras dos palabras.J t h -A - 11-21. Un controlador DMA transfiere palabras de 16 bits a la memoria utilizando el . . 11-32 L a direcci6n de una terminal conectada a un procesador de comunieaci6n de da& ronda de dos letras del alfabeto o una letra y uno de diez números.derive las expresiones booleaw listadas en la tabla 11-2 para el edificador de prioridad. ~ Q u 4 debe hacerse en la figura para hacer que los cuatro valores VAD sean iguala al equivalentebinario de 76.77.Explique e6mo puede establecerseuna rioridad en el programa de servicio 'm -4 de intemipri6n.a una rutina de intwrupci6n común.78 y 79 11-26. ¿Cuáles pasos de programaci6n se requieren para comprobar cuando una fuente interrumpe a la computadora mientras todavía está siendo atendida mediante una solicitud de interrupei6n previa de la misma fuente? 11-27. Propbcione la cuenta paso a paso de las acciones que se toman durante I1 .robe de ciclo.Gwisidere una computadora s i n eircuitería de interrupci6n de prioridad. . mb . ¿Por q d son bidhccionales las líneas de conkm1 de lectura y escritura en un controlador DMA? ¿Bajo qu& condiciones y para qu& propósito se utilizan como entmdas? @ajo qu& condiciones'y para qué propósito se usan como salidas? 11-28. Dibuje un diagrama de flujo similar a la de la figura 11-20.

1. 1134. 3a. . Computer Orgatrhtion: Hnrdwre/Soptaare. . Wakerly. 1981. 2a. 2 a . Compter H a r d w a r e m r e Arckit~hre. L. 7. Cambridge. CA:Morgan Kaufmann PubIishers. y G. El procesador pregunta si la terminal es operativa. J. 6 . Hays. E l mensaje de texto que envía el trasmisor entre SiX y FIX es como sigue: DLE S T X DLE DLE ETX DLE DLE ETX DLE ETX cuál es el valor binario de los datos del texto transparente? ¿Cuál es la cantidad mínima de biis que debe tener un cuadro en el protocolo orientado a bits? 11-36. Hwang. 1 9 8 8 .Referencias 475 11-33. NJ: Prentice Hall.M i c m p u t e r ~rchikture nnd Progrumming.Peterson. Paul. HiII. Jr. The A ~ h i k t u r e oJ Smnll Computer Sptms. S . Un erúace de comunicación de datos emplea el ptmolo controlado por caracteres con t r a n s p a d a de datos. Nj: M t i c e Hall. J. CottPpufafion Stmctures. L. cuando se trasmite un cero seguido poc los diiz bits que representan e l equivalente binario de 1023. 5. Gorsline. 2a.R. G. W . Briggs.. . W e r n Computer Archikhcte. L Wright. M . San Mateo. F . Toy. MA:MIT Pms. PoUard. . 8.. 3. 1984. d. D. Lippiatt.Chandra. 1 9 8 7 . Englewood Uiffs. F. ed. el procesador envfa un bloque de texto. Nueva York: JohnWiley. 1986. 1 9 9 0 . 1 1 . C.. N: Prmtice