'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

Bmth 372 Sobreflujonldividk 374 Algm'lmo hardware 375 m signo Otros algoritmos 10-5 rfe W .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 . 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 .. 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' . t . 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. 377 tt Operaciones aritmdtieas de punto flatante Consiikrncidnes hfiiaas 378 Corofigumcibn de registros .

rf. de RAM y de ROM 481 483 Mapa de direcci6n & memoria .452 Cana2 de E/S IBM 370 454 IOP de Intel 8889 458 11-8 Comunicaci6n serial ProFocrofo orientado a caracteres 463 Ejemplo de t r a n s m W 465 Transpmcia de dalos 467 h W o &fado ú bits Problemas Referencias CAP~TULO DOCE Organizacidn de la memoria 22-1 12-2 Jerarquia de Ia memoria Memoria principal CJ.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.~~ 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.

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

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 .

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

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. 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 . en los qistroe de l a computadora. Los capitulas del 1 al 3 pueden saltarse si el 1-r está familiarwdo con eI dis&o 1 6 e diitaL Las~ente~unahe~~&htemasqueaecubmeneada capitulo. d d e se esfablecen I ~ mviswne E que m hicieron a l a tercera ediE l capitulo l i n a u e e los condmimtos básicos necesario^ para el diseAo de digitales construidw con base en compuertas y flip-flop d i .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. 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 . 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. lbgicas y de corrimientu. El capitulo 3 muestra cómo se repmmtan en forma binaria b s diversos tips de datos que se encuentran en las computadoras digitales. E l capítulo 4 introduce un lenguaje de transferencia de registros y mueskra cbrno se usa para expresar mierooperaciones en forma simb6lica. los circuitos combinatonos y secuenciales. sin embargo.P iones y las mciones ae conrroi en fonna simb6lic. Cubre el Algebra booieana. 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. no obstante. m E 1 CapihSh 5 p m t a la organización y e l d i o de una computadora digital básica. 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. la computadora bhica utiliza el mismo conjunto I . El capitulo 2 explica en detalle la aperaci6n iópca de los componentes digitah más m u n a incluye decudifndofes. % ! definen SfmboIcxs paza microoperaeiones aritméticas.

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

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

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

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

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

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

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

"" x a'AB $. #=A NAND 0 B x x = [AB)' .* .* .Y -m 1 1 1 0 NOR * B x xr(A+B)' $ 1 1 0 Mi ~ l t l s i w i x=A@B " 3 x (xa) x = A B0 +AB' t 1 0 1 1 1 0 MOR exc1wim w a oequltnihk B A . . * e". OR A B - x=A+B 3 1 0 m tnwm Buhr 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.compuertas OR y el inversor forman la parte I&gicacombinatoria del circuito. Así. salidas externas y estados b W o s de los flipflop intemm.especifica por una secuencia de tiempos de hs entradas extemas. La primera letra de cada símbolo denota la I I L t l + q a m -- eeuaddn de entrada . una variable de salida y y dos flipflops D cronometrados. en la figura 1-25.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. Adoptamos la n o m a de usar eI &bolo de entrada del fipflop para d. La p m del circuito combinatorio que genera las entradas a los fipflops ~e descrhn por medio de un conjunto de expresiones bmleanas -das ecuaciones de entrada del flipfiop. Las compuertas AND. Tiene una variable de entrada x. ni'm d d ~ E-cuacioneede entrada de los fiip-floppUn ejemplo de un circuito secuencia1 se muestra en la figura 1-25.

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

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

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

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

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

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

eau . .-í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 . .{. -* I B B m' md X X i:w. . 1 Y i x *amy .m~". 1 KB= x Figura 1-28 Mapas para circuita wmbinatorio de y t a d o r . bu i r i i i m rWm % ' .' Y .- m . .

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

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

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

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

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

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

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

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

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

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

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

Para demostrar e l funcionamiento de1 circuito. La compuerta AND (Y) asociada con la entrada I2 tiene dos de sus entradas iguales a 1 . lo que hace sus salidas iguales a O. Un muitiplexor de 4 a 1 h e a s se muestra en la figura 2-4. Cada una de las cuatro entradas de datos de Io a 1% se aplica a una entrada de la compuerta AND. Las salidas de las compuertas 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. Las otras tres compuerbs AND (Y) tienen por lo -08 una entrada igual a O. se aplican a una compuerta QR única para proporcionar la salida iinica.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. ya que seis variables de entrada pueden tener Z6 combinaciones binarias. La selecci6n de una línea de datos de entrada particular para la salida s e determina por un conjunto de entradas de &ccidn. considere el caso cuando S1S2 = 1 0 . La tercera entrada de la compuerta se conecta m 1. U n a tabla de verdad que describa al circuito necesitará 64 renglon~. La salida de la compuerta OR (O) es ahora igual al valor de proporcionando asl un camino desde la entrada seleccionada a h salida.de entrada y la dirige a una h a de saiida Cinica. EI multiplemr de 4 a 1 líneas de figura 2 4 tiene seis entradas y una salida. Las dos entradas de selmi6n SIy So se decodifican para seleccionar una compuerta AND particular. Una manera más practica de describir el funcionamiento de los multiplexores es por . Esta es una tabla excesivamente larga y no se mostrará aquf.

y en verdad d d i f i c a n las iheas de seleccibn de entrada. un multiplexor de 2* a 1 lineas se construye con un M i f i c a d o r de TI a Zn agregando a éste líneas de entrada y una salida tinica.A SeIeccibn S1 Salida so Y . la salida Y es igual a la entrada Ion Cuando las entradas de se1ecci6n son iguales a 01. la entrada Il tiene un camino a la salida Y. Las comptiertas AND y las inversoras del multiplexor semejan un circuito demdificador. ya que selecciona una de muchas entradas de datos y conduce la infomci6n binaria a Ia salida. y de modo similar para las otras dos combinaciones. En general. BT multiplexor tambih se llama selector de datos. 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.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. Esto Unplica que tambih contiene n Iííeas de =lección de entrada. 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 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. La entrada de habilitadbn E debe estar activa para el funcionamiento normaL A pesar de que el circuito contiene cuatro multiplexofes. 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. Entonces. las salidas se deshabilitan. q ~ n * ~ i L . cada uno capaz de seleccionar una de dos beas de entrada. El circuito tiene cuatro multiple xores.i . La salida Yo puede seleccionarse para que venga de las entradas A. En algunos casos dos o mis multiplexores se encuentran en un solo circuito integrado. Como s e muestra en la tabla de funci613. el circuito funciona como un nli m 3 4 h R* 4- multiplaor nomial. si S = 1. o BI De modo simjiar. las cuatro entradas B se aplican a las salidas.la unidad se habilita cuand&E = 1. la salida Y. Las entradas de seleccidn y de habilitación en una conatruccibn de unidades múltiples suelen ser comunes a todos los multiplexores. a pesar de los valores de S. Las d d a s tienen tcdas cero a F cuando E = O. las cuatro mtradas A tienen camino para las cuatro salidas. los multiplexores pueden tener una entrada de habilitacihn para controlar el funcionamiento de l a unidad. ~ ~ * ~ < d l m a ~ p Figura 2 4 Multiplexom Mit8druples 2 a 1 líneas.7 b) Tabla de functwies . Como una ilustracidn. puede tener el valor de Al o Bu y así sucesivamente. el &cama de bloques de un multiplexor cu4dniple de 2 a 1 heas se muestra en la figura 2 5 . y cuando está en el estado activo. Por otro lado. . tambikn podemos pensar en 61 como en un circuito que selecciona una de dos h e a s de datos de 4 bits.Así como sucede en los decodificadom. si S = O. Cuando la entrada de habiilitaci6n está en el estado inactivo.

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

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

La configuracidn 16gica de un registro de corrimiento consta de una cadena de flip-flops en cascada. 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. 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.

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

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

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

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

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

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

.

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

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

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

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

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

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

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

Esto es porque los registros están formados de . La infomcibn de control es un bit o un grupo de bits que se utilizan para especificar la secuencia de seirales de comando necesarias para manipular los datos en otros qistm. y 3) otros símbolos discretos que se utilizan con pr~phitos específicos. 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. excepto los números binarios. 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 las computadoras digitales la informaci6n binaria se almacena en la memoria o en los registros del pmsador. se r e p m t a n en los registros de la computadora en forma de c6digo binario.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 . 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. Todos los tipos de datos. Los registros contienen datos o infomaci6n de control. 2) letras del alfabeto que se utilizan en el procesamiento de datos. En este capitulo presentamos los tipos de.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

Los módulos se construyen a partir de componentes digitales como registros. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones. 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 resultado de la operación puede sustituir la información binaria anterior-de un registro o puede transferirse a otro. 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. Una microoperación es una operación básica realizada sobre la información almacenada en uno o mas registros. Algunos ejemplos de microoperaciones son despla- nricrooperación . decodificadores.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. Los módulos digitales se definen mejor por los registros que contienen y las operaciones que realizan sobre los datas que almacenan. elementos aritméticos y lógica de control.

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

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

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

y se deben proporcionar trayectorias para transferir infomacibn de un registro a otro. 4-3 Transferencia de canal v de memoria Una computadora digital típica tiene muchos regiskm. Esta operación simultiínea siempre es posible con registros que tienen flip-flops activados con flancos. El enunciado + representa una operacibn que intercambia d contenido de dos registros durante un pulso de reloj común. Se usa una coma para -arar dos o m& operaciones que se ejecutan al mismo tiempo. 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. La cantidad de alambres ser4 excesiva si se usan líneas separadas entre cada . transferencia real no ocurre hasta que se activa el registro mediante la siguiente transición positiva del reloj en el tiempo t 1. siempre y cuando T = 1. LQS símbolos bAsicos de la notaci6n de transferencia de registros se listan en la tabla 41.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. Los registros es& representados por letras mayCisculas y los nCimems pueden estar despub de las letras. La flecha significa una transferencia de informacibn y su direccibn.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

El registro de datos (DI?) contiene el operando que se lee de la memoria. E l control lee una instnicci6n de una diiecci6n especifica de la memoria y la ejecuta.erando.& colocarse kn un regiStra . 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. La computadora necesita los registros del prmsador para manipular datos y un registro para contener una direccihn de memoria.indirecto se utiliza como un apuntador a un arreglo de d a k El apuntador pu.del procesador y no en la memoria. una a la vez. 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 . El registra acumulador (AC) es un registro de procesamiento de prop6+to general. Despugs continúa leyendo la siguiente instrucción en secuencia y h ejecuta y así sucesivamente. Se necesitan doee bits de una palabra de instnicci6n para especificar la direccibn de un op. - Por lo general. 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. 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. 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. 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. IA ir@ruccidn que se lee de l a memoria se coloca en el registro de instniccibn (IR). Se utiliza el registro temporal (TR) para contener 10s datos temporales durante el procesamiento.IR PC TR INP. Esto deja tres bits para la parte de operacibn de la instrucción y uri bit para especificar un direccionamiento diwto s! un indirecta.

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

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

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

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

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

lo mal es el equivalente al hexadecimal7. .&ii rmh*folllar * & ~ I ' & Y ~ h. porque e l dltimo bit ea 1 .Lee cuatro bits de la extrema izquierda son siempre 0111.FWJ SPA SNA SZA SZE HLT . Los otms digitos hexadeci- . Una instrueci6n con referencia a memoria tiene una parte de direcci6n de 12 bits. rrJa OUT SKI SKO ION IOF F400 F2íN FlOO Fb80 F040 Introducir un canleter en AC Sacar qn cadcter d e d e AC Brincar hndera de entrada Brincar s i hay bandera de salida Intempcibn encendida Inkwpci6n apagada cih. dddo que e l dtimo bit es O. Cuando I = O. A1 mar el equivalente hexadecimál reducihia los 16 bits de un cddigo de instrucci6n a cuatro dlgitos. Cuando I = 1 . Las instruceibnes con referencia a registro utilizan 16 bits para especificar una ope~aci6n. 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 . las iiltimm cuatro bits de una instnicci6n tienen un digito Irexadecimal equivalente de O a 6. El Bltimo bit de la instrucción estzi representado por el símbolo 1. 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.142 mmmmco . el dígito hexadeeimal equivalente de los altimos cuatro bits de la uistrud6n vhda de 8 a E. donde cada digito h-decima1 es equivalente a cuatro bits.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

.

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

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

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

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]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

el simbolo no puede inberpretarse. SUB y DIF.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. tabla de diredonea simbólicas junto con su ntimero binario equivalente.12. 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. E i ensamb M r uWia cuatro tablas. 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. las localidades de la memoria se llenan con el &digo para espacia Se almacena en la siguiente posición de memoria secuencia1 e l valor que se encuentra en LC mientras se p n b a la h e a . Cada shbolo de etiqueta s e almacena en dos posiciones de memoria y temina con una coma. Estos sirnbolos repmentan d W o n de ~ 12 bits equivalentes a las hexadecimales 106. 4 TabIa de símbolos dg d M 6 n . de otra manera. E 1 programa tiene tres &mimes simbólicas. ~a6k no-MRi.deetiqueta -contrado y constituye l o s datos de saiida que genera el ensamblad~r durante la primera pasada. el ensarnblador genera la tabla de di&oneg simbblicas que se lista en la tabla 6. Para el programa de la tabla 6-8. 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.107 y 108. MM. No se almacena nada en la tabla s i no se encuentra un título. Tabia de seudoig&mcciones. 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. esperifkado mediante el contenida de L€. Si la etiqueta contiene menos de tres caracteres. Despues tC se incrementa en 1 y se procesa una nueva lfnea de código.

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

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

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

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

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

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

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

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

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

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

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

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

también transfiere el valor de SH4 + 1 al contador del programa.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. La subnitina SH4 debe =tomar a la h l i d a d 102 después de que finahe su m . 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. Esta ami611 ha guqdado h dimcibn de retarno y la subrutina s e ejecuta ahora comenzando en la posicih 10A (porque este es el conaenido de PC en d siguiente ciclo de b68queda). La siguiente imlmccí6n que se encuentra a BSA SH4. .Cuando se ejecuta la instruccihn BSA. La Uistnicción BSA esta en la lacalidad 101. l a unidad de ccmtrol almacena l a direccibn de retomo 1 Q 2 dentro de la posici6n.Esto se hace al enmascarar FPPO con e l contenido de AC. 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. 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.ddinida por la M 6 n simb6b SH4 (la cual es 109).

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

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

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

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

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

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. La primera dirección del buffer es 500. En una situacibn prsctica podría ser necesario limitar el tamaiío del buffer y podría usarse un contador pwa este prop6sito. 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. 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. El primer cardckr doble se almacena en la p~sici6n 500 y todrw los caracteres se almacenan en posiciones secuenciales. El programa utiliza un apuntador para llevar un registro de la posici6n achtalmente vacía en el buffer. 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. m. N6tese que se solicita la subrutina IN2 de la tabla 6-u) para introducir y empacar los dos caracteres.- BUN UEQ BUN EQL /Brincar a rutina "diferente" /Brincar a rutina "igual" . 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. m. /Sumar segunda palabra /SaItar s i AC B cero CMA INC ADD WD2 SZA m. empacar dos caracteres en una palabra y almacenarlos en el buffer. 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.macenarpalabradedoblecatackrenelbuffer /Incrementar apuntador /Ramificar para i n d u c i r rnhs caracteres /Primera direccibn de buffer /Pasieibn para aputitador ADS. 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. E) programa que se lista en la tabla 6 2 1 puede utilizarse para introduur un psograma sirnbbiico desde el teclado. No se u t i k un contador en el programa.posici&n FEF).

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

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

Pueden usarse interrupciones con otros pmp6sitos. 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. comprobar siguiente bandera /La bandera eskA activada. Además. m. 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. SE. 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. como para procesar v r e s internos o candiciona de alarma especial.S E C U & 68 Pmpmación de entrada-~~lida 219 TABLA 6-23 P m p m a para dar m i c i o a una intemipcibn BUN SRV CLA ION LDA X ADD Y STA Z /Diretcibn de retorno almacenada aquí /Brincar para dar servicio a rutina /Parte. /La W w a estd apagada. trada /Imprimir cadcter /Aimamnarlo en buffer de entrada /Incrcmcntar apuntador de entrada /Comprobar bandera de salida /Lahñndcra esth apagada. Rl. las fuentes de interrupcibn no se limitan a transEerencias de entrada y salida. . 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 .

SUM = O SUM-SUli+A+B DIF = DIF .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. 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. Liste el programa de lenguaje ensarnblador (de las instrucciones biirias equivalentes) generado mediante un mmpilador del siguiente programa Fortran.C SlJll=SUH+DIF .e IR (en hexadecimal) aI finai.abajo est&n en hexadecimal. E 1 siguiente programa estA almacenado en la unidad de memoria de l a cumpukidorabásiria. L a computadora ejecuta las inctrucciom comenzando m la dirección 100. Considere variables enteras.PC. Muatre el contenido de AC.

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

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

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

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

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. Las variables de control pueden . según la aplicacidn. Durante cuaIquier momento. El principio de micropgramaci6n es un m M o elegante y sistemático para controlar las secuencias de dcmoperaciones en una computadora digital. se van a iniciar ciertas microoperaciones. El ~ t a d o activo de la variable de control puede ser el estado 1 o el edtado 0. las seirala de control que especifican micmperaciones son grupos de bits que seleccionan las trayectorias en los multiplk* res. La funcibn de controI que especifica una microoyieraci6n es una variable binarh. decodificadores y unidades 16gicas arh&tieas. Una variable de control en estado binario opuesto no cambia el estado de las'regktroc en el sistema. mientras otras q~edaninactivas. En un sistema organizado con bus. La complejidad del sistema digítal se deriva de la cantidad de secuencias de micrmperaciones que x ejecutan. h unidad de control inicia una serie de pasos -&les de rnicroope raciones.1 ' J EN ESTE CAP~TULO 7-1 7-2 7-3 7-4 Memoria de control Secuencia de la h i b n Ejemplo de un mimoprograma D i j o de la unidad de ~ontrol 7-1 Memoria de control La función de la unidad de control en una canputadora digital es iniciar secuencias de microoperaciones. La cantidad de tipos de operaciones dife rentes que estdn disponibles en un sistema dado es finita. 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 memoria principal estli disponible para que el usuario almacene programas. desde un disco magnético. dentro de la cual se almacena toda la información en forma permanente. Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero. El contenido . la memoria de control puede ser una memoria de sólo lectura (ROM). El registro de direccionamiento de la memoria . Una memoria que es parte de una unidad de control se denomina memoria de control. Cada palabra en la memoria de control contiene una microinstrucción. se utiliza para lectura. por ejemplo.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. 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. Cada instrucción de máquina inicia una serie de microoperaciones en la memoria de control. Como no se necesitan alteraciones del microprograma una vez que la unidad de control está en operación. la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar.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 contenido de la palabra en ROM en cierta dirección especifica una microinstrucción. para evaluar la dirección efectiva. Un descubrimiento más avanzado conocido como microprogramación dinámica permite que un microprograma se cargue al principio desde una memoria auxiliar.' Una unidad de control cuyas variables de control binario se almacenan en la memoria se llama unidad de control microprogramada. Una secuencia de microinstrucciones constituye un microprograma. La configuración general de una unidad de control microprogramada se muestra en el diagrama de bloques de la figura 7-1. El programa del usuario en la memoria principal está formado por instrucciones de máquina y datos. El microprograma consta de instrucciones que especifican diferentes señales de control interno para la ejecución de microoperaciones de registro. Las palabras de control pueden programarse para realizar diferentes operaciones sobre los componentes del sistema. La memoria de control se considera como una ROM. Las unidades de control que utilizan la microprogramacibn dinámica emplean una memoria de control en la que se puede escribir. 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. para . Una computadora que emplea una unidad de control microprogramada tendrá dos memorias separadas: una memoria principal y una memoria de control.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. En contraste. que se denomina palabra d e control. por lo general. La microinstrucción especifica una o más microoperaciones para el sistema. Las palabras en ROM se vuelven permanentes durante la producción de la unidad.

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

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

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

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

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

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

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

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

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

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

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.subruiina) CAR (2-5) +DRCll-141.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.I -6) +O + .Ninguno A C t A C t DR AC+D A C c A C -t 1 WOP ADD CLRAC INCAC AC+-DR AR tDR(&lO) AR t-PC M[&R] DR DRTAC DATAR PCTAR WRITE Ninguno A C t A C DR A C t A C V DR AC-AC A DR - NOP SUB AND READ ArnR INCDR PCTDR Simbolo DR +MIAR] DR c A C D R .mroen AC Función BR M I 01 1 0 11 Slmbolo JMP CAU. CAR(0. 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.

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

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

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

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

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

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

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

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

Idgfcn y de com'mhnto m. L s otras salidas del decodifkador que inician transferencias entre registros deben conectarse en fomia similar. Los muitipIexores seleccionan la información de AR cuando está activa la salida 5 y de PC cuando estd inactiva la salida 5. 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.Cbrno se muestra en la figura 7-7. La unidad de corrímiento lbgico aritmetico puede di&rse como en lm figuras 5-19 y 5-20. L a parte de seleccibn.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). ADD Y DRTAC. como se muestra en la figura 7-7. Sin embargo. De igual manera. Puede construirse un secuenciador de mimoprograma con funciones digitales que w? ajusten a una aplicacidn particular. 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. un secuenciador de circuitos integrados debe proporcionar una organizacidn interna que pueda adaptarse a un amplio rango de aplicaciones. Para garantizar un amplio-rangode aceptabilidad. En lugar de utilizar compuertas para generar las seHales de control marcádas mediante los shbolos ADD.) hay una transfemcia de PC a AR {representado mediante PCTAR). tambih hay secuenciadores de ppop6sib general convenientes para la con* tniccibn de unidades de control de micropropma. . se transfxera a AR la informacibn de los multiplexores. y DR en la figura 5-19. estas entradas pwveridrdn ahora de las salidas de loa decodificadores asociadas con los símbolos AND. al igual que existen grandes unidades ROM disponibles en encapsulados de circuitos integrados. respectivamente. Semenciador de dcroprograma Los componentes básicos de una unidad de control minoprogramada son la memoria y ios circuitos que deccionan la direcci6n siguiente. las &lidas 5 y 6 del decodificador FI están conectadas a la entrada de carga de AR. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direcci6n para h memoria de control. 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.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. cuando F 7 = 110 @ i r = 6. 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. 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 la salida de SBR y de una fuente externa que Figura 7-8 wuenciadw & micrqprogramp r a una memoria de mnhol. Hay das multiplexotes en el circuito. E l primero selecciona una direecibn de las cuatro fuentes y le marca una ruta hacia dentro del registro de direccibn de control CAR. La salida de CAR proporciona la direecibn para la memoria de contral.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. 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. 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. El djagrama de bloque del semendador de microprograma se muestra m la figura 7-8. La memoria de control se ínciuye en el diagrama para mostrar la interacih entre e l secuenciador y la memoria conedada a 41. 1 Externa .

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

transferir la direcci6n al q i s b de direcciona~m de ~ control. - .Problemas 249 tina se cargamn el valor incrementado de CAR durante una microinstnicción dicitada (BR = 01) siempie p cuando se satisfaga la condición del bit de estado (T = 1). 10 ns para iransferir la mieroinshccibn al registro de datos de ejecutar 4 s dcr6cperaciongs requerGas que se e s @ ~ontroI~y 40 m h n mediantela palabra de m n ~ l .~40 ns para accesztr la ROM de memoria de control.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. 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 . b) microinstnieei6n. ~ 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.E l acarreo de salida de una etapa debe aplicarse a l a entrada de la siguiente. Una entrada m la primera etapa menos significativa debe ser igual a 1 y próporeionar la operaci6n de incrementar en uno. N6:tese que e l circuito incrementador del secuenciador de la figura 7-8 no es un contador construido con flipflops. 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.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. ~Cu4nbs bik hay en el campo ~d&&t de transferencia de control y en el campo d e s e l d i ' .un. 18 ns para para. Puede diseñarse un incrementador de circuito combinatorio al poner . sino un circuito combinatorio construido con compuertas. una compuerta OR y un inversor.en cascada una serie de circuitos semisumadores (véase la figura M). c) rnimpmgrama: d) m i d i p .

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

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

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

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

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

el tipo de datos que soportan las instrucciones y la funci6n que reaZXza cada instnicci6n. LA última sección presenta el concepto de computadora can conjunto de instrucciones r e c i d 9 i (Rzsc). 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. resultados temporales. la CPU. l~mitoo de ihstrucciones. la estructura de memoria. Despds presentamos los tipos de fomtos de instrucciones disponibles. 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 . 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. Este c&pítulod 4 la arganizaci6n y arquitectura de la CPU con énfa& en el punto de vista del usuario de la computadora. E l diseíto de una CPU es una tarea que. representa la eleccEon de la circuitería para implantar las instrucciones de m8quina. Los registros se comunican uno con el otro no m510 para transferencia directa de datos. E i f o inüu e l a . 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. modos de M ~ h $ m h tel ~cijnjdto . 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. . Desde el punto de vista del diseñadw. Es m8s conveniente y eficiente almacenar -tos valom intermedios en registros de procesador. lógicas y de corrimignk. e hstrucciones y la organizaci6n general de los registras J. y productos parciales durante la mdGplicaci6n. En los capftulos S y 7 se desarrollaron ejemplos del diseño de unas CPU simples..! g~ el p m d o r . En wasiones se define la arquitectura de la comp&tdwa c o m la estnicima y el desempefio de la computadora desde el punto de vista del prograplacbr que utiliza instrucciones de ienp a j e de &*a. el conjunto de instruccione de k computadora proporciona las especificaciones para el d i d o de h CPU. contadores. direcciones de retorna. Por I o tanto. 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. sjnD también mientras ejecutan diversas micrmperaciones. en gran parte. El usuario que programa la computadora en lenguaje ensamblador o de n 8 p k a debe tomar en cuenta el conjunto de registros.256 cAP~TCRX~ -0 Unidad eerifral de p t o La CPU realiza div~rsas funciones dictadas p a el tipo de instrucciones que se incorp~ran en la computadora.

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

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

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

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

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

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

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

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

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

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

después las de los paréntesis externos . denominada notaci6n polaca inversn (ñPN) colma el operador después de los operandos. Los siguientes ejempIos mueshan las tws 'épmtaciones: +B AE + A +A& Notacin interna fija Notaci6n polaca o previa fija Notacidn polaca inversa o posterior fija La notacidn polaca inversa es una forma adecuada para la manipulacidn de la pila. ejecute Ia aperaci6n con los dos operandos que .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. con RRN frecuencia denominada notaci6n polacnI coloca el operador antes de los operanda.e encuentran en d lado izquierdo dd operador.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.previos son C y D. Cantinde analizando la expresibn y repita el procedimiento para cada operador encontrado hasta que no haya m8s operadotes. E l sfguiente operador es m y sus d& operado. Esta jerarquía dicta que primero ej&utemos todas las operaciones aritm& ticas dmtio.A B y sustituhus A. La nofaci6n postm'urfija. 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. Esta mp=ta&n. Cuando w encuentra un operador. 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. La conversicin de nobcidn interna fija a notaci6n poiaca inversa debe considerar la jerarquia operacional adoptada para la notacibn interna fija. B y * por el prcducto para &tener y * dende (A * B) es una cantidad dnim' que s e bbtiene del producto. Para la expresi6n anterior encontramos el operador * después de A y B.

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

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

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

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

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

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

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

El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dwcci6n de la . Un programa para una CPU tipo RE€ consta de instrucciones LOAD y STORE que tienen una memoria y una direcci6n de registro. 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. La manera en que eligen los operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción. 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. 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.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. 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 . es necesario convertir la expresi6n a motaci6n polaca inversa. E s t a operacl6n debe realizarse mbfe algunos datos almacenados en registcos de computadora o en palabras de memoria. E31 campo de operaci6n de una instruccidn especifica 4 opexaci6n que se va a ejecutar. El resultado de los c6lculos se guarda despuks en la memoria con una inshucci6n de almacenar.Todas las otras instrucciones se ejecutan dentm de los registros de la CPU s i n transferir* a la memoria. Las operaciones de sumar y muItiplícar se ejecutan con datos en los registros sin acceder a la memoria. El siguiente es un programa para evaluar X = (A i B) * (C + D).

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

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

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

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. 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. N6tese que si una instrucci6n de tipo índice no incluye un campo de direcci6n en su formato. 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. En cualquier caso tenemos un modo de dimcimamiento diferente que se utiliaa para una aplicación distinta. El registro índice puede i n m mentar= para facilitar el acceso a operandos consecutivos. . 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. 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. El registro índice es un registro de CPU especial que contiene un vaBr índice.Cualquier aperando en el arreglo puede accesarse con la misma instruccidn siempre y cuando el registro Modo de direccionamienfo indexado: En indice contenga el valor de índice correcto.En estos modos la direccidn efectiva se obtiene del cdlculo siguiente d k c i 6 n efectiva = parte de direccidn de la instrucci6n -t. 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. La distancia entre la direcci6n inicial y la dimci6n del operando es el valor del índice h a c e n a d o en el registro de indice. cuando la direccidn del brinco está en el Brea que m i e a la palabra de la instrucci6n misma. 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. la instrucci6n se convierte al modo de operaci6n de indirecto por registro. E 1 ciilculo de dreccibn efectiva para el modo de direecidn relativa es 826 + 24 = 850. Para hacer más claro con un ejemplo. Un campo de direcci6n de h instnicci6n define la dirección inicial del arreglo de datos en la memoria. Esto es 24 posiciones de memoria adelante de la dirección de la siguiente hhucci6n. Cuando se suma este número al contenido del contador de prugrama.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.el contenido de [registro de CPU E l registro de CPU utilizado en el cdcuio puede ser el contador de programa. Con frecuencia se utrliza el direccionamiento relativo con instrucciones de tipo brinco. un registro de índice o un registro base.

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

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

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

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

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

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

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

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

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

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

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

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

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

salto) y una abreviatura del nombre de la coqdici6n. Si no. programa mas comunes. S i la condicihn planteada es cierta.= & 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 s mayor o igual .mayor que Brincar M. se inserta la letra N (no) para definir el estado 0. Por lo tanto BC es brincar en el.1 ri **L dw = m rrk BZ BNZ BC BNC BP BM BV BNV Brincar si hay cero Brincar si nb hay -o Brincar si hay acarreb bimt si~nomhay acarreo B-sihayundgnomh Brincara hay irn signo menos Brincar si hay sobdujo . Cuando se usa e l estado de condici6n opuesta. Cada nem6nico estA formulado con la letra B (por branch. El bit de acarreo se utiliza para comprobar si hay un acarreo de la posici6n de bit más significativa de la ALU. interrumpe. el control continúa con la instnicci6n que sigue. 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. Las instrucciones condicionais pueden a a ~ ~ i a r s tambidn e con las instrucciones del tipo de control de programa brincar.iones para comparar con signo (A Eriqcñr si es. llamar o retornar.acarreo y BNC es brincar cuando no hay acarreo. 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.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 .~ndicional -7 -m-' Nemónico eondicihde tmnsfqncia Condición probada 2 . se transfiere el cmtrol del programa a l a dirección especificada por la instrucci6n. 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 signo refleja d estado del bit más significativo de la salida de la ALU. Entonces 240 > 20. este no es el caso porque cada uno debe considerarse en forma separada.20 = 220. 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.ejemplo num6tieo acarreo. 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. la ALU toma e l complemento a 2 de B y lo suma a A. Sin embarga. Como se dijo antes. ta resta en decimal es 240 . Las instrucciones que producirsn una transferencia de control despubs de esta comparación . un brinco sobre más comprueba un bit de signo en O y un brinco sobre menos comprueba un bit de signo en 1. ya sea que no tengan signo o estén en 'epresentaci6n de complemento a 2 con signo (véase el capitulo 3).128. Ia instrucción de comparar ejecuta una resta de dos operandos. Si consideramos números sin signo. el equivalente decimal de A es 240 y el de B es 2 0 . La resta de d a nSimeros es igual. tenemos que A > B y A f B. La tabla 8-11 proporciona una lista de tales ins:mcciones de transferencia condicional. parece igual para los números con signo y s i n signo. 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. Por l o tanto. 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. digamos sl . $amo se muestra en l a figura 8-8. 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.E l número sin signo más grande que puede acomodarse en 8 bits es 255. S = 1 porque el bit a la extrema izquierda ea 1. El registro de estado proporciona información acerca de la magnitud relativa de A y B. Consideremos una ALU de 8 bits. ta magnitud relativa que se muestra bajo la columna de condición probada. Sin embargo. C = 1 porque hay un acarreo de I a última etapa. en la tabla. S = O repmenta un sipo positivo y S = 1 un signo negativo. Para ejecutar A . como se explica en el siguiente ejemplo n d r i c ~ . pero se afectan los bits de estado. V = O porque Im últimos dos acarreos son iguales a 1 y Z = O porque el resultado es diferente de O. Por l o tanto.13. 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.B. Sean A = 1 1 1 1 O O O O y B = 00010100. La hstruccibn de comparar actualiza el bit de estado según se muestra. el resultado bmrio 11O111OO S el equivalente del decimal 220. El ranga de números con signo esU entre + 127 y .

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

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

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.retorno anterior. S6io de esta manera el progrma interrumpido podrh reanudar exactamente como si nada hubiera ocurrido.E 1 contenido de1 contador del programa. 2. 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. en principio. como resultado de una soücitud generada en forma externa o interna. muy similar a una solicitud de subrutina. Estos tres conceptos de p m d i miento se detallan en seguida. la CPW retorna al mismo estado exada que tenia cuando ocumb la intempcián.de ciertas condiciones de estado. & @ S de que se ha interrumpido un. p a i i i k de estado & programa E i conjunto de todas las condiciones de bit de estado en la CPU se denomina en ocasiones una palaha die estado de p r o p m o PSW (PVogram sfafus m d ) . El control retorna aI programa original después de que se ejecuta el programa de servicio. cada ckcci6n de retorno puede saIvarse dentro de la pila sin destruir ningún valor previo. Interrupción> d d programa El concepto de interrupeibn de programa se utiliza para manqar diverproblemas que surgen de la secuencia de programa narmaL La internipcibn de p m g r m se refiere a l a transferencia del control de programa de un programa que com en cierto momento a otro programa de servicio. El estado de la CPü al final del ciclo de ejecucih (cwndo se reconme la intermpcibn) está determinado por: ' 1 . 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. Cuando se utiliza una pila. T. Esto resuelve eI problema de la subrutina reamiva porque Ja siguiente subrutina que sale es siempre la utima subrutina que se wlicit6. El c o n W u .a PSW se almacena en un registro de hardware separado y contiene la informaci6n de estado que caracteriza a b CPU. como se explica m A s adelante). 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.regi&os del procesador. Esto no es deseable porque s e destruye XOCmaci6n vital. 3. I11 prodimiento de interrupcibn es.programa y se ha ejecutado la mtina de servicia. 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 . El contenido de todos 1 .SBCCION 87 Control del programa 297 b c i 6 n de .

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

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

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

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

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

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

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. Los registros locales se utiliian para las variables locales. 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. mientras que e l enunciado de retorno decrementa el apuntador y produce l a activaci6n de Ia ventana anterior. y por l o tanto.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. B concepto de wntanas con registros traslapados se ilustra en la figuxa 89. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar un apuntador. El sistema tiene un total de 64 registros. que consiste en un conjunto de registros del archivo de registrohlpara que la use el nuevo procediiento. Las ventanas para procedimientos adyacentes tienen registros traslapados que comparten para proporcionar el paso de parámetros y resultados. Si el procedimiento B solicita el procedimiento C. Como ejemplo. por lo tanta. 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. Cada solicitud de procedimiento prcduce la asignacibn de una nueva ventana. el procedimiento A almacena los parAmetros para el procedimientb 3 en estos registros.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. C y D. . 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. En cualquier momento dado. Esto elimina la necesidad de guardar y restablecer las valom de los registros. Los registros de1 $26 al R31 son comunes a los dos procedimientos y. Mwkse que los registros R10 al R15 son comunes a Ios procedimientos A y D. Los registros comunes se utilizan para e l intercambio de parsmetros y resultados entre procedimientos adyacentes. Cuando el procedimiento B está listo para retornar al 'final su computaci611. A 1 0 está activa una ventana de registro con un apuntador que la seiiala como activa. las parhmetros se transfieren en forma automdtica del procedimiento que Uama al llamado.por lo que las cuatro ventanas tienen una organización circular en donde A es adyacente a D. supongamos que el procedimiento A solicita el procedimiento B. B. pasará los paraimetros por medio de los registros del R42 al R47. El procedimiento B utiliza l o s registros lmales del R32 al R41 para el almacenamiento de variables locales. Cada ventana de registros consta de 10 registras locales y dos conjuntos de seis registros comunes a las ventanas adyacentes. Cada solicitud de procedimiento activa una nueva ventana de re@stras al incmentar el apuntador.

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

Las 31 instrucciuqes de la RICC 1 se listan en la 'tabla 812. Las instnrcciones de d p u l a c i 6 n de datos ejecutan operaciones arítrndticas. 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. los 5 bits de orden menor de S2 especifican otro registro fuente. La operación se ejecuta con los datos eapedicados en los c a * p Rs y S2. S2 especifica uoa constank de 1 3 bits de signo extendido. pero l a segunda fuente puede s e r un registro o un operando inmediato. 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. S los bi en el cWgo de operacidn especifican una opsrari6n y eI ocbvo indica si s e a c t u a i í í los bits de estado despuk de una oyeración ALU. El registro RO m n t h a &lo n h e r 0 ~ O. por lo que puede utilizarse en cualquig campo para especificar una cantidad de cero. el campo Rd de S bits selecciona uno de los 32 registros como destino para e l resultada de la operacibn. 16gicas y de corrimiento. Si el bit 13 de la instzucci6n es 1. Par l o tanto. 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.'Si e l bit 13 de la instrudbn es O. Se han agrupado en tres categorhs. 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. Lns simbolos bajo las columnas del código de operaci6n y operando se utilizan cuando se d- . la instnicci6n tiene un formato de tres direcciones. Rs es uno de los r e g s i w fuente. Para instrucciones de registro a registro.&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.

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

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

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

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

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

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

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

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

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

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

tarnbih el cmto del sistema. los descubrimientos tecnológicos han reducido el costo de la circuiteria a un punto en donde las técnicas de procesamiento paralelo son eron6micamente factibls. En lugar de p-ar cada instrucci6n en forma secuencia1 como en una computadora convmcional. E i sistema puede tener dos o más ALUS y ser capaz de ejecutar dos o más instrucciones al mismo tiempo. con 6 1 . . Por ejemplo. 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. la cantidad de p-nto que puede lograrse durante un cierto intervalo de tiempo. S i n embargo. Además. el sistema puede tener dos o más procesadores operando en forma concurrente. un sistema de procesamiento paralelo puede ejecutar prosesamienta concurrente de datos para conseguir un menor tiempo de ejmuci6n. esto es. mando se ejecuta una instrucción en la ALU. puede leerse la siguiente instrucción de la memoria.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.

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

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

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

como se muestra en la figura 9-2 D e R1 a R5 son registros que reciben nuevos datos con cada pulso de reloj. E l multiplicador y el sumador son circuitos Figura S2 Ejemplo de ptmesamienio p d e l o . Se aplica un reioj a todos los registros después de que ha transcurrido un tiempo suficiente para ejecutar toda la actividad del segmento. La organizacibn de la linea se mostrara mediante un ejempIo simple. La d i d a del circuito combinadonal m un segmento dado se aplica al registro de entrada del siguienk segmento. Al B 1 ci . 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.segmento para que cada uno pueda operar sobre datos distintos en forma un demplo simultánea. 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 . D e esta manera la irdormaci6n fluye por la Unea un paso a la vez. Cada segmento tiene uno a dos registros y un circuito combinatorio. El registro contiene los datos y el circuito combiitorio ejecuta la subope~aci6n en e l segmento particular.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

1 O 1 Q.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 .

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

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

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

. La multiplicaci6n y divisibn de las mantisas deben hacerse mediante los métodos ya descritos. . microoperaci6n.Dividir (Q cociente esta en a) Agura 10-23 D i a m a de flujo para divisi6n decimal. L a s algoritmos de la secci6n 103 pueden adaptarse para datos decimales.Operacionesde punto flotante tas operaciones aritméticas de punto flotante decimales siguen los mismos pxocediiientos que las operaciones bbarias. siempre y cuando se interpreten en forma correcta los shbolos de la.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-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. . 3. Leer el registro de datos. Leer el registro de estado. una secuencia de bytes que debe abcenarse en la memoria. La transferencia de cada byte requiere de tres instrucciones: 1 . 2 Comprobar e l estado del bit de bandera y transferir el control al paso 1 si no está activado o a1 paso 3 si l o está.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

La bandera ocupado indica si el IOP está ocupado o preparado para ejecutar una nueva operación de E/S. La CPU especifica una palabra de comando de canal (CCW) para indicar el tipo de operación requerida del IOP.sECCI~N11-7 Procesador d e entrada-salida (IOP) 459 figura 11-24. La CCW CPU 8086 4 c 1 1 Controlador de canal 1 - Sistema de canal Unidad de memoria I IOP 8089 4 V Canal local 1 b Interface Ld b Dispositivo de entrada Dispositivo de salida mm3up4 ?\3 rib -' miih U Figura 11-23 Diagrama de bloque del sistema micrpprocesador Intel8086/8089. 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. . al igual que un apuntador de dirección a su bloque sucesor. La dirección del bloque de control se pasa a cada canal IOP durante la inicialización.

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

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

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

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

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

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

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

Camo los se en fomia s e r i a l . SYN SOH T 4 hllneaestáinacava Iniciodeencabezado L a dirección de la terminal es T4 I n i c i o de transmisi6n de texto STX El twto enviado EY una respata de la computadora proporcionandoel saldo de la cuenta ETX L E Fin de transmisi6n de texto Carácter de pandad longitudid en espera de la respuesta. también está a p d o procesando otras tenninalea. impresora y dispositivos de arhiiirión visual que utilizan Transparencia de datos . Esta propiedad permite mdtiplexar a muchos usuario8 para eonsegiiir una mayor efectividad en un -S de tiempo compartido. 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.. Se calcula un carActer LEC y se envla a la temiinal. El mensaje tiene e l encabezado SOH y l a djreccibn de la tenninal T4. Si la terminal responde con un cargcter NAK. 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. 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. 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. d procesador xetransrnite el mensaje. 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 .

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

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

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

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

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

Transmisidn s&al dincrona. después que e1 dispositivo 2 ha enviado una solicitud de interrupei6n a la CPU.F$JQ = 0011. Trammisi6n &al asinmons con un bit de alto. Proporcione la secuencia de operaaones internas cuando se borra un dato de la FiFO y se inserta despuh un nuevo dato. ¿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.Problemas 473 tCdnt& bits hay en el registro de oorrimiento transmisor de la figura 118 cuando la . Determine un procedimiento para especifiw y limpiar el bit de bandera.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. obtenga un diagama de. Usando la conñguraci6n establecida en el problema 11-16. Considere la posibilidad de noxr la internipci6~1 en cualquier momento durante la ejecuci6n de la instnieci6n. Transmisibn serial aslncrona con dos bits de alto. 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. Se inserta i n h c i 6 n denkm de un búffer FiFO a una velmidad de m bytes por segundo. ~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. a. L a máxima capacidad de bdffer es k by@. 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. Analice la dificultad que puede surgir.fkujo(similara la de la figura 11-11) parad programa de CPU para sacar datos. pero antes de que la CPU responda con el reconocimiento de interrupci6n7 . ¿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). $3 bCiffer está lleno? ' c ¿El bilffer contiene dos datos? a. ¿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. a ¿Cuánto tiempo se necesita para llenar un buffer vado cuando m > n? b. ~Cuálw son los vakres de entrada preparada. c. b .

11-22 Utilizando técnicas de disefio de c h u i b s mmbinacionales. como se muestra en la figura 11-18. 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 . mb .e ~ u ltL1 a la entrada de las primeras dos palabras. Propbcione la cuenta paso a paso de las acciones que se toman durante I1 .77. . Obtenga la tabla de verdad de un d%cadorde prioridad 8 X 3. . -m 0 * .78 y 79 11-26. a.robe de ciclo. Un controlador DMA transfiere palabras de 16 bits a la memoria utilizando el .que describa la comunicación de canal CPU-E/S en la IBM 370.J t h -A - 11-21. Dibuje el diagrama lúgico del circuito. ¿Cuánto se frenara la CPU debido a una transferencia DMA? el DMA tiene prioridad sobre la CPU cuando ambos solicitan una 11-50. Prupotelone los valore inicialesque debe transferir la CIW al controlador DMA. ¿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. 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.Gwisidere una computadora s i n eircuitería de interrupci6n de prioridad.derive las expresiones booleaw listadas en la tabla 11-2 para el edificador de prioridad. ~Porqug kamfereneia de memoria? 11-31. Liste las ocho direcciones de vector. Dibuje un diagrama de flujo similar a la de la figura 11-20. comenzando con la de más alta prioridad. ~ Q u 4 debe hacerse en la figura para hacer que los cuatro valores VAD sean iguala al equivalentebinario de 76. Las palabras se.a una rutina de intwrupci6n común. Es necesario transferir 256 palabras de un disco magnético a una seccibn de memoria que comienza en la dirección 1230. i C ~ h t a direcciones s diferentes Pueden formularse? 6Y . ¿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. I a transferencia es mediante DMA. 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 . 11-29. 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. 11-23.La CPU recupera y ejecuta instrucciones a una velocidad de un rnill6n de instrucciones por segundo. 11-25.ensamblan de un dispositivo que g i trasmite caracteres a una velocidad de 2M0 caracteres por segundo. .Explique e6mo puede establecerseuna rioridad en el programa de servicio 'm -4 de intemipri6n.

W . 6 . 3a. Compukr Vesign md Ardiitactuw. Ward.A. Muestre c6mo funciona la insercibn de ceros.. . H . 1 0 . y G. d. Nueva York: McGraw-W. d. 1 1 .R. 1986. L Wright. A. F . y R. CottPpufafion Stmctures. Paul. Computer Orgatrhtion: Hnrdwre/Soptaare. Hays. Lippiatt. J. Si la respuesta es si.M i c m p u t e r ~rchikture nnd Progrumming.A.Referencias 475 11-33. Zee. Englewood Uiffs.A. C. R a f i q m m n . 1 9 8 7 .W. 1986.. Jr. 1970. HiII. Compufer Arckitechre: A Quantifatizre Appoach. L. Compter Arckit~hre nnd Organiuith.Chandra... J.. 1. cuando se trasmite un cero seguido poc los diiz bits que representan e l equivalente binario de 1023. F. y G . MA:MIT Pms. Toy. 2 a . MN: West Publishing. G. Hemessy. 2. Englewood Cliffs. utilizando el ear&ckr D L B . DigItaI Systm: hlnrdware Orgatiktion and Design. ComputerArchitecturemd Paralki P m i n g . 1981.Peterson. 11-35. . . 1 9 8 8 . Nueva York McGraw-m. K. Nueva Ymk JohnWiley. M . 2a. 2a. 1984. D. 1 9 9 0 . 1988.d