You are on page 1of 574

'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 Ingeniera Ektrica Universidad Aui6noma Metropolitana Iztapalapa, Mdxico

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

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

*eE

.sherep C o o d m

editor: hrbnr'i

MORRIS MANO: AXQWlXTUM DE COMPUTADORAS 316d.


Traducido de la terreta d i del ingis: COMPUnR SYSTEM ARCkmEmuRE

Rohibida la repduccin total o parcial ,de'esta obra, pc eib.

m
A

lisr d

i o

o m e i d o sin auborizacin por d t o del

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

DEECH05 RESERVAWS

Atlacomuioo Nfim. 5 0 0 - 5 O Pisa Col. Zndustrial A m 53519, Naucalpan de J u h z , Edo. dc Mexiw ISBN M w 6 0 . 3 6 1 4 de la Nacional la Indushia Editorial, M. N a: MiembroEfiglish Language Edition P u b W by
Cgmara

h la' '4

'ItP

Original

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 FipfZop T 26 26 Ffip jlqv dispnrado por -el glnnco

T a b l a s #d'W

28

1-7 Circuitos secuencialk Ecuacbnes de &a& de Ios jlip fropc Tabla de estado 31 Diagrama de estado 33 Ejemplo de -diseffo 34
"

30

2-1

2-2

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

CAP~TUD TRES

Representacihn de datos
3-1

Tipos de datos Sistmw numricoc

72
76

RqmenWndecrnial
3-2
Rqmentach alfanurn&m Comp~tos CompktoI d 79

. -.

3-4 3-5

81 R e s b de n i I m sin signo Rp-tadh de'*piuitofijo ) i l P R e p r e s e n M de enteros 83 unhetia 84*-a34#9 Resfa arifmtica 85 ha--SobrgIt~jo 85 -~ Y L Rqmsmtacin del punto fijo den'nral Representacin con p.unto.flotante
Otros cdigos bina&

* 1

3-6

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

w
m

C A P W CUATRO

Transferencia de r k g h t ~ y~ microoperaciones
mil

4-3 Transferencia de canal y de memoria Canal de bus de tres mtados 106 T r n n s m de memoria 108
S u d o r sustractm binario

21'1

-1nmentadoT b i m h 112 Circuito arit rntico 113 4-9: Microoperaciones 16giras


Lista de micrqueracion& I @ h s Implantsicin de h r d w r e TI 7 Algunas aplicacints 118 Microoperaciones de corrimiento Implantacin dd hardwre 122 Unidad de corrimiento 16glco aritmtiao Problemas
Referencias

44
4-7

C A P ~ W CINCO )

Organizacin y. diseo bhim&

a*.
1

cogpu@doras
133

Cdigos de instruccin d Organkin 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 decdjficanff 248 A Determinncin del tipo de instruccibn 150 Iris-de r.fera?cia a r @ t m 153 ~trucciones de referencia a memoria Ejecucin de l a itzstruccin A N D n AC 255 Ejecucin de la imtrucdn ADD a AC 155 LDA: C a r p a AC 156 STA: ~ l m & r AC 156 BUN: Brinco irnondichal 156 BSA: Brimr y guardar Ea direccin de ~m 157 r s ESZ: Incrementa y b r i w si es c m 258 %grama 05flujo & mnfrol 159 a

b3

u!

M p c i n completa de computadora D k i b de una computadora Msica C m ~ l ~ k w n t 270 d C o n t r o l d e ~ t w a s y m d 170 Cmrtrol&j7ipflopsilimiorrs 171 Cmtrol de un canal comn 172 DiseAo de un +aundador 16gico Control &l regisha AC 174 Circuito s u & y Mgw 175 m r~ Problemas Referiencias

CAP~%EO SUS

Prograrnaci6n bsica de la computadora


6-1
6-2

63

n , 64

Intduccin 1 ALenguaje de mquina kmaje ensamblador Regias &l lenguaje 189 Un ejemplo 191 Tdu& nb i d 391

h . H . '
A
a ;

6-5

64

qwmentaci6n de un programa simb6lico en la memo& 1 M P r i m m pasa& 195 -44 Segunda pncnr3a 197 A q' Ciclos del programa Programaci6n de operaciones aritmeticas Prrrgnima & m u t i p l i ~ 205 1 Suma de &le precisidn 206 operaciones 1 6 g - k 207

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

Subditinas

6-8

Pardmtros de subrufina y enlace de datos Programacin de entrada-salida M n n i p u h h & aaracteres 215 ~nt&pc& del programa Problemas, 217 Referencias

.-*#m'

211

m ' . !

Ci
. .

7-3

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

!l
U P OCHO ~

Unidad centrl 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 Instruccioes de tres direccionq 273 Insfmc+nes de d ~ d siwahs 273 Instruccbes de u m di=& 274 Imtrumhes de wro direcciones 274 Instrucctones RISC 275 -0s de direccionamiento

258

Ejemplo numrico

280

Transferencia y manipulacin de los datos Instruccbnes de W f e r e n c i a de los htcs 283 Inshdones de mnnipulncin de los dafos 284 Instruccbms ariimticas 285 Instrucciones 16gims y oie mnnfpukzcih de bits 286

Inshucbm de m i m h t o
Control del programa

288

Bits de condicim de es& 291 Instrucciones de brinco condicionnl 293 295 Llamada y retomo de mbrutim Intemqckh &l p r v m a 297 Tipos de intnmpcbm 299 Computadora de conjun'b de instrucciones reducido WSC)

300

CarsicterEsticas CISC
Camterbtbs RISC

301

302 Ventanas & registros bslap& RlSC I de 8exkeIey 306 Problemas Reerencias .,t

&#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 Lnea paraiela aritmtica 9-4 h paralela de instnimone6 Ejemplo: L f m puhlela de instrucciones de m h segmhtos 332 D+encUi de Is &tos 334 Manejo de las insh-s de fransfmch de m h I 335 P 5 Arquitectura paralela RISC Ejemplo: Lnea paralela de instru&es de tres segmentos 338 Carga pospuesta o rehrdudu 339 ' Transferencia pospuesta o retardada **"

* .r*rr
w
w

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

Introduccin Suma y mta

xii

contenla0

10-3

357 Suma y resfa con &tos d~ mpititd Eon signo Implantacin de kardware 358 Algoritmo dev hardwm 359 &tos ds complemeittu a 2 Suma y resta con signo 361 Algoritmos de multiplicaci6n ImpIantadn de hardwre para datos de mgnitud m signo 363 Algaifme de hnrdwire 36# 366 ~ l & h t o & m t i f t i p W n ije .Bmth

372 Sobreflujonldividk 374 Algm'lmo hardware 375

m signo

Otros algoritmos
10-5

rfe

...
t

377

tt

Operaciones aritmdtieas de punto flatante Consiikrncidnes hfiiaas 378 Corofigumcibn de registros . 381 -m Suma y resta 382 m Multipl-n 384

106

Divish 386 Unidad aritmktica decimal Sumador BCD 389 Resta BCD 391

K"

e w?

4 aia?
----'7f

10-7

Operaciones aritmticas decirnies R. W! Suma y m t a 395 CL Multipliuwin 397 Diarisidn 399 Opacimres & punto flPtante 4~ Problemas Referencias &
, ,

mur'**

bdn!

CAP~~ULQ ONCE

Organizaci6n de entrada-salida
11-1
,

11-2

Dispositivos perifricm Caructers nlfanu&s ASCII Interface de entrada-salida Canal de E/S y rndulos de i nt* E/S versus canal de rnenrcirin

409
412

414'

~~ xiii
11-3
Transferencia a s h n a de daC o n t d de habilitacin 419 Remm'mimfo mutua 420 Trnmfeencia d l asfntnrro~ul 423 Int.rf.ce de comunkwibtt mfnrrwra 425 Buffer prUnero m enirar, primero en wlir M d u s de trmfemch Ejemplo & E/S p r o g r a d 431 /S iniciacta por interrupcin 434 Consider~ctonm & pmgramacidn 435 Prioridad de interrupci6n

428

114

11-5

Prioridad de m i h a de margaritas Interrupc$n de priotPdad paral& Cod~@dor de prioridad 440 Cich de intmpcidn 4-41 Rutinas de p ' q p m a d n 442 Operacions inicd y fuinl W
11-6

439

437

Acceso directo a memoria @MA)

C o n M o r DMA 446 Tmnsf.eremh D2MA 448 11-7 h c e a d o r de entrada-salida (iOP) Comunhci6n CPU-IOP - 452 Cana2 de E/S IBM 370 454 IOP de Intel 8889 458 11-8 Comunicaci6n serial ProFocrofo orientado a caracteres 463 Ejemplo de t r a n s m W 465 Transpmcia de dalos 467 h W o &fado bits
Problemas Referencias

CAP~TULO DOCE

Organizacidn de la memoria
22-1 12-2
Jerarquia de Ia memoria Memoria principal CJ. de RAM y de ROM 481 483 Mapa de direcci6n & memoria

Memoria auxiliar 1 q. Discos mpflcos Cinta mugtdticn . 489 & i --' U4 Memoria asociativa 2 Organizacin de l u circitma 490 ~1-i ?.i Ugim dr c&ncLiniM 492 m ~ c i & nde t Ieclura 495 Operacin de esmmSura 495 ' ,, -..,
12-3
'6

m e

,--.=-=a
.
I

12-5

Memd&

ea&

~apeo'asociativo 498 ' M d p directo 499 ivbpeo de m j r m t o ' o i b Escritura en la .cnch 503 Inicklizacibn del.ca& 504
+

+'

"

'
1 '

:
I\

-, l .

126

12-7

Memoria virtual Espacio de direc.ciotzpmiento y espd5u de mm,min 505 Mnpeo % e ! direccih &ando pdgin& 507 Tabla de @@m de mwia'usociatim 509 Sustitucidn de @@M 510 Circuiteria de 'adminictracibn'de la memoria Mapeo de &+m segmentadn 5a

Ejemplo numkrico

Proteccin de memoria Problemas Referencias

9
13-1

*m CAP~TULQ TRECE 1

w,dm --+

1 . .

-4 Multipmcesadores

13-2

Caractersticas de multiprocesado~5rnichir.s de interconixi(in Caml comn de tiempo compartido

E528
531

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

532

535

Arbitraje enfre procesadores Canal del sistemu 537 Procedimiento de arbitraje serhl 5Pr 5 3 9 ~ Ldgica de arbitraje paralelo Algoritmos de arbitraje dindrnim S2

7rn-w-

13-4

13-5

Comunicaci6n y sincronhcibn entre procesadores Sincronuandn entre -es 545 Exclus& mutiut m sm@m 545 Coherencia de cachd

. Soluciones al probIm de c o h m h de mchd


Pmblemas Referencias

Condkhnes p r a incoherencia

547

549

-.
'
,#

S :

'

f'
1

.,
N ' . ?

,,
11<

'?
&

' , I + l -

1.

P * ~ T! . ,

"

Hiy

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

, 'i*-

,-

.'

1111

iI

f.

'i

3>

"r

M :-

'

v7

.
I

1-

19.

.1

.-

m).

# ,

iones y las mciones ae conrroi en fonna simb6lic.a mediante un lenguaje propio de la &m desarroliamos un lenguaje senciilo de transkrencia varias operaciones de computapor completo la relaci6n del i6n de la &tera y El libro no plantea un eonocirniento previo de la circuiterla de mmputadoras y el material puede entenderse sin nhgh requisito previo, sin embargo, alguna expiencia en la progromacin de lenguaje ensamblador con unn miuncomputadora facilitar&Ia comprwisi6n del material. Los capitulas del 1 al 3 pueden saltarse si el 1-r est familiarwdo con eI dis&o 1 6 e diitaL Las~ente~unahe~~&htemasqueaecubmeneada capitulo, d d e se esfablecen I ~ mviswne E que m hicieron a l a tercera ediE l capitulo l i n a u e e los condmimtos bsicos necesario^ para el diseAo de digitales construidw con base en compuertas y flip-flop d i . Cubre el Algebra booieana, los circuitos combinatonos y secuenciales. Proporciona los a n k e d e n b n-nm para comprender los c h i b a digitales que se van a presentar. El capitulo 2 explica en detalle la aperaci6n ipca de los componentes digitah ms m u n a incluye decudifndofes, multipiexomI regis~ u m f a d m s y ~ ~ ~ d i & & s s e u m a r m o ~ c o m h d 6 n para el d k k de unidades ms grandes en Im capitulo9 siguientes. . El capitulo 3 muestra cmo se repmmtan en forma binaria b s diversos tips de datos que se encuentran en las computadoras digitales, en los qistroe de l a computadora. S e enfatiza la repmentaci&nde los nmeros

que se emplean en operaciones aribdtieas y en la codificarihn binaria de slmbolos usados en d p m d e n t o de datos, E l captulo 4 introduce un lenguaje de transferencia de registros y mueskra cbrno se usa para expresar mierooperaciones en forma simb6lica. % ! definen SfmboIcxs paza microoperaeiones aritmticas, lbgicas y de corrimientu. Se dqmoila una unidad aritmtfica-lgii y de corrimiento compuesta para demostrar e l disefo de la circuitera de las mimooperaciones ms . m E 1 CapihSh 5 p m t a la organizacin y e l d i o de una computadora digital bsica. Aunque 3a computadora es aericilIa comparada m las mmputadoras comerciales, no obstante, abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispodtivo de propbsito v a l con programas almacenados. Se usa un lenguaje de transferencia de registros para describir la operaci6n interna de fa computadora y para especificar los rqbitae para su d M o . la computadora bhica utiliza el mismo conjunto
I

de instrucciones de la xgunda edicih, pero su o q p i z a c i h de circuiterla y d M o se han revisado por m m p k Al recorrer los pasos detallados del diseo que se prem~tan en este captulo, e l estudiante podr comprenda el

-1

:i1
id

-m

funeionarniento interno de las computadoras digikles. E l capitdo 6 utiliza las 25 inshmciones de la computadora bsica para mostrar tcnicas que se usan en la programacin con lenguaje ensamblador. Se presentan,ejemplos de programacin para varias tareas de p t o de datos. Se explica mediante ejemplos k reIacin entre programas binarios y d i g o simblico. Se analizan las operacionm bhsicas de un ensamblador de cbdigo simb6lico a un programa b i r i o equivalente. El capitulo 7 intduce el concepto de microprogramaci6~Ademdq desarrolla una unidad c a de control m ~ a r n a d o para , mostrar un ejemplo de cbmo escribir un micrw6digo para un conjunto de instrucciones tipico. Re* en detalle el diseo de la unidad de control, incluyendo h circuitsofa para el secuenciador de microprograma. El capitulo 8 trata acerca de la unidad de p-iento cmtral (CPU). Explica ia operaci6n de una pila de memoria y se muestran algunas de sus apiicaciones. Ilustra diferenb formatos de instrucciones,junto con diversos modos de dkccionamiento. Hace una relacidn de las instrucciones m8s comunes que se encuentran en las computadoras, junto con una explicacidn de su funci6n. La W . b seccih presenta. la computadora con conjunto reducido de instniccion- (m) y analiza sus caracterZsticas y ventajas. El capitulo 9, acerea de p-miento de F t o r y por arquitectura paralela, es nuevo en la tercera edicin (el material sobre operaciones aritmdticas 'de la segunda dici6n se pas6 al capihdo 10). Se explica el concepto de arquitectura paralela y se muestra con varios ejemplos cmo puede acelerar e l procesarnimto. Se considera Ia arqui-a paralela aritm4tica y de ihstrucciones. Se muesh cbmo los procesadures RISC pueden ejecutar instrucciones de ciclo 6nic0, a1 usar una conduccin de instrucciones eficiente junto con tcnicas de carga y transfewncia de control del programa propuestas. Se introduce el procesamiento de vedo= y se muestran ejemplos de operadones de punto flotante usando procedimientos paralelos. E l capitulo 10 p m t a los algorihos arihdticos para suma, resta, multiplicaci6n y divisi6n y muestra los procedimientos para implantarlos con circuiterla digital. Se desamoflan p&i&ntos pqa ndmeros de punto fijo de complemento a 2 con signo y de magnitud con signo, para nmeros binarios de punto flotante y para n6mem binarios codificados en dmimales (BCD). LDS algoritmos r e presentan m w t e diagramas de flujo que utilizan d lenguaje de transfemia de registros para especificar la secuencia de micmperaciones y decisiones de control requeridas para su implantacin. E l capitulo 11 analiza las tecnicas que usan !as computadoras para comunicarse m dispositivos de entrada y salida. Se presentan unidades de interface para mostrar cmo interachh el p-dm con los perif&kos extern a Se explica el pmdhiento para transferencia asincrona de d a b senales o paralel- A n a h cuatro modos de transhcia: E/S programada, transfe-

rmcia iniciada por intmmpcin, acceso dii.ecto a memoria y el uso de pnxemdores de entradadida. Con ejemplos espedaos, ilustra h e proeedimientos para trmmbibn de datos mides. El sapihdo 2 presenta el concepto de jerarquia de memoria, mmpuesta de memoria c a e , memoria principal y memoria auxiliar como d b magnticos. Explican en detalle la orgmizaci6n y la operaci6n de las meme rias asociativas. Por otra parteg introduce el concepto de administracibn de memoria, mediante la representacihn de los requisitos de circuitera para un sistema de una memoria cach y una memoria vithiat E i capitulo 13 demibe Ias caracte~ticasbsicas de los multiprocesadores. Asimismo, pzesenta varias estnictuqs de inbconexih. Analiza la neeesldad de arbitraje entre prmaadores, comunicaci6n y s h n i z a a b n . SE explica el problema de la coherencia de cachk, j u n t o con algunas posibles aolucione3, Cada capitulo incluye un conjunto de problemas y una lista de referencias.-Algunos de los pmbIerna8 sirven fomo ejercicios para el material cubierto en el capitulo. Otros son de naturaleza m4s compleja y pretenden ofrecer una manera de practicar en la-mlucidn de problemas asociados- con la arquitectura y e l dis&o de circ2uitera de computadoras. E l libro ea eanvdente para un c m de sistemas de circuitera de computadora, en las Areas de ingeniera elctria y mmputacional o ciencias de la informtica. Algunas partes del libro pueden usarse de diversas maneras: como un primer curso sobre ciGcuitera de computadoras al cubrir los capltuios del 1 ai 7; como un curso de organizacibn y diseo de computadoras, con conmimientos previos de d i o de l g i c a digital, al repasar el captulo 4 y +u& cubrir lo^ captulos del 5 al 13; como un curso en organbcin y arquikhira de computadoras, que cubm las cinco unidades funcionales de las computadoras digihles, al incluir el controI (capitulo 7), la unidad de procesamiento (capitulas 8 y 91, las opaciona aritm&tias (captulo lo), la entrada-salida {capitulo 11) y la memoria (capltulo 12). Este libm tambin es conveniente para e l autoaprendizaje, para ingen i e - y cientfms que necesitan adquirir conacimientos bsicos de la circuiteda de arquitectura de computadoras.

M i gratitud a aquellas personas que tevisaron el texto, en particular al p b i Thomas L Casavant, de la miversidad de lowa; al profesor Murray R BerWtz, de Ia universidad polit&ka de Brookly"; al profesor Cem Ersoy, de de lavensidad Gemge Mason; al profesor Upkar Varshney, de la
a 1
universidad de Missouri, en K a n w City; al profesor Karan Watson de la unirnidad de Texas ABrM, y al profesor Scott F. Midkiff, de1 Instituto Politmico de V i a .

M.Morris Muno

EN ESTE CAP~"~WO
1-1 1-2 Id
1 4
1-5

1-6 1-7

Computadoras digitales Compaertas 16gieas Algebra booleana Simplificacin por mapas Circuitos wmbinatorios Flip-flqs ~Circuitossecuenciales

1-1 Computadoras digitales


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

bit

O NO

Circuitos de 16gici

se represen-9 en las computadoras digitales en grupos de bits. Con diversas

tcnicas de codificaci611, se puede hacer que los grupos de bits representen no s61o los nmeros binarios, sino tambikn otros smbolos discretos, como los dgitos decimales o las letras del alfabeto. Usando juiciosamente los arreglos binanos y diversas tkcnicas de dificacin, l o s grupos de bits desarrollan conjuntos completos de instrucciones para ejecutar distintos tipos de cmputos. En contraste con los niimeros decimales comunes, que emplean el sistema en base 10, los nmeros binarios constituyen un sistema en base 2 con dos dgitos: O y 1. El equivalente decimal de un nmero binario se puede encontrar expandiendo ste en una serie de potencias en la base 2. Por ejemplo, el nmero binario lOO1011 representa una cantidad que puede convertirse a un nmero decimal multiplicando cada bit por la base 2 elevada a una potencia entera como sigue:

b s siete bits 101011 representan un nmero binario cuyo equivalente decimal ec 75. Sin embargo, este mismo grupo de siete bik representa la letra K cuando se usa junto con un c6digo binario para las letras del alfabeto. Tambih puede representar un cbdigo de control para especificar alguna decisi6n Mgica en cierta computadora digital. En otras palabras, los grupos de bits en una computadora digital sirven para representar muchas cosas diferentes. Esto es similar al concepto de que las mismas letras de un alfabeto se utilicen para construir diferentes lenguajes, como el inglk y el francs. Un sistema de computadora se subdivide a veces en dos entidades funcionales: hardware y software. El hardware de computadora consta de todos los componentes electrbnicos y dispositivos electromecnicos que comprenden la entidad fsica del dispositivo. El software consiste en as instrucciones y l o s datos que la computadora manipula para ejecutar las diversas tareas de procesamiento de datos. A una secuencia de instrucciones para computadora se le llama programa. Los datos que son manipulados por el programa constituyen la base de datos. Un sistema de computadora est compuesto por su hardware y el software del sistema disponible para su uso. El software del sistema de una computadora consiste en una colecci6n de programas cuyo propbito es hacer un uso m6s efectivo de la computadora. A los programas incluidos en un paquete de software de sistema se les c o n a como sistema operativo. Se distinguen de los programas de aplicacin escritos por el usuario con el prop6sito de resolver problemas particulares. Por ejemplo, un programa en un lenguaje de alto nivel escrito por un usuario para resolver necesidades de procesamiento de datos particulares es un programa de aplicacibn, pero el compilador que traduce el programa en lenguaje de alto nivel a lenguaje de mequina es un programa de sistema. El cliente que compra un sistema de computadora necesitara, ademis del hardware, cualquier software dispc-

S E C C ~ ~1 N 1 Computadores digitsles

orgaeizaci6n de la complrfadora

nible necesario para k operaci6n eficaz de la computadora. El softwam del sistema es una parte hdispe~l~able del sistema total de la computadora. Su funcibn es compensar las diferencias que existen entre las necesidad- del usuario y la &pacidad de1 hardware. El hardmre de la computadora se divide por lo general en tres grandes partes, como se muestca en Ia figura 1-1. La unidad central de procesamiento (CPU, central processing unit) contiene una unidad aritmdiica y 16giea para la manipulaci6n de datos, varios registros para almacenar los datos y cirmitos de control para leer de la memoria y ejecutar instrucciones. La memoria de la computadora almacena las instrucciones y los datos. Se le llama memoria de acceso aleatorio (RAM, randam access memory) por la CPU puede accesar cualquier parte de la memoria en forma aleatoria y recuperar la infonnaci6n binaria dentro de un intervalo fijo. E l procesador de entrada/salida (XOP, input output prcicessor) contiene circuitos e l d n i c o s para comunicarse y controlar la transferencia de informacin entre la computadora y el mundo exterior. Lcw dqositivos de entrada y salida conectados a la computadora incluyen teclados, impresoras, terminales, unidades de diseos magndticos y otros dispositivw de comurticaci6~ Este libro proporciona el conocimiento bsica para entender las opraciones del hardware de un ~istema de computadora. E l tema se considera a veces desde tres diversos puntos de vista, dependiendo del inters del investigador. Cuando se trata del hardware de la computadora, es costumbre distinguir entre lo que se refiere a la organizacihn de computadora, su diseo y arquitectura. La organizacidn de la c o m p u h d m w refiere a h manera en que los componentes operan y la forma en que se conectan para formar el sistema de la computadora. Se supone que los diversos componentes estn en su lugar y la tarea es investigar la estructura organhciond para verXcar que las partes de la computadora funcionen como se proponfaFigura 1-1 Diagrama de bloque de rina mmput%doradigital.
t i '
L

NO Circuitos

de -1

digital

E l d&& & la compufadma se ocupa del diseito del hardware de la computadora. Una vez que se formulan las especificaciones de la computadora, es tarea del disefiador desarrollar e l hardware para el sistema. El diseo de la computadora se ocupa de h determinaci611de qu hardware debe usarse y c6mo deben conectarse las partes, Este aspecto del hardware se conme a veces como impfantacin de la cimput&ra. ta arqtdtectitua de la computadova se ocupa de la estructura y comportamiento de la computadora desde el punto de vista del usuario. Incluye los formatos de i n f o M n , el conjunto de instrucciones y las M i c a s para kcionamiento de memoria. E l de la arquitectura de un sistema de computadora a ocupa de las especificaciones de los varios mbdulos funci* nales, tales como los procesadores y la memoria, y de estructurarlos conjuntamente en un sistema de computadora. Este libro trata de los tres temas asociados con el hardware de la domputadora. En los capitulas del 1 al 4 presentamos los distintos c o m p rientes digltales usados en la organizacin y disefio de los sistemas de eomputa'dora. En los capfhiIos del 5 al 7 se cubren los pesos que el disenador debe transitar para disear y7prograrnar una computadora digital elemental. Los capitula 8 y 9 tratan de la arquitechira de la unidad central de procesamiento. En los capftulos 12 y 12 presentamos la organhaci6n y a r q u k h r a del proeesador de entrada salida y la unidad de memoria.

1-2 Compuertas 16gicas


La informacibn binaria se repregenb en las computadoras digitales por
cantidades fsicas llamadas sdahs. Las sefiales elctricas tales como los voltajes existen en todas partes de la computadora, en cualquiera de loe dos estados reconocidos. Los dos estados representan una variable biaria que puede ser igual a 1 o a O. Por ejemplo, una computadora digital en particular puede emplear una sefial de 3 volb para representar el 1 binario y 0.5 volis para representar e l O binario. Las teminales de entrada de los circuitos lbgicos aceptan seaies binarias de 3 y 0.5 volts y los circuitos responden en las terminales de salida con h l e s de 3 y 0.5 voltios para representar la entrada y saIida binarias correspondientes a 1 y 0, respectivamente. La 16gica binaria I t a de las variables biarias y con las operaciones que asumen iin significado 16gico. Sirve para describir, en forma algebraica o tabular, Ia d p u l a c i b n y el procesamiento de la infomacibn binaria. La manipulacin de la informacibn binaria se hace mediante circuitos 16gicos llamados wmpilertas. Las compuertas son bloques de hardware que producen sefiales del 1 o el O binarios cuando los requerimientos lgicos de entrada son satisfechos. En los sistemas de computadora digital se utiliza por l o general una variedad de compuertas lgicas Cada compuerta tiene un simbolo grfico distinto y su funcionamiento puede describirse por medio de una expresibn algebraica. La relacin de entrada/salida de las variables

circuito hversor

NAND
NOK

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

m U

N Cirmib de lsgiea digital


Shhh

Nombre

@ !

Fuaci6a dgebrnb

Tabla tde
wrM

ANP

nx ".""
x a'AB

$.

OR

A B -

x=A+B

3
1 0

tnwm

Buhr

A+-.

#=A

NAND

0
B

= [AB)'

.* .* .Y
-m
1 1 1 0

NOR

* B

x xr(A+B)'

$
1 1 0

Mi ~ l t l s i w i

x=A@B
" 3 x

(xa)

x = A B0 +AB'

t
1 0 1 1

1 0

MOR exc1wim

w a

oequltnihk

B A

. . *

e",
?=(m+
P
xm

A'B'+AB

Figura 1-2 CompuertasMgicas digitales.

La compuerta OR exclusiva (XOR)tiene un smbolo gc6fieo similar aI de l a compuerta OR,excepto por una inea cuma adicional del lado de la entrada. La salida de esta compuerta es 1 , si cualquiera de Ias entradas es 3 pero excluye la combinacidn cuando ambas entradas son 1. La funcibn XOR tiene su propio sImbolo algebraico o puede expresarse en tCrminos de AND, OR y operaciones complemento como s e muestra en la figura 1-2.El NOR exclusivo es e l complemento del XOR, como lo indica el drculo en su smbolo gcfim. La salida de esta compuerta es 1 sblo si ambas entradas son igual a 1 o ambas entradas son igual a O. Un nombre mh apropiado para la operaci6n XOR sera la funci6n impar; esto es, su salida es 1 s i un nmero impar de entradas es 1 . Asi, en una funcibn XOR de tres entradas (impar), la salida es 1 si s610 una entrada es 1 o si ias tres entradas son 1. Las compuerbs OR (0) exclusivo y NOR exclusivo se encuentran comnmente disponible con dos entradas, y slo rara vez se encuentran con tres o m8s entradas.

1-3 kgebra booleana


trata de las variables binarias y las operaciones 16gieas. Las variables se designan con letras como A, 8, x y y, Las tres operaciones lbgicas basicas son AND, OR y complemento. Una funcin bmleana puede expmrse algebraicarnente con variables bmrias, los simbolos de operaciones l6gicas, parntesis y signos de igualdad. Para un valor dado de las a variables, la funci6n booleana puede ser 1 o O. Considere, por ejemplo, l funcin booleana

E 1 AIgebra boohna

h d d n boolea~a

tabla de vedad

La funcin F es igual a 1 si x es 1 o si tanto y' como z son igual a 1; de otra manera, F es igual a O. Pero decir que y' = 1 es equivalente a decir que y = O ya que / t es el complemento de y. Por lo tanto, podemos decir que F es igual a 1 si x = o s i yz = 01. La relacib entre una funci6n y sus variables binarias se puede rep-tar en una tabla de verdad. Para representar una funci6n en una tabla de verdad necesitamos una lista de las 2" combinaciones de las n variables binarias. Como se muestra en la figura 1-3{a), hay ocho combinaciones distintas posibles para asignar los bits a las tres variables x, y y z. La funci6n F es igual a 1 para aquellas combinaciones

diagrama ldgtco

donde x = 1 o yz = 01; es igual a O para todas las dems combinaciones. Una hinci6n b o o l e m puede transformarse de una e x p m i h algebraica a un diagrama ldgico compuesto de AND, O R y compuertas inversas. E 1 diagrama ldgico para F se muestra en la figura 1-3(b).-Hay un inversor para i a entrada y para generar su complemento f. Hay una compuerta AND (Y) para el trmino y'z, una compuerta OR se usa para combinar los dos trminos. En un diagrama ldgico, las variables de la funci6n se toman como

3 Tabla de verdad
Fig~1 u4 @:;$-lm
-,A

Tabla de verdad y d i p a m albgic~ para f = r

16gim

+ fz.

las entradm del c h i t o y el smbolo de la variable de la funcibn se toma como la salida del circuito. E l propsito del Algebra booleana es facilitar el afi5lisis y el diseo de los circuitos digitale. Proporciona una herramienta pr6ctica para:
1 . Expresar en fonna'algebratca la relaci6n de la tabIa de verdad entre las variables binarias. 2. Expresar @n' f o m algebraica la relacibn de entrada/calida de los diagrams16gicos. m - A u 3. Encontrar circuitos m6s simples para ia misma funcin.

Una funei6n booleana especificada por una tabla de verdad puede expresarse algebraicamehte~de muchas imaneras diferentes. Manipulando una expresidn erpregibn booleatta bmleana de acuerdo con las reglas del dlgebra bmleana, se puede obtener una expresibn @ S simple que requiera menos compuertas. Para ver c6mo se hace esto, primero debemos estudiar las capacidades de manipulacin del Algebra booleana, La tabla' 1-1 enlista Ias identidades mAs biisicas del lgebra booleana. Todas las identidades de la tabla pueden probarse por medio de las tablas -de verdad. Las primeras d o identidada muestran la relacin besica entre una sola variable y si conjuneidn de las constantes binarias 1 v O.

cr

TABLA 1-1 Identidades bsicas de Mgebra booleana

(1) x + o = x

(2) x - o

=9

( ~ ~ z + x ~ = I p)x+yay+x (11) x + ( y + z ) = (x +'y) (13) #(y + E) = ry + ;a (15) (x +y)' = x'y'


(17) (x')' = x

(8j
f

X.X' = xy = Y

o
m ~ d

(12) x(yz) = (xy)z (14) x 3. yx = ( x y)(z (16) (xy)' = x' y'

+ z)

Las siguientes cinco identidades (9 a 13) son similares a las del algebra ordinaria. La identidad 14 no s6 aplica en el 4igebra ordinaria, pero es muy ttil en la manipuhcin de expresiones hleanas, t a s identidades 15 y 16 se llaman teoremas de DeMorgan, que se tratan abajo. La ltima identidad afirma que si una variable se complementa dos veces, uno obtiene el valor origina1 de la variable. Las identidades eniktadas en k tabla se aplican a variables solas o a las funciones b l e a n a s expresadas en tdrminos de variables binarias. Por ejemplo, considere k siguiente expmidn algebraica hleana:

AB' 4- C'D

+ AB' + C'D

Si x = AB' CD,la expresi6n puede escribirse como x + x. De la identidad 5 de la tabla 1-1 encontramos que x + x = x. As la expresibn puede reducirse a slo dos t r m i n ~
M'
teorema de DeMorgait
tas

+ C'D + A'B + C'D = AB' + C'D

El teorema de DeMorgan es muy importante al tratar con las mpuerw Afirma que una compuerta NOR, que representa la funcibn (x + y)' ea equivalente a la funcih x'y'. Andlogamente, una funci6n NAND puede expmrse por o ($ + ?J).Por esta raz6n las compuertas NOR y NAND tienen dos distinb shbolos grS~cos,como se muestra en las *ra 14 y 1-5. En lugar de representar una compuerta NOR con un simbolo g r & OR (O)seguido de un circulo, podemos reprexatarlo por un simbofo grco AND precedido de clrculoa en todas sus entradas. El sfmbolo AND invertido para la compuerta NOR se sigue del teorema de DeMorgan y de la convenci6n de que los &culos pequeios denotan mpI&entaci6n. Anlogamente,

NOR y N

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.

10

m UEJO Circuitos de lgica digital


la compuerta NAND tiene dos smbolm distintos, como s e muestra en la figura 13, Para ver cmo se emplea la manipulacibn del 4lgebra booleana para simplificar circuitos digitales, considere el diagrama 16gico de la figura ld(a). La salida del circuito puede expresarse algebraicamente como sigue:

= ABC

+ ABC'

+ A'C
m,

Cada trmino corresponde a una compuerta yl a compuerta OR forma l a suma lgica de los tres tminos. Se necesitan dos inversores para complementar A' y C'. L a expresi6n puede simplificarse usando e l igebra

booleana.

= A13C

+ ABC'

A'C = AB[C + C ' ) i- A'C = AB + A'C

Ntese que (C + C ' ) = 1 por la identidad 7 y AB 1 = AB por la identidad 4 en la tabla 1-1. El diagrama 16gico de Ia expresidn simpIiicada se dibuja en la figura l-6(b). Requiere slo cuatro compuertas en lugar de las seis del circuito de

Figura l- l hdiagrama ldgicos para la misma W

n hleana.

la figura 19(a). Los dos circuitos son equivalentes y producen la misma relaci6n de tabla de verdad entre las entradas A, B, C y la salida F.
bl h
-iWI

'

complemento de una huicion El complemento de una funcin F cuando s expresa en una tabla de verdad se obtiene intercambiando unos y ceros en los valores de F en la tabla de verdad. Cuando la funci6n se expresa en forma algebraica, el complemento de una funcin puede derivarse por medio del teorema de DeMargan. La forma general del teorema de DeMorgan puede apresarse como sigue:
( x ~ X ~ X ~ . . . ~= , ) x; ' f x; + xj + x; m p * L . A h -&' A -Del teorema general de IkMorgan podemos derivar un prdimiento s h 1 mrtlmiple para obtener el complemento de una expresin algebraica. Esto se hace a ' cambiando todas Ias operaciones de OK a operaciones AND y todas las operaciones AND a operaciones O R y luego complementando cada variable literal individual. Como un ejemplo, considere la siguiente expresibn y su complemento 1 Y

- +

A-

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, Note que el complemento
de C ' es C .
1--

,T. f -1 h r u

--

PII

1-4

Simplificacin por mapas

UlIni

y&

=S e

La complejidad del diagrama lgico que implanta una funcibn bmleana se relaciona directamente con la complejidad de la expresihn algebraica a partir de la cual se implanta tal funcibn. ta represen'tacibn de la tabla de verdad de una M 6 n es Cinica, p r o la funci6n puede aparecer en muchas formas difermtes cuando se expresa algebraicamente. La expresin puede simplificarse por medio de las relaciones bAsicas del Algebra booleana. Sin embargo, ese procedimiento es algunas veces difcil porque carece de -las especificas para p r e d d cada paso sucesivo en el proceso manipulativo. El mgtodo de WI . mapas proporciona un procedimiento sencillo y directo para simplificar las b expresiones h1eanas. Este m & d o puede considerarse como un arregio wfi? pict6rica de h tabla de vedad que permite una interpretacibn fkil para para expresar algebrah3 h escoger el nmero rnhimo de t4minos necesa~ios

12

cAPmno&O

Circuitos de lgica digitd

t6rtnino mnimo

mente la funcih. E l mtodo de mapas se conoce tambin como mapa de Karnaugh o mapa K Cada combinacin de variables en la tabla de verdad se llama Mrmino mnimo. Por ejemplo, la tabla de verdad de la figura 1-3 contiene ocho trminos minimos. Cuando se expresa en una tabla de verdad una funcin de n variables tendri T tmiinos m i n h , equivalentes a los 2" nmeros b h r i m obtenidos de n bits. Una funcidn boofeana es igual a f. para algunos tminps mhimos y O para otros. La informaci6n de una tabla de verdad puede expresarse en forma compacta distando los equivalentes dechales de aquellos trniinos nnimos que pdueen un 1 para la funci6n. Por ejemplo, la tabla de verdad de la gura 1 3 puede expresarse como sigue:

Las letras en parntesis indican las variables binarias en el orden en que aparecen en la tabla de verdad. El sirribo10 sigma representa i a suma de los trminos minimos que siguen en parnmis. i m trminos mnimos que producen 1 para l a funcibn se enlistan en su equivalente decimal. Imi thninos mhimw ausentes de la lista s o n los que producen O para la funcibn. El mapa es un diagrama hecho de cuadros, y cada uno de stos representa un trmino minimo, b s cuadrados correspondientes a los trminos m h h o s que producen 1 para 1a funci6n se marcan con un 1 y lm otros se marcan con un O o se dejan vados. Reconociendo los diversos patrones y combinando los cuadradas marcados con unos en el mapa, es posible derivar expresiones algebraicas alternas para la funci6n, de las cuales se selecciona la ms conveniente. ios mapas de funciones de dos, tres o cuatro variables se muestran en la figura 1-7. El nmero de cuadros en el mapa de variables es 2". Los 2 ' tminos mnimos se listan con un nmero decimal equivalente para una referencia f d d . Los nmeros de trmino minimo se asignan en un arreglo ordenado tal que los cuadrados adyacentes representen tminos m h h o s que difieran por &lo una variable. Los nombres de las variables se enlistan a ambos lados de la lnea diagonal, en la esquina del mapa. Los ceros y los unos marcados a la largo de cada renglbn y cada columna designan el valor de las variables. Cada variable den- de las Uaves contiene la mitad de los cuadrados del mapa donde la variable aparece sin dmbolo de prima ('). La variable con smbolo de prima (complementada) aparece en i a mitad restante de l o s cuadrados. E l trmino mnimo representada por un cuadrado se determina por ias asignaciones b i n a h de las variables, a lo largo de las orillas izquierda y superior del mapa. Por ejemplo, el t6rmino mfnimo 5 en el mapa de tres variables es 101 en binario, que puede obtenerse del 1 en el segundo rengln concatenada m el 01 de la segunda columna. Este trmino mnimo r e p p senta un valor para las variables binarias A, B y C , con A y C sin primas y

A 1

a ~
1 4

S i m p l i f i d por mapas

v
C

b ) ,Mapa de hv & b h

y ,

c)

D Mapa de cuatm variabb

-a-

,m&igun
-

W Mapas para funcione de dos, m y cuatro variables.

B con prima (eeb es, AB'C). Por otro lado, el trmino mnimo 5 en e l mapa de cuatro variables representa un tkrmino & o para cuatro variables. El nmero binario contiene los cuatro Wts O101 y el trmino correspondiente que reprewnta es A'BC'D.
los trminos m n i m o s de cuadrados adyacentes en el mapa son id&
adyacentes

ticos, excepto por una variable, que aparec'e compIementada en un cuadrado y sin complementar en e l cuadrado adyacente. De acuerdo c m esta definici6n de ser adyacente, los cuadrados de los exttemos del mismo rengln horizontal pueden tambin considerarse adyacentes. Lo mismo se aplica a

los cuadrados superior e inferior de una columna. Como multado, los cuadrados de las cuatro esquinas de un mapa tambih pueden considerarse
como adyacentes. Una funcibn booleana r e p m t a d a por una tabla de verdad se grafica en el mapa insertando unos en aquellos cuadrados donde la funcibn es 1. ios cuadrados que contengan unos se combinan en grupos de cuadrados adyacentes. Estos grupos deben contener un nmero de cuadrados que sea una potencia entera de 2. Los grupos de cuadrados adyacentes combinados pueden compartir uno o ms cuadrados con uno o ms grupos. Cada p p o de cuadrados representa un tnnino aigebraico y el OR de estas trminos da una expmin algebraica simplificada de Ia funcin. Los siguientes ejemplos muestran el uso de1 mapa para simplificar funciones boolearw.

En el primer ejemplo simplificaremos la funcibn booleana

E i mapa de tres variables para esta funci6n se muestra en la figura 1-8.Hay


cuatm cuadrados marcados can ntuneros &os que produce un 1 para la M b

uno, cada cual para los trminos n . Estos cuadradoe pertenecen a los os minimos 3, 4, 6 y 7 y se reconde la figura 1 7 @ ) . I h cuadrados adyacentes se combinan en la tercera columna. Esta columna pertenece tanto a B come a C y produce el trmino BC. Los dos cuadrados restantes con unos en las dos esquinas del segundo rengldn son adyacentes y pertenecen al mglbn A y a las dos columnas de C', asl que producen el trmino AC'. La expresin algebraica simplificada para l a M b n es el OR de los das trmin=

EL segundo ejemplo simPl%ca'la siguiente funcin booleam

.
t v

Los cinco tminos mnimos estn marcados con wios en los cuadradcorrespondientes del mapa de tres variables que se muestra en la figura 1 9 . L m cuatro cuadrados en la primera y cuarta columnas son adyacentes y representan el tnnino C'. Los cuadrados wtantes marcados con 1 prbme~ ~
L
1

~
c . -

m** dul

. A

i ~ A , .

c
d

l
d

baww

Figura 1 4 Mapa para F ( k B, C) = E (3. C 67).

figura -9 Mapa para F(A, 8. C)= Z (O, 2,4,5,6).

SCUdN 1 4

Simpliiicaciri por mapas

15

.mnimo 4

cen al trmino mhhor5 y pueden combinarse con e k cuadrado del trmino para producir e l tnnino AB'. ta funci6n simpmcada es

9
El 4,

= C'

+ a''

El Wrcer ejemplo necesita 'unmapa de cuatro variables.


P(A, B. C, D)=

Z (O.

1,2 6,8.9,10)

m el mapa cubierta por esta funcin de cuatro variables comiste de las madrados marcados con unos en la figura 1-10. La funci6n contiene unoe en las cuatro esquinas que, tomados como grupo, dan el t4rmUio B'D'. Esto ee rpodble porque esto8 cuatro cuadrados m adyiteentes cuando el mapa se consWera con las orillas superior e inferior, izquierdh y de& toedndose. t o s dos unos a la izquierda dei renglon supmibr 8e combinan con los dos unos a la izquierda de l a hileta hwiar para que den el t n i n o B ' C ' . El 1 *stanhen el cuadrado del tremitto minitn~ 6s e combina con el trmino mInimo 2 para dar el trmino A'CD'. ta funcidn simplificada es

-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. Lrw h5rminos de productos son tdrmincris con AND y la sumde116ta el 08 de estos trminos. Algunas veces es conveniente obtener f expresibn d@aira' para la funcin en una forma de producto de suma. Las sumas son tbrminos O R y el producto denata el'AND de estos trminos. Con una rnodificacibn menor, la forma de producto de sumas puede obtenerse de un mapa. El prucdmiemto para obtener h exptesin He producto de sumas se sigue, de Ias propiedades bsicas del AIgebra bmlieafiaiL Los unos del mapa
Figura 1-10 Mapa para F(A, P,.G, D)= C (O, 1 ,& 6,8,9,10). .C

e 4 i
1

F = BID'
~

+ B'C' + A'CD'

representan los t h h o s minios que prcdueen 1 para la funci6n. Los cuadrados no marcados con 1 representan los h r n o s mnimos que producen O para la funah. Si marcamos los cuadrados vacos con c e m ~ y lo^ combinamos en grupos de cuadrados adyacentes, obtenemos el complemento de la funcibn, F. Tornando el complemento de F ' produce una expresibn para F en la forma de producto de sumas, La mejor m e r a de mostrar mto es con un ejemplo. Queremos simplificar l a siguiente funcin booleana tanto en la forma de suma de productos como en la forma de produeto de sumas:

Los unos marcados en el mapa de h figura 1-11 representan los t4miinos mhimm que producen unos paza la funcibh Los cuadrados marcados con ceros repwentan ios trminos mnimos no incluidos en F y por l o tanto denotan el complemento de F. Combinando los cuadrados con unos nos da la M 6 n simplificada en la forma de suma de productos:

= B'D'

+ B'C' + A'C'D

Si los cuadrados marcados con ceros se combinan, como se muestra en el diagrama, obtenemos la funci6n complementada simplificada:

a4
.
t
"

F'

= AB

+ CD + BD'

Toman& el.complemento de F ' , &tenemos la funci6n simplificada en la hfrna de producto de sumas:

= (A'

+ B1)(C'+ D1)(B' + DI

b . d i a g r a m 16@m de las dos expresiones simplificadas se muestran en la f i w a 1-12, expresin de suma de productos se implanta en la figura

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, una para cada uno de: ios trminos AND. Las salidas de las compuertas AND se conectan a las entradas de una compuerta OR iinica. La misma funci6n es implantada en la figura 1-220 en la forma de producto de sumas con un grupo de compuertas OR, una para cada uno de los b4miinos 0R. Las salidas de las compuertas OR se conectan a las entradas de una compuerta AND Suiica. En cada caso se supone que Ias variables de entrada estn directamente disponibles en su complemento, as que no s e incluyen inversores. E l patr6n establecido en la figura 1-12 es la forma general por la cual cualquier funci6n boofeana se implanta cuando se expresa en una de las fonnas estndar. h s compuertas AND se conectan a una compuerta OR nica cuando estn en la forma de la suma de productos; h s compuertas OR se conectan a uaa compuerta AND nica cuando esun en la forma de producto de sumas. Una expresin suma de productos puede implantarse con compuertas NAND como se muestra en la figura 1-13(a). N 6 k e que l a segunda compuerta NAND se dibuja con el smbolo grsfico de la figura 1-5(b}. Hay tres Ineas en e l diagrama con &culos en ambos extremm, Los dos dyulos en la misma lhea designan e l doble complemento, y puesto que (x')' = x, los dos crculos Pueden quitame y e l diagrama resultante es equivalente al que muestra en la figura 1-12(a), Anhlogamente, una expresidn de prcducta de sumas puede implantarse con compuertas NOR como se muestra en l a figura 1-13(b). La segunda compuerta NOR se dibuja con el sfmbolo @fim de k figura 1-4(b). Otra vez, los dos &culos a ambos ladm de cada h e a pueden quitarse, y el diagrama asi obtenido es equivalmte al que se muestra en la figura 1-12(b).

Condiciones "no importai' Los unos y ceros del mapa representan los tminos mnimos que h a m que la funci.6n sea igual a 1 o O. Hay ocasiones donde no importa s i la funci6n produce un O o un 1 para un M i n o mnimo dado.Ya que la funci6n puede ~r un O o un 1 , decimos que no nos importa cul pueda ser la gatida de la

a) Con wmpuertas NAND


1 F 1

-.,

funci6n para este t4rmino mnimo. ios t h i n o s mnimos que pueden p m ducy un O o un 1 para la funcibn se llaman condicianes "no U n p ~ k i " y se marcan con una X en e l mapa. Estas condiciones "no importanproporcionan una simpljficicin adicional de la expresihn algebraica. "cuandose e w o p cuadrados adyacentes para la funcibn en e l mapa, puede suponerse que las X sean O 0 1 , cualquiera que d la expresibn m s simple. Adems, la X no se necesita s i no contribuye a la simplificaci6n de la funcidn. En cada caso, la eleccin depende &lo de la simplifiacin que ejemplo, considerese la simiente funcidn b e a r i a importa":
F(A, B, C) =
(O,% 6 )

- L X L . . L L - -

3 La=--

.---

A-

m-&-

t m i n o s mnimos "no importa", enlistados con d prod&en un O o un 1 para la funcibn. Los dems tkrmintw mhimos, 4 y 7, producen O para la funcibn. El mapa se muestra en la figura 1-14. Las trminos minimae de F se marcan con unos, aquellos de d se marcan con X y los cuadrados restantes se marcan ceros. Los unos y las X se componen en cualquier manera prctica para incluir eI mayor nmero de cuadrados adyacentes. No es
Figura 1-14 Ejemp10 de mapa eon condicionen "no importam.

' nwe'mm incI& bdas a algana de las

-,incluir

>

X, m q u e sf todos 1& m.Al los h r i i n o s mhimos "no-importa" 1 y 3 m los unos en el primer rengln obtenemos el trmino A'. E l 1 restante para el trmino mnimo 6 m combina con el trmino mnimo 2 para obtener el tdrmino BC'. La expresidn simplificada es
i 1 0 dbt m

= A'

+ BC'

N&se que el trmino mlnimo ''no importa" 5 no se induy6 porque no --m-contribuye a la simplificacin de la expresibn, Ntese tambin que si los -tenminos mnimos "no importa" 1 y 3 no hubiesen sido induidos con los % o s , la expresihn Bynplificada para F sido

F
c Q n

wL
i Y"

A'C'

+ BC'

Esto requerida dos compuertas AND y una compuerta OR,en comparacibn


la expmibn obtenida previamente, que requiere d o una compuerta AljD (Y) y una compuerta OR (O). Lm. funcin se determina completamente una vez que las X se asignan e l mapa a los unos o a los ceros. AsI la expreaibn

, ,

representa la funci6n bookana

, -.A
a
a

i d

b t a eonsiste de los t4rmintis mnimo9 originales 0,2 y 6 y de los trminos &irnos "no importa" 1 y 3. El ,Wmho mhimo 5 no se incluye en la M b n . Puesto que los t h n h o s m h h o s 1 , 3 y 5 se espeeifiearon oomo condiciones "no importa"!# hemos escogido ios trminos m h h o s 1 y 3 para producir un 1 y el trmino mCnima S para prcducic un O. Esto se escogi6 as porque esta a s i v i 6 n produce la exgmin booleana ms simple.
Adbqbut8!dtb&P

1-5 Circuitos combinatorios


r . c m

- 2 5
*""*-

'Un circuito combinatorio es un arreglo de compuertas lgicas con un conm - d u n t o de entradas y salidas. E n cualquier momento dado, los valores binarim de las salidas son una combinacin binaria de las entradas. En la figura 1-15, diagramu se muestra un diagrama de bloques de un circuito combinatorio. Las n de bloqaw variables de entrada W r i a s vienen de una fuente extema, las m variables 'W --'--" ~ ldr d e salida b i a s van a un destino externo, y entre stas hay una interm-exihn de compuertas lgicas. Un circuito mmbirrato~o transforma la infor-

m variables
de d d a

Rgura 1-15 Diagrama de bloque con circuito comb'mbria

maci.h binaria de los datos de entrada dadm a los datos de salida requeridos. Los circuitos combinatorios se emplean en las computadoras digitaks pata generar decisiones de control bina* y para proporcionar los componentes digitales requeridos para el procesamiento de datos.

Uii circuito d i n a t o r i o puede desctlbirse mediante una tabla de verdad que muestre la relacin buiaria entre las n variables de entrada y las m variables de salida. La tabla de verdad enumera los valores biarios de salida correspondientes a cada una de las 2' combinaciones de entrada. Un circuito combinatorio puede-se tambh con m funciones booleav ~ G - M S ,una pot cada variable de salida. Cada funcin de salida se expresa en trminos de las n variables de entrada. adlisls El andlisis de un circuito combhatorio comienza con un diagrama de circuito lgico determinado y cuImina con un conjunto de funciones booleanas o una tabla de verdad. Si el circuito digitai va 'acompaiiado de una explicacibn verbal de su funQ6n, las funciones booleanas o la tabla de verdad es suficiente para la verificacibn. Si la funclbn del circuito eskl en hvetigaci6n, es necesario interpretar la operacin del hito a partir de las funciones booleanas derivadas o de la tabla de verdad. El dxioo de tai investigacin se realiza si uno tiene experiencia y familiaridad con circuitos digitales. L a capacidad para correhcionar una tabla de verdad o un conjunto d 4y A de funciones hleanas con una brea de pmxwniento de infonaci6n es d r a un arte que se adquiere con la experiencia. diseo El d k d o de &mito&combinatorios parte del planteamiento verbal del problema y termina con iin diagrama de cirruito lbgiro. El procedimiento comprende h a siguientes pasos:
C

1. Se establece e1 problema. 2 Se asignan smbolos literales (letras) a las variables de entrada y salida. 3. Se deriva la tabla de verdad que define la relacidn entre entradas y
d a s .

4. Se obtienen.las funciones booleanas simplificadas para cada salida. 5. Se traza el diagrama 16gico.
A

Para demostrar el M o de h c i m u b combinatorios presentarnos dos ejemplos de circuitos atitm&ticossimples. Estos circuitos sirven como b8sic~ de ~ construccin para ciscutos a r i t d b s ms complicados.

+misumador El circuito aritm6tico digital ms simple es el de la suma de dos dgitos binarios. Un circuito combinatorio que ejecuta la suma de dos bits s e llama un semisumadar. Uno que ejecuta la suma de tras bits (do6 b i b ~ignificativoo
y el acarreo previo) s e llama sumador completo o total. El nombre anterior proviene del hecho de que s e necesitan dos semk+ufnadorespara implantar un sumadoc completo. Lis variables de entrada de un semisumador se llaman bits sumando y c&umando. Las variables de salida se llaman suma y acarreo. Es necesario especificar dos variables de salida porque la suma de 1 + 1 es el binario 10, que tiene &S @tos. Asignamos los shbolos x y y a las dos variables de entrada y S (por suma) y C (para acarreo) a las dos variables de salida. La tabla de verdad para el sernisumador se muestra en la figura 1-16(a). La salida C es O, a menos que ambas entradas sean 1 . la salida S representa el bit menos significativo de la suma. Lns funciones booleanas para las dos salidas pueden obtenerse directamente de la tabla de verdad:

.
&

9 * * t
1 &

b& b ~ S = x ' ~ + x ? / , ' = x ~ i.ddoiahab&dddc = ~ o . 1 A

El)diagrama lgico se muestra la figura 1 1 6 @ ) . Consiste de una compuerta XOR y una compuerta AND.
aumaaor compiero io btau El sumador compieto ea m circuito combinatorio que forma la suma aritm& tiea de tres bits de entrada. Consiste de tres entradas y dos salidas. Dos de las variables de entrada, denotadas con x y y, representan los dos bits lid significativos a sumarse. ia tercera enkada, z, representa el acarreo de la -icibn menos significativa previa. Las dos salidas son necesarias porque la isuma aritmtica de tres dgitos bhrios fluctilia entre O y 3 y e l 2 o e l3 binario, necesitan dos dgitos. Las dos salidas se designan por los simbolos ' S (por suma) y C (por acarreo). L a variable binaria S da el valor del bit . menos sign&cativo de la suma. La variable binaria C da el acarreo de salida. La tabla de verdad para el sumador completo se muestra en Ia tabla 1-2.Los
-

..

---

--

Figura 1-36 Semisumador.

a) Tabla de verdad

b)D+m+o

22

c&ITlLO

UNO CtmJtos de lgica digital

TABLA 1-2 Tabia de wrdad pat.a sumad~.mmpieto

Entiadas

Salidas

d -

B:d

... & o

&1'

renglones baja las variables de &bada deignan todas las posiles

rrvn 9d I!

combinaciones que pueden tener las variables binarias. E l valor de ias vafiables $e aaiida s e determina de la suma aritmktiea de los bits de entrada. Cuando todos l o s bits de entrada son 0, la salida S es igual a 1 cuando sblo una entrada es igual a 1 o cuando las tres entradas son iguales a 1. Lasalida C tiene,un a de 3. si dos o tres entradas son igwles a 1. Los mapas de la figura 1-17 sirven para encontrar las expresiona algebraicas para las dos variables de salida. Zios unas en los cuadrados para 10s mapas de S y C se determinan dkedanwnte de los t&nninos mnimos en l a tabla de verdad. Los cuadrados con unos para la salida S no e combinan en grupos de cuadrados .adyacentes. Pero ya que la salida es 1 cuando un 4 -----nmero impar de entradas es 1 , S es una funcin impar y representa la Aci6n XOR de las,variabIes (vaae lo establecido al final de la s ~ d 6 n 1-21, Lns cuadrados comunos para la salida C pueden combinarse en una variedad de maneras. Una expresi6n posible para C

-a

C = Ay

+ (x'y + q ' ) z

6Y

Pigun 1-17 Mps para semisumadbr.

DhQona cuenta de que x'y + xy' = x @ y o incluyendo la expresi6n para la saiida S, obhernus las expresiones holeanas para eI sumador c o m p k

El diagrama 16gico del sumador completo se muestra en la figura 1-18. N6tese que el circuito del sumador completo consta de dos semisumadores y una compuerta OR Cuando l o usemos ,en los rapltulos subdguientes, el sumador completo (FA) se designara por un diagrama de bloque como se muestra en la *figura 1-18@).

Los circuitos digitales eonsideradus hasta aqyi han sido combinatorios, donde las 'salidas para cualquier tiempo dado son enteramente dependientes de las entradas que estn presentes en ese tiempo. Aunque es probable que cada sistema digital tenga un circuito combinatoh, la mayor parte de los sistemas encontrados en la practica tambidn incluyen elementos de almacenamhto que requieren que e l sistema se describa en t&mhos de circuitos secuenciales. El tipo ms comn de circuitos secuenciales es el tipo snmno. Los circuitos secuenciales stncronos emplean seiiales que afectan las elementos de almacenamiento s610 en instantes discretas de tiempo. L a sincronizaci6n I d se logra con Un dispositivo de tiempo llamado generador de pulso de reloj, que produce un tren periodico de pulsos de reloj. Lus p u h de reloj a distribuyen i kavQ del sistema de manera P que los e1emenlor de alma= & cenamiento se afectan s6lo con la llegada del pulso de iincmniraci6n. La a-d ' circuitos -endales shcronos con reloj son de los que m6s se emplean en la prbctica, ya que raramente maieptan problemas de inntabilidad y i u LL - temporizaci6n le dexompone f4cihente en pisos dSsmetos independientes, cada iuio de los cuales puede considerarse separadamente. cimrttos secuedale6 Las elementos de -hacenamiento ernpkadas en los circuitas semenmluj ciales con reloj se llaman flip-flopp. Un flipflop es una celda binaria capaz

'*,
L

+,

almacenar un bit de informacin. Tiene dos salidas, una para el valor normal .y una para el valor complementario del bit almacenado en 41. Un flipflop mantiene un estado binario hasta que es dirigido por un pulso de reloj para que cambie de estado. La diferencia entre los diversos tipos de fiipflops est en e l nmero de entradas que posean y la manera en la cual las entradas afeetan el estado Finario. Abajo se presentan l o s tipos m k comunes de flipfbps.

de

m '

m Flipflop SR

a r z i m#

El smbolo grsfico del flipflob SR se muestra en la figura 1-19(a). Tiene tres entradas, S (de i n i c i o ) , R (reinicio o borrado) y C (para reloj). Tiene una
saIida Q , y a veces tambin tiene una salida compIernentada, la que se indica con uh crculo en la otra terminal de salida. Hay un pequeiio tringulo enfrente de la letra C , para designar una mtrada dimmica. El simbolo indicador dinmico denota el hecho de que el flipflop responde a una transid6n positiva (de O a 1) de la seal de reloj. , La operaci6n del flip-flop es como si'gue. S i no hay un seai en l a entrada de reloj C, la salida del circuito no puede cambiar independientemente de cules sean J w valores de las entradas S y R. S61a cuando la selial de reloj cambia de O a 1 puede la salida afectarse de acuerdo con los vabres de las entradas S y R. Si S = 1 y R = O cuando C cambia de O a 1 , la salida Q se inicia en 1 . Si S = 10 y R = 1 cwiido C cambia de O a 1, la salida Q s e "reinicia" o barra en O. Si tanto S como R son O durante la transicih de d o j , la salida no cambia. Cuando tanto S como R wm Iguak a 1 , la salida es impdecihle y puede ser O o 1, ,dependiendo de los retrasos de tiempo internos que ocurran dentro del circuito. La tibla caracterstica mostrada en Ia figura 1-190 resume la operacidn del flipflop SR en forma tabular. Las columnas de S y R dan los valores bimrios de las dos entradas. Q(t) es el estado binario de la d i d a Q en un tiempo dado (referido como el estado Q(t + 1) es el estado binario de la salida Q despus de la ocurrencia de una transicibn de reloj (referida como e1 estado siguiente). Si S = R = O, una transici6n de reloj no produce un cambio de estado Iesto es, Q{t $ 1) = Q@].Si S = O y R = 1, el flipflop va al estado O (rwiicio). Si S = 1 y R = O, e l flip-flop va d estado 1 {inicio}.
,d
Figura 3-19. mipfiop SR.

--

puhs de reloj--do S = R = 1 ya que produce un estado siguiente indekmimdo. Esta condicih indeterminada hace al flipflop SR diflc e manejar y por 10 tanto. se usa rara vez en la practica.

E l fiipfeop SR no debe &ir

Flip-flop D El flip-flop D (datos) es una ligera modificaci6n del flipflop SR. Un flip-flop SR se convierte a un flip-flop D insertando un inversor entre S y R y
asignando el smbolo D a la entrada nica. La entrada D se muestra durante la ocurrencia de una transici6n de reloj de O a 1. Si D = 1, la salida del flipflop va a1 estado 1, pero si D = O, la salida del flip-flop va al estado O. El simbolo grfico y la tabla caracterstica del flip-flop D se muestran en la figura 1-20.De la tabla caracterstica notamos que el siguiente estado Q(t + 1) se determina de la entrada D. La relaci6n puede expresarse por una ecuacin caracterstica:

Esto significa que la kalida Q del flip-flop recibe su valor de la entrada D cada vez que la seal de r e l o j pasa a travs de una transicin de O a 1. Ntese que no existe una condicibn de entrada que deje el estado del flip-flop D sin cambio. Aunque el flip-flop D tiene la ventaja de tener slo una entrada (excluyendo a C), tiene Ia desventaja de que su tabla caracteristica no tiene una condicin Q(f + 1) = Q(t) "sin cambio". La condici6n "sin cambio" puede llevarse a cabo deshabilitando la seiial de reloj o retroalimentando la salida en Ia entrada, de manera que los pulsos de reloj conserven inalterado el estado del flip-flop.

Fiip-flop JK
Un flip-flop JK es un refinamiento del flip-flop SR en el sentido que la condicin indeterminada del tipo SR se define en el tipo JK.Las entradas J y K se comportan como las entradas S y R para iniciar y reiniciar el fiip-flop, respectivamente. Cuando las entradas J y K son ambas igual a 1, una transicin de r e l o j alterna las salidas del fliprfl~p a su estado complementario.
Figura 1-20 Flip-flop R.

Q ( t + 1)

Limpiar a O Establecer en 1

b) Tabla c n m c t d s t k

La figura 1-21 muestra el simbolo g r k y la tabla caracterlstica del flipfbp IK. La entrada J es equiv.ei1mte a Ia entrada S (inicio} del flipflop SR, y la entrada K es equivalente a la entrada 8 ( r e i n i c i o ) . En lugar de la mndicih indeterminada, el flipflop JK tiene una ccmdici6n complementaria Q(t 4- 1) = Q'(t) cuando tanto J como K s o n igual a 1.

np-flop T uentra en l* libros de texto es e l fiipflop otro tipo de f l i ~ b p que T (de complemento, foggle). Este @p-flop, que se muestra en la f p r a 1-22, se obtiene del tipo JK mando las entradas J y K se conectan para proporcionar una entrad'a $ica designada por T.El fiipfiop T,por lo tanto, tiene slo dos condicioms. Cuando T = O (/ = K = 0)una transicibn de reloj no cambii el &tado del flip-ficp. Cuando T = 1 U = K = 1) una transici6n de
reloj complementa el estado del flip-flop. Estas condiciones pueden expresarse por una ecuacibn caracterstica:

Flip-flqp disparado por el flanco El tipo ms comn de flipflop que

sirve

para sincronizar eI cambio de

estado durante una transicidn de pulso de reloj es el flipfiop disparado por

sin cambio
Limpiar en O Ekkablecer en 1 CwnplemPniar

b) Tabla de cuaclerbtiws

Figura 1-21 Hip-fiop JK.


Figura 1-22 Flipflop T.

pulsasi, del nIoj

e l borde. E n este tipo de flip-flop, las transiciones de la salida m n a un nivel especfim del pulso de reloj. Cuando el nivel4 d d pulso de entrada excede este nivel de umbral, las entradas se -en de manera que el fiip-flop no responde a d i o s adicionales de las wtradas hasta que e l pulso de reloj regresa a O y m pulso. Algunos flipflop disparados por el fianco tienen una transici6n en el flanco de bajada (transici6n de borde positivo) y otras c a m una transici6n en el borde descendiente (transicibn de flan& negativo). La figura 1-23{al muestfa ia &tal del pulsa ae reloj en un flip-flop D disparado por e l borde positivo. i valor en la entrada D ae transfiere a la salida Q cuando d reloj hace una.tLansici6n positiva. La salida no puede cambiar cuando .eI reloj esta en el niwl 1, en el nivel O o en una transicin del nivel 1 d nivel O. La transieibn de reloj positiva efectiva incluye un tiempo mnimo llamado el tiempo de esfablecimimto, ,en el cual la entrada D debe permanecer en un valor constante antes de la transicin, y un tiempo definido llamado tiempo. de retencidn, en el cual la entrada D no debe cambiar despuCs de la transicin positiva. La transicibn positiva efectiva es pcir lo general una f r a d n muy pequeiIa del periodQ total del pulso de reloj. Ls figura 1-23@) muestra d shbolo gr6fm correspondiente y el diagrama de tiempos para un fiip-flop D disparado por el flanco negativo. E l smbolo grfico incluye un crculo de negaci6n e~rentede1 indicador dh8&o de La entrada C . Esbo denota comportamiento disparado por el borde neptivo. En &e caso el flip-flop -nde a la t r d b n de Ia seal dd reloj del n i v e l 1 al nivel O.

Figura 1-23 Flipflop activado por Flanco.

positiva
e) Fiiphp D activado por ibnoo positiva

de reloj
negativa

b) F l i p h p D activado por h - mnegativo

flfpflo~

~mo*w~lawo

*" a

Otro tipo de fiipflop que se usa en algunos sistemas es el fiipflop amessclavo. Este tipo de circuito consta de dos flip-&s. El p h e m es el amo y responde al nhel p i t i v o del re14 el segundo es el d a v o y responde . al nivel fiiegativo del re1.q. Ei mdhdo es que la saiida cambia durante la trmsiciian de la h l del r e l o j de 1 a O. La tendenaa es alejarse del uso del fiip-flop mo-esclavo y acercarse a los flipflops disparados por el flanco. i m fiipflops disponibles en c h i t c s integrados proporcionarh a veces terminales de entrada dca. Estas entradas por

para iniciar o borrat el fiipflop en forma asincrlo genaal se llaman preinicio (preset) y 'borrar [clear) y dedan al fip-flop en e l nivel negativo de la S-1 de entrada sin necesidad de un pulso de reloj. Estas entradas son tiles para llevar los fiipflops a un estado inicial antes de su operacin cronornetrada.

TabIas de excitacibn Las tablas caracteristicas de los flip-Aps especifican el estado siguiente cuando se conlas entradas y el estado presente. Durarrte el d M o de los h i t o s secuenciales conocemos por 10 general h transicin requerida dei estado presente al estado siguiente quisidramos encontrar las eondicie nes de entrada del flip-flop que causen la transicin requerida. Por esta
raz6n necesibmos una tabla que enliste bs combinaciones de entrada reque ridas para un cambio de estado dado: la tabla de excitaeih del flipflop. Fa tabla 1 3 enlista las tablas de excita& para lm cuatro tipos de flipflop Cada bbia consta de dos oolumnas, Q(t) y Q(k i- 1) y wia columna para cada entrada para mostrar cmo se alcanza la transici6n requerida. Hay cuatro transiciones posibles del estado presente Q(t) al estado siguiente Q(t + 1 ) .
TABLA 1-3 Tabla de excitacin para cuatro Eiip-flopc

*OOP

JK

Flip-fiop T

Las con'diciones de entrada regueridas para cada una de estas transiciones se derivan de la infonnaci6n disponible en las tablas caracteristias. E l shbolo X en las tablas representa una condicibn "no importa" esto es, no
tiene importancia si la entrada del flipflop es O o 1. La r a h de las m n d i c i m ' ' n o importa" de las tablas de excitad6n es que h y dos maneras de ilevar a cabo la trmicibn requerida. Por ejemplo, en un flipflop JK, la transicien del estado p m b de O a l i n estado siguiente de O puede Uevarse a cabo haciendo que h a entradas J y K sean iguales a O (para no obtener ningiln cambio) o dejando que J = O y K = 1 para barrar el flipflop (aunque ya a t hrrado). En ambos m J debe sw O, pera K S O en el primer caao y 1 en el segundo. Puesto que la transicin requerida -4 eri cuaiquier caso, marcamos la entrada K con una X "no imporh" y dejamos que el a d o r +a O o 1 para la entrada K, o ea lo d s conveniente.

1-7 Circuitos secuenciales


Un
circuito secuencid es una interconexin de fiipfiops y compuertas. La compuertas por si mismas constituyen un circuito mbinatorio, pero cuando se incluyen junto con los flipfiops, e]. circuito completo se clasifica como un circuito secuencial. 3 1 diagrama de blques de un circuito secuencia1 sincm nizado por el d o j se muestra en la figura 1-24. Consiste en un circuito combinatorio y un niimem de fipfiops sincronzados por el reloj. En general, puede incluirse cualquier n-ro de flip-flops. Como se muestra en el diagrama, el bloque del circuito combinatorio recibe seiales binarias de las entradas exkmas y de las salidas de los flipflops. las safidas del circuito combinatorio van a las salidas externas y a las entradas de los flipflops. 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 salidas de los fiipflops, a su vez, se aplican a las entradas del circuito combinatorio y determinan el comportamiento del cjrcuita. 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. Adeds, el estada siguiente de T o s fipflops es tambin una funcidn del ~tado presente y de las entradas externa As& un circuito secuencia1 se

Figura 1-2;P Diagrama de blque de un circuito s e d 1 &mono con reioj.

especifica por una secuencia de tiempos de hs entradas extemas, salidas externas y estados b W o s de los flipflop intemm.
ni'm

E-cuacioneede entrada de los fiip-floppUn ejemplo de un circuito secuencia1 se muestra en la figura 1-25. Tiene una variable de entrada x, una variable de salida y y dos flipflops D cronometrados. Las compuertas AND,compuertas OR y el inversor forman la parte I&gicacombinatoria del circuito. tfts intemonexiones entre las compuertas del
circuito eombinatorio pueden especicam por un conjunto de expresiones bleanas, La p m del circuito combinatorio que genera las entradas a los fipflops ~e descrhn por medio de un conjunto de expresiones bmleanas -das ecuaciones de entrada del flipfiop. Adoptamos la n o m a de usar eI &bolo de entrada del fipflop para d,matar el nombre de la variable de la ecuacidn de entrada y un subndice para designar e l slmbolo escogido para la salida del flipflop. As, en la figura 1-25, tenemos dos ecuaciones de entrada) daignadas DAy ag. La primera letra de cada smbolo denota la

I I L t l + q a m

--

eeuaddn de entrada

entrada D de un fiipflop D.La letra del subndice es el nombre del smbolo del flipfl~p.las eamcions de entrada son funciones booleanas para Ias variables de entrada del flipflop y pueden deducirse por inspeeeidn del circuito. Puesto que la salida de la compuerta OR se conecta a la entrada D del flipflop A, escribimos la primera ecuacin de entrada como

donde A y B son laa salidas de los dos flipfiops y x es la entrada externa. La aegunda ecuaci6n de entrada se deriva de una compuerta AND tiniea cuya salida se conecta a la entrada D del flip-flop B:

El circuito secuencia1 tambin tiene una salida externa, que es una funcidn de la variable de entrada y el estado de los flipflops. Esta salida puede especificarse algeb'raicammte por la expresin

y = A%' + Bx'

De este ejemplo notamos que la ecuaci6n de entrada del fiip-flop e a .una expresibn booleana para un circuito combiitorio. L a variable con subndice es d nombm de una variable binaria para la salida de un circuito rombinatorio. E & salida siempre se coneda a la entrada de un flipflop.
Tabh de estado El comfiorhmiento de un ciEcuita secuencia1 se detemina por sus entradas, s p salidqs y el estado de los fiipfbps. Tanto las salidas como el estado msiguiente mn funciones de las entradas y del estado presente. Un &mito secuencia1 se espeeifica pw una tabla de estado que relaciona las salidas y i. los estados siguientes como una funci6n de las entradas y de los estados L u presentes. En circuitos menciales sincronizados por reloj, la transicidn del estado presente al estado siguiente se aetiva por la presencia de una &al de reloj. ia tabla de estado paxa el circuito de la figura 1-25 se muestra en la tabla 1-4. ta tabla consta de cuatro secciones, rotuladas estado presente, en-, esfado siguiente y salida, La secci6n del estado presente muestra los estados de los flip-flops A y B en cualquier tiempo t. La seccin de entrada da un valor de x para cada estado p m t e posible. L a seccibn de estado estadd peseti k siguiente muestra los estados de los qflip-flaps un periodo de reloj despuk edrido rigrrhte a un tiempo f + 1 . ta seccidn de salida da el valor de y para cada estado presente y condicin de entcada. h derivacibn de una tabla de e6tado consiste en listar primero todas las combinaciones b i i r i a s posiiles del ahdo presente y las entradas. En

'

TABLA

Tabla de atado para el c k d t o de la'figura 1-25


&&do

Esbdo
, h i &

- - - - Salida
A

Entrada siguitite'
x A B

este caso tenemos & combinadones binarias &l QOO al 111. Los valores del estado siguiente se deducen entonces del diagrama lgico o de las eeuacioqes de entrada. La ecuacin de entrada para e l flipfop A es

1 valor del ~ t a d o siguiente de cada flipflop es igual a su valor de entrada D en el estado presente, La transicin del estado presente al estado siguiente

..

ocurre despuh de la aplicacin de la sefial de reloj. Por l o tanto, el estado siguiente de A es igual a 1 cuando el estado presente y los valom de entrada satisfaen las condiciones Ax = 1 o Bx = 1, lo mal hace que DAsea igual a 1. Esto ee muestra en l h tabla de estado con tres unas bajo la columna para el estado siguiente de A. D e manera similar, la ecuacin de entrada para el sflip-flop 33 es /
f

Dg = A'x

E l estado siguiente de B en Ia tabla de estado es igual a 1 cuando el estado presente de A es O y la entrada x es igual a 1. ta columna de +didase deriva de la ecuacibn de salida

tabla

de fstado

La tabh de estado de cualquier circuitu 8ecuenciaI se obtiene por el prmecihimb seguido en <esteejemplo. En generai, un circuito aeruencial con m flip-fiops, n variables d e entrada y p .variables de salida conbendrg m
columnas para el estado p-te, n columnas para las entradas, m columnas para e 1 estado siguiente y p columnas para las salidas. Las columnas para el mtado preente y las entradas se combinan y bajo btas listamos las 2'-

- --

b *

combinaciones b i n d s de O a 2m" 1. h s columnas del estado siguiente y las salidas son funciones .del estado presente y de b s valores de entrada y se derivan directamente del circuito o de las ecuaciones booleanas que deal circuita.

Diagrama de estado
diaprna de estado

La uiformaci6n disponile en una tabla de estado se puede representar grgficaniente en un diagcama de estado. En esk tipo de diagrama, el estado se representa con un circulo y la transicibn entre estados se indica con lineas que conectan b s crculos. E l diagrama de estado del circuito secuencia1 de la figura 1-25 ae muestra en la figura 1-26.El. diagrama de etado proporciona la misma infonnacidn que la tabla de estado y se obtiene directamente de la tabla 1-4, EI nmero binario dentro de cada circulo identifica el estado de les Gp-flops. Las lneas de conexin s e rotulan con dos nmeros binarios separados por una diagonal. El valor de entrada durante e l estado presente se etiqueta primero y el nmero que s i p a la diagonal da la salida durante e l estado presente. Por ejemplo, la inea que conecta del estado 00 al 01 se rotula l/O, significando que cuando el circuito secuencia1 e s a en el estado presente 00 y la entrada es 1 , la seilida es O. Despuds de una transici6n de reloj, el circuito pasa al estado siguiente 01. La misma transicin de reloj puede cambiar el valor de entrada, Si la entrada cambia a O, la salida se vuelve 1, pero si I a entrada se queda en 1, l a salida permanece en O. Esta infoma&n se obtiene del diagrama de estado a l o largo de las dos lneas que salen del circulo que representa el estado 01. Una lnea que conecta a un crculo consigo mismo indica que qo ocurre n b g h cambio de estado. No hay diferencia entre la tabla de estado y el diagrama de estado, excepto por la manera de presentacin. La tabla de estado es mAs fcil de obtenerse de un diagrama lbgico dado, y e l diagrama de estado se deduce directamente de la tabla de esfado. El diagrama de estado da una vista grfica de las transiciones de estado y es la forma adecuada para l a interpretacin humana de1 funcionamiento de un circuito. Por ejemplo, el diagraFimra 1-26 Diagrama de estado de un circuito eecuendal.

m de estado de la figura 1-26 muestra claramente que, partiendo del estado M, la salida es O &tras la entrada perma-a en 1 . La primera entrada O despus de una cadena de unos da una salida de 1 y transfiere el circuito otra vez al estado inicial 00.

Ejemplo de diseo El procabiento para disear circuitos secuenciales se demostrar con un ejemplo especfico. El procedimiento de disefio consiste en traducir primero las especificaciones del ci~cuito a un diagrama de estado. El diagram a de estado se convierte entonces en una tabla de estado. D e la tabla de estado obtenemos la informacibn para conocer el diagrama del circuito
16gico. Queremos disehr un circuito secuencia1 sincronizado por reloj que pase a travds de una secuencia de estados binarioe repetidos 00, 0 1 ,1 0 , 11 cuando la entrada externa x sea igual a 1. E1 estado del circuito permanece sin s u d o x = O. Este tip de circuito se Urna contador binario de 2 bits porque la secuencia de estado es idntica a la secuencia de m e n t o de dos dgitrrs binarios. La entrada x es la variable de control que especifica cundo debe proceder el recuento. EI contador bbinario necesita dos flip-flops para representar los dos bits. El diagrama de estado para e l circuito secuencia1 se muestra en la figura 1.27. E 1 diagrama k dibuja para mostrar que los estados del circuito siguen el recuento binario con tal de que x = 1. E l estado siguiente de 11 es 00, el cual causa8que el recuento se repita. Si x = O, el estado del circuito permanece sin cambio. Este circuito wencial no tiene salidas externas y por lo tanto 6610 el valor de la entrada se etiqueta en el diagrama, El estado de los flip-flops se cbnsidera como la salida del contador.
Figura 1-27 Diagrama de estado para contador bimrio.

~olrtador &ario.

-,*F@
9
~4

. W 1 H , rYa

tabla de ewrritacidn

hemos asignado el simbolo x a la variable de entrada. Ahora asignamos los simbolos A y B a las salidas de los dos flip-flops. El estado siguiente de A y B, como funcin del &ado p m t e y de la entrada x, puede transferirse del diagrama de estado a la tabla de estado. Las primeras cinco columnas de la tabla 1-5 constituyen la tabla de estado. I;as entradas de asta tabla se obtienen directamente del diagrama de estada. La tabla de excitad611del circuito aecuencial ea una extensi6n de la tabla de estado. Esta extensin consta de una lista de excitaciones de entrada de los flipflops que causen las transiciones de estado requeridas. Las condiaones de entrada de los flipflops son funcin del tipo de flip-flop usado. 3 empleamos flip-flops JK, necesitarno5 columnas para las entradas J y K de cada flipflop. Las entradas de flip-flop A se designan por JA y KA y del flipflop B p r JB y Kg. La tabla de exeitaci6n para el flip- flop JK especificado en la tabla 1 3 s e usa ahora para obtener la tabla de excitacin del circuito secuencial. Por ejemplo, en e l primer rengin de Ia tabla 1-5 tenemos una Iransicibn del fiipflop A de O en el estado presente a O en el estado siguiente. En la tabla 1-3 encontramos que una transici6n de estados de Q(t) = O a Q(t 1) = O en un flipflop JK requiere contar con la entrada J = O y la entrada K = X. As O y X se copian en el primer rengl6n bajo JA y Kk respectivamente. Ya que el primer renglhn tambibn muestra una transici6n del flipfiop B de O en e l estado presente a O en el estado siguiente, s e copian O y X en la primera hilera bajo JB y Kg.El segundo renglbn de lajtabla 1-5 muestra una transicin para el f i i p fiop B de O en el estado presente a 1 en el estado siguiente. De la tabh 1-3 encontramos que una transicidn de Q(t) = O a Q(t 1) = 1 requiere contar con la entrada J = 1 y la entrada K = X. Asl 1 y X se copian en el segundo renglbn bajo JB y Kg,respectivamente. Este proceso s e cunhta para cada rengl6n de la tabla y para cada flip-flop, con las condiciones de entrada que se especifican en la tabla 1 3 copiadas en el renglbn apropiado del flipflop particdar que se considera.

TABLA 1-5 Tabla de dtaci6n para mnbdor b a r i o

- - A

Estado acaial

stado Entrada d m t e

Enlradas de fipfbp

JA

JB

KB

Analicemos ahora i a informach disponible en Ia tabla de excitaci6n como en Ia tabla 1-5. Sabemos que un circuito secuencial consiste en un nmero de fiipflops y un circuito combinatorio. Del diagrama de bloques de la figura 1-24, notamos que las salidas del circuito cqmbinatorio deben ir a ias cuatro entradas Jh Kh JB y &. las entradas al circuito combinatoriu son la entrada externa x y los valores de estado presente de los fiipflops A y B. Adems, la funcin booleana que especifm un circuito combinatoro se deriva de Ia tabla de verdad que muestra la reiacihn entre entrada y salida del' circuito. Lns partidas que enlistan ias entradas del circuito combinaborio se especEcan bajo h e alumnas de "estado8 presente" y "entrada" en la tabla de excitaci6n. Las salidas del circuito combinatorio se especifican bajo las columnas de "entrada del flip-flop".A& UM tabla de excitacibn transforma un diagrama de estado en una tabla de verdad necesaria para e1 disefo de la parte del circuito mbinatorio del circuito sxuencial. A s , pueden obtenerse ahora las funciones booleanas simplificadas para el circuito combinatoria. lias entradas son las variables A, B y x. Las salidas son las variables Jh Kk JB y &. La i n f o m c i h de la tabla de excitacin se transfiere a los mapas?de la figura 1-28,de donde se derivan las cuatro entradas de fiip-flop simplificadas:

E i diagrama l&&o se dibuja en la figura 1-29 y mmta de dos flipfhps JK (Y). Nbtese que las'entradas y K deteminan el y una compuerta
siguiente estado del contador cuando ocurre la &al de reloj. Si tanto J como K son igual a 0, una S-1 de reloj no tiene efecto, esto es, el estado del flip-flop no cambia. As, cuando x = O, las cuatro entradas de los fipflops son iguales a O y el estado de los flipflops permanece sin cambio aun cuando se apliquen continuamente los puisoei de reloj.

Procedimiento de disefio E l diseiilo de los circuitos secuenciales sigue el outline descrito en el ejemplo anterior. E i comportamiento del circuito se formula primero en un diagrama
de estado. El nmero de flipflops necesarias para el circuito se dete& por la cantidad de bits listados dentro de los &culos del diagrama de estado. H n h e r o de entradas para el circuito se especifica a l o largo de las h a s dirigidas entre los crculos. Asignamos entonces letras para d-ignar todos los flipflops y las variables de entrada y salida, y procedemos a obtener la tabla de estado. Para m flipaops y n entradas, la tabla de estado consistir en m columnas para e l -do p-k, n columnas para las entradas y m columnas para el estado siguiente. El nmero de renglones en la tabla ser& hasta de 2"+", un renglh para cada una de las combinaciones binarias del estado

m~".{; - eau
, -*
I

m'
md

i:w,
1 Y i

*amy

.
1

KB= x

Figura 1-28 Mapas para circuita wmbinatorio de y t a d o r .

bu
i r

i i i m rWm

% ' - ' Y

a
.-1

JL-

J
4->C

kw

Figura 1-29 Diagrama 16gioo de un contador b i i o de 2 bits.

.-

m
.

presente y las entradas. Para cada rengln Iistamos el siguiente estado como se espeeifrca por el diagrama de estado. En seguida, se m g e e l tipo de fip-flop que vaya a usarse en el circuito. L a tabla de estado se extiende entonces a l a tabla de excitaci6n incluyendo las columnas para cada entrada de cada flipflop. ta tabla de excitacidn para el tipo de flipffop en activo puede encontrarse en la tabla 1-3.De la informacin disponible en esta tabla e inspeccionando las transiciones del estado presente al estado siguiente en la tabla de estados, obtenemos la eminf~maci6n para h s condiciones de entrada de los flip-flops en la tabla de excitacin. La tabla de verdad para la parte del circuito combinatorio del circuito secuencia1 estA disponible en la tabh de excitacidn. Las columnas de estado presente y entrada constituyen las entradas de la tabla de verdad. Mediante la simplificacin por mapas obbern~s un conjunto de ecuaciones de entrada de los flipflops para e l circuito combinatono. Cada ecuaci6n de entrada de flip-flop especifica un diasama lgico cuya salida debe conectarse a una de k c entradas del flip-nop. El circuito combinatorio obtenida de esta manera, junto con los flip-flops, constituye el circuito secuencial. tas salidas de los flipflops se consideran a menudo como partes de las salidas del circuito secuenciaI. Sin embargo, el circuito combinatorio tambin puede contener salidas externas. En tal caso, las funciones booleanas para las salidas extemas s e obtienen de la tabla de estado mediante las tcnicas del disefo del circuito combinatorio. Un conjunto de maciones de entrada de los flip-flops especifica un circuito secuencid en forma algebraica. El procedimiento para obtener el diagrama Mgico del conjunto de ecuaciones de entrada de los flip-flops es un proceso directo. Primero dibuje los flip-flops y rotule todas sus entradas y salidas. Entonces dbuje el circuito combinatorio de las expresiones booleanas dadas en las ecuaciones de entrada de los flipflops. Finalmente, conlas salidas de los flip-flops a las entradas del circuito combinatorio y las salidas del c i d t o combinatorio a las entradas de los flipflops.

1-1. 1-2
1-3.

Determine por medio de una tabla de verdad l a validez del teorema de DeMorgompara tres variables: (ABC)' = A' + B ' + C'. Liste la tabla de verdad de una funcibn XOR (impar) de tres variables:
x=A6B@C.

Simplifique las siguientes expresiones usando Algebra holeana.


a. A +AB b. AB + AB'

c. A'BC

d. A'B

+ AC + ABC' + ABC

14

1-5.

14

Simplifique las siguientes expresiones usando &lgebra booleana: a. AB + A(CD CD') b. (BC' .t A'D) (AB' + CD') Siguiendo el teorema de DeMorpn, muestre que: a. (A + B)'(A' + 8')' = O b . A + A'B + A'B' = 1 Dada Ia expresibn booleana F = x'y + ryz': a Obtenga una expresin algebraica para el complemento F. b. M u e s b que F F' = 0. e. Muestre que F F' = 1 . Dada la funci6n booleana F = xy'z + x'y'z + xy a W t e la tabla de verdad para la W n . b . Dibuje un diagrama 16gico por medio de la expresi6n booleana original. C. Simplifique la expmsi6n al@raia mediante el hlgebra booleaila. d Enliste la tabla de verdad de la funci6n obtenida de la expresi6n simplificada y muwtre que es h misma que la tabla de verdad en la parte (al-

1-6.

~~undiagrama16gicodela~6n~plificadayeomparedn~~0 total de compuertas con el diagrama de la parte @). Simplifique las siguientes funciones h l e a n a s mediante mapas de tres
e.

variables.
a.

F(x,y,z) =

2 (0,1,5,7)
(1,2,3,6,7)

b . F(x, y, z) =

19.

c, F(x,y,z) = (3,5,6,7) d. F { A , B , C ) = S ( 0 , 2 , 3 , 4 . 6 ) Simplifique las siguientes funciones bleanas por medio de mapas de
cuatro variables.

1-10.

1-11.

a. F(A, B, C, D I = 2 (4,6,7,15) b. F(A,3,C, O ) = (3,7,11,13,1& 15) e. F(A, B , C , D)= (0,1,2,4,5,7,11,15) d. F(A,B,C,D)=~(O,2,4,5,6,7,8,10,13,15) Simplifique la~sigui&ntes exprwiones en (1) forma de suma de productos y en @) 0- de producto de sumas. s . x'z' + y'z' yz' + xy b . AC' B'D 1- A'CD + ABCD Simplifique las siguientes funciones booleanas en h n n a de suma de productos por medio de un mapa de cuatro variables. Dibuje el diagrama lbgiw con (a) compuerh ANDOR; @) compuertas NANX).

F(A, B, C,D) =

2 (0,2,8,9,10,11,14,15)

1-12.

Simplifique las siguientes funciones booleanas en l a forma de producto de sumas por medio de un mapa de cuatro variables. Dibuje el diagrama lgico con (a) compuertas OR-AND; @) compuwtas NOR.

a ----

- 3

4 &A F(w,x,y,z) = 2 (2,3,4,5,6,7,11,14,15) gimPG4ue M b n booleana F junto con las condiQones "no importa"d en (1) forma de suma de productos y en (2) forma de pioduch de sumas.

1-14.

Segn la tabla 1-2, deduzca la expresi6nh l e a n a para la salida S (suma) de un sumador completo en forma de suma de productos. Luego, por una

operacibn algebraica, muestre que S puede expresarse como el XOR de tres variables de enbada.

Una funcin de mayora se genera en un circuito combinatorio cuando la d i d a es igual a 1si las variables timen ms unos que ceros. De otra manera la salida es O. Disee una funY6n de mayorfa con tres entradas. 1-16. DiseAe un circuito combinatorio con tres entradas x, y y r y las tres salidas A, B y C. Cuando la entrada binaria sea 4,5,6 o 7 la salida binaria es uno menos que la entrada. 1-17. Muestre que un flip'flop JK puede eonve~rsea un flip-flop D con un inversor entre las entradaa 1y K. 1 1-18. Usando la informaci6n de la tabla caracterstica del flip-fiop JK enlistada en la figura 1-21(b), deduzca la tabla de exdtaa6n para el flipflop JKy compare su respuesta con la tabla 1-3. 1-19. Un circuito secuencial tiene dos flip-flop D: A y E; dos entradas: x y y, y una salida z. Las ecuaciones de entrada de los flip-flops y la salida del circuito son como sigue: S .M
1-15,

M DA = x f l l + X A i ) l s (B. =rfB +xA


,M , t ! , t i T . Q #
d l i k @ > C * i Y

am
-iH

z=B

a. Dibuje el diagrama ldgico del circuito. b . Tabule l a tabla de estadm.

1-20.

D M e un cantador d-dente de-dosbits. Este e~ un circuito secuencia1 con dos flipflop y una enhada x. Cuando x = O, el estado de los fiip-flops no cambia. Cuando a = 1, L e n & de estado es 11, 10, 01, 00, 11 y

m ua
d m

fepetici6n. .I-n. oidm-db-~&dcmdosBipflopsJK:AyB;ydosentrridas:E -m m y X. Si E = O, el circuito permanece en el mismo estado a de1 valor de x. Cuando E = 1 y x = 1 , el circuito pasa a havk de transiciones de estado de M1a 01 a 10 a 11 y de vuelta a 00, y repeticin. Cuando E = I y x = O, el s l circuito pasa a havh de transicion,esde W a 11 s 10 a 01 y de vuelta a 00,y W -epetiC;6n.

Referencias

41

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

EN ESTE cAP~TULO
2-1
2-2
2-3

C k c u h integrados

24 2-5
2-6

Deeodificadores ~ulfplexores Registros


de eorfifFliento Cmtadores binarios Unidad de memoria
R e & -

2-7

2-1 Circuitos integrados


Los circuitos digittaies se construyen con cikuitos integrados. Un circuito intqpdo (abreviado C I ) es un pequefio cristal de silicio semiconductor, liamado m ~ ~ ' t que o contiene , i m componentes electrnicos para las compuertas digitdes. Las diversas compuertas se conectan dentro del microcircuito para formar los circuitos requeridos. El microcircuito ce monta en un encapsulado de cerhica o de pldstico y las conexiones se sueMan con finos alambres de o r o .a terminales externas para formar el circuito integrado. E i nmero de h i n a l e s puede fluctuar de 14 en un encapsulado pequeiio de Q hasta 100 o ms en m encapsulado mayor. Cada CI tiene una designad611numrica i m p m en la superficie del paquete, para su identificaci6n. Cada proveedor publica un manual de d a b o un catlogo con la descripcibn exacta y la informacibn necesaria acerca de los circuitos integrados que fabrica. Conforme la tecnologa de Ios circuitos inwgrados va mejorando, el nmero de compuertas que pueden fabricarae en un solo rnicrocircuito ha aumentado consideqablemente, La diferenciacin entre los micmcircuitos que tienen ' m a s cuanlas compuertas internas y aquellm que tienen cientos o

. -

- m

'

SSI

f'

MSZ

y l %

-: inte@aci6n a pequea, mediana y gran e s c h . b s dispositivos de infsgracidtt m e#& peque% (SSI, small-scale infegratiarr) contienen distintas compuertas independientes en un solo encapsulado. Las entraelas y salidas de las compuertas se conectan directamente a las terminales $el encapsulado. Por l o p e r a l , el nmero de compuertas es de tenninales dispo&les en el menor que ID y <se circuito integkddo. scala d i a n a (MSI, medium-sale los dispositivo integra&#) timen de 10 a 200 compuertas en un solo encapsulado. Suelen ejecutar funciones digitales elementales q d c a s como ocurre con los d e codificadores, los sumadores y los registros. Los dispositivs de integracm m escala gran& (LSI, large-sude infegratim) contienen entre 200 y unos cuantos d e s de compuertas en un solo encapsulado. Estos inciuyen sistemas digitales, como procesadores, circuitos de memoria y m6dd~s programables. Los dispositivos de integra& m escala muy grande (VLSI,my-largesale intepfion) contienen miles de compuertas en un sol^ encapsulado. Los ejempl? son las matrices de memoria grande6 y los circuitcs integrados para mici~~omputadma complejos. Debido a su pequeio W o y su baja costo, l o s dispositivos VLSI han revolucionado la tecnologa del diseno para s i s e mas de computadora, dando a los diseiiadores l a capacidad de crear estructuras que no eran tan econhicas anteriormente. tos circuitos integrados digitales se clasifican no &lo por su funcionamiento I6gic0, sino tambin por la tecnologfa de circuitos a la que pertere cen. La tecnoIoga de circuitos se conoce como fumilia Idgim digital. Cada familia lgica tiene su d i o circuito eleckriico bdsico sobre e l que se dXsean circuitos dietales y funciones m8s complejas. E l circuito bsico de cada tecnologa es una compuerta NAND, NOR o NOT. LQS componwites eleck6nicos que se emplean en la rmtmcei6n dd circuito b4sico sirven de o d h a d o para ciar nombre a l tecnologia: Muchas familias 16gicas diferentes de h i t o s integrados ' s e han introducido comercialmente. Las siguientes son las m s populares.
TTL

miles de dhs se ham con una ~ e f e f m h pwstablh,da para d i i t i v o s de

ECL
MOS.
CMOS

Ldgica de transistor 'transistor Aioml ' a BI Ldgica de emisor acoplado k d . Metal 6xido semiconductor metiico Metal &ido hiemiconductor complementario
k

h
M

P -d *.A La familia lgica 'iTL ai l a m b popular y Sr funcionado muchos a y se considera como norma; la fmh ECL tiene ventajas en sistemas que
.m-

LB'

requieren fumb~mientode aIta velocidad; la familia MOC es apropiada para circuitos que necesitan una alta densidad de componenb, y la familia CMOS es preferible en sistemas que r6qfiikren bajo consuma de e n e .

ECL

La familia 1 a tran~istor-transistor (7TL}fue una evulucibn de una bmmloga previa con base en diodos y transistores para, la compuerta bsica NAND.Esta tecnologa se llamaba IiTL (diodetransistor logic), o sea, "1-a de di&transiskir". Posteriormente los didos fueron =plaza& por hnsistors para mejorar el funhmdento del c h i t o , p r l o que el nombre de la familia Idgica se cambi6 a '1gica transistor-tmnsistoi'.Hay divems variaciones de la familia adems de la T T L ~~tndar, como la TTL de alta velocidad, la TTL de baja potencia, la TTL Schottky, l a TTL Schotkky de baja potencia, y la TT L Schorcky a v m & i . El voltaje de la fuente de alimentaci6n para los circuitos 'ITL es de 5 v o l t i o syT o s dos niveles I6ghs maproximadamente de O y 3.5 voltios. La familia ihgica de emisor acoplado (ECL) proporciona los h i t o s dital- de ms alta v e l d d en forma integrada. ta ECL se aplica en sistemas como supercomputadoras y procesadores de seiiales donde es esencial la alta velocidad. Los transistores de Ias compuertas ECL funcionan en un estado no saturado, condicibn que p d f e alcanzar retrasos de propagau611de 1 a 2 nanosegmdos. E1 trar.sistor metal dxido semiconductor (MOS) es unipolar ya que depende del flujo de un solo tipo de portador, como electrones (canal n) o huecos (canal p). Esto estA en contraste con el transistor bipolar de las compuertas TTL y ECL, donde ambos portadores existen durante el funcionamiento normal. Al MOS de canal p se le conoce como PMOS y al de canal n como NMOS. NMOS es el que se usa c o m h e n t e en circuitos con un solo tipo de transistor M . ta tecnologia del MOC complementario (CM06) tiene transistores PMOS y NMOC conectados de modo complementario en todos los circuitos. Las ventajas ms importantes de Ios CMOS sobre los bipolares son la alta densidad de integrad611de los circuitos, una tcnica de pmcesamien~ mas simple durante la fabricacidn y un funcionamiento m s econ6mico debido a su consumo de energa ms bajo. Por sus muehas ventajas, los circuitos integrados sirven exclusivamente para proporcionar los diversos componentes digitales necesarios en el diseiio de los sistemas de computadora. Para entender la organizaci6n y el diseino de las computadoras digitales, es muy importante familiarizarse con 1 m diversos componen- encontra& en los circuitos integrados. Por esta razbn, los componentes mas basicos se introducen en este capitulo con una explicacin de sus propiedades 16gicas. Fstos componenb proporcionan un cat41ogo de unidades funcionales, digitales y elementales empleadas comnmente como bloques bsicos de construcci6n en el diseo de computadoras digWes.

2-2

Decodif icadores

Las cantidades discretas de informaci6n se representan en las computadoras digitales con chdigm b i r i o s . Un d i g o binario de n bits es capaz de

46:

-. . .

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

entrada de habititacfin

Las decodificadores comerciales inc1uyen una o m2is entradas de habilitaci6n para controlar el funcionamiento del circuito. El decodificador de la figura 2-1 tiene una entrada de habilitacihn, E. E i dedficador se activa o se habilita cuando E es i d a 1 y s e desactiva cuando E es igual a O. El funcionamiento del decodificador puede aclararse por medio de la tabla de verdad listada en la tabla 2-1. Cuando la entrada de habilitad611E es igud a O, todas las salidas son iguales a 0, a pesar de los valores de las otras tres entradas de datos. Las X de la tabla designan las condiciones "no importatt. Cuando la entrada de habilitaci6n es igual a 1, el decdicador funciona en forma normal. Para cada c o m b i c i h de entradas p i b I e , hay siete salidas que s o n igual a O y &lo una igual a 1. La variable de salida cuyo valor es igual a 1 representa al nmero octal equivalente al nmero binatio que est disponible en las lheas de datos de entrada.
TABLA 2-1 Tabla de verdad para el d d i f i c e d o r 3 a 8 lneas
. .

- -

- . .. .-- .

Uabifitaan

Fmtradas

Salidas

! ? A v Decodificador de compuerta NAND


I

A l p o s decodificadores.se construyen con compuertas NAND en lugar de

_.

-1
.,

.
(8

'

AN'D. Ya que una compuerta NAND produce la operad611 AND con una salida invertida, resulta ms econmico generar las salidas del decodificador en su forma complementada. En la figura 2-2 se muestra un decodificador de 2 a 4 lneas con una entrada de habilitacin construida con compuertas UAND.El circuito funciona con salidas complementadas y una entrada de habiiitacibn E complementada. El ddificador se habilita o activa cuando E B igual a O. Como se indica en la tabla de verdad, d o una salida es igual a O en cualquier momento; las otras tres saIidas son iguales a 1. In salida cuyo valor es igual a O representa el niimero binario equivalente en las entradas Al y A& E 1 circuito se desactiva cuando E es igual a 1, a pesar de las valores de las otras dos entradas. Cuando el circuito se desactiva, ningu-

b) Tabla de verdad

Figura 2-2 Decodicador de 2 a 4 heas mcompuertas NAND,

na de las salidas se selecciona y todas las salidas son iguales a 1 . l3n general un decodificador puede funcionar con salidas complementadas o s i n complementar. La entrada de habilitaci6n puede activarse can un nivel de seal O o con 1. Algunos d d c a d o r e s tienen dos o m s entradas de habilitaci6n que deben miisfacer una condicin 16gica dada para habilitar el circuito.

Expansin del decodificador Hay ocasiones en que se necesita un decodificador de cierto tamao, pero d o estn disponibles los ms pequeiios. Cuando esto ocurre es posible combinar dos o ms decodificadores con entradas de habilitaci6n para formar un decodificador mayor. As, si se necesita un decodificador de 6 a 64 heas, es posible construirlo con cuatro decodificadores de 4 a 16 lneas. La figura 2-3 muestra cmo los decodificadores con entradas de habilitacibn pueden conectarse para formar un decodificador mayor. Dos demdificadores de 2 a 4 lneas se combinan para Iograr un decodificador de 3 a 8 heas. Los dos bits menos significativos se conectan a ambos decodificadores. El bit mEis significativo se conecta a la entra& de habilitaci6n de un decodificador y a travs de un inversor a la entrada de habilitacidn del otro decodificador. Se supone que cada dmdificador se habilita cuando su entrada E es igual a 1. Cuando E es @ a i aO , el decodiicador se deshabilita y todas sus salidas atdn en d nivel 0 . Cuando A2 = O, el deeodicador superior se habilita y e l inferior se desactiva. Las salidas del decodificador inferior se vuelven inactivas con todas las salidas en O. Las salidas del decodificador superior generan las salidas de la Doa la Dy dependiendo de los valores de Al y A. (cuandoAa = O). Cuando Ap = 1, el decodificador inferior se habilita y el s u se d&abilita. La salida del dedcador inferior genera los equivalentes birios D4al D7, ya que estos nmeros binarios tienen un 1 en la posicin AZ. ~d

Figura 2.3

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 lgico combinatario. Las entradas de habilitacin w n una caracterlstica prctica para intemnedar dos o m8s circuitos con el propsito de ampiiar e l componente digital para una funci6n similar, pero con m6s entradas y salidas.
Codificadores Un codlficador es un c h i t o &@tal

que ejecuta Ia operacidn inversa de un demdificador. Un codificador tiene 2" (o menos) heas de entrada y n Iheas de salida. Las heas de salida gmeran un c6digo binario correspondiente al valor de entrada binario. Un ejemplo de un codificador es e l eodificador de octal a binario, cuya tabla de verdad se da en la tabla 2-2. T i e n e ocho erttradas, una para cada digito &al, y tres salidas que generan el nmero binario comspondienk Se supone que slo una entrada tiene un valor de 1 en cualquier momento; de otra m e r a , el circuito no tiene significado. El codificado? puede implantarse con compuertas O R (O) cuyas entradas s e determinan directamente de l a tabla de verdad. h salida es A. = 1 ' el dfgito oml de entrada es 1 o 3 o 5 o 7. Condiciones similares se aplican las otras dos salidas. Estas condiciones pueden expresarse por las siguientes funciones booleanas:

i s r& ~

- .r e

A,= A,=

D, i D,+ D,+ D, D,+ D,+ D64-D,

El edificador puede implantarse con tFes compuertas OK.

TABLA 2-2

Tabla de d a d paia codificador oetai a bmario

Entradas

Salidas

n7

D e

D s

D 4

D z

Di

Do

A 2

Ai

AO

muitipkor

Un multiplexor es un circuito combinatorio 'que recibe informaci6n binaria de una de 2" lneas de da- de entrada y la dirige a una h a de saiida Cinica. La selecci6n de una lnea de datos de entrada particular para la
salida s e determina por un conjunto de entradas de &ccidn. Un muitiplexor de 2" a 1 tiene 2" h s e datos de entrada y n lneas seleccin de entrada cuyas combinaciones de bits determinan qu datos de entrada se seleccionan

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

Figura 2-4

selector Be datos

A@&* dm medio de wia tabla de funci6n. La tabla de funcibn para el multiplexor se muestra en la tabh 2-3- ta tabla demuestra la -relaci6n entre las cuatro entradas de datos y la salida h i c a como fumi6n de las entradas de 8eleccin SI y S& Cuando las entradas de selecci6n son iguales a 00, la salida Y es igual a la entrada Ion Cuando las entradas de se1ecci6n son iguales a 01, la entrada Il tiene un camino a la salida Y, y de modo similar para las otras dos combinaciones. BT multiplexor tambih se llama selector de datos, ya que selecciona una de muchas entradas de datos y conduce la infomci6n binaria a Ia salida. Las comptiertas AND y las inversoras del multiplexor semejan un circuito demdificador, y en verdad d d i f i c a n las iheas de seleccibn de entrada. En general, un multiplexor de 2* a 1 lineas se construye con un M i f i c a d o r de TI a Zn agregando a ste lneas de entrada y una salida tinica. Esto Unplica que tambih contiene n Ieas de =leccin de entrada. h abreviatura comrin del multiplexor es MUX
4

--

Multiplexor 4 a 1 Uneas

1 *L

VFIIA

-4

TABLA 2-3 Tabla de fumbnes para multiplexor 4 a 1 lfneas

.A

SeIeccibn
S1

Salida

so

As como sucede en los decodificadom, los multiplexores pueden tener una entrada de habilitacihn para controlar el funcionamiento de l a unidad. Cuando la entrada de habiilitaci6n est en el estado inactivo, las salidas se deshabilitan, y cuando est en el estado activo, el circuito funciona como un

nli
m

3 4 h
R*

4-

multiplaor nomial. La entra& de habilitaci6n es iitil para ampiiar dos o ms mdtiplexores a un m u i t i p k ron un nmero mayor de entradas. En algunos casos dos o mis multiplexores se encuentran en un solo circuito integrado. Las entradas de seleccidn y de habilitacin en una conatruccibn de unidades mltiples suelen ser comunes a todos los multiplexores. Como una ilustracidn, el &cama de bloques de un multiplexor cu4dniple de 2 a 1 heas se muestra en la figura 2 5 . El circuito tiene cuatro multiple xores, cada uno capaz de seleccionar una de dos beas de entrada. La salida Yo puede seleccionarse para que venga de las entradas A. o BI De modo simjiar, la salida Y, puede tener el valor de Al o Bu y as sucesivamente. Una h e a de d d 6 n de entrada S selecciona una de las ineas en cada uno de los cuatro muItiplexores. La entrada de habilitadbn E debe estar activa para el funcionamiento normaL A pesar de que el circuito contiene cuatro multiplexofes, tambikn podemos pensar en 61 como en un circuito que selecciona una de dos h e a s de datos de 4 bits. Como s e muestra en la tabla de funci613,la unidad se habilita cuand&E = 1. Entonces, si S = O, las cuatro mtradas A tienen camino para las cuatro salidas. Por otro lado, si S = 1, las cuatro entradas B se aplican a las salidas. Las d d a s tienen tcdas cero a F cuando E = O, a pesar de los valores de S.

q ~ n * ~ i L - i , ~ ~ * ~ < d l m a ~ p
Figura 2 4 Multiplexom Mit8druples 2 a 1 lneas,

.-

---

--

- 7

b) Tabla de functwies

Un registro es un grupo de fip-flops, donde cada flip-flop es capaz de .,Amacenar un bit de informaci6n. Un registro de n bits es un grupo de n
m a Aip-flops y es capaz de almacenar cualquier informacin biiaria de n bits. l l r d-Adems de los fiip- flops, un registro puede tener compuertas combinatorias &que ejecuten ciertas tareas de prwaamiento de datos. En su definici6n ms amplia, un registro consta de un grupo de flip-flops y compuertas que efectan su transieibn. Los flipflops retienen la infonnacibn binaria y las compuertas controlan cundo y cmo se transfiere la nueva informaci6n ai registro. Divmw tipos de registros estn disponible6 en el comercio. El registro ms simple es aquel que a compone slo de flip-flops, sin compuertas m x k m a s . La figura 2 4 muestca tal registro construido con cuatro flip-flops *e ---D. ia entrada c o m h de reloj dispara todus los fipflops en el flanco de' subida de cada pulso y los d a b binarios disponibles en las cuatro entradas
Figura 2 6 Registro de 4 bits.

miga

di? registro

s e transfieren al registro de 4 bits. Las cuatro salidas pueden mostrarse en cualquier momento para obtener la informaci6n binaria alrnaeenada en e l registro. La entrada para borrar va a una terminal especial en cada flipflop. Cuando esta entrada va a O, todos los flipfiops se borran en forma ashcrona. 1 La entrada para borrar es til para borrar e1 registro a ceros antes del funcionamiento sinmaizado por reloj."la entrada para borrar debe m t e nerse en 1 Igco durante la operaci6n sincronizada por reloj normal. Ntese que la sefia1 de reloj habilita (activa) la entrada D pero la entrada borrar es independiente del reloj. La transferencia de nueva inhmacl6n a un registro se llama carga del regkfro. Si t d o s los bits del registro ae cargan simultAneamente con una transici6n de pulsa de d o j comn, decimos que l a carga se hizo en paralelo. Una k'ansiel6n de rebj aplicada a las entradas C del registro de la figura 2-4 cargar4 las cuatro entradas de 1, a 1, en paralelo. En esta confguradn el reloj debe -se en el h i t o s i el contenido del registro debe pmanecer sin cambio.

Registro con carga paralela


La mayora de los sistemas digitales tienen un generador de reloj amo que suministra un tren continuo de p b de reloj. Los pulsos de reloj se aplican a todos los Bap-flops y los re@troa del sistema. El reloj amo actria como una bomba que suministra pulsos constantes a todas las partes del sistema.Una sefa1 de control separada se debe usar para decidir qug pulso de reloj especifico tendr un e k t o en un registro particdar. En la figura 2-7, 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. tas entradas C r e c i h pulsos de reloj en todo momenh. La compuerta de acoplamiento en la entrada de reloj reduce el requisito de potencia del generador de reloj. 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 energa que se requerira para las cuatro entradas si no se usara el acoplador. ta entrada de carga en el registro determina la accih que va a tomarse con cada pulso de reloj. Cuando la entrada de carga es 1, los datos en las cuatro entradas se transfieren a1 registro con la siguiente transieihn ~ i t i v a del pulso de reloj. Cuando la entrada de carga es O , 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 conexibn de retroalimentacibn de ia salida a la entrada es necesaria porque los flip-fiops D no tienen una eondici6n "sin cambio". Con cada pulso de reloj, la entrada D determina el estado siguiente de la salida. Para dejar la salida sin cambio, es necesario hacer la entrada D igual al valor presente de su salida. Ntese que los pulsos de reloj se aplican a las entradas C todo d tiempo. L a entrada de carga determina si el pulso siguiente aceptar& h nueva infomaci6n o dejar la informaci6n en el registro intacta. La transferencia

m t d a de carga

13

M o f

Figura 2-7 Registro de 4 bib con carga paralela.

de informacin de las entradas a los registros se hace simul&eamente con los cuatro bits durante una finita transicidn de pulso.

2-5

Registros de corrimiento

Un registro capaz de desplazar su informacin binaria en una o en ambas direcciones se llama registro de corrimiento. La configuracidn 16gica de un registro de corrimiento consta de una cadena de flip-flops en cascada, con

entrada sedal

la salida de un flipflop conectada a la entrada del siguiente flip-flop. Cada flipflop recibe pulsos de r e l o j comunes que inician e l desplazamiento de una etapa a la siguiente. E l registro de corrimiento ms simple posible es aquel que usa s61o flip-flops, como se muestra en la figura 2-8. La salida de un fiip-flop dado se conecta a la entrada D del flip-flop que esta a su derecha. El reloj es comn a todos los flip-flops. La m W swiaI determina qu4 va en la posicin de la extrema izquierda durante el corrimiento. La calida w r k l se toma de la salida del fiipflop de la extrema derecha. A veces es necesario controlar el corrimiento para que ocurra en ciertos pulsos de reloj pero no en otros. Esto puede hacerse inhibiendo el reloj de la entrada del registro si no -queremos el corrimiento. Cuando se usa e1 regism de corrkni~to de la figura 2-8, el corrimiento puede controlarse conectando el reloj a la entrada de una compuerta AND y una segunda entrada de la compuerta AND puede cunkrolr entonces el corrimiento inhibiendo el reloj. S i n embargo, es tambin posible proporcionar circuitos extra para controlar la operacibn de corrimiento a travs de las entradas D de los flip-flops mhs bien que la entrada del reloj.

Regiskm de corrimiento 'bidireccional con carga paralela Un registro capaz d&temr amimienbe en una sula d i 6 1 1 se llama +tro
de corrhiento unidireccional. Un registro que puede tener corrirnientos en

ambas direcciones se llama registro de corrimiento bidirecciomh Algwnos registros de corrimiento proporcionan las entradas necesarias y las terminales de salida para la transferencia en paralelo. El registro de corrimiento mas
geheral tiene todas las capacidades litadas abajo. Otros pueden tener algunas de stas capacidades, con cuando menos alguna opexacibn de co&ento.
1 . Una entrada para pulsos de reloj para sincronizar todas las operaciones. 2 Una. operacidn de corrimiento a la derecha y un linea de entrada serial asociada con el corrimiento a la derecha. 3. Una operacidn de corrimiento a la izquierda y una lnea de entrada serial asociada con el corrimiento a la izquierda.

i L 2

-' c.
i u i

-D

Q-r,
e

e-D
$

QC

->
>

->

->

Salida serial

M**q$m
Reloj

4. Una opera& de carga en paralelo y n h e a s de entrada asociadas con la transferencia en paralelo. 5; n keas de salida en paralelo. 6. Un estado de control que deje la informacibn en d registro sin cambio aun cuando los pulsos de reloj se apliquen continuamente.

Un registro de corrimiento bidireccional de 4 bits con carga paralela se


muestra en la figura 2-9. Cada etapa consta de un flipflop D y un multiplexar de 4 x 1. Las dos entradas de seleccin S1 y So ~eleccionanuna de las entradas de datos del multiplexor para el flip-flop D.ias lneas 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. Cuando el modo de control SISO= 00, se selecciona la entrada de datos O de cada multipfexor. Esta condici6n forma una trayectoria de la salida de cada flip-flop a la entrada del mismo flip-fiop. La siguiente trmicibn de reloj transfiere a cada flip-fiop el valor b h r b que conteda previamente, y no o c m un cambio de estado. Cuando SISO = 01, la terminal marcada con un 1 en cada multiplexor tiene una trayectoria a l a entrada D del correspondiente fiip-flop. Esto causa una operacidn de corrimiento a la derecha, transfirindose los datos de la entrada serial al fiipfiop A, y e l contenido de cada flipfiop Al transfirindose al flip-flop Ai para i = 1, 2,3. Cuando SISo= 1 0 , resulta una operaci6n de corrimiento a la izquierda, dirigiendose los otros datos de entrada serial al flip-flop A3 y el contenido del flipfiop Ai + 1 transf~indose al fipflop Ai para i = 0 , 1 , 2. Cuando SISO= 11, la informacidn binaria de cada entrada lo a la I3 se bansfiere al correspondiente f i p - f l ~resultando , en una operaci6n de carga en paralelo. N6tese que segn la manera en que se dibuja el diagrama, la operaci6n de corrimiento a la derecha desplaza los contenidos del registro en la direccin descendente, mientras que la operacidn de corrimiento a la izquierda causa que el contenido del registro se desplace en l a direcci6n

-,

ascmdente.

Los registros de corrimiento se utilizan comnmente para la interfaz de sistemas digitales situados remotamente unos de otros. Por ejemplo, supongase que ea necesario transmitir una cantidad de n bits entre dos puntos. Si la distancia enhe la fuente y el destina es muy grande, resultar
TABLA 2 4 Tabla de funciom para los registros de la figura 2 9

Control de modo

1
O

1 1

S i n cambio Desp+zamiento la derecha {abajo) Desplazamiento a la izquierda (arriba) Carga paralela

usar n 1 para, tra&&tir n bits en paralelo. Puede ser ms ,, w . r n 4 ~u o h una d d h e a .y transmitir la informaci6n en forma serial un bit cada vez. E k a n s m b r carga %el dato de n bits en paralelo en un x~bp(ymc do e m i m h t ~ ,tansmite ,~ mbces e I dato desde la &ea de salida 'acep'bard datO en f m a serial en e l registro de desplazaI d., E l miento a trav&d& su:Inea de entrad; serial. Cuando la totaiidad de los n -- * -. - costo
..,r

bits se acumula pueden tomarse de las salidas del registro .enparalelo. As, el transmisor ejecuta una conversibn de paralelo a serial en los datos y el receptor convierte los datos wriales que Uegan de vuelta a la transferencia de datos en parallo.

2-6

Contadores binarios

A un registro que al aplicarse pulsos de entrada pasa a trav6 de una m e n c i a de estados predeterminada SE l e llama contador. tos p u h s de entrada pueden ser pulsos de d'oj o pueden originarse de una fuente externa. Pueden ocurrir a intervalos regulares o akatoriamente. Los contadores se encuentran en casi todos 10s equipos que contengan 16gica digital. Se usan para contar el rimero de ocurrencias de un evento y son tiles para generar seales de tiempo al controlar la secuencia de operaciones en las computadoras

digitales. De las diversas secuencias que puede seguir un contador, la secuencia binara directa ks ia ms simple y Ia ms directa. U n contador que sigue la secuencia de niuneros binarios se llama contador binario. Un contador binario de n bits es un registro de n flip-flops y de compuertas asociadas que sigue una secuencia de estados de acuerdo con la cuenta binaria de n bits, de O a T - 1. E l diseo de 10s contadores binarios puede llwarse a cabo por el procedimiento esbozado en la secci6n 1-7 para los circuitos secuenciales. Un pmedidento de diseo alterno ms simple puede llevarce a cabo por una inspeccin directa de Ia secuencia de estados que debe experimentar para alcanzar yna cuenta binaria directa. Pasando a travs de una secuencia de nmeros binarios, como 0000, M301, 0010, 0011, y as, sucesivamente, notamos que el bit de menor orden se complementa despuds de cada cuenta y todos los demas bits se complementan de una cuenta a la siguiente s i y s6Io si los bts de menor orden son iguales a 1. Por ejemplo, la cuenta binaria de O111 (7)a 1000 (8) se obtiene (a) complementando el bit de menor orden; @) complementando el bit de segundo orden porque e l primer bit de O111 es 1 ; (c) complemaitando el bit de tercer orden porque los primeros dos bits de O111 son unos, y (d) compIementando el bit de cuarto orden porque los tres primeros bits de O111 son todos .unos. Un circuito 'contador emplear usualmente flip-flops con capacidades complementarias. Tanto los fiip-flops T como JK tienen esta propiedad, Recuerde que un flip-flop JK se complementa si sus entradas J y >K son ambas iguales a 1 y el reloj pasa a travCs de una transicidn positiva. La salida de un flip-flop no cambia si J = K = O. Adems, el contador puede controlarse con una entrada de habiiitacin que pi ia o apague al contador s i n quitar la sehl de reioj de los flip-flops. Los contadores binarios shcronos tienen un pamn regular, como pue'de verse en l a figura 2-10.Lis entradas C de todos los flip-flops reciben el

Relol

Figura 2-10 Contador binario sincrono de 4 bits.

y K se mantienen en O y la salida del contador no cambia. La primera etapa A. se complementa cuando su contador se habilita y d reloj pasa a travs de una transici6n positiva. Cada uno de los otros flip-flops se complementa cuando todos los flip-flops previos menos sigi~ifica tivos son iguales a 1 y e1 contm se habilita. La cadena de compuertas AND (Y)generan la 16gica requerida
reloj comiin. Si la habilitacibn de contea es 0, todas las entradas

para las entradas 1 y K. El acarreo de salida sirve para extender el contador mis etapas, teniendo cada etapa un flip-flop adicional y una compuerta

AND.
Contador binano con carga en paraIelo Los contadores que se emplean en los sistemas digitales muy a menudo requieren capacidades de carga en paralelo para transferir el nmero binario inicial previo a la operaci6n de conteo. La figura 2-11 muestra el diagrama

16gico de un contador binario que tiene una capacidad de carga en paralelo y que tambikn.puede borrarse a ceros en-sincronacon e l reloj. Cuando es igual a 1 la entrada de borrado lleva todas las entradas K a 1 , borrando as todos los flipflops con la siguiente transicibn de reloj. El control de carga de entrada, cuando es igud a 1 , deshabilita la operaci6n de contao y causa una transferencia de datos de ias cuatro entradas en paralelo a los cuatro flipflops (con tal de que la entrada de borrado sea O). Si las entradas de carga y de borrado son ambas O y la entrada de incremento es 1, el circuito funciona como un contador binario. B1 funcionamiento del circuito se resume en la tabla 2-5. Con ias entradas de borrad?, carga e incremento todas en O, las salidas no cambian, aun cuando se apliquen pulsos a las terminales C . Si las entradas de borrado y carga se mantienen en O 16gie0, i a entrada de incremento controla la operaci6n del contador y las salidas cambian a la siguiente cuenta bharia para cada tradcibn positiva del r e l o j . tos datos de entrada se cargan en los flipflops =do la entrada de control de drga es igual a 1, con tal de que el borrado se deshabilite, pero la entrada de incremento puede ser O o 1 .E i registra se borra a O sin que el control de borrado considere los valores de las entradas de carga e incremento.
TABLA 2-5 Tabla de fuiiciones para el regktm de Ia figura 2-11
-

p p

Rdoj

Limpieza Carp
O O O
O O

Incremento
O

Opwacin
-

? 7 ? i

1 x x

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. En captulos subsiguientes nos referimos a ellos como registros con operaciones de carga e incremento. La operacin de inmmmfo suma uno a l contenido de un registro. Habilitando la entrada de condurante un periodo de reloj, el contenido de un registro pude incremhtarse en uno.

SECU~N 2-7

Unidad de memoria

6Q

2-7

Unidad de memoria

Una unidad de memoria es un conjunto de celdas de almacenamiento junto con los circuitos asociados que se necesitan para meter y sacar la infomaci6n del ahacenamiento. b memoria almacena infomacibn binaria en grupos de bits que se denominan palabras. Una palabra en la memoria es una entidad de bits que se introducen o sacan de1 almacenamiento como una unidad. Una palabra de memoria es un grupo de nmeros 1 y O que puede representar un nmero, un cdigo de imtrucci6r1, uno o mds caracteres #Y ,malfanumricos o cualquier otra infomci6n en ddigo binario. Un p p o de ocho bits se denomina byte. La mayor parte de las memorias de las compu. & tadora~utiiizan palabras cuyo nmero de bits es un mItiplo de 8, por l o tanto, una palabra de 16 bits contiene dos bytes, y una palabra de 32 bit5 est fomada de cuatro bytes. La capacidad de las memarias en las computadora~ comerciaIes por lo general se define como la cantidad totaI de bytes que pueden almacenarse. La estructura interna de una unidad de memoria estA especificada por el nmero de palabras que contiene y la cantidad de bits en cada palabra. Unas h e a s especiales de entrada, llamadas Uneas de direccionamiento, seleccionan una palabra particular. A cada palabra en la memoria se le asigna un nmero de identificacibn, llamado una direccibn, que comienza en cero y contina con 1 , 2, 3, hasta 2' - 1 donde k es la cantidad de lneas de direccin. Se seI'ecciona una palabra especfica en la memoria, al aplicar la T direccibn binaria de k bits a las ineas de direcci6n. Un decodificador dentro de la memoria acepta esta diraibn y abre las trayectorias necesarias para seleccionar los bits de la pahbra lespecificada. Las memorias de las computadora~ pueden tener desde 1024 palabras, l o cual requiere una direcci6n de 10 bits, hasta Z 3 ' palabras, donde se hecesitan 32 bits de direccionamiento. Se acostumbra denominar la cantidad de palabras (o bytes) de una memoria can una letra K (kilo), M (mega) o G (giga). K es igual a 2 1 , M es igual a 2m y G es igual a y;por l o tanto, 64 K es igual a Z16, 2M es igual a 221y 4G: es igual a 232. Se utilizan dos tipos principales de memoria en los sistemas de computadoras: memoria de acceso aleatorio RAM (random-access memory), y memoria de s61o lectura ROM cread-only memory).

Memoria de acceso aleatorio En la memoria de acceso aleatorio (RAM), las celdas de la memoria pueden
accesame para la transferencia de informacih en cualquier p i c i d n aleatoria deseada. Esto es, el proceso de ubicar una palabra en la memoria es igual y requiere la misma cantidad de tiempo, sin importar la ubicaci6n fsica de las celdas en la memoria: de ah el nombre de "acceso aleatorio". La comunicaci6n entre una memoria y su ambiente se logra mediante ineas de entrada y salida de datos, lneas de selecci6n de direccin y lheas

Componentes digitales

operaciones tik lecturaY

de control que especifican la direccin de la transferencia. Un diagrama de bloque de una unidad RAM se muestra en la figura 2-12. Las n h e a s de entrada de datos proporcionan l a infonnaci6n que se va a almacenar en la memoria, y las n lineas de datos de d d a proporcionan la informaci6n que sale de la memoria. Las k lineas de direccionamiento proporcionan un n b e r o binario de k bits que ~peeifica una palabra particular elegida entre las palabras disponibles dentro de la memoria. Las dos entradas de control especifican la direcci6n de transferencia que se desea. Las dos operadmes que puede ejecutar una memoria de acceso aleatorio son la lectura y la escritura. la efial de escritura especifica una operacibn de transferenda de entrada. Y la &al de lectura e6pedica una opexacibn de transferencia de salida. Al aceptar una de estas seales de control, l o s circuitos internos de la memoria proporcionan la funcibn deseada. Los pasos que deben seguirse para que una nueva palabra se almacene en la memoria son los siguientes: 1. Aplicar la direccibn binaria de la palabra deseada a las Uneas de direccionamiento. 2 . Aplicar los bits de los datos que deben almacenarse en la memoria
a las lheas

de entrada de datos.

A. Activar la entrada de ,escritura. iriiw La unidad de memoria tomarZi los bits que se e n & & & disponibles en las
heas de datos de entrada y los almacenarA en la palabra que especifica las l s de direccionamiento. Los pasos que deben realizarse para sacar una palabra almacenada en la memoria son los siguientes

1, Aplicar la direccibn binaria de la palabra deseada a las lneas de dirercionamiento.


! . Activar la entrada lechrra.

Figura 2-12 Diagrama de bloque de memoria de acceso aleaborio (RAM).


,! t
J

~ ~ 3 ; ~ '

.*

ti 1

deent~ada ae datos

k Uneas de d l w m Esnitula

Unidad de memoria
de 2k prilabras y H bits por pdabra

ii

~ de salida B de datas

SKC~N 2 7 Unidad de memoria

65

M m,
1

La unidad de memoria tomarA los bits de la palabra que ha seleccio-

-.mi& la W n y.lds aplicar en las h a s de salida de datos. El cankmida


de la palabra seleccionada no cambiar despus de que se lea.

d ,
Memoria de s6l0 lectura
Como su nombre l o indica, una memoria de slo lectura (ROM) es una unidad de memoria que slo ejecuta la operacibn de lectura; no tiene la posibilidad de escritura. Esto implica que la informacibn binaria almacenada en una ROM se hace permanente durante la producci6n del hardwam de la d a d y no puede alterarse escribiendo diferentes palabras en dh. En tanto una RAM es un dispositivo de propdsito general cuyo contenido puede alterarse durante e1 proeeso computacional, una ROM est limitada a leer palabras que estn ahcenadas de manera permanente dentro de la unidad. La informacibn binaria que s e va a almacenar, la cual es especificada por el diseador, m? integra en la unidad para formar el patrbn de interconexi6n requerido. Las unidades de s61o Iectura vienen con fusibles electrnicos internos es-les, que se pueden programar para una configuracin especifica. Una vez que s e estabiece el pakn, permanece dentro de la unidad, aun cuando la corriente se apague y se encienda de nuevo. Una ROM m x n es un arreglo de celdas binarias organizadas en m palabras de n bits cada una. Corno se muestra en el diagrama de bloque de la figura 2-13, una ROM tiene k h e a s de entrada de direcci6n para seleccionar una de zk = m palabras de memoria, y lneas de salida, una para cada bit de la palabra. Una ROM en circuito integrado tambibn puede tener una o ms entradas de habilitacidn para ampliar la capacidad de la ROM en varios encapsu1ados. La ROM no necesita una h a de control de lectura, porque - - en cualquier momento las lneas de salida proporcionan en forma autorptjca los n ROM

='

lis d .m -d. Lb i ' l i -"

Figura 2-13 Diagrama de b i o q u & % m O e

&o

ledura.

-k lneas de entrada de direcdbn

ROM i n x 71 (m= Zk}

ri

lneas de ~alida de datos

bits de la palabra seleccionada par el valor de direcci6n. Como las salidas son s61o una funcin de las sadas presentes (las lineas de direccionamiento) una ROM se clasifica como un circuito combinacional. De hecho, una ROM se construye en forma interna con decodificadores y un conjunto de compuertas OR No hay necesidad de proporcionar posibilidades de almacenamiento como en una RAM porque los vaIores de las bits en la ROM = qan de m e r a permanente. Las ROM tienen un amplio campo de aplicaciones en el diio de sistemas digitales. De manera basica, una ROM genera una relacin entradasalida especificada por una tabla de verdad. Como tal, puede complementar cualquier circuito combinacional con k entradas y n salidas. Cuando se emplea en un sistema de computadora como una unidad de memoria, la ROM se utiliza para almacenar prsgramas f i j o s que no van a alterarse y para tabhs de constantes que no estan sujetas a cambia. Una ROM tambin se emplea en el diseo de unidades de control para computadoras digitales. Como tal, se utiliza para almacenar inforrnacidn codificada que representa la secuencia de las variables de contra1 interno necesarias para hacer posibles las diferentes operaciones en la computadora. Una unidad de control que utiliza una ROM para almacenar informacin de control binario se llama una unidad de control rnicroprogramada. Este tema se analiia con mayor detalle en el capitulo 7.

Tipos de ROM tos programas o datos que se requieren en una ROM pueden programarse de tres diferentes maneras. La primera, programacidn por mascnrilla, se realiza
por la compafia que produce el semiconductor durante la parte final del proceso de fabricacin de h unidad. El procedimiento para fabricar una ROM requiere que el cliente llene la tabla de verdad que desea que satisfaga la ROM. La tabla de verdad puede sujetarse a un formato especial que proporciona el fabricante o a un formato especificado en un medio de salida de computadora. El fabricante.hace la mascarilla correspondiente, con el fin de producir un grupo de unos y ceros, de acuerdo con la tabla de verdad del cliente. Este procedimiento es costoso porque el vendedor le cobra al cliente una tarifa especial para' cubrir las gastos que origina el fabricar una ROM particular. Por esta radn, la programacibn por mascarilla s61o es econ6mka s i se hace un pedido de una gran cantidad de ROM de la misma configuracibn Para pequeiias cantidades es d s econ6mico utilizar un segundo tipo de ROM,llamada memoria de slo lectura programble o PROM. Cuando se hace un pedrdo con estas condiciones, las unidades PROM tienen todos sus fusibles intactos, lo cual hace que aparezca un grupo de nmeros 1 en todos los bits de las palabras almacenadas. Los fusibles de las PROM se funden al aplicar pulsos de corriente por Ias terminales de salida de cada direcci6n. Un fusible fundido define un estado O binario y un fusible intacto da un

PROM

EEPROM

1 binario. Esto permite que los usuarios de las PROM obtengan en sus propios Iabomtorios la relaci6n dewada entre direcri~nesde W a y @abras almacenadas. En el comercio hay disponibles instrumentos especiales llamados programadmes de PROM para facilitar este prmeso. En cualquier caso, todos l o s pmesos para programar PROM son de hardware, aunque se utilice la palabra programar. El procedimiento de hardware para programar las ROM y las PROM es irreversible y, una vez programado, eI patr6n que se fija es permanente y no puede alterarse. Una vez que se ha establecido un patr6n de bits, la unidad debe desecharse s i se va a cambiar e patr6n de bits. Un tercer tipo de ROM disponible se llama PROM bombk (erasable PROM o EPROM). tas EPROM pueden reestructurarse hasta su valor inicial aunque antes se hayan fundido sus fusibles. Cuando una EPROM s e coloca bajo una luz ultravioleta especial durante un cierto periodo, la radiacibn de onda corta descarga las compuertas internas que sirven como fusibles. Despus de borrarse, las EPROM regresan a su estado inicial y pueden reprogramarse con un nuevo conjunto de palabras. Ciertas PROM pueden borrarse con seales elctricas en lugar de luz ultravioleta. Estas se llaman PROM borrables elctriuznzente (eiectricdly erasubfe PROM o EEPROM).
estado

2 1 .

L m TI'L S I vienen sobre todo en encapsulados de Ude 14 terminales. Se


reservan 2 termnales para alimmtaci6n y las otras 2 terminales se utilizan para terminales de entrada y salida. ~CuBntos circuitos se incluyen en un encapsulado de esas caractersticas, si contiene los siguientes t i p de cimiik m a) inversores; b) mmpwrhs O R d u s i v a s de dos enbadas; c) compwaas O R de tres entradas; d) compuertas AND de cuatro entradas; e) eompuertas NQR de cinco entradas; f) compuerhs NAND de d o entradas; g) flipflops JK con reloj, ccri borrado ashmno. L.CI MSl realizan fundmes digitales bs~s como d d X c a d o r s , multiplexom, 4 s t r o s y contadores. Los siguientes son circuitos integrados de tipo l T L que proporcionan tales funciones.Encuentre su dehpci6n en un manual de datos 7 compwlos con los componentes correspondientes que se p m t a n en este captulo. a. M i f i e a d o r e s de 2 a 4 lneas de tipo C I 74155 duales. b . Multip1wres.de 2 a 1 b e a s de tipo CI 7457, cu6drupla. C. Rcgisko de desplazamiento bidireceiona!, de 4 bits t i pC I 74194, con carga paralela. d. Contador binario de 4 bias t i p ~ C i 74163, con carga paralela y borrado
sincrono.

2-3*

Construya un dacodificador de 5 a 32 lneas, con cuatro decodificadores de 3 a 8 lneas, con habilitacidn y un ddificador de 2 a 4 lineas. Utilice diagramas de bloque similares a la figura 2-3.

Dibuje el diagrama lbgico de un derodikador de 2 a 4 lneas, d i o con compuertas NOR.Incluya una enhda de habilitacin. Modifique el d d i f i c a d w de la figura 2-2 para que el circuito se active 2-5. cuando E = 1 y s e dmctive 'cuando E = 0; Haga una tabla de verdad difirada. Dibuje e l diagrama 16$0 de un deccdScador de 8 entradas y tres salidas cuya tabla de verdad es como la que proporciona Ia tabla 2-2 Cul es fa salida cuando todas las entradas son iguales a O? GuAl il ia lasalida cuando fa entrada Does igual a M Establezca un p d i m i e n t o que distinga estos dos casos. Construya un rnultip1exor"de16 a 1 lneas can das multiplexors de 8 a 1 7 lneas y uno de 2 a 1 Jfneas. Utilice d i a g m a s de bloque para los tres multiplexares. Dibuje el d2agrama de control de unos multiplexores duales de 4 a 1 llneas y explique su aperaci6n mediante una tabla de funciones. Induya una compuerta AND de dos entradas con el registro de l a figura 2-6 y conecte la salida de la compuerta a las entradas de reloj de todos los flip-flops. Una\ enhada de la cornpub AND recibe los pul- de reloj de un generador.La otra entrada de la compuerta AND proporciona un control de carga paralela. Explique la operaci6n del registro mdicado. 2-10, Cual es la funci6n de la compuerta de acoplamiento en la entrada de reloj del regis@ de -lafigura 2-71 2-11. Incluya una opci6n de un borrado sincrono en el registro con carga paralela de la figura 2-7. 2-12. El contenido de un registro de cuatro bits a a1 principio 1101. El registro se desplaza seis veces a la derecha con una entradaserial que es de 101101.CuM es el contenido de registro dspu& de cada desplamniento? 2-33. Cul es l a diferencia entre transferencia serial y paralela? Usando un registro de desplazamiento con carga paralela explique d m o convertir datos de entradas seriales en salidas paralelas y datos de entrada paralelos en salidas

4.

senalec.
2-14.

Un cantador de anillo es un registro de desplazamientocomo el de la figura


2-8 con la salida serial conectada a la entrada serial. Enliste la secuencia de estados de las cuatro fipflops despus de cada d~plazamiento comenzando en un estado de 1000.

2-15.

2-16.

El registro de desplazamienta bidireccionai de cuatro bits eon carga paralela que se m m k a en la figura 2-9 se incluye en un encapsuladoCI. a. Dibuje un diagrama de bloque de CI que muestre todas las entradas y salidas. Incluya dos terminales para proporcionar alimentaci6n. b. Dibuje un diagrama de blque utilizando 2 C I para producir un registro de desplazamiento bidirecclonal de d o bits w n carga paralda. ~Cudntosfiipflops se complementarn en un contador binario de 10 bits para' alcanzar la siguiente cuenta despues de: a) 1001100111; b) 0011111111F

2-17.

2-18.

Muestxe las conexiones entre cuatro contadores binzwios $e cuatro b i t s wn carga paralela (figura 2-11) para producir un contador b i i o de 16 bits con carga paralela. Utilice un diagrama de blque para cada contador de cuatro bits. Muestre cbmo el contador binarin con carga paralela de la figura 2-11 puede usarse para que funcione como un contador de divisi6n por N, por qmplo, un contador que cuente de 0000 a N y de regmo a MXW]. Muestre de manera especifica el circuito para un contador que divida entre 10 u t i h d o e l contador de la figura 2-11 y una compuerta AND
externa.

2-19.

2-20.

2-21.
2-22.

2-23.

Las siguientes unidades de memoria son especificadas mediante la cantidad de palabras por e l n h e m de b i t s por palabra. ~Cuintas lneas de direccionamiento y b a s de datos entrada-salida se necesitan en cada caso? a) 2K X 16; b) 64K X 8; c) 16M X 32;d) 4G X 64. Especifique la cantidad de bytes que pueden aimaccnarse en las memorias que se enlistan en e l problema 2-19. cuntos CI de memoria de 128 X 8 se nemsitan para proporcionar una capacidad de memoria de 4096 X 141 Dado un CI de ROM de 32 x 8 con una entrada de habilitacin, muestre las conexiones externas necesarias para construir una ROM de 128 X 8 con cuatro C I y un decodificador. Una ROM de 4096 X 8 bits tiene dos entradas de habilitacibn y opera con una alimentaci6n de 5 volts. ~Cu61itas terminales se necesitan para e l encapsulado del circuito integrado? Dibuje un diagrama de bloque y asigne un nombre a todas las terminales de cntrada y salida en la ROM.

1. Hill, F.J. y G.R. Peterson, lnlroductim to Switching Thwry and Loglcal Decip, 3a. ed. Nueva York JohnWiley, 2981. 2. Mano, M .M., Dkital D e s i . , 2 . .ed. Engle-wmd Cliffs, NJ: Prentice Hall, 1 9 9 1 . 3. Roth, C. H . , Fumhmkil of Logic D e s e ,3a.ed. S t Paul, MN:West Publishing, 1985. 4. Sandige, R.S . ,Uodern Digital Bsign. Nueva York: McGraw Hill, 1990. 5 . Shiva, S. G., tnfroduction to L q i c Desip. Glenview, 8: Scott, Foresman, 1988. 6. Wakerly, J. F . , Digital Design Principia md Practices. Englewwd Cliffs, NJ:Prentice Hau, 1990. 7. Ward, S .A., y R. H. Halstead, Jr.,Computatimr Struclwra. Carnbridge, MA:MiT Preas,
1990.

EN ESTE CAP~TULO
3-1
3-2

Tipos de datos Complementos


Representaci6n con punto fijo Reprwntaci6n con punto flotante Mnw cdigos binarim
Cdigos de detmci6n de error

3-3 3-4
3-5

36

3-1

Tipos de datos

En las computadoras digitales la informaci6n binaria se almacena en la memoria o en los registros del pmsador. Los registros contienen datos o infomaci6n de control. La infomcibn de control es un bit o un grupo de bits que se utilizan para especificar la secuencia de seirales de comando necesarias para manipular los datos en otros qistm. Lios datos son n h e ros y otra infannaci6n en &digo biriario sobre los que se realizan operaciones para conseguir los resultados computacionales requeridos. En este capitulo presentamos los tipos de. datos M& comunes que se encuentran en las computadoras digitales y mostramos c6mo los diversos tipos de datos se representan en forma de cdigo binario en los registros de computadoras. Los tipos de datos que se encuentran en los registros de las computadoras digitales pueden clasificarse en algunas de ls siguientes categoras: 1) nmem que se utilizan en cai1culcs aritmticos; 2) letras del alfabeto que se utilizan en el procesamiento de datos, y 3) otros smbolos discretos que se utilizan con pr~phitos especficos. Todos los tipos de datos, excepto los nmeros binarios, se r e p m t a n en los registros de la computadora en forma de c6digo binario. Esto es porque los registros estn formados de

flip-flops y Ios flipflops son dispositivos de-dos estados que pueden almacenar solamente grupos de nmeros 1 y O. El sistema de nilimeros binarios es el sistema ms-na#d para utilizar en una computadora digital. Pero en ocasiones es conveniente emplear diferentes sistemas numricos, en especial el sistema,decJmalm u e .se .utiliq para realizar clnilos aritmCticos. '
> ,

decimal

Sistemas numricosi Un sistema numrico de h e , o rak r, es un sistema que utiliza diferentes simbolos para los digibos r. Las n b e r o s se representan con una serie de smbolos de digito. Para determinar la cantidad que representa el niunero es necesario multiplicar cada dgito por u n a potencia entera de r y despub formar l a suma de todos los dfgitos ponderados. Por ejemplo, e1 sistema de nmeros decimales que se usa en forma cotidiana emplea el sistema de base lo. tos diez smbolos son 0, 1 , 2 3,4, 5, 6, 7, 8 y 9. La serk de dgitos 724.5
se interpreta para representar la cantidad

..

esto es, 7 centena8, ms 2 decenas, m5s 4

unidades, m s 5 dkimm. En foma similar cada nihne~o decimal puede interpretarse para encontrar la cantidad que representa. El sistema numgrico bimrio utiliaa la base 2 . Los dos smbolos de dgito que se utilizan son O y 1. La interpretacin de la serie de digitos 101101 que representa la cantidad

octaf
hexadecimal

Para apreciar la diferencia entre nmeros de base diferente, los digitos se encerrarh entre par&ds y la ba6e del nfimero se insertar cbma subndice. Por ejemplo, para mostrar la igualdad entre el n~hefa 4 ! 5 decimal y binario escribiremos (10110fh = (45)i0 qiap i nadCii Ademiis de los sistemas numricos trinar10 y decimal, los s i s m s octaI (raz 8) y k u d e c i m ~ (tah f 16) son -importantes en el trabajo de las computadora~digitalk Loo ocho simbolos del sistema &tal son 0, 1, 2, 3, 4, 5, 6 y 7. Las- 16 shbotos del sisiema hexadecimal sbn O, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C; D , E y F. Desafortunadamente, los ltimas seis smbolos son idnticos a las letras de1 alfabeto y en ocasiones pueden causar ' conlusibn. Sin embargo, es la forma que se ha adoptado. Cuando se acostumbra representar digitos hexadecimales, los bimboXos A, B, C, D ,E , F corresponden a los nmeros decimales 10, 11, 12, 13, 14, 15, respec'hvamente. Un nmem de base r puede cnveal sistema decimal w n el que estamos farrdiiarizados al obtener la suma de los digitos ponderados de acuerdo a su posicihn. Por eiem~lo.736.4 en notacin mtal se convierte a decimal como sigue:

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 . 5 ) i o E l nmero decimal equivalente al F3 hexagesimal se obtiene con d siguiente
clculo:

wnuelersidn

a convedbn de decimal a su representad& equivalente en el sistema de base r, se tealiza separando e l n h e r o en sus partes enteras y fra&les y convirtiendo cada una de ellas por separado. La conversibn de un entero decimal en una repmtacin de base r se maliza mediante divisiones sucesivas entre r y la acumuiaci6n de los residuos. ta conversin de una fracci6n decimal a una reprsentacin de base r se consigue niediante multipliciciones sucesivas por r y la acurnulacidn de los dgitos enteros que se obtienen. La W r a 3-1 muestra estos prdimientos. ia conversibe del decimal 41.6875 en binario se realiza al se paca^ el ntimero en su parte entera 41 y su parte fracdonal ,6875. La parte entera se convierte al dividir 41 entre r = 2 y obtener un cociente entero de u] y un residuo de 1. e nuwo eI cociente s e divide entre 2 para obtener un nuwo d e n t e y un residuo. Este proceso se repite hasta que d cociente enteni sea O. Los coeficientes de b s niimem binarlos se obtienen de los residuos y es el primer residuo el que da el bit de orden W o r del nmero binario que se conyIr6. La parte fracciona1 se cpnvierte al multiplicarla par r = 2 para obtener un entero y una fraccin. La nueva fraccidn (sin el entero) se multiplica de nuwo por 2 para obtener un nuwo entero y una nueva fraccibn. Esto se repite hasta que la parte fraccional es O o hasta que el nmero de digitos obtenido da una apmximaci6n conveniente. tos coedicientes de la fracci6n binaria se obtienen de los dgitos enteros y el primer entero que se calcula es el dgito que se coloca junto al punto , b Por dItimo, las dos partes se combinan para proporcionar l a conversi6n total requerida.
Figura 3-1 Conwrsi6n del d&cima141.B75; a binario. F m d h = 0.6875

Eniero = 4 1
1 0 5 o 2 1 1 O o 1

mi o

0.6875 2

0.7200
x 2

m x 2
1.5000
x 2 1.0000

(4lllO ~(10IM1l2

E0.6875), = (0.1 01 1)2

(41.6875)10 = (101001-1011)*

74

~ h u L . TRES 0 Rep-taQh

de datos

NUMeros octales y hexadecimales Las conversiones desde y hacia representaciones binaria, octal y hexadecimal juegan una parte importante en las computadoras digitales. Como =8y 9 = 16, cada digito octal corresponde a tres dgitos biarios y cada digita hexadechal corresponde a cuatro dgitos binarios. la conversi6n de binario a octal se consigue con faciiidad al dividir el n h e r o binario en grupos de tres bits cada uno. Despuh, e l dlgito octal que le corresponde se asigna a cada grupo de bits y la serie de dgitos que se obtiene proporciona el equivalente al octal del nmero binariu, Por qemplo, consideremos un registro de 16 bits. Fsicamente se puede decir queh el registro est formado de 16 celdas de almacenamiento binario y que cada celda puede cantener un nmero 1 o un O. Supongamos que la configuracih de bit que se almacena en el registro es como la que se muestra en la figura 3-2.Como un nmero binario est formado por series de nmeros 1 y O, el registro de 1 6 bib puede utilizarse para almacmar cualquier nlmeiro binario de O a 2 1 6- 1 . En el ejemplo particular que se muestra, el nmero binario almacenado en el registro es el equivalente del nmero decimal W99. Comenzando con el bit de orden inferior, dividimos el registro en grupos de tres bits cada uno (el decirnosexto bit, por s solo, forma un grupo). A cada grupo de tres bits se le asigna su equivalehte a octal y se coloca en la parte superior de1 registro. La serie de dgitos octales que se obtiene representa el equivalente octal del nmero binario. L a conversi611de binario a hexadecimal es similar, excepto que los bits se dividen en grupos de cuatro. El digito hexadecimal que corresponde a cada grupo de cuatro bits se escribe debajo el registro, segn se muestra en la figura 3-2. La serie de digitos hexadecimales que se obtiene representa el equivalente hexadecimal del nmero Enario. El digito octal que corresponde a cada grupo de tres bits se recuerda con facilidad despus de estudiar las primeras who entradas que se listan en la tabla 3-1. La compondencia entre un dgito hexadecimal y su caigo de 4 bits equivalente puede hallarse en las primeras 16 entradas de la tabla 3-2. I a tabla 3-1 representa una lista de unos cuantos nmeros actales y su representacidn en registros en forma de ddigo Liario. El cdigo binario se obtiene mediante el procedimiento que s e expiic6. A cada digito octaI se le asigna un c6digo de 3 bits, wgdn 1 0 especifican las entradas de los primeros ocho dgitos en la tabla. D e igual manera, i a tabla 3-2 lista unos cuantos nCimeros hexadecimales y su representaci6n en registros en forma de c6digo binaria. Aqu, el &digo binario se obtiene al asignar a cada digito hexade

Figura 3-2 Conversi6n a bimrio, octal y hmradecimal.

& N

s i Tipos de datos

75

TABLA 3 . 1 Nmwos &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

1 0 0 101
110

4 5

6 7

111

6 7

cima1 el cdigo de cuatro bits que se lista en LIS primeras 16 entradas de la tabla. Al comparar los nmeros wtales y hexadecimales codificados en b i i rio con su equivalente en nmero binario, encontramos que la combinacihn de bits en las tres representaciones es exactamente la misma. Por ejemplo, el n h e r o 99 decimal cuartdur.se conviertev en binario da como resultado 1100011. El equivalente wtal en cdigo binario de 99 decimal es 001 100 011 ye l hexadecimal en cdigo binariu del 99 decimal es O110 0011. Si dejamos de considerar los ceros a la izquierda cn estas tres representaciones binarias, encontramos que Ia combinaci611 de sus bits es idgntica. Esto debe ser as por la conversidn directa que existe entre 10s nSimeras binarios y los =tales o hexadwhales. i m importank de tudo esto es que una serie de nmeros 1 y O almacenados en un registro puede representar un nmero binario, pero esta misma serie de bits puede interprehrue: como la represenL=~ci&n de un nmero octal en forma de cdigo binario (si dividimos los bits en grupos de tres) o como la rep-ntacim de un ndmero hexadecimal en forma de cdigo binario (si dividimos -los bits en grupos de 'cuatro). Los registros en una computadora digital coiitienen muchos bits. Para especificar e l contenido de registros rn&ante sus valo- binarios ser6 necesaria una larga serie de digitos binarios. Es mbs convenienk especificar el co~itcnido de dos registros por su equivaleiik =tal o hexadechal. La cantidad de &gitm se reduce a un tercio de b i t s en la deii0minaci6n octal y en un cuarto en la den0minaci6n hmcadeciml. Por ejemplo, el nmero binario 1111 1111 1111 tiene 12 digitos. Puede expresarse en nmero octal como 7777

TABLA 3-2Nhermhexadecimales codificada en binario

5 6 7 8 9 10

C6digo para iin


dgito

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.

Representacin decimal El sistema de nmeros bina-

es el ms natural para una computadora pero las personas estan acostumbradas al sistema decimal. Una manera de ame giar este conflicto es convertir en nmeros biniirios todos los nmeros decimales de entrada, permitir que la computadora efecte todas las operaciones aritmticas en binario y despus convierta b s resultados binarios a decimales para que el usuario los comprenda. S i n embargo, tambin es posible que la computadora realice operaciones aritmeticas directamente con nmeros decimales siempre y cuando estn en forma codificada. b s nmews decimales, por lo pneral, se introducen a la computadora como caracte xes alfanum6rims en cdigo binarh. Estas cdigos, de los que se hablad m s tarde, pueden contener de seis a ocho hits para cada dgito decimal. Cuando los nmeros decimales se usan para clculos aritmkticos internos se convierten en cdigos binarios con cuatro bita por dlgito.

cbdip binario

Un cdigo bhario es un grupo de n bits que adopta hasta 2" combinaciones distintas de nmeros 1 y O y donde cada combinacin representa un
elemento del conjunto que se codifica. Por ejemplo, un conjunto de cuatro elementos puede representarse mediante un cdigo de 2 bits, donde a cada elemento se le asigna una de las siguientes combinaciones de bits 00, 01,lO u 1 1 . Un conjunto de d i o elementos requiere un cdigo de 3 bits, un conjunto de 16 elementos requiere un cdigo de 4 bits y as sucesivamente. Un c6digo binario ten&&algunas combinaciones de bits no asignadas si el nmero de elementos en el conjunto no es una potencia m6Itiplo de 2. Los 20 &@toa decimahs constituyen un conjunto de esa naturaleza. Un cdigo binario que distingue entre 10 eIement08 debe contener d menos cuatro bib, pero seis de sus combinaciones no se asignarh. Pueden obtenerse muchos c6digos diferates al arreglar cuatro bits en 10 combinaciones distintas. La asigrwin de bits que se usa con mayor frecuencia para los dgitos decimales es la que se Lista en las primeras 10 entradas de le tabla 3.3. Este c6digo particular se llama decimal codificado en binario (binary-coded decimal) y por 10 general se representa con su abreviatura BCD. En ocasiones se usan otros c6didos decimales. y unos cuantos de ellos se muestran en la secci6n 3.5. Es muy importante comprender la diferencia entre la conversi611 de nmeros decimales biiarios y la cud@uci6ir biilarin de ndmeros decimales. Por ejemplo, cuando se convierte ahnimero bharioi el nmero decimal 99 se representa con la serie de bits 1100013, pero cuando se representa en BCD, se vuelve 1001 1001. La h diferencia entre un n h e r o decimal que se
'

TABLA 3-3 Nmercw decimales codificados en bimrio

(a)

Niimm

Mmeros diecimiles codificados en binario IBCDI


0000

m 1 D O 1 0

Cdigo para iin digito decimal


I

78

m m RepresentBcih de datos
representa por los sirnbolos de dgitos con b s que estamos familiarizadm. 0, 1 ,2 . ' .. ,9 y los simbblos BCD 0001, 0010, . , 1001 estA en los smbolos que se utilizan para representar los dfgitos; el nmero por si mismo es igual. En la tabh 3.3 se Listan unos cuantos n h e m s decimales y su representaci6n en BCD.

..

ASCII

Represenracion airanumetica Muchas aplicaciones de computadoras digitales requieren d manejo de datos que no 6610 estan formadas por nmeros sino tambih por letras del alfabeto y por ciertos caracteres especiales. Un conjunto de camcteres a!fianumricos es un conjunto de elementos que induye 106 10 dfgitos decimales, las 26 letras del alfabeto y cierta cantidad de caracteres especiales, como $ , +, e = . Tal conjunto contiene entre 32 y M elementos (si s610 se incluyen ias letras maySisculas) o entre 64 y 128 (si se incluyen tanb las maysculas como las rnhkuhs).En el primer caso, e l c6digo binario necesitar4 seis bits y en el &gunda caso, siete bits. El cdigo binario alfaiiumdrico estAndar es el ASCII (American Standard Code for Informa tibn Iiiterchange), el cual utiliza siete bits para codificar 128 caracteres. Los cdigos binarios para las letras maysculas, los digitos decimales y unos cuantos caracteres especiales se listan en la tabla 3-4. Obserw que ls dlgitos decimales en ASCTI pueden convertirse a BCD al quikar los tres bits de orden superior, 011. Una lista completa de los caracteres ACCTT se proporciona en la tabla 11-1. tos cdigos binarios desempean un papel importante en las operaciones de las computadoras digitales. tos cddigos deben estar en binario porque los registros s61o pueden contener informaci61i binaria. Es necesario comprender que las cddigos binarios $610 cambian los slmbolos, no el significado de cuaIquier elemento que representen. Lis operaciones especificadas para computadoras digitaks deben considerar cl significado de los bits ahacenados en el reghtro para que las oyeracioiies se efecten en operadores del mismo tipo, Al realizar una inspmi6n aleatoria de los bits de un registro de computadora, es probable que se descubra que representa cierto tipo de informacibn cudificada en lugar de un iimero binario. Pueden formularse a discrecin c6digos binarios para cualquier conjunto de elementos, como las notas musicales y las piezas de ajedrez en sus posiciones sobre un tablero. Los cdigos binsrios tambien se usan para formular instrucciones que especifican iiiformacin de control para la computadora. l 3te captulo -se relciona con la representaci6ii de <os datos. Los cdigos de instrucciones se analizan en el capitulo 5.

3-2

Complementos

Los complementos se utilizan eii las computadorns digitales para especificar h operaci6n de resta y para Ia manipulaciii 16gica. Existen dos tipos de

w
-

Complementos

79

TABLA 3-4 Cdigo est$ndar norteqericanq para intercambiode informaci6n (ACCII)

Cdigo Carcter
binano

Cariicter

Cddigo binario

100 m 1 100 ODIO


100 m11 100 0100

100 oioa 100 0110 100 Qlll 190 lo00 100 1001 1 0 lOlQ 100 1011 100 1100 100 1101 100 1110
100 1111 101 0000

101 Do01 101 0010 101 O011 la1 0100 101 O101 101 0110
101 O111

101 lo00 101 1 0 1

complementos para cada sistema de base r: el complemento a r y el complem t o a (r l ) , Cuando e1 valor de h base r se sustituye en e l nombre, los dos tipos se denominan complemento a 2 y a 1 para los nmeros binarios ye l complemento a nmeros 10 y a 9 para los niuneros decimales.

colnplenfettto a 9

El wmplemento (r -1) Woun~Nenbsserque~ndfgibos,elcwn~btoa(r-1)&N se dehe como (r" - 1) - N.Para los n h a m dezimak r = 10 y r - 1 = 9, por Io que el comphehto a n w m 9 de N es (10" - 1) - N. Ahora, lO" rep-ta un nmero que est formado por un 1 nico seguido de n ame. 10" - 1 e un nnCunerri r e p m t a d o por n nueva Por e+nplo, con n = 4 tenemos lo4 = 1000 y le - 1 = 9999 En coiisecuencia el complemrriito a nnQrneros 9 de un nmero decimal x obtiene al restar cada digito de 9. Por ejemplo,

80

CAP~TUU~ TRES Representacin de datos

compbmento a 1

= 453299 y e1 complemento a 9 de 12389 es 99999 - 12389 = 87610. Para los nmeros binarios, r = 2 y r - 1 = 1, por l o que e l comple mento a 1 de N es (2" - 1) - N. De nuevo, 2" este representado por un nmero binario que est formado por 1 seguido por n ceros. 2 ' - 1 es un nmero binario represwntado por 1 . Por ejempIo, con n = 4, tenemos z4 = (10000)~ y z4 - 1 = (1111)2. Por lo tanto, el complemento a 1 de un nmero binari; se obtiene restando cada dgito de 1. Sin embargo, la resta de un digito binario de 1 provoca que d 'bit cambie de O a 1 o de 1 a O. Por l o hnto, e l complemento a 1 de un nfimero binario se forma al cambiar los 1 a O y los O a 1. Por ejemplo, e l complemento a 1 de 1011OO1 es OlOOllO y e l complemento a 1 de 0001111 es lllOMH3, El complemento a niheros (r - 1) de los nmeros octales y hexade cimales se obtiene restando cada digito de 7 o de F (el nmero decimal 151, respectivamente.

el complemento a nCimeros 9 de 5467M3 es 999999 - 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 - N cuando N # O y O cuando N = O. Al compararlo con el complemento a (r - 1) notamos que el complemento a r se obtiene agregando 1 al compIementa a (Y - 1) porque rn - N = [r" - 1) - N j 1 - 1. Por I o tanto, e l complemento a 10 del n h e r o decimal 2389 es 7610 4- 1 = 7611 se obtiene al agregar 1 al valor del complemento a 9. El complemei-itoa nmeros 2 del n h e r o binario 101100 es O10011 + 1 = 010100 y se obtiene al a m a r 1 al valor del complemento a 1. Como 10" es un nmero representado por un 1 al que le siguen n ceros entonces 10" - N, e l cual es e l complemento a 10 de N, tambidn puede formarse al no alterar los O a lii derecha, resta? a 1 0 el primcr digito significativo diferente de O, y despub m t a r de 9 las digitos significativos mayores. El complemento a 10 de 246700 es 753300 y se obtiene al no alterar los dos ceros, al restar 7 de 10, y al restar los otros tres digitos de 9. De igual manera, el complemento a 2 puede formarse 01 no alterar los O ni el primer 1, y despus al susttuir los 1 con O y los O con 1 en los demds bits con mayor valor. E 1 complemento a 2 de 1101100 es 0010100 y se obtiene A l no mdificar los dos O de orden menor ni ei primer 1 y, despus, al sustituir con 1 los O y con O los 1 en los otros cuatro bits con mayor valor. En las ddinicianes anteriares se condder6 que los nmeros no tienen un punto de base. Si el nmero N original contiene un punto de base, debe quita= de m e r a teniparal para que forme los compiementos a r o a (r - 1). Despus se restaura e I punto de base en el ndrnero cnmplementado y en la misma posicin relativa. Tambibn vale la pena mencionar que el complemento del complementa nos devuelve el nilmero con su valor original. El complemento a r de N es r" - N. El complemento del complemento es P - (f' - N ) = N l o cual proporciona e l n h e m original.

mal Resta de nbrneros sin signo El m W o directa de recta que se ensea en las escuelas primarias utiliza el EAl .- . concepto de prstamo. En este mtodo tomamos prestada una unidad de una posiciBn con mayor valor cuando el dgito del minuendo es menor que el

resta

digito correspondiente del sustraendo. Esto parece ser m8s sencillo cuando las personas ejecutan restas con lpiz y papel. Cuando la resta s e realiza con equipo de mmputaci6n digital este mdtodo parece ser menos eficiente que el mtodo que utiliza compIementos. La xesta de dos nmeros M sin signo de pn dgitos - N (N # O) en base r pude r e d i r s e de la siguiente manera:

acarreo final

1 . Sumar el minuendo M al complemento a r del sustraendo N. Esto daM+(r"-lV)=M-N+?. 2. Si M 2 N, la suma producir un acarreo final r" que se descarta y lo que queda es e l resultado M - N. 3. Si M < N, la suma no puede tener un acarreo final y es igual a tn - (N - M), lo cual es el complemento a r de (N - M). Para obtener la respuesta en una forma familiar, es necesario tomar el complemento a r de la suma y colocarle un signo negativo.

Por ejemplo, consideremos la resta 72532 - 13250 = 59282. El complementa a nmem 10 de 13250 es 86750. Por lo tanto:

~3gpjo

M
Suma

el complemento a nmeros 10 de N
.-w

='

+ 86750 = 159282

72532

? , L -h

U1) 4 3

acarreo final de que se descarta = -100000 Respuesta = 59282 jit4uprtrbain#mf4edl** d Ahora consideremos un ejemplo con M < N. La resta 13250 - 72532 produce e l nmero negativo 59282. Al utdizar el prcrcediiento con comple m t o s , tenemos

.-.ay

lo5 -- ----

M
m

el complemento a nmeros 10 de N = Suma =

-m
ri

No hay acarreo final.


U'

+ 27468
40718

13250

d - d b La r q u e s t a es el nmero negativo 59282 = al compIemento a 10 de 40718. r ' I '

Como estamos manejando nbmems sin signo, no hay manera de A obtener un nSimero sin signo en el segundo ejemplo. Cuando trabajamos con I Pl m papel y lpiz, reconocemos que i a respuesta debe cambiarse a un nCimero m6i J a P i ) . negativo m n signo. Cuando restamos con mmplementos, La respuesta negaac# ' tiva se reconoce por la ausencia de acarreo final y de resultado comple

'

mentado.

L a resta por complemento se realha can nmeros binarios de una manera simiiar, utilizando el mismo procedimiento que se acaba de detallar. Al usar los dos n b m s binarios X = lOlOIOO y Y = 1000011, efectuamos l a resta X - Y y Y - X utilizando el compIemento a 2:
= 10101OO = O111101 suma = 10010001 daechando el acarreo final de 2' = -1000Mfa7 Respuesta: X - Y = o(310001

el complemento a 2 de Y

complemento de niimews 2 de X = Suma =

+ 0101100
llOllll

1m11

No hay acarreo tinal.


ta respuesta es el nmero negativo 0010001 de 1101111.
3-3
= compIemento

de nmeros 2

Representacin de punto fija

Los enteros positivos, incluyendo el cero, pueden representarse como nme


ros sin signo. Sin embargo, para representar enteros negativos, necesitamos una notacibn para valores negativos. En la aritmtica simple, un ntmero negativo se seala con un signo de menos y un nmero positivo con un signo de ms. Debido a las limitaciones del equipo de c6mput0, las cornputadoras deben representar todo con nmeros 1 y O, l o cual incluye e l signo de un nmero. Como consecuencia, es costumbre representar e l sipo con un bit que se coloca en la posici6n al extremo izquierdo del n6mero. La convencibn es hacer que e l bit del signo sea igual a O para b s niimeros Positivos y 1 para las negativos, Adems del signo, un nmero puede tener un punto b i a r i o (o decimal). La posicibn del punto biirio se necesita para representar fracciones, enteros o nheros que mezclen enteros y fracciones. L a representacin del punto binario en un registro es complicada porque se caracteriza mediante una posicibn en el registro, Existen dos maneras de especificar la posicibn del punto binario en un registro: otorgarle una posicin fija o emplear una representacin de punto flotante. 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, y 2) un punto biario en el extremo derecho del registro para convertir el nmero almacenado en un entero. En cualquier caso, el punto binario no estA

punto haina

pt&# o

&,

SEEU~NM Representaa6n de

punto fijo

83

presente en realidad pero su presencia se supone porque el nmero almacenado en e l registro se trata como una .fracci6n o como un entero. La representacsn del punto flotante utiliza un segundo registro para almacenar un nmero que designa la posici6n de1 punto decimal en eI primer registro. L a representacin de punto flotante se analiza en Ia siguiente secci6n.

lrkmoros con signo


,

Representacidn de enteros Cuando un ndmem,bhario es positivo, el signo se representa con O y la magnitud por un n h e i o , hinario positivo. Cuando el ndmero es negativo, el signo se representa con 1 pera el resto del nmero puede representarse en cualquiera de las tres siguientes maneras:
1 . Rqesentacin de magnitud de signo. 2 Representaci6n e complemento a nmeros 1 con signo. 3. Representacibn de complemento a 2 con sieno.
h 1

La representacih,de magnitud de signo de un nmero negativa esta formada por la magnitud y un signo negativo, En las otras dos wresentaciones, el ndrnero negativo sie representa con el complemento a 1 o 2 de su valor positivo. Como ejemplo, consideremos el nmero 14 con signo que se almacena en un registro de 8 bits. 14 se r e p b wri un bit de signo de O en la posicidn de la extrema izquierda =pido por el equivalente binario de 1 4 ~ 0 1 1 1 0Debe . notarse que cada uno de los ocho bits del registro debe tener un valor y, por lo tanto, debe inserta@@O m las posiciones ms significativas del bit de signo,Aunque slo existe una manera de representar + 14, xiskn tres diferentes maneras de representar - 14 con d o bita.

En representacibn de magnitud de signo En representaci6n de mmpiemento de nmeros 1 de signo En repfesentacihn de complemento de nmeros 2 de signo

1 OOQlllO
1 1110001

1 1110010

't"

La repmntaci6n de magnitud de sipo de - 14 se obtiene de + 14 al complementar s61o e l bit de sipo. La q m t a c i 6 n de complemato a 1 ; 4 del signo de - 14 se obtiene al complementar todos los bits de + 14, incluido ,el bit de sipo. La r e ) ) m b c i n de cornphent~a 2 con signo se obtiene al tomar el complemento a 2 del nQmera positivo, incluyendo su bit de hsigno. El sistema de magnitud con signo se utiliza en i a aritmtica simple pero es temible cuando se emplea en la arihnktica mputacional. Por lo tanto, en gmeral se utiliza el complemento con signo. E l complemento de 1 implica dificultades porque t i m e dos xspresentaciones del O (+ O y - O). Se utiliza m u y rara vez para operaci~nes aritmdticas excepto en algunas computadoras antiguas. El conyihmmto de 1 es til como una opaci6n 16gica parque el cambii de 1 a O o O a 1 es equivalente a una operad611de complemento

84

-O

Representacin de datos

I@$c8. El $igiiiWe iiifisis de la aritmtica bina% con signo

se refiere

exclusivamente a l a representacibn de complementa de 2 con signo de nmeros negativos.


Suma aritmbtica dos nmeros en el sistema de magnitud con signo sigue las reglas de la aritmdtica simple. Si los signos son iguales, agregamos las dos magnitudes y le damos a la suma el signo comtn. 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. Por ejemplo, (+ 25) (- 37) = - (37 25) = - 12 y esto se hace al restar la magnitud m6s pequefia 25 de la mayor 37 y utilizando e l signo de 37 para el resultado. Este ec un proceso que requiere la comparacin de los signos y las magnitudes para decpub realizar una suma o una resta. (El procedimiento para sumar ndmeros binarios en representaci6n de magnitud con signo se' describe en la secci6n 10-2) En contraste, la regla para sumar nirmems en el sistema de complemento de 2 coh signo no requiere una comparacin o sustracci6n, slo una suma y un complemento. El procedimiento es muy simple y puede definirse como sigue: sumar los dos ndmeros, incluyendo sus bits de signo, y descartar cualquier acarreo de la pmici6n ' de bits de signo (extrema izquierda). Los ejemplos numericos para la suma se mu-an enseguida. 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 despus de l a adici6n es negativa esta en su forma de complemento de 2.

La suma de

suma de

eompleme~toa 2

%n 2ada uno de 10k cuatro casos, la uperaci6n que se realiza es siempre una suma, inc1uyendo los b i b de signo. Cualquier acarreo de la posicin de bit con signo s e descarta y los, resultados negativos estn de manera automtica en su Forma de complemento a 2. La forma de complemento de la repmsentacibn de nmeros negativos resulta extraa a las personas acostumbradas al sistema de magnitud con signo. Para determinar el valor de un nmero n ~ a t i v o cuando est en forma de eompIernento de 2 con signo, es necesario convertirlo a un niimero positivo para colocarlo en una forma ms familiar. Por ejemplo, e l niimero binario con signo 1 1 1 1 1 O O 1 es negativo porque el bit de la izquierda es 1. Su complemento a 2 es 00000121, el cual es el equivalente binario de -t. 7. Por lo tanto, reconocemos que el nmero negativo original es igual a - 7.

33

Repm*

de punto fijo

85

resta de complmmto u 2

Resta dbnhtica La resta de dos nmeros binarios con signo cuando los niimeros negativos estan en su forma de complemento a 2 es muy simple y puede explicarse como sigue: se toma e l complemento a 2 del sustraendo (incluyendo el bit de signb) y se suma al minuendo (incluyendo el bit de signo). Se elimina el acarreo de la posicin del bit de signo. Este procedimiento surge del hecho de que una operaci6n de resta puede cambiarse a una operaci6n de suma s i se cambia e l signo del
sustraendo.

Pero el cambio de un nmero positivo a negativo se consigue con facilidad al tomar su complemento a 2. Lo opuesto tambiCn es cierto porque el complemento de un nmero negativo en su forma de complemento produce el nmero positivo equivalente. Considere la resta de (- 6) - (- 13) = + 7. En binario con ocho bits esto se escribe 11113010 - 11110011. La resta se cambia a suma al tomar e l complemento a 2 del sustraendo (- 13) para que d&(+ 13). En f o m binaria esto es 11111010 + OM301101 = 100000111. Al eliminar el acarreo final obtenemos b respuesta correcta O O O O O 1 1 1 (+ 7). Vale la pena anbbr que los nmeros binarios en e l sistema de complemento a 2 con signo se suman y restan mediante las mismas reglas baisicas de suma y resta sin signo. Por lo tanto, las computadoras slo necesitan un circuito comn para manejar ambos tipos de aritmdtica. El usario o programador debe interpretar los resultados de tal suma o resta en f o m diferente, ya sea que se considere que los nmeros son con signo o sin signo.

Sobrefluja
Cuando dos nmeros de n digitos cada uno se suman y el recultado ocupa n + 1 dlgitos, decimos que ha ocurrido un sobreflujo. Cuando la suma se ejecuta con papel y lpiz esto no es un problema porque no hay un lmite en el ancho de la -pAgina para anotar e l resultado. El sobreflujo es un problema en las computadoras digitales porque eI ancho de los registros es finito, Un resultado que contenga n + 1 bits no puede acomodarse en un registro con una longitud estndar d n bits. Por esta razbn, muchas computadoras detectan cuando sucede un sobreflujo y se establece un flip-flop correspondiente para que la sittiacidn pueda ser verificada por el usuario. La detecci6n de un sobreflujo despuk de la suma de dos nmeros binarios depende de si los nmeros se consideran con signo o sin signo. Cuando se suman dos ndmeros sin signo, se detecta un sobreflujo del acarreo final en la posicidn nias significativa. En el caco de nmeros con signo, el bit a la extrema izquierda siempre representa el signo y los nfimeros negativos estn en forma de complemento a nmeros 2. Cuando se suman dos

86

CAP~TULO TRES

Repremtaci6si de datos

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

acarreo final no indica un sobreflujo.


Un sobreflujo no puede m r i r despus de una suma si un nmero 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 nmeros originales. Puede oeurrir un sobreflujo si los dw n h e r o s que se suman son poeitivos o negativa. Para ver cmo ocurre esto consider$mos el siguiente ejemplo, Dos niimeios binarios con signo, + 70 y + 80,, estn almacenados en registros de ocho bits. El rango de nmeros 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 nmeros 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 deba haber sido negativo tiene un bit de signo positivo. Sin embargo, si el acarreo de la posicibn de bit de signo se toma como el bit de signo del resultado, la respuesta de 9 bits que se obtenga ser& correcta. Como la respuesta no puede acomodarse dentro de 8 bits, decimos que ocurri un sobrefluja. Puede detectarse una condicin de sobxefhjo al observar e l acarreo hacia la posicibn de bit de signo y el acarreo de la posicin de bit de signo. Si estos dos acarreos no son iguales se produce una condici6n de sobreflujo. Esto se indica en Ios ejemplos en los cuales los dos acarreos se muestran de manera expllcita. Si los dos acarreos se aplican a una compuerta OR exclusiva, se deMrA un sobreflujo cuando la salida de la compuerta = igual. a 1.

Representacidn de1 punto fijo dechal i a rapremtacidn de nmenw decimales en mgistrw es una funcibn del cdigo binario utilizada para representar un digito decimal. Un cdigo decima1 de 4 bits necesita cuatro flip-flops para cada dgito decimal. La
representaci6n de 4385 en BCD necesita 16 fpflops, cuatro para cada digito. El nmero se representar4 en un registro con 16 flip-flops de la siguiente manera:

Al representar nmeros en decimal estamos gastando una considerable cantidad de espacio de almacenamiento porque d nmero de bits que se

-6~ 3 . 3 RepreswtaciPi de punto fijo

87

L &

necesita para almacenar un nlmero decimaa en cdigo binario es mayor que el nfimero de bitc que se n e c e s i t a para su representaci6n binaria equivalente. A d d s , los circuitos requeridos para ejecutar arihktica decimal son &S complejos. S i n embargo, existen algunas ventajas en la utilizacin de la repiresenhcibn decimal porque la entrada y salida de datos de la computadora son generadm por personas que utiSin el sistema decimal. Algunas aplicaciones, romo las de procesamiento de datos de negocios necesitan pequeas cantidades,de dl& aritmgtieos en comparacidn con la cantidad que se necesita para la entrada y salida de datos decimales. Por esta razn, algunas computadoras y todas las calculadoras electrnicas realizan operaciones aritm@icas directamente con los dato? decimales (en un &digo binario) y, por tanto, eliminan la necesidad de convertir a binario y de vudta a decimal. Algunos sistemas de computadora tienen hardware para cAlculos arih4ticos con datas tanto binarios como decimales. La repreentacin de nmeros decimales con signo en BCD es similar a la repmwntaeibn de nmeros con signo en binario. Podemos utilizar el. sistema de magnitud con signo con el que estamos familiarizados o el sistema de complementa con signo. Por lo general, el signo de un nmero decimal se reprmmta con cuatro bits para que sea congruente con el c6d0io de 4 bits de los digitos decimales. Tambih se acostumbra designar un signo mAs con cuatro ceros y -unsigno menos con d equivalente de BCD del 9,el cual es 1001, E i sistema de magnitud con signo es dificil de utilizar en computadoras. E l sistema de complemento con-signo puedemr el de complemento a 9 o a 10, pero este ltimo es el que ss utiliza con mayor frecuencia. Para obtener el complemento a 1 0 de un nmero BCD, tomamos primero e l complemgnto a 9 y despus un uno al digito menos significativo. E l complemento a 9 se calcula de la resta de cada digito de 9. El procedimiento desarrollado para el sistema de complemento a 2 con signo se aplica tambin al sistema de complemento a 10 con signo para nmeros decimales. La suma w realiza al agregar todos los digitos, incluyendo el digito de signo y descartando el acarreo final. Obviamente, esto supone que todos los nmeros negativos estn en su forma de complemento a 10. Consideremos Ia suma (+ 375) + (- 240) = 1- 135 realizada en el sistema de complemento a 10 con signo.

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

nmero indica que es negativo. 9760 es el complemento a 10 de 0240. Se suman b s dos nmeros y e lacam final se dacarta para obtener 135. Por supuesto, los nmeros decimales dentro de la computadora deben estar en BCD, incluyendo ios cgitos de signo, La suma se realiza con sumadores 8CD (vase la figura 10-18).

b m Q

#d J $

p.M'-'
d h
i.rr

fi

L 1

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

#*!Y yd
'

m
w

3-4

Representacin con punf o flotante


dos partes.

IA r e p r e ~ ~ t a d bcon n punta flotante de un nmero 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 nmero 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 posicin real del punto decimal est cuatro posiciones a la depecha del punto de~imaI~indicado en la fraccin. Esta repmtacin es equivalente a la notaci6n cientfica + 0.6132789 X 10*q El punto flotante sihpre s e interpreta m o una representacibn de un ndmero en la siguiente forma:

S610 la mantisa m y erexponen& e s e xepresnh3Z manera fisica en el registro (incluyendo sus signos). L a base r y la posicl6n del punto de la base de Ia mantisa se asumen siempre: Las circuitos que manipulan los nmeros de punto flotante en registros se apegan a estas dos consideraciones para proporcionar los tesdtados de cmputo correctos. Un nmero binario de punto flotante se representa de manera similar excepto que utiliza la base 2 para el exponente. Por ejemplo, el nmero bLnario + 16jll.11 se representa con una fraccin de 8 bits y un exponente de 6 bits de la manera siguiente:

~1*h&a;t~ m r
-Ld. 2

d-4
r C i

abrega
a ~

A~racci6n
I

01001110
~

Expomte
~ ~

W d n

* * 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 despus de bit de signo pero

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

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

Se dice que un nmer~ de punto flotante e s a n m l i u i d o si el dgito ms sipifmtivo de h mantisa es diferente de cero, Par ejemplo, el niimero decimal 350 est nomaiizado p r o 000% no lo est. Sin considerar la posicidn en la que se asume e l punto de base en la mantisa, el nmero estA nomializado d o si su dgito de la extrema izquierda es diferente de cero. Por ejemplo, el nmero binario de 8 bits .00011010 no estd normalizado por

los tres primeros dgitos O que contiene. El nmero puede normalizarse al cambiarlo tres posiciones hacia l a izquierda y descartar los primeros O para obtener 11010000. h tres cambios multiplican el nmero por 2 = B. Para mantener e l mismo valor para el nmero de punto flotante, al exponente debe r e s m e 3. Los nmeros normalizados proporcionan la mxima precisi6n posible para los n h m s de punto flotante. Un O no puede normalizarse porque no tiene un digito diferente de cero. Por 10 peral, se representa el punto flotante por nicamente Q en la mantisa y en e l exponente. las operadones aritmkticas con nmeros de punto flotante con mhs complicadas que las que se ejecutan con punto fijo y su ejecucidn requiere ms tiempo y hardware m 6 9 complejos. Sin embargo, la representacin de punto flotante es esencial para los c~lculoscientficos por los problemas relacionados con l a escala que aparecen con 10s dlculos de punto f i j o . Muchas computadoras y todas las calculadoras electrnicas timen implcita la capacidad de ejecutar operaciones aritm&ticasde punto flotante. Las computadoras que no tienen hardware para ciculos de punto flotante tienen un conjunto de subrutinas para ayudar al usuario a programar problemas cientificos con nmeros de punto flotante. Las operaciones aritm6ticas con nmeros de punto flotante se analizan en l a secci6n 10-5.

3-5 Otros cdigos binarios


En d o n e s anteriores prem~tamas lw tipos ms comunes de datos y cbdigo binario que se encuentran en las computadoras digitales. En ocasiones, se utilizan otros c6digos binarios para nmeros decimales y caracteres alfanumricos. Las computadoras digitales tambin 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 fsicos proporcionan salida continua de datos. ius datos

m
c6digo p y

deben conve* a su forma djgital antes de que puedan ser utilizados por una computadota digital, La infonnacih continua o ansloga se convierte a su forma binaria mediante un convertidor and&@co/digital. E i cdigo binan o reflejado D d i g o Gray que se muestra en la tabla 3-5, se utiliza en ocasion~ para los datos convertidos a digitaies. I a ventaja del cdigo Gray sobre los nheros biiariw directos es que slo cambia un bit conforme avanza de un nmero al siguiente. En otras palabras, el cambio de cualquier n h e m al siguiente en una secuencia se reconoce mediante un cambio de solamente un bit de O a 1 a de 1 a O. Una aplicacibn tlpica del &ligo Gray se presenta cuando los datos anlogos se representan mediante un cambio continuo de m pmicibn relevnte. La parte relevante se divide en sepentos y a cada segmento se l e asigna un nmero. Si se hace que segmentos adyacentes correspondan a n h e r m en &digo Grag adyacentes, s e reduce la ambifledad cuando la posici6n relevante est en la lnea que separa dos segmentos cualquiera. En ocasiones se utilizan contadores en cdigo Gray para proporcionar las w e n c i a s de temporizaci6n que controlan las operaciones en un sistema digital. Un contador en c a g o Gray es aquel cuyos flip-flops recorren una secuencia de estada segn se especifica en la tabla 3-5. Los contadores de c6digo.Gray eliminan la ambigedad durante el cambio de un estado del contador al siguiente porque s61o cambia un bit durante la transicin de
estado.

Otros chdigos decimales Los cdigos binarios para digitos decinials necesitan un mnimo de cuatro bits. Pueden formularse muchos ddigos difermtes a'l arreglar cuatro a m8s bits en 10 posibles combinaciones diferentes. En la tabla 3-6 se muestran unas cuantas posibilidades. Ya se ha visto b que es un .BCD (decimal codificado en bhario). UtiIia una asignacibn directa del equivalente binario del digito. Las seis combina-

TABLA 3-5 sigo Gray de 4 bits


mi@ w v a l e n k bario decimal

Cdigo 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 ponerado

cddigo con =eso de I

ciones listadas de bits que no se usan no tienen ningn valor cuando se utiliza BCD, igual que la letra H no representa nada cuando se anotan simbolos de dfgitos decimales. Por ejemplo, decir que 1001 1110 es un n b e r o decimal en BCD es como decir que 9H es un ndmero decimal en la denominaai6n de signos conv&cional. Ambos casas tienen un signo invdiido y por lo tanto repmsentan un nmero sin significado. Una desventaja de utilizar BCD es i a dificultad que s e encuentra cuando se va a capturar el complemento a 9 del nhmero. Por otra parte, el complemento a 9 se obtiene fcilmente con los cdigos 2421 y de 3 en exceso que se listan ea la tabla 3-6. Estos dos cdigos tienen una propiedad autbmmplementaEia que, significa que todos los complementos a 9 de un niimero dechal, cuando se representan en una de estos cbdigos, se obtienen con facilidad al cambiar Lm 1 a O y los O a 1. Esta propiedad es til cuando se realizan operadone arihnCticas en rep-tacin del complemento con signo. E 1 2421 es un ejemplo de un c6digo ponderado. En el que los bits se multiplican por las posiciones indicadas y la suma de los bits proporciona el dfgito decimaI. Por ejemplo, una combiiaci6n de bits 1101, cuando se posiciona con los digitos 2421 respectivos, praporciona el equivalente decimal de 2 X 1 + 4 X 1 + 2 X O + 1 + 1 = 7. Pueden asignarse al c6digo BCD las ponderaciones 8421 y por esta razBn en ocasiones se les llama c6digo Mil. El cdigo de exceso 3 es un cdigo decimal que se ha utilizado en computadoras anteriores. Este es un c6digo sin ponderacidn. Su asignacin

pueden corregirse pero se seala su p-cia. E l p d i m i e n t o usual es observar l a frecuencia de los errores. Si &tos ocurren al azar, h informacin err6nea particular se transmite de nuevo; si ocurre w n demasiada frecuencia, w verifica el sistema para encontrar la faila. El c a p de detehcibn.de error que se utiliza con mayor fkuencia es bit & paridad el bit de pridad. ' l l n bit de paridad es un bit extra que se incluye con un mensaje binario que hace h cantidad total de unos par o impar. En la tabla 3-7 se muestra un mensaje de tres bits.y dos bits de paridad posible. El bit 'l? P (impar) se ege de m e r a que haga la suma de todos los 1 (entodos los cuatro bits) un n h o impar. E l bit P (par) ,se elige para que haga la suma de todw los 1 un nmero par. En cualquier caso la suma se realiza de acuerdo al mensaje y al bit P. En cualquier aplicacin particular, se adoptar4 uno u otro tipo de paridad. El esquema de paridad par tiene Ia desventaja de contar con una combinacin de bits en que todos son O, mientras que en la paridad impar siempre hay un bit de 1 {de los cuatro que conforman e l mensaje y P). h b e recordarse que P [impar) es el complemento de P (par). Durante la transferencia de infonnaci6n de una posici6n a otra e l bit de paridad se maneja como sigue. En el extremo desde donde se envh el gmrrrrfor de prrntdad mensaje (en este caso tres bits) se aplica a un generadm de pridad, donde se genera el bit de paridad querido. El mensaje, incluyendo el bit de paridad, se transmite a su destino. En el extremo donde se reciben, todos l o s bits que comprobador llegan (en este caso cuatro) se aplican a un comprobndur de pridnd, que de patlfdd v d c a la paridad adecuada adoptada (impar o par). Se detecta un error si la paridad comprobada no se apega a l a paridad adoptada. El &todo de paridad detecta la presencia de uno, tres, o cualquier cantidad impar de errores. N o se detecta un numero par de errores. Las redes generadoras y comprobadoras de paridad son circuitos 16gicm que se construyen con funciones OR exclusivas. Esto se debe a que, como se mencion6 en la seccibn 1-2, la funci6n OR exclusiva de tres o ms +idn impar variables es por defrnicidn una funcin impar. Una funci6n impar es una M n 16gica cuyo valor es un binario s i , y 5610 si, un nmero impar de
TABLA 3-7 G e n d 6 n de un bit de paridad

Mensaje
XYz

P (impr) P (par)

94

CAP~TULOTRES Representacin d e datos

variables es igual a 1. De acuerdo con esta definicin la funcin P (par) es la OR exclusiva de x, y, y z porque es igual a 1 cuando cualquiera o las tres variables son iguales a 1 (tabla 3-7). La funcin P (impar) es el complemento de la funcin P (par). Como ejemplo, consideremos un mensaje de 3 bits que se va a transmitir con un bit de paridad impar. En el extremo desde donde se enva, el bit de paridad impar se genera mediante un circuito generador de paridad. Como se muestra en la figura 3-3, este circuito est formado por una compuerta OR exclusiva y una compuerta NOR exclusiva. Como P (par) es la OR exclusiva de x, y, z y P (impar) es el complemento de P (par), es necesario emplear una compuerta NOR exclusiva para la complementacin necesaria. El mensaje y el bit de paridad se transmiten a su destino, donde se aplican a un comprobador de paridad. Ha' ocurrido un error durante la transmisinosi la paridad de los cuatro bits recibidos es par, porque la informacin binaria transmitida era impar origliialmente. La salida del comprobador de paridad debe ser 1 cuando ocurre un error, esto es,, cuando el nmero d e 1 en las cuatro entradas es par. Como la funcin OR exclusiva de las cuatro entradas es una funcin impar, de nuevo necesitamos complementar la salida mediante el uso de una compuerta NOR exclusiva. Vale la pena hacer natar que el generador de paridad puede utilizar el mismo circuito .que el comprobador de paridad si la cuarta entrada se mantiene en forma permanente en un valor O lgico. La ventaja de esto es que puede usarse el mismo circuito para la comprobacin y generacin de la paridad.

Figura 3 3 Deteccin de error con un bit de paridad impar.


Fuente
X

Destino
X

Indicacin de error

, ( P I i Y

Generador de paridad

Comprobador de paridad

Problemas

95

En el ejemplo anterior es evidente que pueden implantarse generadores y comprobadores de paridad par con funciones 0 R exclusivas. Las redes de paridad iml necesitan una NOR excIusiva en la salida para complementar la funcin.

3-3

3-2
A3-3. 34.

Convierta los siguientes n h e r o s binarios a decimales: 101110; 1110101 y 110110100. Convierta los siguientes niltmems con las bases indicadas a decimales: (12121k (431015; (501, y (198),,. Convierta los siguientes nmeros decimales a bimrios: 1231; 673 y 1998. Convierta las siguientes nCuneros decimales a las bases indicadas.
a. 7562 a octd.

b . 1 9 3 8 a hexadecimal.
C,

1 % a binario.

Convierta el. n h e m hexadecirnal F3A7C2 a binario y &l. Cul es la raz de 10s nheros s i la solucibn a la eeuacihn cuadrstica ~c, -Ti--- 1 0 ~ + 3 1= O ~ S X = ~ Y X = ~ ?
J .

3 6 ,

r d v m 3-7icU

dblF
3-8.

-+m

Muwtre el valor de todos los bits de un registro de 12 bits que contiene la cantidad equivdente a 215 decimal m: a) bina'rio; b) octal edificado en binario; e) hexadecimal codificado en binario; d) decimal codificado en bina50 (BCD). Muestre k conf@raEi6n de bits de un registro de 24 bits cuando su conte nido w t a e l decimal equivalente de 295: a) en binario; b) en BCD;c) en A utilizando ocho bits con paridad par.
Escriba su propio nombre en ACCII utilizandoun d i g o de odio bits en que el bit de la extrema izquierda siempre 0. Incluya un espacio entre los nombres y un punto despuh de su segundo apellido. Descifre el siguiente cdigo A S C E lMllOl0 1OO1111 1001000 1OO1110 0 1 0 m 1OOO1OO 1OO1111 lOOOlOl Obtenga el eomplem~to a 9 de ios siguientes nfimeroc decimales de ocho &@tos: 12349876; 00980100;90009951; y 0 0 0 0 0 0 0 1 0 .

3-10.

3-11.

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

Obtenga el complementa a 10 de 1 - siguientes nmeros decimales de seis dgitos: 123900; 090657; 100000; y Q00000.
Obtenga los c o m p h e n b a 1 y 2 de los siguienenkm ndmerasbinarios de ocho di@- 10101110: 10000001; l N M N W ; 00000001; y 00000000. Ejecute la resh con I w siguientes n h e r o s decimal= sin signo tomando el complemento a Id) del siisbaendo. a. 5250 - 132 b . 1753 - 8640 c 20-100 d. 1200 - 250

96

c~~f.rrn0 TRES Representacin de datos

3-15.

Realice la resta con los siguientes nmeros binarios sin signo tomando el complemento a 12 del sustraendo. a. 11010 - 10000 b. 11010 - 1101 C. 100 - 110000 d. 1010100 - 1010100 Realice las operaciones aritmticas (+42) + (-13) y (-42) - (-13), en binario utilizando la representacin de complemento a 2 con signo para nmeros negativos. Realice las operaciones aritmticas (+ 70) + (+ 80) y (- 70) +(- 80) con nmeros binarios en representacin de complemento a 2 con signo. Utilice ocho bits para acomodar cada nmero junto con su signo. Muestre el sobreflujo que ocurre en ambos casos, que los dos ltimos acarreos son diferentes y que hay un signo inverso. Realice las siguientes operaciones aritmticas con los nmeros decimales utilizando representacin de complemento a 10 con signo para nmeros negativos. a. (- 638) + (- 785) b. (- 638) - (+ 185) Un nmero binario de punto flotante de 36 bits tiene ocho bits para el signo del exponente y 26 bits ms el signo para la mantisa. La mantisa es una fraccin normalizada. Los nmeros en la mantisa y el exponente estn en representacin de una magnitud con signo. Cules son las cantidades positivas ms grande y pequea que se pueden representar excluyendo el cero? Represente el nmero (+ 46.5),, como un nmero binario de punto flotante con 24 bits. La mantisa de fraccin normalizada tiene 16 bits y el exponente 8. En ocasiones el cdigo Gray se llama cdigo reflejado porque los valores de los bits se reflejan en ambos lados de cualquier valor 2". Por ejemplo, como se muestra en la tabla 3-5, los yalores de los 3 bits de orden menor se reflejan sobre una lnea dibujada entre el 7 y el 8. Usando esta propiedad del cdigo Gray obtenga: a. Los nmeros del cdigo Gray para 16 hasta el 31 como una continuacin de la tabla 3-5. b. El cdigo Gray en exceso de 3 para los decimales de 10 a 19 como una continuacin de la lista en la tabla 3-6. Represente el nmero decimal 8620 en: a) BCD; b) cdigo de exceso 3; c) cdigo 2421; d) como un nmero binario. Liste los 10 dgitos BCD con una paridad par en la posicin a la extrema izquierda (un total de cinco bits por dgito). Repita con el bit de paridad impar. Represente el nmero decimal 3984 en el cdigo 2421 de la tabla 3-6. Complemente todos los bits del nmero codificado y muestre que el resultado es complemento a 9 de 3984 en el cdigo 2421. Muestre que la funcin OR exclusiva x = A @ B @ C @ D es una funcin impar. Una manera de demostrar esto es obtener la tabla de verdad para y = A @ B y para z.= C @ D y despus formular la tabla de verdad para x

3-16.

3-17.

3-18.

3-19.

3-20.

3-21.

3-22. 3-23.

3-24.

3-25.

= y @ r. Compruebe que x = 1slo cuando el nmero total de 1 en A, B, C


3-26.

y D es impar. Derive los circuib para un generador de paridad de 3 bits y para un comprobador de paridad de 4 bits utilizando un bit de paridad par. (tos circuitos de la figura 3-3 utilizan paridad impar.}

1. Hill, F.J. y G. R.Petercon, ItitrPduction tu Switching Theoty and Logical Dssign, 3a. Ed. Nueva York: JohnWiley, 1981. 2. iaqholz, G., J. Francioni,y A. Kandel, Elemmts aJComputer Organimtwn. Englewaad Cliffs, NJ:Prentice Hall, 1989. 3. Lewin, M. H . , Logical Design nnd Computer Urguniui tion. Readiig, MA: Addison-We ley, 1983. 4. Mano, M. M., DigM D e ,2a M. E n g l e w d Cliffs, NJ:Prentice Hall, 1991. 5. Ro* C.H. Futndametttals ofi@ &S@, 3a. Ed.St. Paul, MN:West Publishing, 1985. 6 . Sandige, R S., Mhfern Digifal Design. Nuwa York: McGraw-Ha, 1990. 7 . Chipa, S. G., Intlvrduction fo Logic h i g n . Glenview, II: b i t , Foresman, 1988. 8. Tomek, I., intmduction to Computer Orgnniurtton. Rockville, M D Computa Scienee Press, 1981. 9. Wakerly, J. F . , Micmmptrter Architecture and Prrrgraitrniing. Nuwa York JohnWdey,

1 9 8 1 . 1 0 . Ward, S. A., y R.H. Halstead, Jr., Computation Structtires. Carnbridge, MA:MlT Press,
1890.

EN ESTE CAP~TULO

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 Microoperacioncsaritmticas Microoperacioneslgicas Microoperaciones de corrimiento Unidad de corrimiento lgico aritmetico

4-1 Lenguaje de transferencia de registros


Un sistema digital es una interconexin de mdulos de hardware digital que realizan una tarea especfica de procesamiento de informacin. Los sistemas digitales varan en tamao y complejidad desde unos cuantos circuitos integrados hasta un complejo de computadoras digitales interconectadas e interactivas. El diseo de sistemas digitales utiliza de manera invariable un enfoque modular. Los mdulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritmticos y lgica de control. Los diferentes mdulos estn interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital. Los mdulos digitales se definen mejor por los registros que contienen y las operaciones que realizan sobre los datas que almacenan. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones. Una microoperacin es una operacin bsica realizada sobre la informacin almacenada en uno o mas registros. El resultado de la operacin puede sustituir la informacin binaria anterior-de un registro o puede transferirse a otro. Algunos ejemplos de microoperaciones son despla-

nricrooperacin

100

C A P ~ ~ JCUATRO M

Transferda de registro y micmopera~iones

mr, rodar, borrar y cargar. Algunos de los componentes digitales que se

presentaron en d ~apitulo -2 sun registros que sirven para realizar microoperaciones. Por ejemplo, un mnhdor con carga paralela puede realizar las mirrooperaciones de incremento y carga; un registro de desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la izquierda. La organizad611 interna del hardware de una computadora digital se define m+r, al e$p&ificak. + .
m

l. B conjunto de igistros que contiene y sus funciones. 2. La secuencia de rnicrooperaciones que se realizan sobre la informaci6n binaria almacenada en los registros. 3. E l control que inicia l a secuencia de microoperaciones.

lenguaje de
transferencia
de rsgistros

*m
M
-a

5;

da&
-

Es posible ~ p i f i c a r la secuencia de microoperaciones en una computadora, al explicar cada qeracibn en palabras, pero este procedimiento por l o general representa una extensa explicaci6n descriptiva. E s m6s conveniente adoptar una simboIoga conveniente para describir la secuencia de transb rencias entre registros y las diferentes microoperaciones aritdticas y lbgicas asociadas con las transferencias. E l uso de smbolos en lugar de una expiic d n narrativa proporciona una manera organizada y concisa para enlistar las secuencias de microoperaciones en los registros y las funciones de control que las inician. IA notacidn simb6lica que se utiliza para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencia de regictros. El t b i n o "transferencia de registros" implica ia disponibilidad de circhitos 16gikos de hardware que puedan efectuar una micmperaci6n definida y transferir el resultado de la operaci6n al mismo o a otro registro. L a palabra "lenguaje"se toma prestada de 1- programadores, quienes aplican este t6nnho a los lengaajes de programacibn. Un lenguaje de programaci6n es un p d i m i e n t o para escribir smbolos con el fin de especificar cierto p m computacional. D e igual manera, un lenguaje natural, como el ingk, es un sistema para escribir simbolw y combinarlos en palabras y enunciados para la comunicacin entre personas. Un lenguaje de transferenlcia de registros es un sistema para expresar en forma simb6lica, las semencias de microoperaciones entre los registros de un m6dulo digital. Es una herramienta conveniente para describir la organizaci6n interna de las computadora~ digitales de una manera precisa y concisa. Tambih puede usarse para facilitar el proceso de disear sistemas digitales. EL lenguaje de transferencia de registros que se adopta aqu se considera lo m8s sencillo posible, para que no sea dificil de memorizar. En seguida d ~ m ol o ss smbolos para diferentes tipos de microoperaciones y al mismo tiempo dwribiremos el hardware asotiado con el que se pueden llevar a cabo, las micrmperaciones planteadas. La denominaci6n sirnbdlica que se presenta en este capitulo w optimizeirii en capltulos posteriores para

SECCIm 42 Transferencia

de registros

101

especificar las transferencias de registros, las microoperacianes y las funciones de control que describen la organizacin interna del hardware de las computadorras digitales. Se puede apmder con facilidad otra sirnbologa una vez que se familiariza uno con este lenguaje, porque la mayora de las diferencias entre b s lenguaje de transferencia de registros, consisten en variaciones de b s detalles ms que en el propsito general

4-2

Transferencia de re& tros

~rnitsjhnda de regisfrss

Los registros de computadora e s & representados por letras maysculas (en ocasiones seguidas de niimems), para denotar la funci6n del registro. Por ejemplo, el registro que contiene una direcci6n para la unidad de memoria, por lo .general se llama un registro de direccionamiento de memoria y se designan las letras MAR por sus siglas en ingls (rnemoy address register). Otros nombres para registros son PC (contador de programa), IR (registro de instruccibn) y R1 (registro de pmesador). Los flip-flops individuales en un registro de n bits estn numerados en una secuencia de O hasta n - 1, comenzando desde O eii la p i c i 6 n de Ia extrema derecha y aumentando los nmeros hacia la izquierda. La figura 4-1 muestra la repxesentacihn de registros en forma de diagrama de bloque. La manera mbs comn de representar un registro es mediante una caja rectangular con e l nombre del registro dentro, como en la figura 4l(a). tos bits individuaIes pueden distinguirse como en e l ejlnp10 ( b ) . La numeraci6n de bits en un registro de 16 bit, puede sealarse en la parte superior de la caja, como se muestra en el ejemplo (c). Un registro-de 16 b i t s se divide .en 2 partes en e l ejemplo (d). Los blts dd O al 7 reciben el simboIo L (byte bajo) y los bib del 8 al 15 reciben el simbolo H (byte alto). E l nombre del registro de 16 bits es PC. El simbolo PC (0-7)o PC (L)denomina el byte de orden menor y PC (-15) a PC (H) designa al byte de orden mayor. La transferencia de informacin de uii registra a otro se representa en forma simblica mediante un operador de sustituci6n El enunciado
Figura 4-1 Diagrama de bloque de un regish.

R1
a) Registra R

7 6 5 4 3 2 1 0

b ) Aspxto de Ice bits Individuales

c) Numeracin de bita

d) Dividido en dos partes

102

CAP~TULO CUATRO Transferencia de registro y microoperaciones

denota una transferencia del contenido del registro R1 al registro R2. Designa la sustituci6n del contenido de R2 por el contenido de R1. Por defini-

ddn, el emhido del registro fuente R1 no cambia despus de la transfe


rencia. 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. Normalmente, deseamos que la transferencia ocurra s610 bajo una condicin de control predeterminada. Esto puede mostrarse mediante un enunciado si, 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. En ocasiones es conveniente separar las variables de control de la operaci6n de transfemcia de registros al especificar una funcin de cmfrol. Una funcibn de control es una variable holeana, que es igual a O o a 1. L a funcin de control se incluye en e1 enunciado como sigue:

La condicin de control se termina con un signo de dos puntos. Representa l a necesidad de que la operaci6n de transferencia sea ejecutada s61i por el hardware si P = 1. Cada enunciado escrito en notacin de transferencia de registros implica una estnictura de hardware para realizar la transferencia. La figura 4-2 muestra el diagrama de bloque de la transferencia de R1 a R2. Las n salidas del registro R1 estn conectadas a las n entradas del registro R2. La letra n se usar4 para indicar cualquier cantidad de bits para e l registro. Se sustituir por un n h e m real cuando se conozca eI tamao del rrgistro. El registro R2 tiene una entrada de carga que activa la variable de control P. Se considera que la variable de control esta sincronizada con el mismo reloj que se aplica al regish. Como se muestra en el diagrama de ternporizacin, P se activa m la secci6n de control mediante el flanco ascendente de un p u b de reloj en el tiempo t. La siguiente transicidn positiva de1 reloj en el tiempo t + 1 encuentra activa la entrada de carga y las. entradas de datos de I D se cargan a su vez en el registro en paralelo. P puede regresar a O en e l tiempo t + i; de otra manera, la transferencia ocurrird con cada transicidn de pulso de reloj mientras P permanece activa. Debe notarse que el reloj no se incluye como una variable en los enunciados de transferencia de registros. Se considera que todas las transferencias ocurren durante una transicibn de flanco de reloj. Aunque la condicin de control P se activa hediatamente despus del tiempo t, la

SBCCI~N

T r a n s f e d a de canal y de memoria

103

L a tmmferencia ocurre aqiii-

b) Diagrama de temprizacin Figura 4-2 Transferencia de Rl a R2 cuando P = 1.

transferencia real no ocurre hasta que se activa el registro mediante la siguiente transicin positiva del reloj en el tiempo t 1. LQS smbolos bAsicos de la notaci6n de transferencia de registros se listan en la tabla 41. Los registros es& representados por letras mayCisculas y los nCimems pueden estar despub de las letras. Se usan parhtesis para &alar una parte de un registro al "pecicar el rango de los bits o al otorgar un nombre simblica a una parte de un registro. La flecha significa una transferencia de informacibn y su direccibn. Se usa una coma para -arar dos o m& operaciones que se ejecutan al mismo tiempo. El enunciado

representa una operacibn que intercambia d contenido de dos registros durante un pulso de reloj comn, siempre y cuando T = 1. Esta operacin simultinea siempre es posible con registros que tienen flip-flops activados con flancos.

4-3

Transferencia de canal v de memoria

Una computadora digital tpica tiene muchos regiskm, y se deben proporcionar trayectorias para transferir infomacibn de un registro a otro. La
cantidad de alambres ser4 excesiva si se usan lneas separadas entre cada

m# A R ~

TransfefPnda de registro y mkrooperacimes

- TABU
Sfmbd~

4 1 S 1 -

W s h para transferencias de registros

Descripcin
-

Ejemplos
MAR, R2

tetras

- Representa iIn registro


Representa parte de un registra Represenb transferencia de infmacibn Separa dos microoperaciones

& iiumerales)
Parntesis ( ) flecha Cama,
. bus comn . '
1

R2(0-7), RZ(L) R2 + R1 R2 + R1, R1 + R2

' 1'

-'

.'

selecidtl de bus

registro y >todos los qtros que wnforman el sistema. Un esquema mAs eficiente paka transkerif la infopani6n entre los registros, en una configura"ci6h de registros rniiltip6; es un sistema de canal (bus)comn. Una estFuctura de bus mnsb-de un conjunto de lneas comunes, una para cada bit de un . . reeistwi, mediante las cuales se transfiere hformaci6n binaria una a la vez. U ~ 'seilales S de c0%01 determinan cu4l registro selecciona el bus durante cada transferencia d e registro particular. U n a manera de consmir un sistema de bus comn es con muItiplexe res. Los rnultiplexo~e6 seleccionan el q i s t r o fuente, cuya informaci6n biaria se col6ka d'espuks en el bus. 'L construcci6n de un sistema de bus para cuatro registros se muestra en la figura 43.Cada registro tiene cuatro bits, numerados del O al 3. El bus est formado de 4 multipIexores 4 X 1, en el qu@ cada uno tiene cuatro mtradas de datos, de1 O al 3, y dos entradas de detci8sr S i y Para no cohplicar el &@ama c m 16 lneas que se cruzan mtfe S I , utilizamos,etiquetas para mohhar 'las conexiones de las salidas de los registros a .la4 entradas -de los multiple~&.Por qernplo, la salida 1 del registro A est conectada a la entrada O del MUX 1 porque esta entrada se etiqueta Ai. 81 bits & la d s m a posicin significativa m cada a las dtradas de datos de un rnulkiplemr para formar tina lhed eii. el Bils. Por lo tanto, el MUX O hace funcibrlar d multiplexor sobre 'los cuatro bits 17 de los'registms, el MUX 1 hace funcionar el multiplexor sobre 10s cuatro bits 1 de los registros y sucede igtial para tlos otros dos bits. Las dos b e a s de dmci6n SIy So estdn conectadas a las entradas de seldi6n de los cuavfo mrlltiplexo&. Las' aiatto lheas de seleccidn escogen lm'ntatro bits de bn registro y los -transfieren eri el bus comdn de cuatro heas. Caarido &So = 00,h s nfradas de datos O de los cuatro multiplexores se seleccionan y se aplian a las salidas que forman el bus. Esto hace que las lneas del bus reciban el contenido del registro A dado que las salidas de este regiptro 5 t h con~tadas a lps entradas, de $atas O, de l o s multipIexores. be i&$l danera se &cciona el registro B si SISO = 01 y asf sucesivamente La tabla 4-2 muestra e l registro que decciona el bus para cada uno de los cuatro valores-binaribs po6ibTes de las heas 'de seletci6n. Eh genetal, 'un s i s t m de bus har fncihnai el multipiexm sobre k ieghtros de n 6its cada uno, para producir un bus comn de n lneas. La
'

s m b f i r 4-3

Transferencia de 4y de memoria

105

S1

s o-

= lbeas +

Buscom6n de cuatro

.
*
3
4x1

-+
0

4X 1

1-1

A2

;.;

D2

C 2

82

Di CI BI A I

LXi 1- ;
4
A2

4X 1

4x1

CO BD AO

DZ Di Do

ttt
3
2 1

c z

CI

ftt
2 1

c o

BZ BI Bo

A i Ao

t t -t.
' 3 2 1 0
3

ttt
2 1 0

O .

Figura 9-3

Sistema de bus para cuatro registra.

cantidad de multiplexom que se necesitan para construir el bus es igual a n, l a cantidad de bits en cada registro. E 1 tamafo de cada multiplexw debe ser k X 1 dado que hace funcionar d mdtiplexor sobre k ineas de datos. Por ejemplo, un bus comdn para 8 registros de 16 bits cada uno, necesita 16 muitiplexoms, uno para cada hea en el bus. Cada mdtiplexor debe tener &o neas de entrada de datos y tres heas de selwci6n para hacer funcionar el mdtipIaor sobre un bit significativo en los mho registros.

TABLA e 2 Tabla de furifi6n para $1 bus de la f i e l 4-3


St

SO Registro seleccionado

h transferencia de infamacin de un bus dentro de uno de muchos registros de destino se puede lograr al conectar las lineas de bus a las entradas de todos lo registros de dstino y activar e l control de carga del registro de destino particular que- s e ha selecQonado. El enunciado 6imb6lico para una transferencia de bus puede mencianar el bus o su presencia puede estar impicih en el enundada. Cuando se incluye e1 bus en e l enunciado, h transferencia de registros se representa de la siguiente manera:

El cohtenido del registro C se coloca en e l bus, y el contenido del bus se carga en d e t r u RI, al activar su entrada de control de carga. S i sabe que el bus existe .q el sidterna puedg ser conveniente m o s m &lo la. gansfecencia directa.

A partir de este enunciado, el disefiador sabe cuales seildes de control deben activa- para producir la transferencia por el bus.

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. Una compuerta de tres estados es un circuito digftal que exhibe tres estados. Dos de los estados son sefiales equivalentes a los nmeros 1 y O 16gicos, como en una compuerta convencional. El tercero es un estado de alta impednncia. E l estado de alta impedancia acNa como un circuito abierto, lo que significa que la salida est dmnectada y no tiene importancia 16gica. Las compuertas de tres estados pueden realizar cualquier procedimiento ldgica convencional, como una AND o NAND. Sin embergoi b que se usa con mayor k u e n c i a en e l disefio de un sistema de bus es la compuerta de acoplamiento. El,slmbala gdfics de una compuerta de acoplamiento de tres estados se muestra en la figura 44, Se distingue de una de acoplamiento normal porque tiene . w a entrada namd y una entrada de conbL, La entrada de control determina el estado de la salida. Cuando la entrada de control es igual a 1, se habita la salida y la compuerta acta como cualquier acoplador convencionaL donde la salida es igual a la entrada normal. Cuando la entrada de control es O, la salida se deshabilita y la compuerta va a un
Figura 4 4 S n b o l ~ grfiw para un amplador de tres estados.
Entrada normalA

Salida Y = A si C = 1 Alta impedancia si C = O

Enhada de control C

SECCaSN 4-3 Transferencia de canal y de memoria

107

estado de a l h impdanda, sin codderai el valor de la entrada nomial. El estado

sistema de

bus

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

B o

Do

-'{WjIltar

4w i i
q , mdor 2x4 1 2

.
3

108

C M ~ I L O CUATRO Transferencia de

registro y miuooperaciones

acopladores en cada uno, como se muestra en la figura 4-5. Cada p p de cuatro acopladores recibe un bit si'@cativo de los cuatro registros, cada salida comn produce una de las h a s para e l bus comtn para un total de n lneas. Slo se necesita un decodificadm para s e k i o n a r entre los cuatro
~gistros.

Transferencia de memoria La operaci6n de una unidad de memoria se dexribi en la seccibn 2-7. La


transferencia de.informaci6nde una palabra de memoria al ambiente extemo se llama operacin de l e t w a . h transferencia de nueva UifomaciCin para abcenarse m la memoria se h a operaci6n de mritura. Una palabra de memoria se "pmentard con la letra M. La palabra de memoria particular, entre las muchas disponibles, se selecciona mediante la direccin de memoria durante Ia transferencia. Es necesario especificar la direccidn de M cuando se escriben operaciones de transferencia de memoria. Esto se realizar4 encerrando la direccibn en parntesis cuadrados despugs de la letra M. Considemos una unidad de memoria que recibe la direccibn de un registro, llamado re@m de direccionamiento y simbohdo por AR. Los datas se transilererr a otro registro, llarnado registro de datos, simbolizado por DR.La operacin de lectma puede declararse como sigue:

leer memoria

d b i r monta

Esto provoca una transferencia de informacibn dentro de DR, desde la palabra de memoria M seleccionada m e d i t e la direccibn en AR. La operaci6n de escritura transfiere e l contenido de un registro de datw a una palabra de memoria M,seleccionada por la direcci61~ Ahora conside que los datos de enbada esir~en el registro R1 y que la dkmihn est en AR. La operaci6n de escritura puede derlararse en forma simMlica como eigue:

Esto provtiea una transferencia de informaci6n de R1, dentro de la palabra de memoria M seleccionada por la direccin en AR.

4-4

Microoperaciones aritmticas

Una microoperacibn es una operacidn elemental efectuada con 10s datos almacenados en los registros. Las microoperaciones que se encuentran con mayor frecuencia en las computadoras didtales se clasifican en cuatro c a t e
goras:

1 . Micrmperaciones de transferencia de registros que transfieren Mor-' maci6n binaria de un W t r o a otro. 2. Microoperaciones aritmticas que ejhtan operaciones aritmCticas 1 sobre datos num&ricosalmacenados en los registros. 3. Micmperaciones 16gicas que ejecutan operaciones de manipulacibn de bits sobre,datos no numricos ahnacenados en registros. 4 Microoperaciones de corrimiento que ejecutan operaciones de corrimiento sobre los datos almacenados en los registros.
La mimooperacin de transferencia de registros se analiz en la seccin 4-2. Este tipo de m i c ~ a c i 6 n no cambia el contenido de la infomci6n
cuando la infomiacibn b h r i a pasa del registro fuente al registro destino. Los otros tres tipos de micmoperaciones cambian el contenido de la informaci6n durante la transferencia. En esta seccidn presentamos un conjunto de microoperadiones aritmkticas. En las dos siguientes secciones presentamos las microoperaciones l6gicas y de corrimiento. Las micmoperaciones aritmticas bdsicas son suma, resta, incremento, decremento y corrimiento. Los corrimientos arith+ticos se explican m 6 9 tarde junto con la&rnicmperaciones de corrimiento. La microoperaci6n aritmtica definida por el enunciada

especifica una microoperaci6n de suma. Dedara que el contenido del. registro Rl se suma al contenido del registro R2 y que la suma se transfiere al registro R3. Para implantar este- enunciado con hardware n-itamos tres registros y el componente diital que ejecuta la operacibn de suma. Las otras miraciones aritmdticas bAsicas s e listan en la tabla 43. La resta se lleva a cabo con mayor frecuencia, mediante la compIementaci6n y la suma. En lugar de usar el operador menos, podemos especificar la resta mediante el siguiente
enunciado:

R2 es el simbolo para el compIemento a 1 de R2. Sumar 1 al complemento a 1, produce e1 complemento a 2. Sumar el contenido de R1 a l complemento a 2 de R2) es equivalente a R1 - KL Las microoperaciones de incremento y decremento se representan m e diante las operaciones ms-uno y menos-uno, respectivamente. Estas microoperaciones se implantan con un circuito combinacional o con un contador binario descendente. Las operaciones aritm&tkasde multiplicar y dividir, no se Estan en la tabla 43. Estas dos son operaciones aritm4ticas vhlidas, pero no se incluyen en el conjunto bsico de rnicmperaciones. El nico lugar donde estas operaciones pueden considerarse como hicrooperaciones ea en un sistema

Descripcibn

El antMdo de 21 m t s R2 transferido a R3 El contenido de R l menm R2 transferido a 83. Camplemmard contenido de R2 (complemento a 1) Complementar n 9.d emic?nidode R2 (negar) RI ms el complemento a 2 de R2 (resta) Imcmentar el eonienido de R1 en uno Dcmmaniar d contenido.de Rl en uno

' ..

figital, donde se ejsutan pediante un circuito ~mbinatorio. En tal caso, las *=,que realizan estas operaciones se propagan por las compuertas y e l resultado de h operacibn se transferir a un registro destino mediante un pulso de reloj, tan pronto. camo k semal de salida se propaga por el circuito combinatsrio. En :la, mayora de Ias computadoras, la operaci6n de multipliea$n se efectqa con una secumcia de microoperaciones de suma y de conimiento. L a dichibn se ejeqta .con secuencia de miemperaciones de resta y de corrin+nto. Para ~pec2icarel hardware en un caso as, se necesita una lista de enunciados que utilicen las microoperaciones bdsicas de suma, reiita y corrimiento (vCase el capfhilo 1 0 ) .

Sumador b-o
Para efectuar 'la microperaci&n de suma con hardware, necesitamos los regisbrw que contengqn loi datos y el componente diqital que efecte la si-&a ari'h&ticA. El c+Uito Gital que forma la suma aritmbtica de dos bits y un acarreo' previo se 1 1 sumador completo (vbase la figura 1-17). El Cireuito digital que genera la suma aribnetica de d& niimeros binarios de cualquier longitud w h a sumador binario. B sumador binario se construye con circuitos sumadoy completos conectados en cascada, con el acarreo de salida de un gumador compIeto conectado aI acarreo de entrada del sipiente sumador completo. La figura 4-6 muestra la interconexi6n de cuatro sumadores compl&os o FA por sus siglas n ingls para proporcionar uri sumador binario de cuatro bits. L a s bits sumandos de A y los bits sumandas de B se den&can mediante niimeros suscritos de derecha a izquierda, co'n gl O suscrito denotanao el bit de menor orden. Los acarreos &tn mrectados en una cadena que fecorre los sumadores completos. El acarreo de entrada al sumador biharb es Cpy el acarreo de salida es Ca. Las salidas S de los sumadores completos, los bits de suma requeridw. " Un suma* biqasio de n bib necesita n sumadores completos. E31 acarreo de salida d@e -da sumador ,wmple.toest conectado al acarreo de entrada del siguknte sumadur completo de nivel superior. Los n bits de

m a d o r binrrario

.
suniador chplefo
,
-

S2 SI F i g a n 4 4 Sumador biiario de 4 bits.

(po~ ejemp10 Rl), y los n bib de datos para las B entradas provienen de broregistro (por ejemplo R2). ia suma pude transferirse a un tercer Wistro o a alguno de los registros fuente (R1 o R2), sustituyendo su coiiknido previo.
datos para h s entradas A provienen (de,un registro

Sumador sustractor binario La resta de nmeros bhanos +puederealizarse en forma m6s conveniente por
medio de mmp1ementos, s e g h se anaiiib en la swri6n 3-2.Recuerde que la resta A - B puede realizarse al tdmar el complemento a 2 de B y sumarlo a A. El complemento a 2 puede obtenerse al tomar el ct>mptementoa 1 9 agregar 1 al par de bits menos significativo. E 1 complemento a 1 se puede obtener con invemres y se puede agregar 1 a la suma mediante el acarreo de entrada. Las operaciones de suma y resta se pueden combinar en un circuito corrifin al incluir una compuerta OR exclusiva con cada sumador completo. Un circuito amador sustractor de 4 bits se mueitra en la figura 47. La entrada de modo controla la operacin. Cuando M = O e1 circuito es un
Figura 4-7
Sumador surttractor de 4 bite.
A2

swmadw -tMctor

Bt

A3

Bz

81

AI

C A P -

C U A M Transferencia de registro y mimoperaciones

sumador y cuando M = 1 el circuito se convierte en un sustractor. Cada compuerta OR exclusiva recibe una entrada M y una de las entradas de B. Cuari'do M = O, tenemos B @ = B. Las sumadores completos r e c M el valor de B, el acarreo de entrada es O y e l circuito ejecuta A mAs B. Cuando . Todas las entradas B s e compleM = 1, tenemos B @ 1 = B ' y C, = 1 mentan y se suma un 1 mediante el acarreo de entrada. El circuito ejecuta la operacin A m8s el complemento a 2 de 0. Para ndmeros sin signo esto da A - B si A r B o el complemento a 2 (B - A) si A < B. Para nmeros con signo el resultado es A - E, siempre y cuando no exista sobreflujo.

Incrementador binario

La micmoperaci6n para incrementar ~ u un m 1 a un nmero en un registro.


Por ejemplo, si un registro de 4 bits tiene un valor binario 0110, pasara a O111 despus de incrementarse. Esta microoperaci6n se efecha con facilidad con un contador buiario (vase la figura 2-10). Cada vez que la habilitacibn de cuenta est activa, la transicin del pulso de reloj incrementa el contenido del registro en uno. Puede haber ccasiones en que la micrmperacidn de
7 r -

incremento deba realizarse con un circuito combinatorio independiente de

inerementadm

un registro en particular. Esto puede Iograrse mediante semisumadores (vhse la figura 1-16)conectados en cascada. En la figura 4-8 se muestra el diagrama de un incrementador de circuito combinacionaI de 4 bits. Una de las entradas al semisumador, HA por sus siglas en inglh, menos significativo, est conectada al I 16gico y la otra entrada esta conectada al bit menos significativo del nmero que se va a incrementar. El acarreo de salida de un semisumador estb conectado a una de las entradas del semisumador del siguiente orden ms alto. E l circuito recibe los cuatro bits de A. a A, les agrega 1 y genera la salida iricrementada en So a S3 El acarreo de salida C4 ser s610 1 despus de incrementar el n h e r o binario 1111. b i o tambin hace que !as salidas de So a S3 vayan a O.
Figu-ra4-8 Imrernentador binario de 8 bits.
A 2
Al

El circuito del diagrama 4 8 puede ampliarse a un incrernentador binario de n bits, al extender el diagrama para que incluya n sernisumadores. E l
bit ,menos signifkativo debe tener una entrada conectada a1 1 16gicu. Las otras entradas reciben el nmero que se va a incrementar por acarreo de l a etapa anterior.

Circuito aritmtico
circuito adtmdtico

acarreo de entrada

Las microop;eracionesaritmkticas listadas en la tabla 4 3 pueden implantarse en un circuito aritmbtico compuesto. E l componente bAsico de un circuito aritmtico es el sumador paralelo. Al controlar las entradas de datos al sumador, es posible obtener diferentes tipos de operaciones aritmgticas. El diagrama de un circuito aritmtico de 4 bits se muestra en la figura 4 9 .Tiene cuatro circuitos sumadores completos que constituyen el sumador de 4 bits y cuatro multipIexores para elegir diferentes operaciones. Existen dos entradas de cuatro bits A y B y una salida de cuatro bits D.Las cuatro entradas de A van directamente a las entradas X del sumador binario. Cada una de las cuatro entradas de B est conectada a las entradas de datos de los multiplexores. Las entradas de datos de los multiplexores tambign reciben e l complemento de B . Las otras dos qntradas de datos estAn conectadas al O 16gico y al 1 Igico. E l O 16gico es un valor de voltaje f i j o (O volts para circuitos integrados, TI'L) y la seal del 1 16gicw puede generarse a travs de un inversor cuya entrada sea 0. Los cuatro muItiplexores se controlan mediante dos entradas de selecci6n SIy So, E l acarreo de entrada Cm va al acarreo de entrada del FA en la posicin menos significativa. Los otros acarreos se conectan de una etapa a la siguiente. La salida del sumador binario se calcula en la siguiente suma a r i h &

tia

TABLA 4 4 Tabla ,detuncin de circuito arihdiico

Entrada

Salida . D=A+Y+C,
-

Siimar Sumar con acarreo k t a r con pr&tnmo Restar Transferir A Incremcntnr A Dcxrcmentar A Transfmir A

S14

M P f i U D CUATRO

Tmnsfemda de registro y microoperaciones

Figura #

Circuitoaritmgtim de 4 b i b .

suma

resta

immentar

deerementar

donde A es e l nmero binario de 4 bits en las entradas X y Y es el nmero binario de 4 bits en k s entradas Y del sumador binario. Cm es el acarreo de entrada, e l cual puede ser igual a O O 1. Ntese que el smbolo + en la ecuaci6n anterior -menta un ms gritmktico. Al controlar el valor de Y . con las dos entradas de selecci6rt SIy So y hacer a , C i y a l a O o 1, es posible generar las oeho mlcrooperaciones arihticas que se lrstan en la tabla 4-4. Cuando SISO= 00,e l valor de B se aplica a las entradas Y del sumador. Si Cm= O, Ia d i d a D = A + B. $i Cm = 1 , la salida D = A + B + 1 . Ambm casos ejecutan la microoperacibn de suma con o sin el acarreo de entrada. &ando Si$ = 0 1 ,d ciompl-to B x aplica a ias mtraas Y del sumador. Si Cm = 1 , entonces D = A + B + 1. &to prduce A + el complemento a 2 de B, l o c g l es equivalente a una resta de A - B. Cuando Cm = O, entonces D = A 4- B. Esto ea +valente a una rwta con petarno, ecto es, A - B - 1. Cuando SISO= 10, las entradas de B ya no se toman en cuenta, y en . su.lugar todos los grupos de O se h s e q t a n en las entradas Y. La salida se ~0nvi~enD=A+O+C,ktodaD=Acuand0C,=OyD=A+1 cuando C, = 1, En e l primer caso tenemas una transferencia directa de la entrada A a la salida D.E n el segundo caso el valor de A, se incmnenta en 1 . Cuando SISO= 11, todos los grupos de 1 e insertan en las entradas Y del sunaador para produe la operaci6n de decremento D = A - 1 cuando Cm = O. Esto es porque un numero con s61o digitas 1 es igual al complemento a 2 de 1 (el complemento a 2 del biiiario E001 es 1111). Sumar un niimiero A al complemento a 2 de 1 produce F = A -t. complemento a 2 de 1 = A - 1. Cuando Cm = 1 , entonces D = A - 1 +' 1 = A, l o mal p d u c e una transfemck directa de la entrada A a la salida D. Nbtese que l a microopracin D = A se genera dos veces, porque d o hay siete rnicrooperacioes disthbs en el circuito aritmtico.

Las micmpe'aciones 16gidaa especifican operaciones binarias para arreglos

de bits almacenados m registms. Estas operaciones consideran cada bit de


r e g i s b en forma separada y las tratan corno vaddbles binarias. Por ejemplo, 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 lgica en los bits individuales de l o s registros, siempre que la variable de control P = l. Como un ejemplo numrico considere que cada registro tiene 4 bits. Sea el con& nido de R1 1010 y el contenido de R2 11W.L a micmperacin OR-exclusiva mencionada antes representa la operacidn 16gica:

& &
"-

CAFfIULO CUATRO Transferencia de registro y microoperaciones

1100 O110

1010

Contenido de R1 Contenido de R2 Contenido de R1 despus de P = 1

E i contenido de R1, despuds de la ejecucin de la microoperaci6n, es igual a la operacidn OR-exclusiva bit a bit sobre pares de bits en R2 y valores
previos de R1. Las micrmperacion~I6gicas se usan rara vez en chputos cienWieos, pero son muy iitiles para manipulacibn de bits de datos binanos y para tbmar decisiones 16gicas. Se adoptarn simbolos especiales para las micrqeraciones 16gicas.OR, AND y complementar, para diferenciarlas de l a smbolos correspondientes que se utilizan para expresar funciones bmleanas. Se usar e l smbolo v para denotar una rnicrooperaci6n OR y el shbolo A para denotar una micrmperaci-6n AND. L a miaooperacf6n complementar es k i misma que el complemento a 1 y utiliza una barra en la parte superior del slmbolo que defibta el nombre del registro. Al usar smbolos diferentes, ser posible diferenciar una operaci6n lgica y una funri6n de control (o booleana). Otra tazn para adoptar dos conjuntos de smbolos es la posibilidad de distinguir el slmbolo + , cuando se usa para r e p m t a r un mAs aritmbtico, de una y a c i 6 n OR l&gka.Aunque el smbolo 4- tiene dos si@hdoB, pibk disth@los al identifirar dbnde murre el sfmbo10. Cuando a p a m a en una mhmpaci6n signifiar un d e a r i t d i c o . Cuando duma en una funcih de control (o booleana)i denoM una operaci6n OR Nunca la usaremos paca repmtar una miampmaci6n OR Por ejemplo, en el enunciado
e l snitalo + entre P y Q es una operaci6n OR entre dos variables binarias de una funcibn de control. El smbolo entre R2 y R 3 especifica una microoperacin de suma. La miaoopexacin OR estd representada por ei

sfmbolos especiales

simbolo V entre los regigtrcrs RS y R6.

Lista de daooperaciones 16gcas Existen 16 operaciones 16gkas diferentes que pueden ejecutarse con dos variables bharhs. Pueden dekrminatise de addas las tablas de verdad p i TABLA 4-5 Tablas de v d a d para las 16 funciones de dos variables

bles que se obtienen c m dos variables binarias segn se muestra en i a tabla 4-5.En esta tabla, cada una de las 16 columnas que van de la F, a la F15 representa una tabla de verdad de una funcin booleana posible para las dos variables x y y. N6tese que las funciones estn determinadas a partir de las 16 combinaciones binarias que pueden asignarse a F. ias 16 funciones booIeanas de dos variables x y y w expresan en forma abebraica en la primera columna de la tabla 4-6. Las 16 microoperaciones 16gicas se derivan de estas funciones al sustituir la variable x por el contenido binario del registro A y la variable y por el contenido binario del registro B. Es importante comprender que las Funciones bmleanas listadas en la primera columna de la tabla 4-6 representan una reiaci6n entre dos variables binarias x y y. ias microoperaciones ldgicas listadas en la segunda columna representan una relaci6n entre el contenido binario de dos registros A y B. Cada bit del +tro s e trata como una variable b i r i a y la microoperacidn se ejecuta en Ia serie de bits almacenados en el registro.

implantacidn de hardware
L a implantacibn de microoperaciones 16gicas por medio de hardware requier e que se inserten compuertas lbgicas para cada bit o par de bits en el registro para ejecutar las funciones 16gicas requeridas. Aunque existen 16 microoperaciones lhgicas, la mayoria de ,ias computadoras utiiizan 6610 cuatro, AND, OR,XOR (OR-exclusiva) y complementar, de las cuafes se pueden derivar d a s las dern6s.
TABLA 4-6 IX~CMI? mkwperaciones 16gicas

Funci6n boolmna

Microopacin

Nombre
Limpiar

FO = O Fa = xu K =XY'
F a =x

Fe0
F+AAB

AND
'

F+AAB F+A

F, = X ' Y
&=Y Fb=x$y F,=x+y

F+XAB
FtB
F+A@B F+AvB

TrnsfmirA

Transferir B
OR exclusiva

F& = (X

+ y)'

F+A NOR
F +AFtB
NOR exclusiva
Complementar B

OR

FS = {x @y)'
Fa =y' F*r x + Y' FU = x'
E

F U = X ' + ~

F ~ A F-XVB
F 4 - m
Fttodos

F ~ A V F

Complementar A

Fu = (XY )' F,, = 1

N Establk t d o s a dgitos 1

dlgitos 1

T m

C U A ~ Tm&mda

de registra y mimperaciom

S 1

S o
O
m

Salida
&=AA3

Operaclbn

- Ei

O O

AND
OR
XOR

E=AvB
E=A@B

1
1

E=A

Complemento

b) Tabla de funcin
a) Diagrama lbgiro

Figura M V

Una etapa

un dmiito,l6gico,

c i m i ' t aI @ o

La figura 4-10 muestra una etapa de un circuito que genera las cuatro microoperaciones 16gicas bsica8 E s t fofrriado de cuatro compuertas y un
multiplemr. Cada una de las mafm operaciones lgicas se genera por una compuerta que ejecuta la 'lbgica q d e r l d a . Las salidas de las compuertas s e aplican a las entradas de datos del multiplexor. Las dos entradas de seleccibn SI y So seleccionan una de las entradas de datos del multiplexor y dirigen su valor a la salida. El diagrama muestra una etapa tpica con subindices i. -Para un circuito lgico con pt bits, el diagrama debe repetirse n veces donde i =: 0,1,2 ...,n - 1. tas variables de selecci6n se aplican a todas las etapas. La tabk de funcibn en Ia figura 41O(b) lista 4s rnicrmperaciones lgicas que se obtienen para cada mmbinaci6n de las variables de aeIeccidn,

Algunas aplicaciones
Las micmperaciones 16gkas son muy tiles para manipular bits individuales con una parte de una palabra almacenada en un registro, Pueden usarse para cambiar valores de bit, borrar un grupo de bits, o insertar nuevos valores de bits en un'registro. Los siguientes ejemplos muestran c6mo se manipulan los bits de un registro {representado por A) mediante rnimoop raciones 16gicas como una funcibn de los bits de otro registro (representados por B). En una aplicacibn tipica, el registro en A es un registro de un pmwdor y los bits del registro B constituyen un operando lgico extrado de la memoria y colocado en el registro B. La operaci6n & inicio selecb'w lleva a 1 lm bits del registro A donde hay uno^' mr&pdiaiks en d mgistm B. E s t o no afecia a las pasidone. de bit que tienen O en B. El siguiente qemplo numrico hace m6s clara esta opacibn:

inicio selectivo

1100 1110

1010

A antes B (operando lbgieo) Adqus

compiemento
selectivo

Lns dos bits de B del extremo izquierdo w n unos, por lo tanto los bits correspondientes de A se llevan a 1. Uno de estos dos bits ya estaba en 1 y el otro se cambi6 de O a 1. b s dos bits de A con sus ceros correspondientes en B permanexn sin alteraciones. El ejemplo anterior siwe como una tabla de verdad porque tiene las cuatro combinacion~s posibles de dos variables b m a r i a s . A pariir de la tabla de v e e d notarnos que los biis de A despus de la operacih se obtienen de la operacibn OR 16gica de los bits en B y de los valores anteriores en A. Por l o tanto, la microoperacibn OR puede para lievar a 1 o iniciar los biis de un registro de manera selectiva. La operacin de wmplemenlo selebtivo afmta a los biks en A donde estn los unos mrsespondientes en B. No afecta las posiciones de bits que tienen ' O en B. Por ejemplo:

1010

E
O110

A antes B (operando.lgico)
A despds

limpieza selectiva

Asimismo, .los dos bits del extremo de B son unos, con lo cual se complementan los bits correspondientes de A. Este ejemplo puede servir tambin corno tabla de verdad de la mal se puede deducir que la operacin de complemento selectivo es simplemente una micruoperacibn exclusiva-OR En consecuencia, la micmperacibn exclusiva-OR se puede utilizar para complementar selectivamente los bits de un registrador. IA operacihn l i m p i a selecfiw (selectiw-cfeur) despeja a O los bits en A 6610 donde b y a unos correspondientes en B. Por ejemplo:

1010
0010

A antes S (operando ldgico) A despus

Nuwamente, los dos bits de la extrema izquierda de 3 son unos, por l o que los bits correspondientes de A se borran hcia 0. Uno puede deducir que la operacin booleana ejecutada en los bits individuales es AB'. La r n i c m p raci6n 16giea correspondiente es

La operari6n mtrnas~~arar es ssimar a l a aperacidn de limpieza selectiva, excepto que h s bits de A se borran slo hay O correspondientes en

120

CAP~IULO CUATRO

T m f e m i a de registro y microoperaciones

B. La operacin enmascarar es una microoperaci6n AND, como se aprecia en el siguiente ejemplo num4rko:

1010 1100 1000

A antes B (aperando lgim) A despu& de enmascarar

Los dos bits de A del extremo derecho se barran despus de que los bits correcpondienks de B son 0. Los dos bits de la extrema izquierda pemaneeeh halteradas porque los bits conkspondienfes de B son unos, La operacin enmascarar es rn&'&nveniente para u s a que la operacibn de limpieza selectiva porqiie la mayoria de las computadoras proporcionan una instrueci6n AND, y pbcas proporcionan una instrucci6n que ejecute la miaooperacl6n para limpieza selectiva. La operacidn insertar introduce un nuevo valor en un grupo de bits. Esto se realiza al enmascarar primero los bits y desputs aplica una h t k c cin OR sobre ellos con el valor requerido. Por ejemplo, supongamos que un registro A contiene mho bits, O110 1010. Para sustituir los cuatro bits del extremo izquierdo por el valor 1001 primero enmascaramos los cuatro bits que no deseamos:
O110 1010 0000 1111 0000 1010

A antes B (enmascarar) A despus 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 slo dlgitos O si los dos nmeros s m iguales. La operaci6n se realiza rnyante una microoperacidn OR exclusiva segn se muestra en el siguiente ejemplo:

Cwnda A y B son @S, 1- dos bits corrqmndienb son ambos O o a m b 1. & cudyk caso la operacin QR exclusiva p d u c e un O. Despub se verifica el mdhdo de todo$ O para detennhar s i los dos n5meros eran iguales.

4-6

Microoperacibnes de corrimiento

comrrimiento ldglco

ia~ microoperaciones de corrimiento se usan para la transferencia serial de datos. Tambin se utilizan junto con operaciones aritmgticas, 16gicas y de procesamiento de datos. El contenido de un registro puede correrse a la izquierda o a la derecha. Al mismo tiempo que se recorren los bits, el primer flip-flop recibe su informaci6n binaria &e la entrada serial. Durante una operacin de corrimiento a fa izquierda la entrada serial recorre un bit a la posici6n de l a extrema derecha. Durante una operacidn de corrimiento a la d e r h la entrada serial transfiere un bit a 'la posid611de Ia extrema izquierda. la infomci6n transferida mediante la entrada serial determina el tipo de corrimiento. Existen tres tipos de &entos: 16gic0, circular y arihdtim. Un corrimiento 16gico es aquel que transfiere un O por la entrada serial. Adoptaremos los smbolos por sus sigIas en inglks, shl y shr para las microoperaciones de corrimiento 16gico a la izquierda y corrimiento lgico a la derecha. Par qjemplo: Rf t s h l R1 RZ+shr R2
son dos operaciones que especifican un corrimiento de un bit a la izquierda del contenido del registro Rl y un corrimiento de un bit a i a derecha del contenido del registro R2. El smbolo de registro debe ser igual en ambos lados de la flecha. El bit transferido a la posicin extrema por la entrada serial se considera que es O durante un corrimiento 16gico. El corrimiento circular (tambih conocido como operaci6n de rotacidn) hace circular los bits del registro por los dos extremos s i n prdida de infonnacidn. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada mial. U t d h m o s los smhlce di y cir para el corrimiento circular a la izquierda y para el corrimiento circular a la deredia, respectivamente. La notaci6n simblica para las mimperaciones de corrimiento se muestra en la tabla 4-7.
TABLA 4-7 Miaooperaciones de desplazamiento

codmiento

citrular

Rcprclsentt.aci6nsimb6lica

Descripcibn

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

ci#hJW W T R O

T r a n s f e d a de registro y m i c r o o p e r a ~

codmiento

aritmtico

Un co~rqirnienta m$tdtico p u q micrqqxracibn que recorre un n h e r o binarh con signo a la d e h a o a la izquierda. Un corrimiento aritmtico a la izquierda multiplica uri ndmero binario con signo por 2 Un corrimiento arihdtico a l a derecha divide el nmero entre 2. Las corrimientos aritm&ticos deben dejar el bit del s i p sin modifmciones porque el signo del nmero sigue siendo e l & 6 m cuando se multiplica o divide por 2. El bit de la extrema izquierda en al W t t o contime 4 bit de signo y los bits retantes contienen el nmero. E31 bit de signo es O para Iws nmeros positivos y 1 para los negativos.,b s ni'imens ne~ativos estirt en su forma de complemento a 2. i~ @ m 4-11 muestra un registro tlpiw de n bik E i bit R,, -I de la p k % ne x mntiene el bit de signo. R,, es el bit maS si@ afivo del n h m y 4 ea e l bit menos sip%eakiva. Ei corrimiento aritmtico a fa derecha no m&ca d signo y recorre el n h m {incluyendo el bit de signo) al a derecha. Por b tante Ri-2 queda igual, &, &be el bit de R,,-,y as suceivarmente para las otms bits en e1 re@m E i bit en & se pierde. El corrimiento arihnktico a la iquierda inserta un O en Ro y recorre todos los otros bits a la izquierda. El bit inicial & -l se pierde y se sustituye con el bit de R, , E 1 signo se invierte si el bit en R, - cambia su valor despus del c~rrimiento. Esto sucede s i la multiplicaci6n por 2 provoca un sobreflujo. Ocurre un sobreflujo despus de un corrimiento aritmktico a la izquierda si, al %do, antes del corrimiento, R, -1 no es igual a R, -2 Puede usasse un ftipfiop V, de sobreflujo para detectar un sobreflujo en un corrimiento a la izquierda arihtica,

~~

, ,

Si V, = O, no hay sobreflyjo, pero si V, = 1, hay un sobrefiujo y una inversibn de signo despuh del corrimiento. V, debe transferirse dentro del flip-fi~p de sobreflujo con e! mismo pulso de reloj que ejecuta el corrimiento del registro.

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(vase la figura 2-91, L i informaci6n puede t r a n s f e b a l registra .enparalelo y despus ejecutar el cotrimiento a la derecha o la izquierda. En a t e tipo de configuracihn se necesita un pulso de reloj para cargar los datos dentro del registro, y otro para iniciar
Figura 4-11 kplazamiwito aritm6ticoa la derecha.

1-

R "~ -2

R 1

Ro

Bit de signo

cimrito de

corrimimto

el corrimiento. En una unidad procesadora con muchos registros es ms eficiente impl@ar la operaqihn.de cmimiento un circuito combinacionaL D e &a mnera el c o n w d o de un mgbtm el que tiene que ejecutar el mmmiento se colma primepa en un b w comn cuya>salida esti5 conectada al circuito & corrimiento ~ombinatoqioy despus el nmero can el corrimiento se carga otra vez en sl. mgifitro. Esto necesita &lo un pulso de reloj para cargar el valor con corrimiento dentro de un registro. Puede construirse un circuito combinatorio para corrimiento con multip1mxa e n ,sic muestra:enk figura. 4-U, El circufto de 4 bits tiene cuakro , entradas de datos, de A. a As y cuatro saiidas de datos, de H,, a H3. Hay dos entradas serides, unatrpara el corrimiento a la izquierda (iL ) y la otra para elLcrgmhimtoa la , d m h a '@d. Cuando la en*ada de selemi611es S = O, las datas de enbada se desplazan a la demha (abajo en el diagrama).

Figa K& 4 4 2 Cirtuito mmbinacional.para corrimiento de 4 bits.


Entiada
secial (IR)

Sei~lunat O pra el mrrimfmto la derecha 1 para el corrimiento a i a izqiiierda (arriba)

S
I

O I

MLX

A0
-4 1

A1

3
Q :

MUX

A2--A3

-ffs
I I

Tabla de funci6n
Seleccionar

..

Salida H o
Hi Ao
A2

-1

Hz

H3

.
S O MIJx

IR
Al

AI
A3

A2

-S
\

kr-

-H2
i

IL

' -

..

H3

Entrada
/ serial (lb)

124

C U A ~ Transferencia

de registro y mi-peraciori~

Cuando S = 1 , los datos de entrada se desplazan a la izquierda (arriba en el d3agrama). La tabla de h c i 6 n en la figura 4-12 muestra cuAl entrada va a cada salida despugs del corrimiento. Un circuito por corrimiento con n entradas de datos .y salidas necesita n rnulfiplexores. Las dos entradas seriales pukden controlase mediante otro multiplexor para proporcionar los tres tipm de desplazamiwto posibles.

4-7

Unidad de crrlmiento lgico aritmtico

En lugar de tener registros individuales ejecutando Ias microaperaciones en forma directa, los sis,tem computacionales emplean cierta cantidad de = gisiros de almacenamiento conectados a todas las unidades operacionales
comunes, la cual se denomina unidad arihn4tica-l6gica, y se abrevia ALU
F:igura 4-U Una etapa de la unidad de corrimiento aritrdtica-16gica.
S3

shl

SECCI~N 4 7 Unidad de corrimiento 16gieo a r i h d t b

125

'

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

~~

TABLA 4-8 Tabla de fur1ci6n para una unidad de mrrimiento Igica aritmdtica

Selecci6n de la operacin

0 O O O O O O O O O

0 O O O
O

0 O O O

0 O

1 1
O O 1

1
1

O O O 1

1
1 1 O 1

O
O

1 1 O O 1

1
O

1
O

1
X X

1 1

1 x x

O F = A Transferir A 1 F=A+l Incrementar A O F=A+B Sumar 1 F=A+B+lSumarconacarreo O F =A + Restarconmtamo 1 F=A+B+lRestar O F=A-1 h m e n t a rA 1 F=A Transferir A x F=AAB AND x F=AVB OR X . F=A@B XOR x F=A Complementar A x F=shrA Conhiento a la derecha A den& de F x F=sbiA C d m k n b a la izquierdoA dentro de F

126

cAPtnno CUATRO

Transferencia de registro y micrmperacimes

El circuito cuya iuiica etapa est6 especificada en la figura 4-13 proporciona ocho opwaciones aritmhticas, cuatro operaciones 36gicas, y dos operaciones de despbmiento. Cada operacin se selecciona con las cinco variables S, S* S, So.y Cm E l acarreo de entrada Cmse utiliza para seleccionar slo una aperaci6n aritmtica. La tabla 4-8lista las 14 operaciones de la ALU. Las primeras mho son operaciones aritmtiras (v6ase tabla 4)y se seleccionan con SS2= OQ. ias siguientes cuatro son operaciones ldgicas (vase figura 410) y se seleccionan con S3Sz = 0 1 .E 1 acarreo de entrada no a k t a durante las operaciones 16gicas y se marca con letras X que representan ' ' n o importa" Las dos altimas son operaciones de corrimiento y se selecciomztci con S3SI = 10 y 11. Las otras tres entradas de sekcibn no afectan al corrimiento.

&l.

Muestre el diagrama de blque del h a r d w a ~ (similar a la figura 4-2a) que Implsrnta.elsiguiente mmciabo de bansfeeticia demgisim:

2 .

Las wiid.qs,d,ecuatro regis-,

RO,R1,R2 y R3,es,& conectadas mediante multiplex<res de 4 a 1 lneas a las entiadag de un quinto registro, R5. cada r e g i h tiene um'lon@hidde ocho bits: las transferencias requeridas sbn dietadbs p r hahm Vardblizs de demprizaa6n Toa Tgde l a manera siguiente

4 3 .

Las variables de temporizacin san mutuamente exclusivas, lo que sipifia que &lo una variable es.igual a 1en cualquiermomento.dado,rnienbas que las otras km son iguales a O. Dibuje un diagrama de bloque que muestre la implantaci6n de hrdware de las tra~fcrencias de registros. incluya las d o n e s necesarias de las cuatro variablesde temporizaci6n a ias entradas de selecci6n de los rnultiplexores y a la entrada de carga del registro R5. Represente el siguiente enunciado de control condicional por medio de dos enunciados de transferencia de registros con funciones de control.

S i (P= 1) entonces (Ri


M.

*- R2)adems si

(Q=

1) entonces (R1- 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 especfica, muestre las c o ~ o n e que s deben induirse para proporcionar una t r a a de las salidas del regisb C a las-entradasdel registro A.

4-5.

44.

Dibuje un diagrama de sistema de bus similar al que se muestra en la figura 4-5, y utilice acopladores de tres estados y un d d f i c a d o r en lugar de los multiplexores. Una computadora digitai tiene un sistema de bus comn para 1 6 registros de 32bits cada uno. E l bus est construido con multiplexores. a. iCuntas entradas de selecci6n hay en cada multiplexor? b. ~ Q u k tamafio de multiplexores se necesita? c Cuntosmultiplexores hay en el bus?
Los siguientes enunciados de transferencia especifican una memoria. Explique la operad6n de memoria en cada caso. a. R 2 t M [ A R ] b. MIAR] +R3 c. R5 t M [ R S j Dibuje el diagrama de bloque de hardware que implanta los siguienb
enunciadas:

4-7.

4-8.

donde AR y BR son dos registros de n bits y X, y, y z son variables de control. Incluya las compuertas ldgicas para la funci6n de control. [Recuerde que ei sfmbola +representa una operacidn O R en una funci6n de control o booleana perosepresenta un mas aritmCtim en una microoperacin.)
4-9.

Muestre el hardware que implqnQ el siguiente enunciado.Inciuya las compuertas 16gi~s para la W i b n de control y un diagrama de bloque para e l contador binario coq una entrada de habilitaeibn de cuenta.

4 1 0 ,

Considere los siguientes enunciados de transferencia de registros para dos registros de 4 bib RI y R2.

Cada v a que la vaiable T = 1 , el contenido de M se agrega al contenido RI si x = 1, o el contenido R2 se transfiere a Rl s i x = O. Dibuje un diagrama

4-11.

que muestre la implantad6n de hardware de los dos enunciados. Utilice diagramas de bloque para los dos registros de 4 bits, un sumador de 4 bits, y un multiplator cuidruple de 2 a 1 lneas que seleccione las entradas a R l . En el diagrama, muestre cmo las variables de control x y T deccionan ,las entradas del multiplexor y la entrada de carga del registro R1. Utilizando un contador de 4 bits con carga paralela como el de la figura 2-11 y un sumador de 4bits m o el de la figura dibuje un diagrama de bloque que muestre cmo implantar los siguiente enunciad=

CAFhWD CUATRO Transferencia de regjstro y


-

micmoperaciones
X:

x'y:

A1 + R l + A2 'Suma RZ a R l X l c R I +. 1 Incremmte R l

donde R1 es'un contador con carga paraida y R2 es un registro de 4 bits.


'

4-12.

El circuito curnador-sustractor d e > hfigura 4-7 tiene los siguientes valores para el modo de entrada M y las entradas de datos A y B. En cada caso, determinelos valores de las salidas: S, ,S , S,, S , y C,.

4-13 414

Diseie un circuito combinatmio de 4 bits que decremente, utilizando cuatro circuitos sumadores completas.

4-15.

Considere que e l circuito aritrnktim, de 4 bits de Ia figura 4 9 ect8 en un emapsuiado Q. Mussbe las ronexiorres entre dos CI tales para formar un circuito ariimitico de 8 bits, Dke'ie un circuito aritmhtico con una variabIe de seIecci6n S y dos entradas de d a 6 de n bib A y B. E 1 circuito genera las cuatro operaciom aritm6tim ~igtienles junto con el acireo de entra-daC, Dibuje e l diagrama 16gico para b dw primeras ehpas.

O
1

D =A D =A

- 1(dmentar)

+ B (sumar)

D = A + 1 (incrementar) D = A '-t. + 1 (restar)

416,
4-37.

&ve

4 1 8 ,

.uncircuito combinacional que seleccione y genere cualquiera de las 16 funciones lbgicas que se listan en la tabla 4-5. m un circuito digitai que realid las cuatro operaciones igicas de OR exclusiva, NOX exclusiva, NOR y NAND. Utilice d a variables de seIeaci6n. Muestre el diagrama lgico de una etapa tipica. E l registro A contiene e l binario de 8 bits 11011001.Determine el operando B 'y la microopwacibn IIgiea que se va a ejecutar para cambiar el valor enA a: a. tll1OllOl b . 11111101

&i9.

h r ~ s h de s 8 bita AR, BR, CR y DR inicialmente tienen los siguimtw


valomx

Referencias

129

Determine los vdores de 8 bits en cada registro despuks de la ejecucin de la siguiente semencia de microoperaciones.

AR+AR

+ BR

CR +C A DR, BR +BR AR +AR - CR


4-20.

+1

Sumar BR a AR Aplicar AND DR a CR,inaementar BR Restar CR de AR

4Zl.

rl-22.
423.

Un registro de 8 bits contiene el valor binario 10011100. Cul es el valor del registro despus de un corrimienta aritmgtico a la derecha? Comenzando can e l nmero inicial 10011100,determine el valor del registro despud de un corrimiento aritm&tieo a la izquierda, y dete& si existe un sobreflujo. Comenzando de un valor de R = 11011101, determine la secuencia de valores binarios en R despub de un corrimiento lbgico a la izquierda seguido de un corrimiento circular a la derecha y a continuacion un corrimiento lbgico de la derecha y un corrimiento circular a la izquierda. CuM H el valor de la salida H en la figura 412 si l a entrada A es 1001,S = 1,IR=1,eIL=O? tQu6 error contienen los siguientes enunciados de transferencia de registros7

2. Booth, T .L . , Intduetion to Computer Engineering, 3a Ed.Nueva York JohnWiiey,

1984.

3. Haya, J. F . , Compiiter Architecture attd Orgunhtion, 2a Ed. Nueva Yark: MeGrawHiU, 1988. 4 l-iiil,F. J., y G.R Pekrwn, Digitrrl Spkns: Hardmre OrganUathm and Design, 3a. Ed. Nuwa York: John W i , 1 9 8 7 . 5 . Mano, M.M,Computer E q i m r i n g : htnrduwre D e s i p . nglewood Cliffs, Ptentice Hall, 1988. 6. Patterson, D. A,, y J. L.Hennessy,CmnputerArchiQcture: A Quantitative Appn>ach. San M a b , CA: Morgan Kaufmann Publishers, 1990.

~ ~ ~ Trardemmh 1 x 0 de registro y micrmpraciones

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

EN ESTE CAP~TULO
5-1

--

5-2
5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10

J Wb Cdigos de instruccin Registros de computadora Instrucciones de computadora Temporizacin y control Ciclo de instruccin Instrucciones de referencia a memoria Entrada-salida e interrupcin Descripcin completa de una computadora Diseo de una computadora bsica Diseo de un acumulador lgico

5-1

Cdigos de instruccin

En este captulo presentamos una computadora bsica y mostramos cmo puede especificarse su operacin con enunciados de transferencia de registros. La organizacin de la computadora se define mediante sus registros internos, la estructura de temporizacin y control, y el conjunto de instrucciones que utiliza. Despus se lleva a cabo, en detalle, el diseo de la computadora. Aunque la computadora bsica que se presenta en este captulo es muy pequea en comparacin con las computadoras comerciales, tiene la ventaja de ser lo suficientemente simple para mostrar el proceso de diseo sin demasiadas complicaciones. La organizacin interna de un sistema digital est definida por la secuencia de microoperaciones que ejecuta sobre los datos almacenados en sus registros. La computadora digital de propsito general puede ejecutar varias microoperaciones y, adems, puede recibir instrucciones acerca de la secuencia especfica de operaciones que debe realizar. El usuario de unq computadora puede controlar el proceso mediante un programa. Un programa es un conjunto de instrucciones que especifican las operaciones, operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento.

132

QNCO

OxganIzadOn y d i i de aompuhdcirrps

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

almacenar el sesultado. Pueden es@carse palabras de memoria en los c6digas de insttuccin mediante sus direcciones. Pueden especificarse regishas del pmerador al wi$ar a k instnicci6n otro cdigo binario de k bit. que e s w i q u e uno de 2 r e g i s k m Exkten muchas variaciones para "componer" el ckdip binario de instrucciones, y cada computadora tiene su propia formato de c6digo de instniceiones particular, Los disefiadores de

computadoras .formulan los formatos de cdigo de instrucciones y especifican la arquitectura de la computadora. En este capitulo elegimos un cddigo de instniccih particular para explicar la organizacih y el d k f i o bisico de
las computadoras diitales.

Orgnnizaci6n de un programa almacenado,


La manera m& simple de organizar una computadora es tener un registro de prcieesador y un formato de cdigo de instruwi6n con dos partea. La primera parte especifica l a operaci6n que se va a ejecutar y la segunda especifica unsi direccin. IA direccibn de memoria b dice al control dbnde encontrar un operando en la memoria. 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. La figura 5-1 muestra este tipo de organizaci6n. Las instrucciones e s t h almacenadas en una secci6n de la memoria y los datos en otro. Para una unidad de memoria con 4096 palabras necesitamos 12 bits para especificar
Pisun 5-1
Organizacin de un programa al-do.

Memoria 496x 16

F m t o de instmin

134

C A M O CINCO Organizacin y

di*

de computadoras

una d k c i & n , dado que 212 = 4096. Si almacenamos cada c6digo de instnicci6n en una palabra de memoria de 16 bits, tenemos disponibles cuatro bits para el cdigo de operacidn para especificar una de 16 operaciones pmible8,

acumdd~r (AQ

y 12 bik para especificar la dirccibn de un operando. E i control lee una instrucci6n de 16 bits de la parte de programa de la memoria. Utiliza la parte de direcci6n de 12 bits de la instrucci6n para leer un operando de 16 bits de la porci6n de datos de la memoria. Despus ejecuta la operacin especificada por e l ckligo de operaci6n. L a s computadoras que tienen un registro de procesador nico por lo general l o nombran acumulador y lo etiquetan AC. L a operaci6n se ejecuta con el operando de la memoria y el contenido de1 AC. S i una operacibn de un cdigo de instnicci6n no necesita un operando de la memona, puede usarse el resto de los bits de -iiMstrucci6n para otros propbsitos. Por ejemplo, las operaciones como borrar {limpiar) AC, complementar AC e imrernentar AC' operan sobre l o s datos almacenados en el registro AC. No,necesitan un operando de la memoria. Para =tos tipos de operaciones, no se necesita la segunda parte del d i g o de instruccin (del bit O al 11) para especificaruna d k i i i de memoria y puede utilizarse para especificar otras operaciones para la computadora.

Direccionamiento indirecto
es conveniente utilizar Ios bits de direccionamienta de un cddigo de instruccin no como direccibn s*o como el operando real. Cuando la segunda parte de un c6digo de inshucci6n especifica un operando, se dice que la instmccin tiene un operando inmediato. Cuando la segunda parte especifica la d k c i 6 n de un operando se dice que la instniecibn tiene un direccionamiento directo. Esto contrasta con una tercera posibilidad ilamada dimionarniento indirecto, en el cual los bis de l a seffuida parte de la instmcci6n representan la direccin de una palabra de memoria, en la cual se encuentra la direccibn del operando, Se puede utilizar un bit del d i g o de instrucci6n para diferenciar entre un direccionamiento directa y uno

En ocasiones

instrucctdn inmediir tu

indirecto.
Como ejemplo de s t a configuracin, consideremos el formato de d i go de instrucci6n que se muestra en la figura S-2(a). Est formado de un cdigo de aperacibn de 3 bits, una dimci6n de 12 bits, y un bit de modo de direccionamiento indimto representado por 1. El bit de modo es O para un direccionamiento directo y 1 para un direccionamiento indirecto. Una instruccibn de direccionamiento directo se muestra en la figura S-m). Est colocada en la direccibn 22 en la memoria. E l bit I es 0, por lo que la instnicci6n se reconme como una instmccibn de direccionamiento directo. El caigo de operacihn especifica una instrucci6n de suma ADD, y la parte de direccin es el equivalente biario de 457. El control encuentra la operaci6n en la memoria en Ia direccihn 4 7 y la suma al contenido del AC. La instruccibn en la direccidn 35 que se muestra en la figura 5-2(c) tiene un bit

Memoria

Memoria

Operando

w
Operando

(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. Por lo tanto, s e reconoce como una instruccin de diteccie namiento indirecto. La parte de direccibn ec el equivalente binario de 3 0 0 . El control va a la direccihn 300 para encontrar la direcci6n de1 qxrando. L a direccibn del operando en este caso es 1350. El operando encontrado en la direcci6n 1350 se suma despub al contenido de AC. La instnicci6n de direccionamiento indirecto necesita dos referencias a la memoria para buscar un operando. La primera referencia se necesita para leer la direccibn del operando; la segunda es para el operanda mismo. Definimos la d i r m ' h e f i c f b como la creccibn del operando en una instrucci6n del tipo de computaci6n 0 la direccibn objetivo en una instruccibn de tipo transferencia del programa. Por 10 tanto, la d M 6 n efectiva en i a instruccin de la figura S-2(b) es 457 y en Ia instruccin de la figura 5-2(c) es 1350. En la computadora que se presenta en este capitulo se utizan los modos de direccionamiento directo e indirecto. palabra de memoria que contiene la direccin de un operando en una instruccin de d i ~ n a m i e n t o

indirecto se utiliza como un apuntador a un arreglo de d a k El apuntador pu.& colocarse kn un regiStra .del procesador y no en la memoria, como se hace en las computadoxas cmerciales.

5-2

Registros de computadora
-. -

Por lo general, las instrucciones de computadora se almacenan en posiciones


de memoria consecutivas y se e j e c u h de manera secuencial, una a la vez, E l control lee una instnicci6n de una diiecci6n especifica de la memoria y la ejecuta, Despugs contina leyendo la siguiente instruccin en secuencia y h ejecuta y as sucesivamente, Este tipo de GecuenUa de instrucciones necesita un contador para calcular la direccin de la siguiente instmccibn despub de que se temina la ejecucin de la 'instruccin presente. Tambin es necesario proporcionar un registro en la unidad de control para almacenar el cdigo de inshcci6n despuds de que se lee de la memoria. La computadora necesita los registros del prmsador para manipular datos y un registro para contener una direccihn de memoria. Esta$ necesidades dictan la configuraci6n del registm que se muectra en la figura 5-3. Tambin 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. La unidad de memoria tiene una capacidad de 4 0 % palabras y cada palabra contiene 16 bits, Se necesitan doee bits de una palabra de instnicci6n para especificar la direccibn de un op.erando. Esto deja tres bits para la parte de operacibn de la instruccin y uri bit para especificar un direccionamiento diwto s! un indirecta. El registro de datos (DI?) contiene el operando que se lee de la memoria. El registra acumulador (AC) es un registro de procesamiento de prop6+to general. 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.
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

.IR PC

TR
INP. OUTR

16 Registro de instnitcibn 12 Coritador de programa 1 6 ~~temparal 8 Regish de enbada 8 Registro de calida

Conti& carde enhada Contiene cadcter de salida

S E M ~ Registros de computadora

137

de 4W palabras 16 bits por palabm

Figura 5-3

Registros de la computadora bsicsi y memoria.

contador de

programa IPC)

E i registro de direcGonamiento {M) de la memoria tiene 12 bits porque dste es el ancho de.unad i d 6 n de memoria. El contador de programa (PC) tambih tiene 12 bits y contiene la direccin de la siguiente instntccin que se va a Ieer de la memoria despus de que se ejecute la instruccin presente. El PC recore una secuencia de conteo y hace que la computadora lea instruccbnes 6ecuenhles almacenadas previamente en la memoria. Las palabxas de instruccibn se leen y se ejecutan en secuencia, a menos que se encuentre una 'instniccin de transferencia del programa. Una instrueei6n de
transferencia del programa =licita una transferencia a una instruccih no consecutiva en >elprograma. La parte de dkcci6n de una instrucci6n de tiansferencia dei programa se transfiere al PC para convertirse en la direeci6n de la siguiente instruccin. Para leer una instrucci611, se toma el contenido del PC eomala direcci6n para la m e m o r i a y se inicia un ciclo de lectura de memoria. Despub el PC se incremmta en uno, para que contenga la dipcci6n de h sipiente instrucci6n e n & Se usan dos registros para entrada y salida E l registro de entrada ( W R ) mi& un carcter de 8 bits de un dispitivo de entrada. El e s t r o de salida (OUTR]contiene un carade 8 bits para un dispositivo de salida.
.J

Bus c m & del sistema


La computadora bsica tiene ocho registros, una unidad de memoria y una unidad de control ,(quese presentar4 en+laseccin 5-4). Deben proporcionarw trayectorias para Wsferir firmaci6n de un registro a otro y entre Ia memoria y el registro. La cantidad de l s aerA exeesiva si s e hacen

138

CINCO

Organizacin y d i d o de computadoras

c a w r ILD)

'

dime&&

de memorfa

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

~~.

- -. . .-

Figura M Registros 6 la f a m p u b b a bsica conectados a un bus c o m k

140

C A P ~ CINCO O Organizacin

y diseo de computadoras

un bus de direcciones, que de otra manera sera necesario. Puede especificarse el contenido de cualquier registr~para la entrada de datos de la memoria durante una operacin. De igual manera, cualquier registro puede recibir. los datos de la memoria despus de una aperaci6n de lectura, excepto AC. Las 16 entradas de AC provienen de un circuito lgico y sumador. Este Circuito tiene tres conjuntos de entradas. Un conjunto de entradas de 16 bits viene de las salidas de AC. Se utiliza para efectuar microoperaciones de registro como el complemento AC y el corrimiento ,AC. Otro conjunto de entradas de 16 bits viene del registro de datos DR. Las entradas de DR y AC se utilizan para microoperaciones aritmticas y lgicas, como sumar DR a AC o aplicar AND de DR a AC. El resultado de una suma se transfiere a AC y el acarreo final de una suma se transfiere al flip-flop E (el bit de extensin de AC). Un tercer conjunto de entradas de 8 bits viene del registro de entrada INPR. La operacin de INPR y OUTR se explica en la seccin 5-7. Ntese que el contenida de cualquier registro puede aplicarse al bus y piiede ejecutarse una operacin en el sumador y en el circuito lgico durante el mismo ciclo de reloj. La transicin de reloj al final del ciclo transfiere el contenido del bus al registro destino designado y la salida del sumador y circuito lgico a AC. Por ejemplo, las dos microoperaciones

pueden ejecutarse al mismo tiempo. Esto puede hacerse al colocar el contenido de AC en el bus (con S2S$o = 100), habilitando la entrada LD (cargar) de DR, transfiriendo el contenido de DR a travs del contenido del sumador y circuito lgico hacia AC y habilitando la entrada LD (cargar) de AC, todo durante este mismo ciclo de reloj. Las dos transferencias ocurren durante la llegada de la transicin de pulso de reloj al final del ciclo de reloj.

5-3
formato de insfruccin

Instrucciones de computadora

La computadora bsica tiene tres formatos de cdigos de instruccin, segn se muestra en la figura 5-5. Cada formato tiene 16 bits. La parte del cdigo de operacin de la instruccin contiene tres bits y el significado de los 13 bits restantes depende del cdigo de operacin que se encuentre. Una instruccin de referencia a memoria utiliza 12 bits para especificar una direccin y 1bit para especificar el modo de direccionamiento I. I es igual a O para una direccin directa y a 1 para una direccin indirecta (vase la figura 5-2). Las instrucciones de referencia a registros se reconocen mediante el cdigo de operacin 1 1 1 con un O en el bit de la extrema izquierda (bit 15) de la instruccin. Una instruccin de referencia al registro especifica una operacin o una prueba del registro AC. No se necesita un operando de la

s E c a h M I n s t n i c c h de computadora

141

(a) Instruccibn de refemda a memoria

15

12 11

Q 1 1 I

+imUndeqim

(CWigodeopr~b=l11,1-0)

@) lnstmcdn de referencia a registro

Figura 5 5 Formatos de inshuccinde la computadora bsica.

memoria, por lo tanto las otros 12 bits se-utilizan para especifmr la operaci6n o prueba que se.va a ejecutar. De igual forma, una instmcci6n de entrada-salida no necesita una referencia a memoria y se m n o c e por el &digo de operaci6n 111 con 1 en el bit de Ia extrema izquierda de la instnicci6n. tos 12 bits restantes w utiIizan para espedfiear el tipo de operacidn de entrada-salida o la prueba ejecutada. E l tipo de instrucci6n se reconoce mediante el control de computadora de los cuatro bits en las posiciones de la 12 a la 15 de 1 s instnrccibn. Si los tres bit^ del cdigo de operacibn en Ias posicioaes de Ia 12 a la 14 no m iguales a 111, la instrucci6n es del tipo de referencia a memoria y el bit de la posici6n 15 se bma como el modo de direccionamiento 1. Si el cdigo de operacibn de 3 bita es igual a 111, el control revisa el bit en I a posicin 15. Si este bit es O, la instrucci6n ea del tipo de referencia a registro. Si el bit es 1, la referencia es del tipo de entcada-salida. Nbtese que el bit de la posicibn 15 del cdigo de instrucci6n esta representado mediante el slmbolo 1, pero no se utiliza como un bit de modo cuando el d i g o de operacibn es igual
a

111.

cddip hexadedrnal

S510 se utilizan tres bits de la instruccibn para el &dig6 de operacibn. Puede parecer que la computadora est6 limitada a un mximo de odio operaciones distintas. Sin embaxgo, como las inskuccionws con mfereneia a registro y de entrada-salida u t i h n loa 12 bits restantes como parte del d i g o de aperiicidn, la cantidad total de instrucciones puede exceder de ocho. l k hecho, el ndmero total de inqtnicciones escogidas para l a computadora bsica es igual a 25. Las instnzcciones para la computadora se listan en la tabla 5-2. La representacin simblica es una palabra de tres letras y signifika una abre viahira destinada a los programadores p los usuarios. 61 cdigo hexadecimal es igual al nhero hexadeciial del c6digo binario utizado para la instnrc-

142

mmmmco

y diseu de computadoras
TABLA 5-2 I n s ~ n e de s la computadora bsica

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 insttiiccin 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 ,FWJ

SPA SNA
SZA

SZE
HLT
,&ii

rmh*folllar

*
&

~ I ' & Y ~ h.

rrJa OUT SKI

SKO
ION

IOF

F400 F2N 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. A1 mar el equivalente hexadeciml reducihia los 16 bits de un cddigo de instrucci6n a cuatro dlgitos, donde cada digito h-decima1 es equivalente a cuatro bits. Una instrueci6n con referencia a memoria tiene una parte de direcci6n de 12 bits. La parte de dkccionamiento est representada por tres x y tiene validez para los ~ k e s digitos hexadecirnales que corresponden a la direccin de 12 bits. El Bltimo bit de la instruccin estzi representado por el smbolo 1. Cuando I = O, las iiltimm cuatro bits de una instnicci6n tienen un digito Irexadecimal equivalente de O a 6, dddo que e l dtimo bit es O. Cuando I = 1 , el dgito hexadeeimal equivalente de los altimos cuatro bits de la uistrud6n vhda de 8 a E, porque e l dltimo bit ea 1 . Las instruceibnes con referencia a registro utilizan 16 bits para especificar una ope~aci6n.Lee cuatro bits de la extrema izquierda son siempre 0111, lo mal es el equivalente al hexadecimal7. Los otms digitos hexadeci-

mal& proporcionan e l equivahnk binario de los 1i2 bits restan&. Las instmcciones de entradasalida tambfi utiliqn todos los 16 bits para espe~ificaauna operacidn. L m ltimos cuatro bi& son siempre 1111, el equivalente al hexadecimal P.

Vematiiiciad del conjunto de instrucciones


Antes de investigar las operaciones que ejecutan k s htmcciones, analicemos

el tipo de .instrucciones que deben incluirse en una computadora. Una computadora debe t e ~ e r un conjunto de instrucciones para que el usuario pueda conatmir programas de lenguaje de compubdora con el fin de evaluar cualquier funcin que se sepa que puede romputarse. Se dice que el conjunto de instrucciones est completo si la computadora incluye la suciente cantidad de imtrucciones e n cada una de las siguien'tes categorlas:

1 . instrucciones aritmticas, 16gicas y de corrimiento. 2 Instruacianes par3 mover informacin hacia y desde la memoria y las registros del prwesador. 3. hstmcciones de control del programa, junto con instrucciones que verifiquen las condiciones de estado. .4. Instrucciones de entrada y saiida.
,

Las instrucciones aritmdticas, 16gieas y de corrimiento proporcionan capacidad compuZacion~1 para procesar el t i p de datos que el usuario puede emplear. La mayor parte Be la informacin binaria en una computadora *tal est aImamda en la mernorh pem todos los clculos se realizan en los registros del procesadar. Por l o tanto, el usuario podrA mover la infoimari6n entre estas dos unidades. L a posibilidad de tomar deeisionw es i u i hportante a de las computadoras digitaies. Por ejemplo, pueden compararse dos nmeros y, si el primero es mayor que el segundo, puede ser necesario proceder en forma diferente de si el segundo es mayor que eI primero. Las instrucciones de control de programa, tales como las instrucciones de transferencia del programa, se u t i h para cambiar la secuencia en la cual se ejecuta el programa. Las instrucciones de entrada y salida se necesitan para la comunicacin entre la computadora y el usuario. Los programas y los datos deben transferirse a la memoria, y los d t a d o s de los c4lculos dehn transferirse de vuelta a3 usuario. Las instrucciones ktadae en la tabla 5 4 constituyen un conjunto mhim a que propomiona todas las posibilidades ya mencionadas. Hay una instruccidn aritmtica, ADD, y dos instrucciones relacionadas, complementar AC (CMA) e incrementar AC (INC)).Con estas tres instrucciones podemos sumar y restar nmeros binarioe cuando existen nmeros negativos en repre$mtaei@ del complemento a 2 con signo. Las instrucciones para circular, CIR y C I L , pueden usarse para corrhimtos aritmticos, al igual que para cualquier otro tipo de mdmierito deseado. La multiplicaci6n y la

divisibn puedm ejecutarse usando la e w , la resta y el corrimiento. Existen tres o p e r a c i m ~ k;icas: N , mqlementm AC (CMA) y borrar o limpiar AC (CLA). Las nperaciones AMD y complementar proporcionan una operacin NAND. Puede demostrarse que con k aperacibn NAND es' pmible efectuar todas las otras operaciones 16gicas con dos variables (las cuales s e lictan en la tabla 4-6).Mover informaci6n de la memoria a AC se consigue con la inshci6n aargar AC (LBA). Pasar. hfomacin de AC a la memoria se hace en la instrucci6n de almacenar AC (STA), Las instrucciones de transferencia BUN, BSA e TS2, junto con las cuatro instrucciones de salto, proporcionan posibilidades para transferir el control del programa y la verScaci6n de las condiciones de astado. Las instm&ne de entrada (iNF') y d i d a (OUT) hacen que se transfiera infonnari6n entre la computadora y l o s dispositivos externos. Aunque el conjunto de instnidmes para la mputadora bsica est completo, no es eficiente porque con frecuencia las operaciones utilizadas no se ejecutan con rapidez. Un conjunto de instnicciones eficiente incIuir4 hstn,icciones como restar, multiplicar, 0 R y OR exclusiva. Estas operaciones deben programarse en la computadora bsica. Las programas se presentan en el. capitula 6 junta con otros ejemplos de programaci6n para la computadora basica. A l usar una cantidad hitada de instrucciones es posible mostrar eI diseo lgico de la computadora, en detaue. Un conjunto de instrucciones ms completo hubiera hecho el diseo demasiado complejo. De esta manera es posible mostrar 1 - principios Msicm de la organizacf6n y d i d o de la computadaza s i n liegar a detalles complejos en ex-. En el capftulo 8 ae v t a una lista completa, de instrucciones de computadora que se incluyen en la mayorla de las cornputad~ras codales. la f u n & r n de cada imtruccih que w lista m k tabla 5 2 y las microoperaciones necesarias para su ejecuci6n se presentan m las seccionei de la 5-5 a 1 s 5-7. Se propuso este a d l i i s porque se debe considerar primero la unidad de control y comprender su mgmhcin interna.

pulsos

control por
cnbleado

todos(1 - registros de l a computadora bsica estA controlada por un generador de *laj maestro; Los piilsos de reloj se aplican a todos :lw fiipfiop~ y registros.de1sistema, incluymdo los de la unidad de cront~01.Los pubos de reioj no cambian .el estado de un qistro, a menos que el regiska t habxlitada mediante una seaal de control. Las seiIa1e.s de conha1 se en la midad de mtrol y proporcionan entradas de control para los multiplexores deI bus comn, entradad de &ntrol en los registros del v d m , y mimaperaciofles para d acumulador. Existen dos. tipos principales de organizadmes de controk control por cableado y control dcroprogramado. En la organhci6n por cableado la i6gica de conml ,selogra d i t e compuerta^, flip-ibps, deedificadores y

La tempriZaci6n de

controI

niimpmgmmah

~+tiad d~control

atros circuitos digirales. Esto tiene la ventaja de que puede utizarse para producir itn m 4 0 de operacib 26pid0, &la oq@zaci6n micrqprogramada, la inhftadbri d e m r o l est aImachacia * m uria memoria de mnkruL La memoria de control esta programada para iniciar la secuencia de m i a m p e raciones requerida. Un control pgr cablegdo, egmo indica su nombre, necesita .cambios en la instaiaci6n de cabi+de e n h , b diversos componentes, s i el d M 4 va a modificarse o ~ b b ;e c&trot microprogramado cualquier cambio o modificadaes puede hacerse actwzando el p m en h memoria de mn~rol.' Em &~=secciBn se presenta un control p r caljlmdo para la computadora Mstca. U J ~unidad de control micropm gmtm@f?'ara una cohputadora similar se presentir en el capitulo 7. 31 diagrama de bloque de Ia unidad de mtrol e muetra en la figura - W ,' B t & fopmado por dos decodificadaresi rin contador secuencia1 y cierta cantidad de compuertas lbgicas de control. Una instruccidn leida de la hiqoria se c~loca en el registro de la instnicci6n presente (IR). La posicibn /de %e& e s t r o en e l sistema de bus comtln se M i c a en la figura 5-4. E l e la , ~ t r u c c i 6 n presntei se muestra de nuevo en la figura 5-6, d. do&e estd dividido en tres partes: el bit 1, el e M i o de operacih, y los bitg de .O a 11. El cdigo de operacidn en los bits del 12 al 14 se d e c a c a con ~ ~ ~ i f i c a 3dXo8.rLas acho saIidas de este decodificador se representan d a * los smbolos & a 3l nmero .decimai en el suhfndice es equivalente al valor binado del c6digo de &&e$n correspondiente. E lb i t 15 de la instruecidn se transfiere a iy flipfloprepresentado por el sfmbolo 1. h s bis de O al 21 src ~ E C W en hr;wqpuektas ldgicas de control. El contador secuencial de 4 bk puede ';Conkai'@bhiario del O ai 15. Las didas dei contador se d e c o d f i n en 16 seales,de temporizacidn de To a TI5. Despus, ae derivara la lfigica aiteq.de las wqipuertas de control, cuando se considere en detalle e l diseiYs de ~~om~ubdora. El contador secuencial. SC mede( ingkrrtmtarse a l i m p h en forma sincrona (vbase el contador de a figura Zl.1). XA mayor parte del tiempo, e l contadar s e incrementa para pmpo&onar la secuencia de seilales de tempoW6n del decodificador 4 X 16. D e v a en cuando, el contador se borra a O, haciendo que la siguiente seial de temporizacidn activa sea To.Por ejemplo, consideremos e l caso en que SC se incrementa para proporcionar las Miales de temporizaci6n Ta, Tb T2, T3, y . Te en secuencia. En el tiempo T* SC se km a O si lesK activadi la salida Da del decodificador. Esto se expresa en foma simb6ca mediante el enuncido.

E f diagrama de temporizaci6n de la figura 5-7 muestra la relacibn de tiempo


de Las 'wlialff de control. E l contador secuencia1 SC responde a la transicin pmffiva d e ! reloj. Ai principio, la entrada CLR de SC est activa. La primera trattsieibn del reloj borra SC a O, b cual a su vez activa la seai de tempor%ii&i&n Todel decdifmCIor. To es^ activa durante un ciclo de ,eloj

146

CA-O

Organizacin y d i -

de computadoras

1 1 1

.&ras entradas

Salidas de mnml

tttt
1 1 .~rif~emenb W) Bwrar (CLR)
bloj

Figura 5a Unidad de control de la computadora bhica.

Li transicin de reloj positiva Tpen el diagrama activar solamente aquellos


registros cuyas entradas de control estdn conectadas a la seal de temporizaciBn T , SC se incremehta con cada transici6n de reloj positiva, a menos que su entrada CLR est activa. Esto produce las secuencias y seales de temporizaci6n Tw Tp Ta Ti T4y as sucesivamente, segn s e muestra en el diagrama. ( N 6 M la relacin entre la &al de temporizacidn y l a transicibn de reloj positiva correspondiente.) Si SC no se borra, 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. La salida D3del decodificador de operaci6n se activa al

h
m

.
1;

C..
r

Figufa 5-7

Ejemplo de d a l e a de temporizaci6n de control.

final de la s&aI de temporizadn T2 Cuando l a seal de temporimci6n T4 x activa, tambin lo hace la salida de la compueita AND que implanta la funcibn de control D3T4EBta &al se aplica a la entrada CLR de SC. En la siguiente transicin de reloj positiva (la marcada con Tpen el diagrama) el contador se pasa a O. Esto hace que ce active la M a l de ternprizacin Toen I lugar de Tg, que podria activarse si SC s e incrementara en lugar de borrarse. Un ciclo de lectura o de escritura se inic-iar6 con un flanco ascendente de una seia1 de temporizacibn. Se considerar que e l tiempo de un ciclo de memoria es menor que un tiempo de ciclo de reloj. De acuerdo con esta suposicin, un ciclo de lectura o de m i t u r a iniciado por una seal de temporizaci6n se temiinard cuand~el siguiente pulso de reloj llegue a su posici6n de transicin positivi. Despu&, se usar4 la transicibn de reloj para cargar Ia palabra de memoria en un registro. Esta relaci6n de temporizacin no es vilida en muchas computadoras porque el tiempo del ciclo de memoria, por lo general dura ms que el ciclo del reloj del prwesador, En tal caso es necesario proporcionar ciclos de espera en el procesador hasta que este disponible la palabra de memoria. Para facilikr la presentacih, consi-

deraranos que un periodo de espera no e a necesario en la computadora bdsica. Para comprender pof completo la operaeion de la computadora, es crucial entender la relacibn de temporizaci6n entre la transicin de reloj y las &ec de temporizacin. Por ejemplo, el enunciado de transferencia de

4 .

To; AR . + PC
especifica una transferencia del contenido de PC a AR, s i estA activa la sefial de temporizaci6n Toa Tpest activa durante todo un intervalo de ciclo de reloj. D u r a n t e este tiempo, el contenido de-PC se coloca dentro del bus (con S$,S, = 010) y &.habilita l a entrada LD (cargar) de AR. La transferencia real no murre hasta el final del ciclo de reloj, cuando el reloj Uega a una hansitidi positiva. Esta misma tansici6n -de reloj positiva inrrementa el contador secuencia1 SC de 0000 a 0001. E l siguiente ciclo de reloj tiene a TI activo y Toinactivo.

5-5

Ciclo de Instrucci6n

Un programa

residente en la unidad de memoria de l a computadora estA fomiad&por una secuencia de instrucciones. E l programa se ejecuta en la computa'$ora rebtrlendo un del0 para cada instmcci6n. A su vez, cada ciclo de instruccin se divide en UM SBZIE& de subciclos o fases. En la computadora bsica cada ciclo de instmcci6n consiste en las siguientes fases:

1 . Buscar ,una instt.ucci6n de la memoria.

2. ~ e c a d i l i ~ laainstrueeibn, ~
3. k r l a direcci6n efectiva de la memoria si la instruccin tiene una dimci6n indirecta. 4. Ejecutar la insQ~cci6n.
Cuando se termina el paso 4, el control rqresa al. paso 1 para buxar, decodificar y ejecutar Ia siguiente instrucci6n. Este proceso contina en forma indefinida a menos que se encuentre una instniccihn HALT (alto).

Besqueda y decodificacihn AI principio, el contador de programa PC esti cargado can la d h c i 6 n de la primera instrucci6n del programa. El contador secuencia1 SC se borra a 0 , proporcionandb 'una seal de temporizaci6n codificada TD. Despuds dk cada pulso de reloj, SC se incrementa en uno, para que las d a l e s de t~empoporizaci6nrecorran una secuencia To, TI, T , y as1 sucesivamente. Las mkrooperaciones para las fases de bsqueda y decodificaci6n

pueden esp~cificmse mediar& lw siguientes enunciados de transferencia de

registro.

Como 4 1 0AR estd conectada a las entradas de dkeccionamiento de la memoria, es necesario transferir la direcci6n del PC a AR durante la transicibn de reloj asociada con la sefial de temporlzaci6n To.Despuks, se coima la instruccin de leer de la memoria en el, registro de instniccibn presente IR, con la transicibn de reloj asociada a la s e h l de temporizacin Tp A i mismo tiempo, PC se incrementa en uno a fin de preparar para la dhixci6n de la siguiente instruccidn en el programa. En el tiempo Ta, se decodifica el cdigo de operaci6n en IR, el bit indirecto se transfiere al flip-fiop X y la parte de la d k a b n de b instnicci6n se transfiere a AR. N 6 b e que SC se herementa deapub de cada pulso de reloj para producir l a secuencia Tb TI Y TP La figura 5-8 muestra c6mo se implantan los primeros dos enunciados de transferencia de registro en el canal del sistema de bus. Con e lf u i de proporcionar l a trayectoria de datos para Ia transferencia de1 PC a AR, se debe aplicar ^a S-1 de temporizaci6n Topara obtener la siguiente conexi6n:

1. Colocar el contenido del PC dentro del bus al hacer que las entradas de selecci6n de bus S$lSD sean iguales a 010. 2. Transferir, el contenido del bw a AR al habilitar la entrada LD de

AR.
La siguiente transicibn de reloj inicia la transferendia de PC a AR porque T g = 1. Para cumplir el segundo enunciado

T,,con el fin de proporcionar las conexiones siguientes en el canal del sistema de bus.
es necesario usar la 4 de kmporizaci6n

1. Habilitar la entrada de lectura de la memoria. 2 Colocar e1 contenido de Ia memoria dentro del bus al hacer que S$,S, = 111. 3. Transferir el contenido del bus a IR al habilitar la entrada LD de IR. 4. Incrementar PC al habilitar la entrada INR de PC.

La siguiente transici6n de reloj inicia Ias operaciones de leer e incrementar porque TI= 1 .

TI

S2

To

SI Bus

Unldad de rnemdria
Direcdn
II

=
so
7

h r .

AR

E-

I
PC

:2

=
LD

m 0 1
h s coman

Figura 5-8 Transferencias de registro para la fase de biisqueda.

La figura 5-8 duplica una parte del canal del sistema de bus y muestra. TIa las entradas de control de los registros, la memoria y las entradas de seTecci5n del bus. En e l diagrama se incluyen mriltiple compuertas OK de entrada,porque hay otras funciones de control que iniciardn operaciones similares.
c6mo estn conectadas Toy

Determinadbn del tipo de instruccin La seal de temporizaci6n que est4 activa despus de la decodifkacidn es T3. Durante e l tiempo T3 la unidad de controI determina el tipo de instruc-

ci6n que se acaba de leer de la memoria. E l diagrama de flujo de la figura 5 9 presenta una configuracih inicial para el ciclo de insttucci6n y muestra cbm~ d control detemiina e l tipo de hstrueei6n despub de l a ddificaci6n. Los tres tipos de instniccibn p i b k de, que se dispone en la cornputadora bsica se especifican en la f i a 5-5. ta salida del decodificador D7es.igual a 1 si el cdigo de operacihn es igud a1 111 binario. Por l a figura 5 5 determinamos que s i 4 = 1 , la
Figura 5 9 Tabla de flujo para el ciclo de instrricci6n (configuracibn inicial).

AR t PC
f

IRc-MIAR], P C t P C + 1
11

T2

CMigo de op-cin de decodificaci6n en IR(12-14) M tIR(0-11), 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

T3
1

Ir

T3

Qcuhrla 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

in4tAcci6n debe W d1 tipo de referricia a registro 'o de entrada-salida. Si

'& =' O, el c6digo de bperaci6n debe ser:una de b s otros siete valores de


000 a 1'18; -e~peificando una insfrucci6n de 'refemncB a memoria. 'Despu4s d control r&vih e l valor del primer bit de la irrstnicci6n, el cual est ahora disponible en el f l * i p " f i o I.p Si V7 = 0 e I = 1, tamos una instru~ci6nde referencia a mdofia con m direccionamiento ' h d h t o . Entonces es necesarlo leer. Int direccin efettiqa de h memoria. La microoperacibn para la condici6n de direccionamiento indirecto se puede &presentar mediante e!

direccibfl fnd+ecta

enunciado de transferencia de registros

Al principio AR cbntene la parte de duecci6n de h instrucci6n. Esta direcci6n se utiliza durante la instrucci6n de Iechira de meborla. I a palabra en la direccin proporcierrada por AR se lee de la memoria y se colma en el bus comn. b p u & s , se habita la entrada LD de AR, para recibir la d k c i 6 n indirecta que reside en los 12 bits menos significativos de la palabra de memoria. b s tres tip& de instrucciones se subdividen en cuatro hayectorias separadas. La o p r a c i h seleccionada se activa con l a transicibn de reloj asociada con l a sea1 de temporizaci6n T3 Esto puede representarse como sigue:

lT3: AR + M [ARJ Dj11T3: Nada .D711T3: Ejecutar una instrucci6n de referencia &%: Ejecutar una instruccin de entrada salida

--

Cuando se-encuenirauna instrucciin de referencia a mkoria con I = O no es necesario hacer nada porque la direccibn efectiva ya est6 en AR. Si ernharo, el contador secuencia1 SC debe incrementar& cuando D1?T3= 1, para que pueda continuarse la ejeeuai6m de-la instrucici6n de referencia a memotia con la variable de temporizacin 1 ; .Puede ejkutarse una instnicci6n &e referencia a registro o de entrada-salida mediante el reloj asociado con la seal de brnporbaci6n T3.Despus de ejecutarse la uistnicci6n, se horra SC a O y el control regresa a la fase de bFtsqueda con To= 1. N 6 k e que d contador secuencia1 SC se incremenb o se borra a O con cada i!kansicibn de reloj positiva. Adoptaremos la n o h a de que si SC s e incre&nta, no escribirembs el enunciado SC *SC f 1, pero estar6 implcito que el Antro1 pasa a ia siguiente seal de temporizaci6n en secuencia. Cuando se va a borrar SC, incluiremos el enynciado SC 0. Las transfemcias de registros necesarias para la ejecuci6n de las btrucciones de referencia a registros se presentan -enesta secci6n. En la siguiente e i 6 n se explican las instrucciones de refemcia a memoria. Las imtructiones de entrqda-salida se incluyen eri la Secci6n 5-7.

Insbcciones de referencia a registros El control reconoce las instrucciones de referencia a registros cuando D7 = 1 e' 1 O. Estas i n s ~ c c i ~ n e utflizan s los b i t s del O al 11 del caigo de instrucci6n para especificar una de las 12 instrucciones. Estos 12 bits estiin disponibles en IR(0-11). Tambibn s e transfirieron a AR durante e l tiempo ;r2. Las hnciones de csntrol y las micmperaciones para las instnicciones de referencia a registro se listan m la tabla 53. Estas instrucciones s e ejecutan con la transicin de reloj asociada con Ia variable de temporizaci6n T3 Cada funcin de control necesita la relaci6n bmleana D7i'T3 la cual, por conveniencia, representaremos con el smbalo r. La funcin de control s e disthgue.por uno de los bits en i R (0-11). A i asignar el smbolo Bl al bit i de IR, todas las fimcionea de control ce pueden representar con sencillez mediante rB,. Por ejemplo, la instruccibn CLA tiene l cddigo hexadecimal 7800 (vdase la tabla 5-Z), e l cual, da e l b M o equivalente O111 1OOO 0000 axio. El primer bit es un cero y es equivalente a P. Los siguienb tres bits constituyen el cdigo de operacin y s e reconocen de la salida del decodificador &. E l bit 11 en 1R es 1 y se reconoce de Blp La funci6n de control que inicia la rnicrooperaci6n para esta instrucci6n es D71rTJBll= rBIp I a ejecucih de una inshucci6n de rbferencia a registro se termina en el tiempo T3. E l contador mencial SC se borra a O y el control regresa a buscar la siguiente instniceibn con la seiial de temporizacibn Ta Las primeras siete instrucdanes de referencia a registro ejecutan las rnicrooperaciones de borrar, compiementa~,corrimiento circular e incrementar sobre los registros AC o E. Las siguientes cuatro instrucciones provocan un brinco de la siguiente instruccin en rmuencia cuando se satisface una condicin esbb1ec:ida. La Instrucci6n de brinco se ejecuta al
TABLA 5-3 Ejecucin de instuccionesde referencia a registro
D71rT3 = r (comrn a todas las instmcciones de referencia a registro) IR(i) = B, [el bit en IR (0-11) que especifica la operacidn]
r:

SC

CMA
CiL

rB,: rB, CME rB; CIR Y&


CLE

CLA

Y&,:

rB,:

iNC rB,: SPA rB,: SNA rB,


SZ4

rB,:
Y&:

SZE

m i '

rB,:

Borrar AC E O Borrar E AC + A 7 CarnplementarAC E+E Complementar E AC t . shr AC,ACb5) E, E r- AC@)C h I a r a la deredia AC + shl AC, AC(0) E, E t . AC('i5) Cinnilar a la izquierda AC AC+1 incrementar AC S i (AC(15,) = O) entonces (PC PC + 1) Brincar si es positivo Si (AC(15) = 1)entonces (PC + PC + 1) Brincar si e s negativo Si (AC = O) entonces (PC PC + 1) Brincar s i AC es cero S i (E O) entonces (FC + PC t 1) Brincar s i E es cero S . - O (S es un flip-flop de inicioalto) Detener la computachm
t

AC

O
O

Borrar SC

incrementar PC una vez mAs (ailemZis, se .incrementa durante la fase de b b q e d a 'eir d tiempo Td. Las enunciados de con& de condicibn deben reconcomo pafte.de las cdlciones de control. AC es positivo cuando el bit de signo en AC(5) = O; es negativo cuando ACt15) = 1. El contenido ,deAC es cero (JC = 0) todos los flip-flops del registro son c m . La insfrucci6n FKT borra un flip-flop de inicioalto S y detiene e l funcionamiento de1 contador secuencial.Para restalilla opwacih de la computadora, el fiip-fiop itiicio-alto d e h iniciarse e forma manual.

5-6

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, es necesario que la funci6n que se pretende ejecutar se defina con pmisi6n. Al revisar la tabb 5-2, e n la cual se Iistan las instrucciones, enconkamos que algunas tienen una d d p c i b n ambigua. Esto se debe a que, por i o generaI, la &plicaci&nde una insmcci6n con palabras es extensa y no hay espacio disponible en la tabla para su explicacidn. Ahora mostrammae; que la funcin de las instrucciones de referencia a memoria puede definirte m forma precisa mediante la notaci6n de transferencia a registros. La tabia 5-4 lista las siete instrucciones de referencia a memoria. La salida decodificada Di para i = 0 ,1 , 2, 3, 4, 5 y 6 del decodificador de operacibn que pertenece a cada instruccin se incluye en la tabla. La di=ci6n efectiva de I a instruccidn estd en e l registro de direccionamiento AR y se colocb ah durante la seal de Zemporkri6n TZcuando I = O o durante la serial de temporizacibn T3cuando I = 1. L a ejecucidn de las instrucciones de referencia a memoria comienza con la seal de temporizacihn T4 La descripci6n simblica de cada instrucci6n s e especifica en la tabla en M nos de notaci6n de transferencia de registros. ts ejecucin mal de la inatruccin en e l canal del sistema de bus requerir una secuencia de microoperaTABLA M Tnshucciories de referencia a memoria
Decodificad~r Shbolo de operacin Dpsc~ipci6n eW1ica

AND 4DD
LDA
STA

Do *'DI

Dz
D 3

BUN BSA
ISZ

D k D s

AC +AC A MIAR] AC*-AC + M[AR], E e C , , ACt@kIR] M[AR] tAC PC+AR M[Al?l+$T, PC+AR + 1 M[AR]c-'M[AR]+ 1 , Si MIAR] + 1 = O entonces PC c

5.6

Instruccimm de referencia a memoria

ciones. Esto es porque los datos almamad= en l a memoria no pueden procesame en forma directa. los datos deben pasarse de l a memoria a un registm donde pueden ser operados sobre circuitos lbgiros. Ahora explicamos la operacih de cada instrueei6n y hacemos una h t a de las funciones de control y microaperaciones necesarias para su ejecucibn. Al final de esta seccibn se presenta un diagrama de flujo que resume todas las mimooperaciones.

Ejeaci6n de la instnieei6n AND a AC Esta es una instruccidn qkejecuta la operacibn l&gicaAND sobre pares de bits en AC y la palabra de memoria especificada mediante la direccin efectiva. El resultado de la operaci6n w transfiere a AC. Las micmperaciones que ejecuta e~ta~instmccibn son:

esta htrucci6n utiliza el demdificador de ope racibn Do porque la salida del decodificador estd activa cuando la instruccin tiene una operaci6n AND cuyo valor de cdigo binarib es 000. Se necesitan dos d e s de temporizaci6n para ejecutar la insfmrci6n. La transicibn de r e l o j asmiada con la seal de temporhci6n T4transfiere el operando de la -aria dentro de DR. La transicihi de reloj asrreiada con la siguiente seal de ternporkciibn &nsfiere a AC el resultado de la operacin lgica AND entre el contenido de DR y AC. L a misma transicidn de reloj pasa SC a O, a l transferir el cohtrol a l a seial de Wporizacibn To para comenzar un nuevo ciclo de instruccibn.

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 @fectivi al valor de AC. La suma se transfiere dentro de AC y el acarreo de> salida Cd se transfiere al flip-flop E [extenssn del acumulador). Las mictooperaciones para 'qsuhrla instrueddn son
DITi: DR + M[AR] 4%:AC + A C f DR, E * C M

SC + O

Se usan otra vez las mismas dos selales de temporizacibn, T4y Tg pero con el decodificadar de operacibn DIen lugar de Do el cual se utiliz para la inistrucmn AND. Despus de que se busea la instnioeidn en la memoria y se decodifica, sbln estar activa una salida del derodficador de operacin y esa salida determina La secuencia de micmperaciones que sigue el control durante la ejecucin de l a instruccin de referencia a memoria.

LIJA: Cargar a AC Esta instruccin transfiere la palabra de memoria especificada por h direccin efectiva a AC. Las microoperaciones necesarias para ejerutar esta instnicci6n son

Al revisar el canal del sistema de bus mostrado en la figura 5-4 notames que no hay una trayectoria directa d d e el bus h s t a AC. El circuito sumador y Igico m i b e informad6n de DK la cuaI puede transferirse a AC. Por lo tanto, primero a necesario llevar la palabra de memoria a DR y despus transferir el contenido de DR a AC. La raz&npara no conectar el bus a Ias entradas de AC es el retraso que se encuentra en el circuito sumador y 16gico. Se considera que d tiempo que toma leer en h memoria y transferir la palabra a travb del bus y el circuito sumador y 16gico es mayor que e l tiempo de un ciclo de reloj. Al no condar el bus a hs entradas de AC pakmos mantener un ciclo de reloj por micrmperaci6n.

STA: Almacenar AC
sta inskucci6n almacena el contenido de AC en la palabra de memoria especificada por la dhecu6n efectiva. Como la salida de AC se aplica al bus y la entrada de datos de la memoria estA conectada al bus, podemos ejecutar.
esta uistnicci6n con una micreeracibn:
QT4:

M[AR] t AC, SC

+O

BUN: Brinco incondicional


Esta instrucci6n transfiere el control del programa a la instniccibn espeeificada por d i i 6 n efediva. 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. PC se inere~enta en el tiempo TI para prepararlo para la dii.eeei6n de la siguiente instruccih en h secuencia del programa. La iristnicci6n BUN permite que el programador especifique una instruccin fuera de secuencia y se dice que el programa se brinca de manera incondicional. Esta instnzccibn se ejecuta con una ~ ~ e r a c i 6 n :

La d-ihn efectiva de AR se transfiere por el bus comiln al PC. Al mtableeer SC a Q se transfiere el control a To. Despus ce busea y se ejecuta la siguiente instruccin de la direccih de meinoria proporcionada por d nuevo valor en PC.

!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. Cuando se ejecuta, la instruccibn BSA almacena la di&& de b siguiente,insktuccibn en secuencia (la cual esta disponible en PC) dentro de una pmiei6n de la memoria especificada por la direcci6n efectiva. La dimci6n efectiva mAs uno se transfiere'despusa PC para seniir como la direccibri de la primera hstrucci6n en la subrutina. Esta operacin se especificb en la tabla 5-4 con la siguiente transferencia de registro:
M [ A R ] t PC, K
+ AR

+1

.
dimccidn d t ptnmo

Un ejemplo nurndrico que muestra cmo se usa esta instnicci6n con una subrutina aparece en la figura 55-10. Se considera que la instnicci6n BSA estd en la memoria en la direccin 20. El bit 1 es O y la parte de la direccin de la instnicci6n time el eq,uivalentebbrio de 135. Despus de las fases de biiaqiiaquda y dwdificacin, PC contiene 21, que es la direccidn de la siguiente inshzieci6n en el programa (demiminada direccin de refmo). AR contiene la direcci6n efectiva 1% Esta se muestra en la parte (a) de la figura. La
instmcci6n BSA ejecuta Ia siguiente operacihn numrica:

de esta operacidn se muestra en la parte @) de la figura. La d'wocibn de retorno 21 se almacena en la localidad de memoria 135 y e l control contina con d programa de subnitina que comienza desde la direeei6n 136. El regreso al programa original (y la di~eccibn 21) se consigue
Figura 510 Epplo de la ejecuci6n de la instruccidn BSA.
Memoria
O
BSA Memoda

E 1 resultado

135

BSA

135

Siguiente instruccin

Sigifente i ~ ~ ~ t r u m b

S~ibrutina

1
BUM
135

mediante una instruccin BUN mind-ta, colocada al h a 1 de la subrutina. Cuando se ejecuta esta btmcd6h d mnml regresa a l a fase indimta para leer la dire&& kktim en la lkalidad 135, donde encuentra la dimi6n 21 que se guardb antes. -15:ando se ejecuta .la instruccin BUN, la direcci6n efecti'va 21 se 'transfiere a PC. El siguiente cfcio de la instnrcci6n encuentra PC rion el valor 2 1 , por lo que el' control sigue ejecutando la instrucci6n en la direccibn de retorno. Por lo general, la imhxei6n BSPr ejecuta la hnci6n que se denomina llamada a subrutina. La inskucci6n BUN indirecta al final de la subrutina ejecuta la funcin que se denomina retomo de la subrutina. En la mayora de las mputadoras comerciales, la direccin de retorno asociada con una subrutina se dmaana. en un regstra de procesador o en una porcin de la memoria Ikrnada pila (stack). Esto se analiza ms adeiante con mayor detalle en la secci6n 8-7. No e~ posihle ejecutar lai operacibn de la Instmcci6n BSA en un ciclo de mloj m d o s e u t i l i el bus del sistema de la computadora bgsica. Para usar en h a adecuada, l a memoria y d bus, la inetniai6n BSA debe ejecutarse con una ~ e n c i de a dos microopraciones:

D5T4: M[ARJ + PC, AR t AR D5T5: PC + M , SC + O

+1

La a e d de tmprhaci6n Tk inicia una operad611de escribir en memoria, colma el a t e n i d o del PC dentro del bus, y habilita la entrada iNR de AR. La operacidn de escribir e m e m o r i a $e tmpleb y AR se incrementa cuando ocurre la siguiente trawicin de reloj. E l bus se utiliza en T5para transferir eI contenido de AR a PC.

ISZ: Incrementa y brinca s i es cero Esta insinicci6n incrementa la palabra especificada por la direccihn efectiva y, si el valor incmnentado es igual a O , PC se incrementa en 1. El programador por lo general almacena un nmero negativo (en complemento a 2) en la palabra de memoria. Como =te valor negativo se incrementa una y otra vez en uno, eventualmente alcanza el valor de cero. 13n ese momento,PC se incrementa en uno para saltar la siguiente instnicci6n en el programa. Como no es posible incrementar una palabra dentro de la memoria, es necesario leer la palabra dentro de DR, incrementar DR y almacenar otra vez la palabra en la memoria, Esto se hace con la siguiente -uencia de micmoperaciones:

D6T4: DR D6T5:DR

DR + 1 D6Td MIAR] + DR, si (DR = 0) entonces (PC + PC

t .MIAR]

+ 11,

SC t O

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, Las microoperaciones que s e ejecutan durante los tiempos T4 T5 O T6 dependen del valor del &digo de la operacihn. Esto se indica en el diagrama de flujo mediante seis trayectorias diferentes, una de las males

Diagrama de flujo de control En la figura 5-11 se muestra un diagrama de flujo que muestra

Figura 5-11 Tabla de flujo para instrucciom de referencia a memoria.


Instruccibn k r e f e ~ l a pmemorla
'

AND

AaI3

11

LDA

STA

lf

Do4

ir

11134

Ir

D 2 T d

lr

4T.I

DR +MIAR]
tr

DR t M [MAR]
D0T5
r

DlT5
AC

'
DR

D2T5

M [AR] t AC SCtO

ACtACADR SCtO

ACtAC+DR E tCd SCtO

i -

SCtO

BUN

85A

ISZ

nb7

r
D6T6

M [M] t DR Si (DI? = 0) Entoiraep(PCtPC+ 1)

sc4-o

toma eI control despus de que se d e c d i c a la instrucci6n. En cada caso, el contador secuencia1 SC se barra a O can la Siltima seal de temporizacibn. Esto provoca una kransdel control a la seal de temporizaci6n To para q w qomience el siguiente ciclo de instruccibn. N6tese que d o necesibrnos siete h l e s de temporizacin para tar la instnicci6n m 4 9 larga @ Z ) . La computadora puede disefiarse con un contador secuencia1 de 3 bits. La razbn para utilizar un contador de 4 bits para SC es proporcionar seta1es de tempohci6n adicionales para otras instrucciones que se p m t a n en la seccin de problemas.

Una computadora no puede tener un propsito 6til a menos que 8e comunique con un ambiente externo. Las instrucciones y los datos almacenados en la memoria deben pmvenir de algn dispositivo de entrada. Los multados computacionales deben transmitirse al usuario mediante algn dispositivo de salida. h s computadoras comerciales incluyen muchos tipos de dispositivos de entrada y salida. Para mostrar la mayor park de b s reque bientos bdsicos para comunieacibn de entrada y salida, utilizaremos como

ejemplo una unidad tednal con un teclado e impresora. L a organizacibn de la entrada-salida se analiza ms adelante en el captulo 11.
Configuraci6n de entrada-salda
La terminal enva y recibe informacin serial. Cada cantidad de informacibn tiene ocho bits de un c6digo alfanumrico. La informacidn serial del teclado se cambi dentro del registro de entrada INPR. L a informacin serial para la impresora se almacena en el registro de salida OUTR. Estos dos registros comunican en forma serial con una interfaz de comunicaci6n y con el AC en paralelo. La configuracin de entrada-salida se muestra en Ia figura 5-12. La interfaz que transmite recibe informacin serial del teclado y la transmite a INPR. La interfaz que recibe acepta infomaci6n de OUTR y la enva en forma serial a la impresora. L a operacibn de la interfaz de comunicacin cena1 se explica en la secci6n 11-3. El registro de entrada INPR consta de ocho bits y contiene inforrnaci6n de entrada alfanum~rica. La bandera de entrada de 1 bit FGI es un flipflop de control. El bit de la bandera se activa en 1 cuando hay disponible informacidn nueva en el dispositivo de entrada y se desactiva a O cuando Ia computadora acepta la informacibn. La bandera es necesaria para sincronizar la diferencia de la velocidad de temporizacibn entre el dispositivo de entrada y la computadora. El p m s o de transferencia de informaci6n es como sigue. Al principio, Ia bandera de entrada FGI s e desactiva a O. Cuando se oprime una tecla en el teclado, s e ejecuta un corrimiento sobre un ckiigo alfanumrico de 8 bits dentro de INPR y la bandera de entrada FGI se inicia

regisiro de entrada

Registros de *computadora

Y fl~pnops

I m p m o r a

.=

Interfaz

OUTR

Teclado

Int& transmiswa

registm de salidri

en 1. Mientras la bandera estd en uno, no puede cambiarse la infonnacih en INPR al oprimir otra teda. La computadora comprueba el bit de la bandera; si es 1 , la infomci6n de INPR se t r d r e en paraielo dentro de AC y FGI se reinicia a O. Una vez que se desactiva la bandera, puede i n t r a d u b informacihn nuwa dentro de N P R al oprimir otra teda. E l registro de salida OUTR funciona en forma similar pero la d-bn del flujo de irdoma& est invertida. Ai principio l a bandera de salida
FGO se activa m 1. ta computadora comprueba el bit de la bandera; si es 1, la infonnaci6n de AC se transfiere en paralelo a OUTR y FGO se desactiv a O. El d i s p o s i t i v o de salida acepta la infomacibn codificada, imprime el carcter correspondienk, y cuando se S e i n a la operaci6n activa FGO en 1. h computadora no carga un nuevo car-r en OUTR cuando FGO es O porque esta condicin indica que el dispwitivo de salida s e encwntra en el pniceso de imprimir el carcter.

Instrucciones entradaealida Se necesitan irlstrucciones de ehtrada y salida para transferir informacin hacia y d d e el registro AC, para comprobar los bits de bandera, y para controlar la opci6n de interrupci6n. Las instrucciones de entrada-salida

Ciclo de instruccibn
ir

=I

Ciclo de intemipA6n

I n s i d n para busmr y demdtlicar

dlrm3n de retorno en la posicibn O

Almacenar

[O] +- PC

Ejecutar Instnicci6n

I
W f m r a la posicibn 1
PCc1

I
IEN t O R t O

=O
ir
7 1

R t l
I
f

1r

'

Figura 5 4 3 Tabla de fiujo para el d o dc intcrrupiw

un registro de proceaador, una pila de memoria, o una posici6n de memoria Aqu la localidad de memoria en la direccibn O como l u w para almacenar la direccin de retorno. Despuk el control inserta l a localidad 1 dentro del PC y a b i l i t a IEN y R .para que no puedan murrir m& intermpciohes hasta que se haya atendida la solicitud de i n b mipcidn de la bandera. Un ejemplo que mwtra l o que sucede durante d ciclo de intenipci6n aparece en la figura 5-14. Supongamas que ocurre una interrupci6n y R se inicia en 1 mientras el control est ejecutando la instruccin en la direcci6n 255. En este momentu) la d k & n de retorno 256 est en PC. E i programador ha colocado previamente un programa de sewicio de entrada-salida en Ia memoria comenzando en la direccibn 1120, y. una instruccibn BUN 1120 m la direccin 1. Esto se muestra en la figura 514(a). Cuando el control danza la setal de temporhci6n Toy encuenha que R = 1 , prmede ewi el ciclo de hkmrpciibn. El contenido del PC(256)se ahnacaa en la localidad de memoria O, PC s e inicia en 1 , y R se rrinicia a O.

+ea.

Memoria

(a) Anta de la Miempcln

(b) W p u b dd ciclo de intempci6n

Figura 5-14 Ejemplo del &lo de interrupcibn.

Al comienzo del siguiente cicIo de inshuccibn, la instrucci6n que se lee de la memoria esta. en l a direccin 1 porque &te es e l contenido de PC. La instrucci6n de brinco en Ia dkwibn 1 hate que el programa se transfiera al programa de servicio de entrada-mlida en ia dimcidn 1120. Este programa cornprueba las banderas, determina cual bandera est en uno y despus transfiere la informacin de entrada o salida requerida. Una vez que hace esto, 8e ejecuta la insEtucci6n ION para activar IEN en 1 (para habiiitar interrupciones posteriores), y e l programa regresa a la posici6n en la cual fue interrumpido. Esto se muestra en la figura 5-14(b). La Xnstrucci6n que regresa a h computadora al Iugar original en el proarama p b i p a l es una in$tnirni6n.de brinco indbzto, con una parte de dimi611de O. Esta instrucci6n se coloca al final del programa de servicio de entrada-&ida. Despub de que esta instrucciSn se lee de Ia memoria durante b fase de bsqueda, el control va a la fase indirecta (porque I = 1) para leer la direcci6n efectiva, La direccidn efectiva esta en la p i c i 6 n b y es la direccin de retorno que se almacm6 ahi durante el ciclo de interrup-

cibq previo, ta ejecuadn de h instrucci6n B N indirecta da como resultado l a colocaci6n dentro de FC de la dimi6n de retorno en h localidad 0.
Ciclo de int-pcibn

Ahora esbmos preparados para listar ks enunciados de tractshcia de registros para el ciclo de intmupci6n. E1 ciclo de interrupcidn se inicia d q u & de l a ltima fa= de ejecucibn s el fiip-flop R de interrupcin es igual a 1. &te flip-flop se activa en 1 si IEN = 1 y si FGI o FGO son iguales a1 . Esto puede suceder con cualquier transici6n de rdoj excepto cuando las

166

W m Organizacih y diseiio de computadoras

sefalesde temporizacibn Tw Tb o T2estZln activas. La condici6n para activar el fipflop R en 1 puede expresarse con el siguiente enunciado de transferencia de registro:

TJT Ti(lEN)(FGI + FGO): R +1

B i smbolo
modifiacidn de la frise de bsqueda

entre FGI y FGO en la huici6n de control representa una funcibn OR 16gica. A esto se a p k a la funci6n AND con IEN y r0','I'G. Ahora modificaremos las fases de bdsqueda y decodificacidn del ciclo de instniccibn. En lugar de d o usar las d a l e s de temporizaci6n To, Tp y T2(como se muestra en la figura 5-9) aplicaremos la hnci6n AND con R' a las tres seales de bemporizaci6n para que las fases de bsqueda y de decodificaci6n se reconozcan de las tres funciones de control R'T& R'Tl y R'T2. Za razbn para hacer esto es que el tiempo en que se ejecuta la instruccidn y SC se borra a O, el control recorre una fase de biisqueda s610 s i R = 0. D e otra manera s i R = 1, el control reromera un cicIo de instrucci6n. E1 ciclo de interrupcin almacena la di-n de retorno (disponible en PC) dentro de h posici6n de memoria O, modifica a la posicin de memoria 1, y desactiva IEN, R y SC a O . Esto puede hacerse con la siguiente secuencia de
micmpraciones:

Durante la primera M a l de temporizacin se borra AR a O, y el contenido de PC se transfiere al reghtro temporal TR. Con la segunda seiZEal de temporizaci6n, la direeeibn de retorno & almacena en la memoria en I a posicibn O y PC se carga a O. La kercera sefial de temporizacibn incrementa PC a 1 , desactiva IEN y R, y el'control regresa a Toa b n a r SC a O. El inicio del siguiente cielo de insItriccidn tiene la condicibn RT, y el contenido de PC es igual a 1. Despus el control recorre un ciclo de instrucci6n que busca y ejecuta l a instnickin BUN en la lacalidad 1.

5-8
diagrnma de flujo

Descripcin completa de una computadora

para in compwtudorn brisica

En la figura 5-15 se muestra e l ltimo diagrama de flujo del ciclo de instruccin, incluyendo un ciclo de intermpci6n para la computadora bsica. E i flipflop de interrupcihn R puede iniciarse en cualquier momento durante las fases indirecta o de ejecucibn. El control regresa a la &al de temporizacin Todespuds de que SC se borra a O. Si R = 1 , la computadora qecuta un ciclo de intempci6n. Si R = O, la compubdora ejecuta un ciclo de instruccibn. Si la initrucci6n de referencia a memoria, la computadora comprueba primero si existe una direcci6n indirecta y despuk contina ejecutando la

SEC-

5 8 DeSajpih

compieta de una computadora

167

Inicio

SCtO.IEN t 0 , R t O
I

(Ciclode lnstruccibn)

=O

= 1 (Ciclo de inwrrupcibn)

1r

RTo

RTD

AZP+PC
9 f

I
R ' TI M
R' TZ

AR+O.TR+PC
1

RTI

IRcM[ARJ,PCtPC+l
11

[AR] t TR, PC t O

1
P C t P C + 1, IEN+O RtO,SC+O

RT2

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

Q/O)

=1

=O

(directo)

"

DflT3

" W'T3
Ejecutar

'

D'TI T3

lr

Db71*T3

Ejecutar
la instruccin de

A R t M[AR]

Nada 1

la instruccibn de:

eniradasalida

refereocia a regiritm
~(tabh 53)
i r

( t z i b h A 5 )

Ejmiar

la instrumibn de referencia a memorla (tabla $11)


11

Y
Figura 515 Tabla de flujo para la operacin de una mmputadora.

instruccin decodificada de acuerdo con la tabla de fIujo de la figura 5-11. Si Ia instrucci6n es de referencia a registro se ejecuta con una de las microopmaciones listadas en la tabla 5-3. Si es una uistniccibn de entradasalida, se ejecuta con una de las micrmperaciones listadas en la tabla 5-5. En lugar die utilizar un diagrama de flujo, podemos d d i r la operaci6n de Ia computadora con una lista de enunciados de transferencia de registro. Esto se realiza al a~umular todas las funciones de control y microoperaciones en una tabla. Las entradas se toman de las. figuras 5-11 y 515, y las tablas 5-3 y 5-5. Todas las funciones de control y micrmperaciones paka la computadora s m m e n en la tabla S-6. Bii la tabla, l o s enunciados de transferencia de registros describen de manera concisa la organizacin interna de la computadora basica. Tambibn proporcionan la informaci6n necesaria para el diMo de los circuitos 16gicos de l a computadora. ias funciones de control y los enunciados de control condicional que se listan en la tabla formuian las funciones booleanas para las compue- en la unidad de control. La lita de rnicrwperaciones especifica el tipo de entradas de control necesarias para los registros y la memoria. Un lenguaje de transferencia de registros es t i l no 5610 para d e i r la organizaci6n interna de un sistema digtal, sino tambin para especificar los circuitos 16gicos necesarios para su -o.

59

Diseo de una computadora bsica

La computadora bsica 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 lgico conectado a la entrada de AC

f -

Ia unidad de memoria es un componente estndar que puede obtener .secon facilidad en el mercado. L m registros son de1 tipo que aparecen en la figura 2-11 y m similares al circdto integrado 74163: Las flipflops pueden ser del tipo D o JK, como se describen en la seccin 1-6. tos dos decodificadores son componentes estandar sidlqres a los que se prexntan en la m i 6 n 2-2. El sistema de bus c o m h puede construirse con diecisii multiplexores de 8 X 1 en Luia conf~guracin similar a la que aparece en la figura 4-3. Ahora vamos a mostrar dmo dL&r las compuertas lgicas de control. La siguiente secciin se refiere al &fio del circuito sumador y 16gico d a d o c m AC.

+b

m 5-9
TABLA M Funcionts de $~ntroI - a c i w

U de una mnpuiadma
para la -putadora bsica

169

Reciipaar
Decodificar
intempei6n

R'To:

R'TI:
R'T2:

D;ITa:

ARcPC (RtMfAR], P C ~ P C +1 DO,. .. , D,t J h d & c a r IR(12-14) AR +aR[o-ll), 2 tfR(1S) AIP tM [AR]

indireda:
T8T;T;(IEN)(FCJ+FGO): R t l RFo: mto, TR+PC
RTi: RTz:

M [ A R ] t T , PC+O PC-PC+l, I E N t O , R t O , S C t O

R e f e a memoria.

AND

DpTd: &TJ:

ADD
IDA
STA BUN

& T . : 4T5: AC+AC+ DR, E t C d SCrO 4T4: DR +MIAR] 4T5: A C t D R , SC+O DaT,: M[AR]+AC, SC +O

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. Seales para controlar las entradas de los nueve registros. 2. Ceiales para cantrohr las entradas de lmtura y escritura de la
memoria. 3 . %fales para iniciar, borrar o complementar lm flip-flqs. 4. Wab para S , SI y S, con el n de seleccioi.iar un +bu para e l bus. 5. W l e s para controlar el circuito sumador y 16gh de AC.

Las es+cacwnes par8 las diversas d a l e s de control pueden obtenerse en forma directa de la lista de enunciados de transferencia de registros en Ia tabla 5 4 .

Los regis-

Control de registros y memoria de la computadora conectados a un sistema de bus comn se muestran en la figura 5-4. Las entradas del control de registro son LD (cargar), INR (incrementar) y CLR (borrar). Supongamos que queremos derivar l a estructura de compuerta asociada con las entradas de m n t d de AR. Revisamos la tabia 5-6 para encontrar todos los enunciados que no cambian

contenido de AR:

Los prberos tres enunciados specifican la transferencia de informaci6n de un registro o de la memoria a AR. E l contenido del registra fuente de la memoria se coloca en el bus y e l contenido del bus se transfiere a AR al habilitar la entrada de control LD.E l cuarto enunciado b r r a AR a O, El Ziltimo enunciado incrementa AR en f . Las funciones de control pueden combinarse en ,tres funciones booleanas como sigue:

SECU~N 5-9 Diseo

de una computadora

1 n

donde LD(AR) es la entrada de carga de AR, CLR(AR) es la entrada de borrado de AR y iNR(AR) B la entrada de incrementar de AR. Las c m puertas 16gichs de m n b l asociadas con AR se muestran en la figura 5-16. En forma similar podemos derivar las compuerkas de control para los otros registros a1 igual que la lbgica necesaria para controlar Ias entradas de lectura y escritura de memoria. Las compuertas 16gicas amiadas con la entrada de lectura de memo& se infieren al revisat la tabla 5 4 para encMtrar 10s 'wnm:ciados que especifican una operacidn de lectura. ta operacirin de lectura se reconoce por el smbolo t MrAN.

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

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 nmem binarios para S2S,So que seleccionan cada registro. Cada ndmero binario est asociado con una variable booleana x, hasta x7, que corresponde a l a estructura de compuerh que debe estar activa para wleccionar el registro o la memoria para e l bus. Por ejemplo, cuando x, = 1, el valor de S$iSo debe ser O1 y se seleccionara la salida de A R para el bus. La tabla 5-7 se reconme como la tabla de verdad de un codificador biario. La ubicaci6n del codificadar en las entradas de la lgica de selecei6n de bus ce muestra en la figura 5-18. Las funciones boolenas para el codificador son

Control de un bus comn

Con el fin de determinar l a lgica para cada entrada de codifieador a necesario encontrar las funciones del control que colocan los registros correspondientes dentro del bus. Por ejemplo, para encontrar la 16gica que hace x1 = 1 , revisarnos todos l o s enunciados de transferencia de registros de la tabla 5-6 y tomamos aquellss que timen AR como fuente.

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 lgica que genera xr tambin debe aplicarse a la entrada de lectura de la memoria. Por l o tanto, l a funci6n booleana para q es igual a la que se i n f w antes para la operad6n de lectura.

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


registros.

5-10 Diseo de un acumulador lgico


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 seleccin debus

$10 D h o

de un acumulador ihgico

175

de las funciones de contmI en la lista anterior. La funcin de control para la mkmopmaci6n de borrar es r Bit donde r = D71rT3y BI1 = IR(11). La aalida de la compuerta AND que genera e s b fund6n de control s t s l conectada a la entrada CLR del registro. D e igual manera, la salida de la compuerta que implanta la microoperacin de incrementar est conectada a la entrada iN del registro. Las otras siete operaciones se generan e n el circuito sumador y lgico y se cargan dentro de AC en el momento adecuado. Las salidas de Ias compuertas para cada funci6n de control estn marcadas con un nombre simboliea. Estas salidas ae utilizan en el -o del circuito sumados y lgico.
Circuito sumador y lgico El circuito w d o r y 16gco puede subdividirse en 16 etapas, donde cada una comesponde a un bit de AC. La construccin interna del registro es como
figui5-29 EPtrudum de ?puerta
-de

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) esti conectada a las entradas de las compuertas AND. La figura 5-21 muestra una de esas etapas de regisb AC (sin las compuertxts OR). La 'entrada esta etiquetada Ii p la salida AC(i). Cuando s e .habilita la entrada LD, las 16 entradas 1, para i = O, 1 , 2, ., 15 se transfiewn a AC (0-15).

dmft~ WmtlllfOr
y Idglco

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 simblico 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 operacin AND se realiza al aplicar la funcin 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 operacin de desplazamienta a la izquierda transkie el bit desde AC (i - 1). El circuito sumador y 16gico consta de 16 etapas interconectadas.

5-2.

Una mmp~tadora utiIiza una unidad de memoria con 2S6K palabras de 32 bits cada una. Un d i g o de instruccibn binario se almacena en una palabra de memoria. La instnieci6n tiene cuatro un bit indirecto, un cdigo de operacin, tuta de d i g o de registro para eswficar uno de 6P regisirosy una parte de dired&

v.

a Cuntos bits hay en e l e 6 d i de operacin, la parte del d i g o de @stM y 1s parte de -dk&r? b . D i j e el formatode palabra & direccin e indique la cantidad de bits en
cada parte.

5-2

53:

cuntos bits hay en Ias entradas de datos y de direccibn de ia memoria? Cul ES i a diiewmh enbe wra instmicci6n de direcchamiento directo e h d k t o ? @ ~ h t a s referencias a memoria se nwesitan para cada tipo de ins~cci6n crin el fmde traer un operando al registro del procesador? las siguknh entradas de controI estrin activas &-I el sistema de bus que se m w t m en la fipra 5-4. Para cada caso,especifique la trmshencia de m@sttuque se ejtxutd durante la siguitransiQ6n de reloj.
c.

a . l

b .

1 E. J d O

1 O O

1 O O

IR

Ler

PC
DR AC

Escribir:
m

Sumar

S 4

Las siguientea h n s h c i a s de regkos se van a ejecutar en e sistema de b figura 54. Para cada transferencia e8peciEique:1)e1valor binario que debe apiimm a Ls enbidas de deecibui de bus Sz, Siy Sd 2) el registro cuya entrada de control LD debe estar activa (si es que hay alguna}; 3) una opmacn de w r a o d t u r a (sim nnecesita) y 4) la opemcibn en el circuito sumadar y 16gim { s i hay algtrml).

a a+FC
b. IR tM[AR]

r. M[AR)t-TR
d. AC t D R , DR c A C (mlzadas en forma simdtnea]

5-5.

Explique por qu no pude e j m cada una de las siguientes rniaoop raciones durante un soio p& de reloj en el gistema que se muestra en la figura 5 4 , Espefifique una secuencia de m i ~ o o ~ a c i o nque e s *ten la operaci6n
a. I R t M [ P C ]

5-6.

(AC no cambia) Considerelos formatos de Inclmcein de la mpu&dora bsia mostrados en la figura 5-5 y la lista de instruccionesproporcionada en la tabla 5-2. Para cada una de las siguientes idmcciorm de 1 6 bib, prop0rci.o~ el &digo hexadecimal de cuatro bits y explique msus propias palabras cui instnic ci6n va a ejectar. a. OOO1 0000 OOIQ 0309 b . 1011 W1O O1W

b. AC+ AC c. Di3 tD R

+ AC

+ TR

w 1

e. O 1 1 1 0000 0010 0000 5-7.


5-8.

~Cuies son las doshtnicciones necesarias en la computadora W e a para iniciar e l flip-flop E en 12 Dibuje un diagrama de twnporizacih similar a la figura 5-7 considerando que SC se borra a O en el tiempo T3 s il a s e h l de eonbl CCp &A activada.

5%

C,se activa w n la transici6n de reloj positiva a h a d a c m T, E l contenido de AC e n la computadora bsica es el hexadecimal A937 y el valor wchl de E'es 1. Determine el contenido de AC, E, PC,AR, e IR en hexadeeimal d v u & de la ejmci6n de Ia instnicci6n CLA.Repiia 11 veces
ms, comenzando desde mida una de las instrucciones- de referwicia a regish. El valar inicial de PC B d hmadecimalO21.

5-10.

Una instnicci6n en la direcci6n 021 en la computadora bsica tiene I = O, un d i g a de operacin de la instru46n AND y la park de la direccin igual a 083 (todos los niirnema mtn en hexadechal). La fibra de memoria en la direcc6n E& contiene el operando B8F2 y el contenido de AC es A937. Analice el ciclo de instmccii5n y determine el contenido de los siguiente registros al fural de la fase de ejecuci6n: PC,AR, DR,AC e IR. Repita el problema seis v ms comenzando con un abdigo de opera& de o h instruccidn de referencia a memoria. Muestre el contenido en hexadecimal de los registm PC,AR, DR, IR y SC de la computadora basica cuando se bu= y qecuta una instruccin indirecta iSZ de la memoria. El antenido de PC es m.El contenido de la memoria e n la direccin 7FF es EA9FFE l contenido de la memoria en la direcci6n A9F es OC35. E i contenido de la memoria en la diieeci6n C35 es Pqofcione la -&a en una tabla con cinco columnas, una para cada r e @ h y un 91611 para cada eai de temporizan, Muestre el contenido de 10s registros dspus de l a transicin positiva de d a pulso de

M5-12.

El contenido de PC en la computador~Mcica es 3AF (todos los niirnerasestan en hexadechal). E i wtenidp de AC es 7EC3.El antenido de la memoria

M.

Explique por qu& no puede ejecutarse cada una de las siguientes microop raciones durante un solo pulso de reloj e ne l sistema que se muestra en la figura 5 4 . Especifique u~ secuencia de micrmperacioneei que ejeniten la operacin.
a. IR tM [PC] b . A C t AC + TR c. DR +DR + AC (AC no cambia)

5 6 .

Considere los formatos de imLnied6n de la'compubdoraM c 4 i mostrados en la figura 5-5 y h Esta de instruccione proporcionada en La tabla 5-2. Para cada una de las siguientes instrucciones de 1 6 bits, proporcione el cdigo hadecimal de cuatro bits y explique m n BUS propias palabras 4 instruc ci6n M a ejmtar.

5-7.

$ d e s son las dos instrucciones neeecarias en la computadora wca

5-8.

para iniciar el flipflop E en l? Dibuje un diagrama de temporizaa6n similar a la figura 5-7 considerando que SC se borra a O en el tiempo Tas ii a seifal de control C7est activada. 1 2 , se activa con la transicin de reloj positiva &da con T1. El contenido de AC en la computadora bsica es e l hexadecimal A937 y d d o r inicial do E'# 1. W r m h e1 contenido de AC,E, PC,AR, e IR en hestadecimal despus de la ejecucin de la instnicci6n CLA. Repita 11 veces ms, comenzando desde cada una de laa instrucciones de referencia a r@b. El valor inicial de PC es el h a d e c i d 0 2 1 . Una instrucci6n en la direecidn O21 en b computadora bsica tiene I = O, un d i g o de operacih de la insbmin AND y la parte de la direm6n igual a 083 (todoslos niimeros d n en hexad&al). La palabra de memoria en la d i 6 n 003 contiene el operando BSF2 y el coniddo de AC ES A937. Ardite el delo de instnicci6n y detemine el contenido de los sieentes registros al final de la fase de ejeeuei6n: PC,M, DR,A C e IR. Repita e l problema &S veces ms comenzando m n un &digo de opaei6n de otra instniOn6n de reerencia a memoria. Muestre el contenido en hexadecimal de los registros PC,AR, DR,IR y SC de la computadora W i e a d o se busca y ejecuta una insbucdh i n d M E2 de la memoria. E l contenido de PC ES 7PF. El contenido de la memoria en la direcrtbn 7FF es EASF. E l conaenido de la memoria en la direcci6n A9F es QC35. El contenido de la memoria en la dhcci6n C35 m FSF Pmporcione la respuata en una tabla con &ICO columnas, una para d a y un rengln para =da seai de temporimei6n. Muestre el contenido de los registros despusde la transicih positiva de cada pulso de

5 9 .

5 1 0 ,

5-11.

M ] .
5-12

El contenidode PC en la computadoraW c a es 3AF (todus los nmerosestn en hexadecimal), El cantenido de AC es Q contddo de la memoria

513.

en l a direccidn 3AF es 932E.El contenido de la memoria en la d i 6 n 32E a 094C. E i contenido de la memoria en la d i d n 9AC es 8B9F. a. Cules la instnaccibn que se buscar y se ejecutara dspuh? b . Muestre la m a 6 n binaria que a d h r i en AC niando se *te k instmcci6n. c. Proporcione el contenido de los registros PC, AR, DR, AC, e X R en hexadecimai y l mvalores de E, 1, y el contador s e c u d CC en binario al h l del ciclo de instrucci6n Considere que ias primeras seis de rek, ' de la computadora W e a que se listan en la tabla S 4 se van a cambiar a las instrueeim especificadas m la tabla siguiate. EA es la direccin efectiva que reside en AR durante el tiempo TJ. Considere que el circuito sumador y 16gieo de l a figura 5-4 puede m k a r la operaci6n OR exclusiva AC + AC @ DR Considere a d d que e1 circuito 16grm y sumdor no pude efechrar wr forma dilecta la resta. k resta debe hacerse utilizando el complemento a nfimems 2 del susbaendb al complementar e incrementar AC. Proporcione la 6ecuencia necesaria de enunciados de hansfereneia de regispara decutar d a una de las inrshccioneslistadas c o d o con i a temporizaa6n T , . Ntese que e l valor de AC no debe modificarse, a menos que la instnidn especifique un cambio en su contenido.Ustd puede utilizar TR pam a i m a c e ~ el r contenidade AC en forma temporal o pude intemb'ir DR y AC.

SImbolo

-hcihdmMiia

IkcripPSn en palabras

XQR ADM SUB

000
001 010

XCH
SEQ

011
lOJ

BPA
5-14.

i0i

ACtAC@M[EA] M [ & I ] t M [ E A ] f AC AC+AC - M[EAJ AC tM [ E A ] , M [ M ] t A C If (M[4AJ = AC) e n [PC+PC + 1) If (AC > O) entonces

O R exclusiva a AC
Sumar AC a la memoria Restar en memoria de AC Intercambiar AC y la memoria 1 3 si hay s i p de igual

[PC+EA)

Brincar s i AC es positiva y diferente de cero

Haga los siguienb cambios a l a computadora Msica. l . A p p e un al sisbma de bus C i R (registro de mQ] que se seleccionar eon S$,S, = 000. 2 . Sustituya la instnieeibn TSZ con una instnicci6n que cargue un nilmero dentro de CTR.

Direccin LDC

CTR +M Illireccih]

3. Agregueminstntcci6nde-aFegihaICSZ:btCTRy brincar a la sipiente instrucci6n si hay un cero.Anaiice la ventaja de este

cambio.

5-15;

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, SX 1 6 , requirimdo una direeabn de 16 bits. E lf o m t o de i n s t r u c c i n de la refemnaa a memoria que se muaka en la figura 5 4 a ) no cambia para 1 = 1 (direcci6n indirecta) donde l a parte de d i d b n de la inshcdn se proporciona mediante los 16 bib de la palabra que sigue a la ~ ~ 6Modiqw n . las m i a m p m i o n e s durante los tiempos T% T3(y T,si es neceario) para apegame a esta con& guraabn.

$ 1 6 .

UM eomputa$ora utiliza una memoria de 65,536palabras con 8 bits en cada palabra. Tiene l o s siguientes *w: PC,AR, TR {de 16 bib cada uno) y AC,.DR, IR (de 8 Wis cada m). Una insmiccibn de reterencia a memoria
palabxas: un &digo de operaci6n de 8 bits (unapalabra) y una d i d b n dq 16 bits (en las sigiiiente~ dos palabras). Todos los operandos son de .8 bits. No hay un bit indirecto. \ a Dibuje un diagrama de bloque de la computadora que muestre la memoda y los registros como en la figura 5-3. (No utilice un bus
consta de

comh.)

b . Dibuje un diagrama que muestFe da posian en Ia memoria de una instrueciSn ifpica do tres palabras y el operando de 8 bits correspon-

diente. I c L i s t e l a ~ d e m i ~ p a r a m p e r a r u n a ~ n d e referencia a memoria y colocar despub el ope~ando en DR.Comience a partir de la seal de temprizaci6n TI
5-17.

5-18.

Una computadora d i t a l time una W a d de memoria con capacidad de 1 6 , 3 8 4palabras, 40 bits por palabra. E i formato dei d i g o de instruccibn consta de 6 bits para la parte de b operacinn y 14 bits para la parte de direcci6n (no hay bit de modo M i ] . Dris instruMone8 s e guardan en una palabra de memoria y hay dispuible un e t r o de inshmiones de 40 bits en la unidad de conkml. FonnuJe un p d r m i e n t o para recuperar y ejewiar ~iristniccioms para e i a computadora. Un programa de salida reside en la memoria comenzando en la direccin 2300. Se ejecuta despus de que l a computadora reconoceuna interrup56n mando FGO se convierte en 1 (mientras IEN = 1). a. Qu instnicci6n debe colocarse en la direcan 1? b . Culesd e h ser las das Glrimas instruacion& del programa de salida?
ios enunciad? de bahsEerencia de registro para un registro R en la memoria de una computadbra son los siguienb (las X son funciones de control que ocurren en forma aleaforia):

5-r9.

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, salidas de datos, entradas de direcan


y entradas de emtpol p m leer y escribir como en la figura 2-12. Dibuje la hplantiiei6n de hardware de R y la memoria en toma de diagrama de

bloque. Muestre c6mo las frinciones de control X, a & seleccionan l a entrada de control de carga de R, las entradas de selemi611 de los multipleK O que ~ uste,d incluye en e l diagrama y las entradas de ledura y d i u r a
de memoria.

5-20.

h s .operacionesque van a ejecutarsemn un Gpflop F (el cual m se usa en la eompuadora Msicra) sewipifiean mdante las siguientes enunciados de tramferencia depgklxo:
:

flI:f + O

zT2: F tF

SS: F +G

ActivarFal BorrarFaO Complementar F Transferir el valor de G a F

D e &a manera, el contenidode F no debe cambiar. Dibuje el diagrama 16gico que muestre las conexiones de las compuertas que forman las funciones de control y las entradas del fiip-flop F. Utilice un fip-fiop ]K y minimice el

5-21.
5-22
5-23,

5-24.
5-25,

nmero de compuertas. Derive las compuertas de control asociadas con el contador de programa PC en l a eomputadora bAsica. Denve las compuertas de control para la entrada de escritura de la memoria en la computadora bsica. Muestre la Ibgica completa de los flipflops de interrupci6n R en la computadora bsica. Ufilice un Bipflop JK y minimice e l nmero de compuwb~. Derive la expresi6n h l e a n a para q (vase la tabh 5-7) M w h e que x, puede genmarse con una compuerta AND y una compuerta OR Derive la expresin booleana para la estructura de compuerta que borra e l contador secuencia1 CC a O. Dibuje el diagrama 16gico de la compuerta y muestre cmo se conecta la salida a as entradas I N R y CLR de SC (vQise la figura 54). Minimice el nGmero de compuertas.

1 . Be& C. G., J. C. Mudge y J. E. McNamara, Computer En@'-n8. Bedford, PIIA:Digital M,1980. 2. Booth, T .L . ,Intduction %oCompuler Enginwing, 3a M.Nueva York JohnWiley,
1884,

3. Gibson, G.A, C m p t e r Systm Conceptsand h i g n . E n g W Cliffs, NJ: P r e n b Hall, 199l.

5. Hi, F.J., y G .R Peterson, Digibl Syctems: ihrdware m i u r t i o n atd Lksigts, 3a M.

Nueva York JohnWiley, 1 9 8 ' 7 .

182

cAPrnno

Organizacin y dieeiio de computadoras

6. Lewin, M. H .Logie mign and Camputer Orgmbtmn. Reading, MA:Addim Wesley, 1983.

7, Mano, M. M,Computer Enghming: Mmre Decign. Englewood C l i , NJ:Prentice Hall, 1988. 8. Patterson, D .A. y L.H m y , CmpW Archiiecture: A A n t i f n t k Appmch. ! % m Matm, CA:Morgan Kaufmann Ilublishm, 1990.

9. Prosser, P.P . ,y D.E.Winkel, Tke At3 qfigital Design, 2a Bd. Englewd Cliffs,
Prentice Hall, 1987 10. Chiva, S. G,, C m p t Design ~ atta Arclnit~hre, 2a. E. Nueva York: HarpeeCollins

Publishers, 1991.

InIrduEQbn Lenguaje de mquina ZRnguaje d B L d o r E 1 eqsqbiador C i c h del programa Pmpmaa6n & operaciones aritm&aw y lgicas
subnltiri;as

F'rogrd6n de entrada-sada

6-1 Introduccin
Un sistema de computadora total incluye tanto circuiteria (knrdwre] como progmw&n (sopzlMtre). El hardware consta de ios componentes fsicos y
tado el equipo asociado. El software se mfie~ea los programas que estn .&ritos para la: computadora. E s posible conocer difemnks aspectos de programacin de computadora s i n xelacienarse con los M e s de cmo opera h Tambin es posble diseiiar parb de Ia circuikrla sin conocer las pdbilida& de su softwarr, Sin embargo,quienes se i n m en la arquitec tma de la computadora d&n conocer tanto l a con10 el softwm, porque los das a ~ influye" b m o en d otro. Emibir un programa para una computadora consiste en ~ ~ c aenr , forma direda o i n d i t a , una secuencia de instrucciones de dquina. b instrucciones de miquina dentro de la computadora forman un patr6n binario con el que a lo$:usuariw les iesuEtrr difcil trabajar y entender, si no e~ que imposible. Es preferible escribir programas con los smbolos m s familbre3 del conjmto de caracteres alfandricos. Como consecuencia, existe la necesidad de traducir los programas simb6licos orientado8 al usuario, a programas binarioa que reconozca el hardware.

~~.

~~

184

b p m a n -,de

la computaba

co~jutito de insfrircciones

frIi pmgmma d t a por eI u s d o puede serhydqadienk o dependenqw corre su progama. Por ejemplo, un programa & de la wmputrdma &#o wr Fortran eatilndar es indepdfenk de la mquina porque la mayora de las mmputadwas un -ama traductor que convierte el programa Pbrkan & n % n d a T + & m c l i pKrrviri~de la computadora cbpmible en la instalacibn p d & , Pera d ~rdjprna traductor es dependiente de Ja msyuiha porque debe traducir el pmfpnw"Fortran a l c M i i binario recon* &o por la cirqdki de h mphtadorri particular que s e utih. ~ " ~ ~ ~ ~ * ~ n i n c e p ^ d e p r o g e a m a c i 6 n - ~ = ~ . mitstra su r$aci6n con la r e p m k i h de htrucciones de hardwara l a primera parte pmenta la operaabn y eSentura bsiis de un programa que traduce un p q m m Stnwlico de usuario a un programa I i W eguivaimte El anlisis enfatiza Ioe mncqbos i m p r h b del traducbor ms que los M e s de pducir en realidad el p q m m mismo. l a utilidad de las diversas imtmcciones de mquina se demuestran mediante v+mplos de pmpmaci6n bsica. El conjunto d e inshucciones de ia computadora bsica, cuya organizaci6n de hardwa~ se explor en e l capitulo 5, se utiliza en este captulo para ilustrar mu&s de las W c a s que se usan con reguiaridad para programar una computadora. t)e esta - m e r a , 'es posible explorar la relacin en& un programa y las operaciones de la circuikria que ejecutan las instrucciones. Las 26btrucciones de I a computadora bAsica se repiten en la tabla 6-1 para proporcionar una referencia &cil para los ejemplos de programaci6n que siguen. A cada uistnicci&n asigna un shbolo de tres letras para facilitar h egcritura de programas simblicos. Las primeras siete instnicciones son de referencia a memoria y las otras 18 son de referencia a registros y de entrada-salida. Una instnicci6n de referencia a memoria tiene tres partes: un bit de modo, un c 6 d i g ~ de o p r ~ de 9 ires Pits, y una direccin de 12 b i t s . El primerdigito hexndechal de ruia instrucci6n de referencia a memoria incluye el bit,de modo y el &ligo de opwacibn, ius otros tres digito~ espe5fi-n la direcci6.l.cEnuna instnicci6n de direccin indirecta el bit de mmiq es 1 y el valor del primer dgito k d e c i m a l flucth entre 8 y E. En el modo indirecto, la variacin es de O a 6. L ~ otras B 18 instniecione tienen un &digo de ope~aci6n de 16 bits. El c d i i pwa cada instrucci6n se lista como un nmero h d e c i m a l de cuatro d @ b . E l primer dgito de una instruccibfl de referencia a registro es siempre 7. E 1 primer dgito de una instruccin de entrada* es siempre F, El d d d o m que se usa en la columna de &mipci& denata la d h c b efectiva. La letra M hace refemcia a 4 palabra de memmia (operando) que se encuentra en la direcci6n efectiva.

~~

m m o

Un pwama

S iyia lista de instrucciones .o enunciados para dirigir a la computadora con el pmpbito de que ejecute ,una tarea de procesamiento de datos. Kiten varios tipos de b g i ~ a j e s de pmgra~nati6nque uno puede

SmboIo
AND ADD

Cdigo hexadecimal Aplitar AtJI3 M a A c Sumar M a AC, %arrear aE t k g m AC desdeM Almacenar AC en M Brincar en forma.inmdiciona1 a rn Salvark~dereiomoen m y ramificaram + 1 Jn~renaentar m y s.altar si hay un cero Bmrar AC h rE Complementar AC Complemehtar E Cimlar a la de&& E y AC Circular a la izquierda E y AC I m m e n t a r A, BrJncar si AC e s positivo Brincarsi AC esnegativo Brincar s i AC es cero Brincar s i E es cero Detener la computadora Introducir infomiacibn y borrar bandera Sacar infmmaci6n y barrar bandera Seilttu si la bandera de entrada esa activada Spltar si la bandera de salida est activada Hbilhr la inkmpcibn Deshabilitar fa intmmpci6n.

LDA STA BZM BSA , I =

CLA
CLE

CMA CME
CIR CIL INC SPA
SNA

,324 SZE HLT


INP

OUT SKI SKO ION TOF

escribir para una computadora, pero sta &lo puede ejecutar programas mando esGn representados de manera @terna en f o m binaria, Los programas escritos en cualquier otro lenguaje deben traducirse a la representacin b i r i a de las instni&iones antes de que la computadora pued ejecutarlos. 'Los programas escrit~~ para una computadora pueden estar en una de las siguientes categorfas:

1 . Cdigo binario, Este es una secuencia de instrucciones y operandos m b w o que lista la representacin exacta de instrucciones conforme aparecen en la memoria de la computadora. 2 CMgo wtul o hexad~imal. Este es una traduccihn equivalente del cdigo binario en representacin octal cr hexad-l. 3. Cbdigo ci&lh.' El usuario emplea shboIos (letras, nfirneros o caracteres especiales) para la parte de opera*, la parte de direcci41i y las otras partes del de irwtniccibn. Cada instruccin

186

m-~~bsica de Ia cwrputadora
simblica pude ad~cim a una instniecibn codificada en binario. Esta traduccin se hace mediante un programa especial llamado ensarnbhhr. Como un d l a d o r traduce los los, este lipa de propmas simb6licas se denomina programa de lenguaje enmb*. 4. Lmtpjm I& p r q m r d h & dfo nivel. Esb son lenguajes v i a l e s ~ W para reflejar W los procedhient&sutilizados en la 80Iua6n

I q u a j e msamblador

deunprob~enlugardeh~endd~~odelacimiiteda de la computadora. Un ejemplo de un lenguaje de programacin de alto nivel w F#tran. Elfnplezl sImbo108 y formatos orientad= a un

problema. E l pfograma e s t d t o & una gecuencia de enunciados establecid& de manera m a a como las personas prefiemn pensar cuando r~uelvenun probl&. S i e d q p , cada enunciado d& traducirse a una secuencia de Manes b k u j s antes de que la computadora pueda ejecutarlo. E i programa,que traduce un programa de lenguaje de alto nivel ce Uama m n p i M r . .,
L w j e e mquina

Habhdo con rigor, un propma de lenguaje, de &quina es un programa binario de categorfa 1. Debido a l a equivalencia simple enentre las repreientacioms M a s y octal o hexadecimal, ea costumbre denominar a la categora 2 ccmio tienguaje de Mgquina. Debido a la pelacidn de uno a uno entre una instrucdn kibblica y su equivalente binario, un lenguaje ensamblador se considera como un lenguaje a nivel de rndquina. Ahori usarmios la computadora bhsica para ilustrar la relacihn entre los lenguajes b i r i o y ensamblador. Consideremos e l programa biiario listado en la tabla 6-2. La primera columna proporciona la posicin de memoria (en binari~)~ de cada instnzcci4n u operando. La segunda columna lista eI contenido binario de estas localidades de memoria. (La localidnd es la h c i 6 n de la palabra de memoria en que se almacena la instniccibn. E. importante establecer la diferencia con la parte de di~eccibn de la instruccibn misma.) El programa puede almacenarse en la porcin de la memoria india d a y la computados puede ejecutarlo despus -comenzando desde la direccibn O. i a ckaiterfa de la computadora ejecutar4 estas instrucciones y
TfiBLA 6 2 Piiograrna binario para sumar dos n h e m

Localidad

SECU~N6 2 j e

de mquina

187

TABLA 6-3 Programa hexadecimal para sumar das nhems


-

Localidad

htrucci6n

~ddigo he*adedmal

realizar Ia t a r e a que se pretende. Sin embargo, una persona que observe este programa' tendrsi dificultades en comprender que se consigue cuando se ejecute e l programa. N o obstante, la circuiterfa de l a computadora slo reconoce este tipo de cdigo de instrucciones. Escriir 16 bita para cada instruccin es tedioso porque hay demasiados digitos. Podernos reducir k cantidad de digitcrs por instruccibn si escribimos el equivalente odal del c6digo binario. Esto requerirh seis digitos por instrucci6n. Por otra patte, podemos reducir cada instmcci6n a cuatro dgitas si ekribimbs el c6dQo hexadecirnal equivalente &mo se muestra en la tabla 6-3. Es conveniente usar la representacidn hexadecimal, sin embargo, e debe tener en menk que cada dgito hexadecimal deke convertirse a su n h e r o de cuatro bits equivalente cuando se introduce e l programa en I a computadora. ta ventaja de egcriiir prop;ramas binariqs en forma octal'ohexadecirnal equivaiente debe s e r evidente a partir de este ejemplo. E l programa de la tabla 6-4.utik los nombres de instrucciones simblicos (listados en la tabla 6 1 ) en lugar de su equivalente b h r i o o hexadecimalL Las partes de direccibn de las instrucciones de referencia a memoria, al @al que las operandos, conservan su valor hexadecimal. N 6 h que la
TABLA 6 4 Pmgiama con digas de operstcih simblichp

hlidad
OW 001

instniccibn

Comentarios

LDA 004

ADD
STA 006

002

1
004 005

HLT 0053
m 9 OlMO

006

Cargar el prinero operando dentro de AC Sumar el,segundosprando a AC h a c e n a r iamsuma en la posici6n 006 Detener la compufadora Primer operando d o operando {negativo) Almamnar la suma aqu

188

SEI~ Programacin bsica de h computadora

TABLA 6 . 5 Programa de lenguaje d l a d o r para sumar dos nmeros

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,
B ,

DEC 03
DEC -23
DEClO

c,

/Operando decimal /Operando decimal /Suma almacenada en la posicidn C /Fin del programa simblico

posici6n 005 tiene un operando negativo porque el bit de signo de la


posicih de la extrema izquierda es 1. L a inclusin de una columna para comentarios sirve para explicar la funci6n de cada instruccin. tos programas si&lims sop ms fdciies de manejar y, como consecuencia, es prefe rible escribir programas con slmbolm. Estos simbolos pueden convertirse a su cdigo binario equivalente al producir el programa binario. Podemos ir un paso mas adelante y sustituir cada direccin hexadmimal por una direccibn shb6lica y cada operando hexadecimal por un operando decimal. E s t o es conveniente porque, por l o general, mientras ae % e un programa no se conoce con exactitud la posicibn de los operandos num&ricosen la memoria. Si lm operando8 se colocan en la memoria d e pus de las instrucciones y si no se sabe con anticipacidn el tamah del programa, la posicidn de los v a n d o s numricos no se conoce hasta que se llega al final del programa. Ademis, estamos mAs familiarizados con los nmeros decimales que con sus equivalentes hexadecimales. El programa de la tabla 6 5 es el programa de lenguaje ensamblador para sumar dos ntmems. E l simbolo 0RG seguido por un niimero no es una uistniccidn de rndquina. Su propbsito es especificar un origen, esto es la posicin de memoria de la siguiente instrucci6n. Las siguientes tres heas tienen direcciones simbblicas. Sus valores se especifican porque estn presentes como una etiqueta m la primera columna. Despus del sImbolo DEC se especifican operandos decimales. tos nmeros pueden ser pwitivos o negativos pero, si son negativos, deben convertirse a binario en r e p m t a c i b n de mmpiemento a 2 con signo. La ltima lnea tiene el smbolo END, que indica e l h a 1 del programa. Los simbolos ORG, DEC y END, llamados seu&instrucciones,, se definen en la siguiente seccin. Ndtese que todos loe comentarios estn precedida por una diagonal. E l programa en Fortran equivalente para surnar dos nmeros enteros se lista en la tabla 64. Lxw dos valores para A y B pueden especificarse mediante an enunciado de entrada o mediante un enunciado de datos. La operacidn aritmktica para los dos nmeros se especifica mediante un enunciado simple. La kaducci6n de este programa Fortran a un programa binario

TABLA 4 P m g p a Portran para sumar dos n h e m

IHTEGEW

IIi

DRTR
EWD

A , 8'3

Bi C Br-23

C=A+B

consistemssignartresW&desdemanoria,d~paralms~y~ para la stima, y d q u 6 derivar la -en& de instrucciones binarias que forman la 8uma. Por l o tanto, un p~ compilador b d u e 1 - sfmbolcm & l p r o g r a m a 1 F o ~ a l ~ v a h b ~ q u e s e l i s ~ e tabh&2 nla

63

Lenguaje ensamblador

Un lenguaje de programacin se define mediante un conjunto de reglas. Los usuarios deben apegarse a todas las reglas de fomiato del lenguaje si desean que sus programas se traduzcan en forma correcta. Casi cada computadora comercial tiene su propio lenguaje ensamblador. Las regb para escribir un programa en lenguaje ensambladar se documentan y publican en manualque, por b general, tiene disponib1es el fabricante de la com~ubdora. La unidad basica de irn programa de l m p j e mamblador es una lEnea de d g ~El. lenguaje ezpdfm E define mediante un conjunta de reglas que qxdm los $lmbolos que p d utllizame y &o pueden combame para formar una Unea de c 6 d i p . &ara fomulamnos las reglas de un lenguaje d l a d o r para & i r programas ~ U C O de S la computadora bsica.

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.

dtmdbn iIjnbblJEa

o especificar una d i i b n simb6lica. 2 El campo de instrucci6n especifica una instruccin o una seudoinstrucci&nde mdquina. 3. El+campode c m t a r t o puede estar vaco o incluir un comentario. Una~~limcEaistadeuno,doso~,peronomaSde~ ~ & a n ~ Q p ~ ~ d e b e s e r u n a i e @ l o s d o s

1 . El campo de etiqueta puede s t a r vaco

puedenserletrason~lpmpmadorpuedeeiq$aifbrmaatbi~el

~ l o . U n a ~ ~ l i c a e n e l c a m p d e ~ s e ~ m e d h t e una~mnapara queeldldorpueda ~ l a e o m o e t i q u e t a E 1 campo de instruccin en un programa de lenguaje emamblador puede m a r algunas de las siguientes opciones:

190

m W m a d h bhica de la computadora

1, Una instrucci6n de referencia a memoria 0 . 2. Una instnid6n de refemwia a registro o de entradadida (no MRI): 3. Una seudoin8tru0~ibn con o s i n operando.
Una instni& de dmmcia a memoria m p a dm o t m s h b I o s -mdospor~d~Elptimerodebeserunsimbolodebesl~quedefiraaun ~deopergci6nMRIdehtabla~1.61segundaesuna~6n~lia. R trercw. stnbolo,quepuede estar p-teono, es la L Si I d a m k , la l h P a q ? l w e n ~ U M i h s ~t o dd e k~b L a p d $ e l s h h 1 0 1 eipiiicri una k i s h d n de ~ o n a m k n t h odkch Una no-MRX se define como una instruccin que no tiene una parte de d k i 6 n . Una no-MRI se reconoce en el campo de instniccibn de un p m p m a mediante alguno de los S-la de t m letras que x htan en i a tabla 6-1 para las instrucciones de referencia a registro y de entradadda. En seguida se muestran los simbolos que pueden colocarse en el campo de instrucci6n de un programa.

. .

l$plpi -

CLA

nwMRI
d W 6 n d i i t a M

ADD OPR ADD FTR X -

dhwcj6n indirecta MRI

sePrdoinsMh

,primer simba10 de tres letras en cada h e a d+ ser uno de los smbolos de instrucciones de la computadora y debe estar listado en la tabla &l. Una insheci6n da referencia a memoria, como ADD, d e b estar despus de la &recci6n &rMiica. ia letra 1 pude estar presente o m. Una direccin simb6lica en el campo de inatnicci6n +ea la k m lidad de memoria de un operando. Esta localidad debe definirse en alguna , parte del programa porque aparece de nuevo como una etiqueta m la' primera columna. Para poder traducir un pmpma de Ienguaje ensamblador a un programa binario es abso1ukmente necesario que cada direccibn simMica que se menciona en 4 campo de i n s h d 6 n deba ocurrir nuwamente en el campo de eweta. Una seudoinstrucclbn no es una irwwibn de dquina sino una instruccin para el ensamblador que proporcione informaci6n acerca de alguna parte de h traduccibxl En ia tabla 67 se listan cuatro seudoinstrucciones que reconace el ensamblador. (Otros programas de lenguaje ensam- ' bhdor recon-n muchas otras instrudeiones.) La seudoinstnieei6n ORG
(origen) informa al ensambladat que l a w a c i b n u operando en la siguiente h e a va a colocarse m la p i c i 6 n de la memoria espdicada por e l nmero que est desp.u& de O&. l 3 posible u a h r ORG ms de una vez en un de un q m e n t o de memoria. E l slmbolo END . programa para + m se,mloca al final del p-ama para informar al ensamblador que termina el prog~ama.Las otras doa seudoinstaicciones especifican la base del operando y le dicen al emambhdor cbgto m v & el nmero listado a bhario.

TABLA 6-7 Mnian de-&instrucciones


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

END DEC N
HEX N

Denota el fin del ptgrama simbblico NGmm decimal con signo N para convertirse en binario Nfimero hexadecimal W para convertir= en biario

El tercer campo de un programa est reservado para comentarios. Una h e a de cdigo puede tener o no m comentario, pero s il o tiene debe estar precedido por una d a i m para que el d l a d o r reconozca el comiaizo de un campo de c ~ n e n h i o Los . son tk para explicar e l programa y para comprender el pmcdhiento detallado que realiza el programa. Los comentarios se insertan s61o para explicar y no se consideran durante el

~~

proceso de traduccin a b i r i o .

Un ejemplo
131 p r o p m de la tabla 6-8 es un ejemplo de un programa de lenguaje ensamblador. La primera lima tiene la seudoinstni.cci6n ORG para definir el origen del programa en la posicibn de memoria (1W)16. tas siguientes seis lneas definen instnieciones de mquina, y las tltimas cuatro tienen seudohs~ccones. Se han utilizado tres direcciones simb6Icas y cada una est htada en la columna I como una etiqueta y en la columna 2 como una dimcin o una inshmin de d e m ~ & a memoria. T m e las swdoinstrueel final del programa. ciones wpeGon operandos, y la ltima Cuando el programa s e traduce a cdigo binarb y la computadora l o qecuta, se d i z a r a una resta entre dos ndmems. La w t a se ejecuta al sumar el minuendo del compIwrrento a 2 del swtraendo. El sustraendo es un nmero negativo, Se convierte a n h e m binario en repmtau6n de m p l e mento a 2 con s i p o porque hemos &abkido que todos los niimeros negativos conserven su forma de complemento a Z C m d o s e toma e l complemento a 2 dei sustraed (al mmplementar e incrementar AC), - 2 3 se convierte en + 23 y la diferenQa es 83 + (complemento a 2 de - 23) = 83 + 23 = 106.

Traduccihn a binario
ensambtador

La traduccin del programa simb6Kco a biario se hace mediante un programa especial Iiamado mntblador. Las tareas que ejecuta el ensamblador se m p r e n d e r h mejor si realizamos primero la traduceihn en papel. La traducid& del programa simblico de la tabla 6-8 a su cdigo binario equivalente pude hacerse d examinar el programa y sustituir b smbol~s por su cdigo binano de rn5quh-mequivalerite. Comenzando desde la primera lnea, encontramos una seudoinstruccin ORG. Esta nos dice que co-

192

c&nm SEIS

Programa&

M i e a de l a computadom

TABLA 6-8 Programa del Ienguaje ensmbiador para reshr dm nnQmwos

ORG 100 LDA SUB CMA

/Origen del programa en la posicibn 100 /Cargar d sustmendo a AC /Complementar AC


/Inmmentar AC

mc

m,
SUB,

DE,

ADD MIN STA DIF KLT DC83 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 sirnblico

tabla de smbolos de bad&

rnencemos el programa b h r i o de la direccibn 1 O O hexadecimal. La -da lnea time dos stnbolos. Debe ser una instruccih de refmcia a memoria para estar colocada en la localidad 100. Como no tiene la Ietra I, el primer bit del cdigo de ingtniccin debe ser O. El nombre M l i c o de la opaci6n es LDA. Al venfiear la tabla 6 1 encontramos que el prirher digito h-decimal de la. instnrccin debe ser 2 E l valor biraario de l a parte de direccibn debe obtmem del snboio de dixeaci6n SUB. Examhmos la columna de etiqueta y encontramos este simbolo en h Unea 9. P a r a detmmhr su valor hexadecimal o h a mos que la ha 2 tiene una instrucd6n para la pdcibn 100 y las dems lneas una instmccibn de mquina con un o p a d o para piciones de mepnoria m e m h h Al cmtar lneas, meontramos que el ttulo SUB de la lfna 9 corrqmde a l a ~ i c de h la memorLa 107. Por 1 0 tanto, la d k x b - h e x a * de la iLIShZ1Cb6PL WiA debe ser 107. Cuando las dos partes de la instruccin se ensamblan obknemo~ el ckiigo hexadecimal 2107, Las otras ineas que qrewntan instruccionw de mquina se traducen de manera simiIar y su caigo hexadeQmal se b t a en la tabla 6-9. Dos ineas del programa simbblico espacifican operandos decimales con la seudo~trueci6n DBC Una tereera q e c i f t c a un cero mediante una swdoinstrucd6n HEX (tambin podA usarse DK).E l decimal 83 se convierte en binario y se d w a en i a p i c i b n 106 de su equiva!ente hewdeeimat El decimal - 23 es un nmem negativo y convertirse en bina50 en f o m de e o m p b t o a 2 con signo. El equivahte hexadechal del niunero binatio se coloca en l a posicidn 107, E ! simbolo END a i @ h el final dei programa shb6Zico y nos dice qw ya no hay limas por ,traducir. El prriceso de traduecidn puede simplificacse s i examinamos el progama s h M h completo dm veces. No se hace ninguna traducci6n durante el primer examen. S i h e n t e asipmm una posicin de memoria a cada instniccih de mquina y o p a d o . la asignad611 de p i c i o n e d&nir e l valor 'de direcci6i de las equetas y f a d i h el p m de traduccin durante el q u d o e~ameh Por k tanto, en la tabla 6-9, asigpmps la posicibai 1 M 3a l a primera hsbu& despuBe de ORG. Luego asignamos piciones m c i a i a

can

paraeadaUneade~quetmgaunainstnmindedquinau~perando

TABLA 6-9 Listado.dd

d u c i d o de, la tabla &8

Codigo hexadecimal
Pdci6n

Contenida

Programa dmbdlico

ORO 100 LDA SUB

mc
MIN,
SUB, DIF,

CMA

ADD M i N STA D E m T
DEC 83 DEC -23

HEX O END

hasta el final del programa. (A ORG y a END no se les asigna una posicin num6rica poque no reprwmtan una -instnreei:6n o un operando.) Cuando se owmina el primer examen - a m c h m cada vabr c o n su niimem de p i 8 6 n y fomatnos una tabla que defina el valor hmaddmal de cada direcci6n s h M i e a . Para este p p m , la tabla de stmbolo de d h c i 6 n es romo
s i g u e

m
SUB DIF

106

107 108

h a n t e el segundo examen del programa simb6lico hacemos referencia


a la tabla de smbolos de direcci6n para determinar e l valor de W i 6 n de una instnicci6n de referencia a memoria. Por ejemplo, la hea de c6dXgo

LDA Clls se traduce durante e l segundo examen al obtener e l valor hexadecimal, de LDA de la tabla 61 y el valor hexadecimal de SUB de la tabla de shbo1os de direccin que aparece arriba. Desp&, ensamblamos las dos partes en una instrucci6n hexadeeimal de cuatro dfgiim. El c6digo hexadecima1 puede convertirse con facilidad en binario si deseamos conocer exactamente d m o reside este programa en la memoria de la computadora. Cuando el programa enmbiador t m i n a la traduccibn de sfmbolos a binarios, el primer examen se llama primera pasada, y el segundo examen se Uama segun& pasada.

6-4 El ensamblador
Un ensambfador es un programa que acepta un programa de lenguaje simb6lico y produce su lenguaje de &quina bhario equivalente. El programa shnM~co de entrada se Uama prqgrattra fuente y el programa binario que resulta se llama programa objeto. El ensamblador es un programa que opera &re cadenas de caray produce una interpretaci5n biaria equivalente Representacibn de un programa simbbco en la memoria el p m de ensamblado, el programa simbbiiso dek almacenarse en memoria. El usuario telea el programa simb6lico en una terminal. Se utrliza un prcigrama cargador para introducir los caradel programa &Mlico en la memoria. Como el programa est formado por
Antes de comenzar

--

smbolos, su repmntacibn en la memoria debe utilizar un cdigo de caracteres alfanumricos. En la mputadora Msica cada carBcter se " p m t a mediante un cdigo de 8 bits. El bit de orden superior es siempre O y los otros siete bits se +an median& ASCII. El equivalente hexadecimal del conjunta e carase lista en Ia tabla 610. A cada carcter le asignan d a dlgitos hexad&Ies que pueden convertirse con facilidad a su &ligo de 8 bib equivalente. La fdtna entrada de l a tabla no imprime un carcter pero est asdada con el movimiento fSm del cursar en la temtinaL El &digo para CR se p d m cuando se oprime la teda de retorno. Esto hace que "elcarro"retome a su W 6 n inicial para comenzar a k c h r una nueva h . EI d i a d o r reconoce un d i g o CR como el final de una lnea de d i g o .
TABLA 6-10 Cdigo de carackes hexadecimah
- -

r r b r r i rcriih

Cadcter

Cdigo

Cadcter

C6digo

Cadcter
-

C6digo

7
8 9 espacio (

+ i1

CR

TABLA 611 Represmhdn de computadora de la iinea de cdigo FL3, LDA SUD 1


Palabra de memoria Smbolo
C6digo

hexadecimal

Representacin binada

finea de cdigo

Una h e a de c6digo se aimacena en posiciones de memoria mnsecutivas con dos caracteres en cada posici6n. Pueden almacenarse dos caracteres en cada paiabra porque una palabra de memoria tiene una capacidad de 16 bits, Un smbolo de etiqueta se termina con una coma. Los slmboloa de opraci6n y direeci6n se terminan con un espacio y el final de la Unea se reconoce mediante e l cdigo CR. Por ejemplo, la siguiwite lnea de -0:

PL3,

LDA SUB 1

a t almamada en siete localidades de memoria consecutivas, segn se muestra en fa tabla 6-11. E l ttulo Pi3 ocupa dos palabras y t e & con el cdigo & coma (X). El campo de instniecibn en la lima de c6dJgo puede tener uno o mds shbolos. Cada smbolo termina con el c6digo para espacio excepto el iiltimo smbolo.quetermina con d c6digo de retorno de carro ( O D ) . S i la h e a de &diso tiene un comentario, el m b l a d o r lo reconoce mediante e l d i g o para una diagonal ( 2 F ) . El ensamblador no considera todos los caracteres del campo de comentarios y contnh la comprobaA6n en busca de un c6dip a Cuando encuentra este cddigo sustituye el c6digo de espacio despub del Q1timo s&lo m b S n m de d i g o , Zs entrada para el programa m b l a d o r es el programa de lenguaje siihb6lico en A X I i del usuado. E i ensamblador examina esta entrada dos vexs para producir el programa binario equivalente. El programa binario constituye la saIida generada por el eaisamblador. Ahora describknos de manera breve las b e a s principales que debe ejecutar e l ensambbdor durante e l proceso de traducci6n.

(m,

Un ensamblador de dos p a q examina todo el programa simblico dos veces. Durante 4 primera pasada, genera una tabla que relaciona todos los.
sImbo1a de dkecci6n definidos por el usuario con su valor binario equivalente. L a traduccibn a bhrios se hace durante 4 segunda pasada Para dar seguimiento a la direccin de las instrucciones, el ensmblador utiliza una

Primera pasada

196

~ SEIS Programacin O bsica

de la computadora
Primera pasada

3.

evisat la siguiente lnea de cdiga

Almacenar el smbolo en la tabla de slmhlos de direccin junto con el valor de LC

No

It ala segunda pasada

u
Incrementar LC Figura 6-1 Diagrama de flujo para la primera pasada del emsamblador.

contador de poskibn (LC)

palabra de memoria llamada cont~dor de pcnsicibn (LC). El contenido de LC almacena el valor de la localidad de memoria asignada a la instruccin u operando que se procesa en este momento. La seudoinstruccin ORG inicializa el contador de posicin para el valor de la primera posicin. Como las instrucciones estn almacenadas en posiciones secuenciales, el contenido de LC se incrementa en 1 despus de procesar cada lnea de cdigo. Para evitar una ambigedad en el caso de que no estuviera ORG, el ensamblador establece el contador de posicin en O desde el principio. Las tareas que ejecuta el ensamblador durante la primera pasada se describen en el diagrama de flujo de la figura 6-1. LC se inicializa al principio en O. Se analiza una lnea de cdigo simblico para determinar si tiene una etiqueta @or la pmencia de una coma). Si la lnea de ckligo no tiene una etiqueta, el ensamblador comprueba el smbolo del campo de instrucci6n. Si contiene una seudoinstruccin ORG, el ensamblador inicializa al LC en el nmero que sigue a ORG y regresa a procesar la siguiente linea. Si la lnea tiene una seudoinstruccin END, el ensamblador termina la primera pasada y regresa para la segunda. (Nteeseque una lnea con ORG o END no debe tener un titulo.) Si la lnea de cdigo contiene un titulo, se almacena en la

TABLA M2 Tabla de 6 w

de

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 simblicas junto con su ntimero binario equivalente, esperifkado mediante el contenida de L. No se almacena nada en la tabla s i no se encuentra un ttulo. Despues tC se incrementa en 1 y se procesa una nueva lfnea de cdigo. Para el programa de la tabla 6-8, el ensarnblador genera la tabla de di&oneg simbblicas que se lista en la tabla 6.12. Cada shbolo de etiqueta s e almacena en dos posiciones de memoria y temina con una coma. Si la etiqueta contiene menos de tres caracteres, las localidades de la memoria se llenan con el &digo para espacia Se almacena en la siguiente posicin de memoria secuencia1 e l valor que se encuentra en LC mientras se p n b a la h e a . E 1 programa tiene tres &mimes simblicas; MM, SUB y DIF. Estos sirnbolos repmentan d W o n de ~ 12 bits equivalentes a las hexadecimales 106,107 y 108, m p d v a m m k ia tabla de d i i o n e s simbblicas ocupa t r e palabras para cada sfmbolo.deetiqueta -contrado y constituye l o s datos de saiida que genera el ensamblad~r durante la primera pasada.

Segunda pasaida
tbqwda en tabla

Las instrucciones de rndquina se traducen durante l a segunda pasada m e diante p d m i e n t o s de b s q d a en tabla. Un procedimiento de b&queda en tabla a una hque& de entradas de tabla para deteminar si una opcin e c a coincide con una de las que se encuentran en la tabla. E i ensamb M r uWia cuatro tablas. Cualquiex smbolo que se encuentre en el programa debe estar disponible como entrada en alguna de estas tablas; de otra manera, el simbolo no puede inberpretarse. Asignamos los siguientes nombres a las cuatro tablas:

1 . Tabia de seudoig&mcciones. 2' Tabja MRI, ~a6k no-MRi. 4 TabIa de smbolos dg d M 6 n .

diapdstim de

-r

Las entradas de l a tabla de seudoinstniccwnes son los cuatro sImbo1os ORG, END, DEC y HEX. Cada entrada guia al ensamblador a una subrutina que prmesa la seudoin6bruecin cuando se encuentra en el programa. La tabla MRI contiene los siete s ~ l o de s la instruccibn de referencia a memoria y s u cdigo de operaci6n de 3 bita equivalente. La tabla no-MRI contiene los simbolos para las 18 instruccione~ de referencia a registro y de entrada-salida y su c6digo binario de 16 bits equivalente. La tabla de smbolo de direcci6n se genera durante la p a pasada del proceso de ensamblado. E l ensamblador busca estas tablas para encontrar el smbolo que se procesa en ese momento con el fin de deteminar su valor biario. Ins tareas que ejecuta el ensamblador durante la segunda pasada se describen en d diagrama de flujo de la figura &-2 L se i n i c i a l i z a al principio en O. Despus se analizan las ineas de c6dig0, una por cada vez. No se consideran las etiquetas durante la segunda pasada, por lo que el ensamblador llega de inmediato al campo de instmcci6n y prwede a comprobar el primer &&al0 que se encuentra. Primero verifica la tablri de seudoinstniccin. Una coincidencia con ORG enva al ensamblador a una subnitina que establece L C en su valor inicial. Una coincidencia can END tennina el proceso de traduccin. Una mmdoinstnicci6n de operando produce urna conversi611del operando a b i n a r i o . Este operando se coloca en la posici6n de memoria especificada por el contenida de LC. El contador de posici6n se incrementa despus en 1 y el ensamhlador contina analizando Ia siguiente h e a de &ligo. Si el simbola que se encuentra no es una 9wdoinstrucci611, el ensamblador se dirige a la tabla MRI. S i no se encuenka el sZmbo10 en esta tabla, el emamblador s e dirige a la tabla n o . Un smbolo que se encuentra en la tala na-MRI corresponde a una instrueeidn de referencia a registro o de entrada-salida. E l ensamblador almacena el c6digo de instruccin de 16 bib dentro & la palabra de memoria especificada por LC. El contador de posicin s e inaementa y se analiza una nueva h e a . Cuando se encuentra un simbolo en la tabla M R I ,el ensambhdor extrae su caigo de 3 bits equivalenh y l o inserta en los bits del 2 al 4 de una palabra. Una instruccibn de referencia a memoria se espdfica mediante dos o tres smbolw. El q m d o smbolo es una direeci6n simblica y el tercero, que puede estar pmente o no, es la letra 1 . L a direeeih simblica se convierte en binario al buscar en la tabla de diiciones simblicas. El primer bit de la instmi&6n se inicia en O o 1 , dependiendo de si la letra I wt ausente o pmente. Se enaambhn las tres p a m de1 cdigo de instruccin binario y d"pu& se ahcenan en La localidad de memoria -cada por el contenido de L C .El contador de Localidades se incrementa y el ensamblador avanza a procesar la siguiente lnea. Una tarea importante del ensamblador es comprobar los posibles errores en el programa simblico. Esto se llama dingn&fko de m. Uno de tales errorea puede ser un simbolo no vaido de c6digo de mdquina que se detecta porque no estA presente en hs tabhs MRI y no-MRI. E 1 ensamblador

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

no puede traducir tal simbolo porque no conme su valor binario equivalente. En ese caso, el ensamblador imprime un mensaje de error para informar al programador que su programa simb6lico tiene un error en una lnea de
c6diga espe&&. Puede ocurrir otro error si e l programa tiene una direcci6n shrkdlica qUe+lamp;bCo apame como una etiqueta. El ensamblador no puede t m d d la lima de cddiw h r m a adema& poque e l equivaIente bina150del

smbolo ho ~e en@rar & I la tabla de M n e s &licas generada durante la p h e m -da. ' M e nacurrir otros errores y un ensamblador practico debe d-rh e imprimir un mensaje de emr para cada uno. Debe enfatizarse que un ensamblador practico es mucho m69 complicado que e l que e explid aqu. La mayorfa de las computadoras l e dan a l programador mapr flexibilidad para escribir programas en lenguaje ensamblador. Por ej-10, se le puede permitir al usuario utilizar un nmero o un simbolo para especificar una direccibn. Muchos ensambladores le permiten al usuario 4 c a r una d b x i 6 n mediante una expqesi6n acitmttica. Tambin pueden especificafse muchas otras 6eudoinstrucciones para facilitar J a tarea de programacibn. Conforme el lenguaje de ensamblador se vuelve ms sofisticade, e l ' w m a emadlador se hace ms complicado.
6-5

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. Los ciclos de programa se especifican en Fortran mediante un enunciado DO (hacer). E i siguiente es un ejemplo de un programa Fortran que forma la suma de ,100nhneros enteros.

cornpiiadw

El enuqdado nmero 3 se ejecuta 100 veces, en cada ocasin con un operando A@ diferente para cada J = 1 , 2, ... ,100. Un programa de &tema que traduce un programa escrito en un lenguaje de programacibn. alto nivel (corno el anterior) a un programa de lenguaje de mAquina s e llama wmpilndo~Un compilador es un programa ms mmplidado que un ensamblador y requiere d conocimiento de programaci6n de sistemas para comprender por cmpleto su operacin, No obstant e , podemos -mostrar las funciones U i e m de un compilador al analizar el proceso de traducir e l propama anterior a un programa de lenguaje ensamblador. Un compihdor puede utilizar un lenguaje ensarnblador como un paso ihkrmedio m l a traduccin o puede traducir el programa en forma directa a b b r h
r t e j

- 6 ~ 65 CM-, del pmpma

201.

H i primer enunciado del programa Fortran es un enuiciado DIMENSIUN. Este enunciado instruye al compilador para reservar 100 palabras de memoria para 100 operandos. E i valor de los opermdo~ est determinado a partir de un enunciado de entrada (no listado en d programa), El segundo enunciado infama al m p i h d o r que los nmeros son enteros. Si fueran del tipo real, el compihdor hubiera *tenidoque reservar posiciones para niuneros de punto flotante y generar insfrucciones que ejmtaran la aritmgtica resultante c m datoe de punto flotante. astos dos enunciados no son ejecutables y son similares a las swdoinstruaeiones de im lenguaje ensambiador, Supongamos que e f compilador resma localidades, las localidades de la (150)16 a la (1B3)16para los 100 operandos. Estas palabra$ de memoria reservadas se listan en b ineas de la 19 a la 118 en d programa traducido de la tabla 6-13. Esto se aealka mediante la seudoinstrueti6n ORG en la lnea 18, que eerpecifiea d or@m de ~ Q Soperanda El primer y el ltimo operando se listan con un nmero decimal especifico, aunque estos valores no se conocen durante la compilaci6n. E I compiladcm d o mserva el espacio de
TABLA 613 Programa simb61'ico &a
"I

sumar 1MI nmeros

Lnea
-

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 /Almacnar*n a t a d o r /Borrar el acumulador

E2
ADS,

0uN LOP
STA HLT m 1 5 0 m 0 ' DEC-100
j ~ k c e n a suma r

m, m
SUM,

PTR,

=o

m 0 ORG 1 5 0 DEC 75

/Primera d i d n de operandm /Esta posicibn b t m a d a para un apuntador /Constanfe p a r i d a b d w inicializado /Esta psidbn ests e r v a d a para un contador /ta sumh a alnia-da aquf JE1 origen de tos operandos es HEX 150

/-

DEC 23 END

/Ultimo operand.0 /Fin del programa slmbbiico

Programacin bsh de 1a -putadora

en la memoria y los valores se in~rtan despu&scuando se ejecuta un enunciado de entrada de datos. Los nmeros de iea del programa simblico son & l o para referencia y no forman parte del programa simb6lico traducido. Al indhr el enunciado DO se traduce en las instrucciones de las heas 2al a 5 y las constantes en h s heas de la 13 a la 16. La direccibn del: primer operando ( 1 8 0 5 0 )se almacena en l a localidad ADS ,enla Iinea 13. La cantidad de vece3 que el ehundado de Furtran deh ejecuta= es 100. Por l o tanto, se almacena - 100 en la posici6n NBR Despus el compilador genera las inslnicciones.en hs lneas de la 2 a b 5 para inichlhar el ciclo de programa. La direccin del primer operando se transfiere a la posicih M'R. Esto corresponde a establecer Am en A(1). Despus e l nCimero - 100 se transfiete a la posicibn CTR Esta pwicibn acbla como un contador y su contenido se incrementa en 1 rada vez que se ejecuta el ciclo de programa. Cuando d valor del contador Uega a cero,estai!&n compietadas las 100 operaciones y e l programa dejar&el ciclo. Algunos compiladores traducirin el enunciado SUM = O dentro una instrucci6n de mquina que inicialice l a posicin SUM a cero. Despus se hace una referencia de esta posicihn cada vez que se ejecuta el enunciado P o ndmero 3. Un mpilador ms inteligente comprender4 que la suma puede formarse en el acumulador y d o el resultado f m l puede almacenarse en la posici6n SUM. E l compilador producir una instnicci6n en la lnea 6 para borrar el AC. Tambin m a r 4 una posici6n de memoria representada por SUM {en la nea 17) para almacenar ei valor de esta variable cuando termine e ldo. EI ciclo de programa especificado mdiante el enunciado DO se traduce a la secuencia de instrucciones que se listan en las ffneas de la 7 a la 10. La inea 7 especrfica una instnrcci6n ADD hditecta parque tiene el simhlo 1. La d b i b n del operando actual se almacena en la localidad PTR. Cuando esta localidad se d b i o n a indirectamente l a computadora considera el contenido de FT'R como 14 cbcci6n del operando. Como resultado, el operando de la psici6n 150 se suma al acumulador. Despu6 la posici6n PTR e incrementa con la instnicci6n rSZ de la h a 8, por lo que su valor cambia al de la direccin dd siguiente operando secuencial. La posicibn CTR se irmementa en la h e a 9 y, si no es c m , la computadora no brinca a la siguiente instruM6n. La instrucci6n que viene a continuacin es una instnic&n de transferencia o brinca (BUN) al principio del ciclo, por lo que la computadora rieg~esa a repetir e l &do una vez ms. Cuando la posicin CTR alcarm cero (dapub de que e l ciclo m ejecuta 100 veces), se brinca a la siguiente insbucci6n y la computadora ejecuta Ias instrucciones de las llneas 11 y 12. La suma que se forma en e l acumuIador se almacena en SUM y la computadora se detiene. Por claridad, se inserta aquf la instruccin de detener; en realidad, e l programa s e ramificard a una localidad en la cual continuar ejecutando el resta del programa o brincar&al principio de otro programa. N b e que ISZ en la iea 8 se utiliza simplemente para sumar
datos

contador de
apuntador

1 al apuntador de direcadn PTR. Como la direccibn es un nmero positivo, nunca ocurrirg un b b . El programa de let tabla 6-13 introduce la idea de un apuntador y un contador que pueden usarse, junto con la operaci6n de direccionamiento indirecto, para formar un ciclo de programa. El apuntador sefiala la d k i b n del operando actual y ei contador controla la cantidad de veces que se ejecuta el ciclo del programa. En este ejemplo utilizamos dos posiciones de memoria para eshs funciones.En las computadoras cor~d s de un registro de praxsador, es posible utiihr un registro de procesador como apuntador, otro como contador, y un tercero como acumulador. Cuando los registros del procesador se utilizan como apuntadores y contadores reciben el nombre de registros fndice. Los registros ndice ae analizan en la secci6n &5.

66

Programacin de operaciones dtm4ticas y lgicas

La cantidad de inshucciones d i i i b l e s en una computadora puede ser de unos cuantos cientos en un sistema grande o de unas cuantas docenas en
pequeo. Algunas computadoras ejecutan una operaci6n dada con una instrucci6n de mdquina; otras pueden n-itar una gran cantidad de instrucciones de mequina para ejecutar la misma operacibn. Como ejemplo, consideremos ias cuatro operaciones aritmdticas bdsicas. Algunas compuutadoras tienen instrucciones de miquina para sumax, restar, multiplicar y dividir. Otras, como la computadora bsica, ,9610 tienen una instruccin aritmdticat ADD (sumar). Las operaciones que m se incluyen en el conjunto de instrucciones de mBquina deben implantarse mediante un programa. Hemos mostrado en la tabla 6-8 un programa para restar dos nberos. h programas para otras ~ c i o n e aritmticas s pueden desamIlarse de mane ra similar. Las operaciones que se efeckhn con una iqstrucci6n de mquina se dice que se realizan mediante la circuiterla. 'Las operaciones implantadas mediante un conjunto de instnicciones que constituyen un programa se dice que se implantan mediante pqamaci6n, Algunas computadoras proporcionan un conjunto amplio de instrucciones de hardware' diseadas para acelerar las tareas comunes. Otras contienen un conjunto m s pequeo de i n s ~ o n e s de hardware y s e apoyan mas en el trabajo del software para muchas ope'aciones. La implantacibn de hardware e a d s costosa por los circuib adicionales dos para efectuar l a operacin. La implantaci6n de software da como rsultado programas m& largos, tanto en cantidad de instrucciones como en tiempo de qecucin. Esta d n muestra la implaritacin de software para unas cuantas operaciones arinticas y lgicas. Pueden desarrollarse programas para cualquier opacin &mtica y no s6Io para datos binarios de punto fijo sino tambin para d a b decimales y de punto flotante. La implantacidn de hardware de operacima aritmkticas se estable en el capitulo 10,
uno

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&

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

i-m

206

w Prngram-

M&

de & I computadora

TABLA &a4

Prbpma para m d i i p I ' i ,das n3imero5

wp,

ORG 100

m
s m

LDA Y

@mar E /Cargar mul tiplicador /Transferir bit multipIi*cador aE

STA Y

ONE,

BUN o m BUN m0 LDAX ADD P


STA F

CL

/Almamar multipficador desplamdo SVerificar si el bit e s cero /El bit uno; ir a UNO /El bit es m;i ra m C e r o /Cargar multiplicando /Sumar a l producb parcial IAl~lrpiaeenar producto p;ucial /Borrar E
/Cargar muf tiplicando /Corrimiento a la izquierda /Almacenat. mflltiplitiando recomdo jlnmemenlar contador /El contado?no es cero; =petir ciclo JEi ceintiidor es m o ; detener /Esta posicibn sirve como contador /El multiplicando se almacena aqui [ E i multiplicador se almacena aqui /El producto se forma aquf

ZRO,

LDAX

a I[Szm
STA X

BUN LOP

x,
Y, p,

H L T b
DE-8

H m OOOF
T W B

HEXQ

se carga dekitro de k computadora. La. iniciaIizaci6n consiste en traer el multiplicando y el multiplicador a las localidades X y Y, respecc tiva-& inicializar el contador a - 8, e inieilizar la localidad P a cero. Si 'Bstas no se ini.cialhn, el programa puede comer con datos incorrectos. E l pmgrsma mismo es directo y sigue los pasos que se listan en e l diagrama de.flujo,Jjois c~mentarimp h n ayudar a seguir el procedimiento paso a

el programa

paw.
Este ejemplo ha mostrado que si una computadora no tiene una instruai6n de mquina para una operad&^ requerida, la operacibn puede programarse mediante una w e n c i a de Instrqcciones de mAquina. Por l o tanto, hemos mostrado la implanhcibn de software para la operaci6n de ' multiplicacin. ta jmplantaQ6n de hardware. correspondiente se presenta en la seccibn 10-3.

Suma de'doble preci6$n Cuando se multiplican des nmeros de 16 bits sin signo, el resultado es un producto de 32 bits qu debe almacenarse &ndos palabras de memoria. Se &e que un nimero aima:cenado e i dos palabras de memoria tiene doble pi.ecisidn. Cuando se caliila un producto parcial, es necesario que se agregue

m d

TABLA 6-15 Programa para sumar dos n b m de doble precisin

D A AL ADD BL
STA CL CZA

CrL ADD AH ADD B H


STA &

/Cargar A inferior /Sumar B inferior, aarrear E /Almacenar en C inferior /Limpiar AC /Circular para llevar el acarreo a AC(16) /Su- A superior y acarreo /Sumar B superior /Almacenar en C superior

M, BL, BH, a, AL,

HLT
/Posicih de los operandos

m,

un nhmero de doble precisi6n al multiplicando sobre el que se ejecuta un corrimiento, e1 cual es tambibn un niimero de doble precisi6n. Para mayor exactitud, el programador puede dewar emplear nmeros de doble prixisi8n y ejecutar la aritmtica con operandw que ocupen dos paiabras de memoria. Ahora desarrollamos un prugrama que suma dos nmeros de

doble precisin. Uno de los nmeros de doble precisi6n se coloca en dos localidades de memoria consecutivas, AL y AH, donde AL contiene los 16 bits de orden menor. E i otro nmero ae coloca en las localidades BL y B H .E 1 programa se lista en la tabla 6-15. las dos parb de orderi menor se suman y el a c a m se transfiere a E. EI AC se limpia y el bit en E se circula dentro de la posici6n menos significativa de AC. Las dos porciones de orden mayor se suman despus al acarreo y la suma de doble preeisih se almacena en CL y CH.

Operaciones 16gicas La computadora bsica tiene tres instrucciones de mquina que ejecutan operaciones Idgicas: AND, CMA y CLA. La 'insfniEci6ri LDA puede conside rarse como una operacibn lgica que transfiere m operando lgico dentro de AC. En la 8ecciBn 44 listamas 16 opwaciones lhgicas diferentes. las 16
v c i o n e s 16gicas pueden integrarse mediante software parque cualquier funci6n lgica puede implantarse usando las operaciones AND y complemataf. Por ejemplo, la operadbn OR no gst disponible como una instruecin de mSiqulna en i a computadora bsica. Por el teorema de DeMorgan reconocemos la relacin x y = @'y')'. La aegunda expresibn rontiene slo operaciones M y complemdar. Un programa que forma l a operacibn OR de do4 operandos 16gicm A y B es como sigue:

m8

m Fqmnxih W c a de l a computadora

LD R 0

Cargar primer operando A Comp1ementax para obtener A CM A S T A T M P Almacenar en ima localidad temporal Cargar segundo operando B LD A B CMA Complementar para obtener AND TNP ~plicsrlafunci~m AND~onA~anobtenerAAB CM A Complemenbr de nuevo para obtener A V B

Las otras operaciones lgicas pueden efectuarse mediante software de manera similar.

Operaciones de corrimiento Las operaciones de corrimiento circular son instrucciones de mquina en la computadora bisica. Los otros corrimientos de inters son los corrhimtos Idgims y aitmdticos. Estos dos corrimiento6 pueden programarse con una cantidad pequea de instrucdones. El corrimiento ldgico necesita que los ceros se agreguen a las posiciones de los extremos. Esto se consigue con fadidad al h m a r y al hacer circular AC y E. Por lo tanto, para una operacihn l w c a de corrimiento a la derecha necesitamos las dos instrucciones.
C LE

CIR
Para una operacibn 16gica de despiazamimb a la izquierda necesitarnos las dos instrucciones

CLE CIL
Los corrimientos aridticos dependen del tipo de repmtacidn de niimems negativos. Para la computadora biaica hemos adoptado la repremntacibn de complemento a 2 con signo. Las reglas para los corrhientos aritmticos se &tan en la se~cibn M. Para un corrimiento aribn&tiro a la derecha es necesario que no se altere e 1 bit de signo en la posicibn de la extrema izquierda, Pero el mismo bit de signo se recorre a la posicibn del bit de orden superior dd nmero. E l programa para el corrimiento aritmetico a la derecha requiexe que estableE en el mismo valor que el bit de signo y b circulea la derecha, por lo t a n e

CLE /Limpiar E a O SPA /%ltar si AC es positiio; E pemanece en O

CHE IAC es negativo; etablecer E en 1 CIR /Circular E y AC


Para el corrimiento aritmtica a la izquierda es n e o que el bit que se suma en la posicibn menos significativa sea 0. Esfo se hace con facilidad al limpiar E antes de la operaci6n circular a la izquierda. E l bit de signo no d e k cambiar durante esk corrimiento, Con una operacidn circular, el bit de signo se muwea E. Entonces es n-ro comparar el bit de signo con el mismo valor de E despuds de la operaci6n. Si bs dos valores son iguales, el c o m e n t o aritmtico se efectub en forma C D I W C t a . S i no son iguales, ocurri6 un sobreflujo. Un sobreflujo indica que el nmero en el que no se ejecut6 el corrimiento era demasiado grande, Cuando se multiplic por 2 (mediante el conirniento), el n h e r o que se obtuvo excedi la capacidad de AC.

Con frecuencia, una misma parte del cdigo puede escribir= una y otra vez en cfemntes partes de un progtama. En lugar de repetir el cdigo cada vez que se necesita, existe una ventaja obvia si las instrucciones mmmm se escriben una sola vez. Un conjunto de insmcciones comunes que pueden usarse muchas veces en un programa se llama una subrutina. Cada vez que se usa F a subrutina, en la parte principal del programa se ejecuta un brinco al comienzo de la subrutina. Despus de que ce ejecuta l a subrutina se hace un brinco de regreso al programa principai. Una subrutina consta de una m e n t i a completa de instrucdones que realiza una brea dada. Puede haun llamado a la subnitina desde cualquier parte del p-ma principal. Esto presenta el problema de cmo hacer que la subrutirta reconozca a que Iokalidad regresar, porque muchas localidadea &tes del programa principal pueden llamar a la misma subrutina. Por 10 tanto, es necesario almacenar la direccin de regreso de alguna manera m la computadora pAra que la subrutina sepa adonde regresat. Como ia llamada a una subrutina y e l ~+bmo al programa princip d es una p a r i 6 n mmtn, todas ias computadoras proporcionan instnicciones especiales para facilitar la entrada y el retorno de una subrutnst. En la cumputadora bsica, el enlace del pmgrama principal y una subnitina es una instnicci6n BSA (brinca y guarda la direccin de retorno). Para explicar cbmo se utiliza h iristruceibn escribamos una subrutina que ejecute ei eorrimienb del mntenMo .del acirmulador cuatro veces a la izquierda. Rmwiwr una palabra cuatro vm& eli una operacin fitil para prmesar ntlmems decimaks codicados en binario o caracteres alfanum6 ricos. Tal operacin podra haberse hcIuido como una instnicci6n de maquina en la computadora. Como no est incluida, se forma una subrutina para realizar esta W. El programa de k i Zabla 616 comienza por cargar el

210

ctvfrum

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 siguiente imlmcc6n que se encuentra a BSA SH4. La Uistniccin BSA esta en la lacalidad 101. La subnitina SH4 debe =tomar a la h l i d a d 102 despus de que finahe su m .Cuando se ejecuta la instruccihn BSA, l a unidad de ccmtrol almacena l a direccibn de retomo 1 Q 2 dentro de la posici6n.ddinida por la M 6 n simb6b SH4 (la cual es 109), tambin transfiere el valor de SH4 + 1 al contador del programa. Despus de que se ejenita esta instnicciq La b l i d a d de memoria 109 contiene el equivalente binario del hexadecmai 102 y el contador de p q m ma contiene el equivalente binario del hexadechd IOA. Esta ami611 ha guqdado h dimcibn de retarno y la subrutina s e ejecuta ahora comenzando en la posicih 10A (porque este es el conaenido de PC en d siguiente ciclo
de b68queda).

E l clculo de l a subrutina circula el c o n ~ de o AC cuatro v a la izquierda. Para realizar una operacin de desplazamiento lgico bs cuatro bib de orden menor deben iniciarse en c e r o .Esto se hace al enmascarar FPPO con e l contenido de AC. Una operacibn de enmamar es una operaciht AND lbgica que borra los bits de AC donde el operando enm9warado err cero y deja 10s bib de AC sin cambio &ando los bits del operando de
enma8mramiento aon 1.

La ltima instruccibn de la subrutina regresa a la computadora al programa principal. Esto se consigue mediante la instniccibn de brinco indirecto, con una direccidn simb6lica idntica a la que se us para el nombre de la subrutina. L a direccibn a la cual se brinca La computadora no es SH4 sino el valor que se encuentra en la posicidn SH4 porque &a es una instruccih de dimccionamiento indirecto. Lo que se enmtn5 en h posicidn 52.14 es la direccin de retorno 102 que s e almacen antes ah mediante la instrucci6n BSA. ' L acomputadora retorna para ejecutar la instmccibn de la pmici6n 102. El programa principal continiia al almacenar el nmero con el corrimiento dentro de la posicibn X. Despus se recurre un nuwo n~mero hasta AC desde la p o s i c h Y y se hace otra llamada a la subrutina. Esta vez la lwalidad Sq4 contendr la dimi6n de retorno 105 porque ahora 6ta es la posicihn de la siguiente instruqibn despuk de BSA. Se ejecuta el mrrimimito en e l nuwo operando y la subrutina regresa al programa principal
en la pasici6n 105. En este ejmpb observamas que la primera localidad de memorib de cada subrutina sirve como un enlace entre el programa principal y ia subrutina. E l procedimiento para Uamar a una subrutina y r e t o m a r al programa principal se denomina mlam a subnitina. La instmcei6n BSA ejecuta una operacin que por lo general se llama Ilrimadri de subrutina. La dltuna instruceibn de la subrutina ejecuta una operacin que por lo general se llama retorno de subruiina. Es frecuente que e l procedimiento usado en la computadora Msica para una llamada a subrutina w encuentre en computadoras con un m10 registro de procesador. Muchas computadoras tienen mdltiples registros de procesador y a algunos de ellos se l~ asigna el nombre de registros indice. En tales computadoras, por lo generaL se emplea un registro hdice para realizar el enlace a subrutina. Una instrucci6n de llamada a subrutina almacena la direccin de retorno en un egistro fndice. Se lleva a efecto una instniccibn de @tomode la subnitina medianfe un brinco a la direccin que se almacena en momento en el registro d e Iridice.

Parhetm~ de subrutina y enlace de datos Cuando se llsnna a una sukmtina, el programa principal debe transferir los datas con los que s e desea que trabaje h subrutfna. E n el ejemplo anterior los datos se transfirieron mediante el acumulador. E l operando r x carg a AC antes de la llamada. La subrutina recorri el nmero y I o dej6 ahi para que l o aceptafa el programa principal. En general, es n e o que la subrutina teqp acceso a los datos desde e l programa que la solicita y para regresar los resultados a ese programa. E 1 acumulador puede usarse para un pahmetro de entrada nico y un pardmelro de salida nico. En las computadoras con mdltiples registros de prm&dm se puden transferir &S parmettrw de esta manera; Otra forma de tramkrir datos a una sub~tinaes mediante la memoria. Cm frecuencia ias datos se colman en

TABLA 617 P r o g r q para mmbq el a p a q u e de parmetm

ORG 200 LDA X BSA OK


STA Y

m 3AF6
HLT

'

/Cargar el primer operado dentro de AC ;/Llama a la subrutina OR /El egundo operando est almcenado aquf /La suhtina retorna agui

X/ Y,

mm 5
m 0 m 0 CMA

/E1 pdmer oprandoesu almacenado aquf /El resultada esta almacenado aqui
XS~bmtina~QR
~CompI-im~r @raer operando /Almacenar en posicibn temporal /Cargar segundo operando /Gimpleme$ar -do operando )Aplicar AhTD al primer opgrando complementada /&mplem&hr utra vez para obtener OR /Iirciementardirecdi5n de retorno IRetomr al p s o g r a m prirrdpal /Alihamamiehto terhporal

orC

STA TMl' LDA OR I


CMA

w/

AND TMP CMA EZ OR BWN OR I


EEXO

pmicionee de mmn& .despus de:la ktm& Tambin pueden colocarse en uii blque de a h c e m d e n b . En seguida, e coloca k primera d i d 6 n del blque en ia lwdidad de memoria despus de la,soli&ud. En cualquier caso, la d i 6 n de retorno siempre pmprciona .la informaci&nde enlace para transferir datos entre el,programa principal y la subniW. Como ejemplo, cons~erwno~ una subrutina que ejecuta la operacin QR lgica. Deben transferirse dos operandos a la subrutina y la subnitina debe retomar el tiesdtado de la opsraci6n. Puede usarse el acumulador para transferir yn ,gpecando y,para recibir el resultado. El otro operando se inserta en la. p i c i 6 n despub de la nstruc@n B S k E~to se muestra en el programa de la tabla 6-17.-Elprimar q e ~ a n d o k p&ici6n X se carga a AC. El d a operando-= aImacena en la posicibn 202 despuk de la instrucci6n EEA. Una vez que ,sucede i a b d a , , la prbera Localidad e n la subrutina con* qi nJmep 2 0 2N 6 , qime en este w,202 no es h h i 6 n de retorno: sino Ip +cin del q m d o pand do. La subnitina comienza a gecutar la,,operaci& OR al coriiplemqhr e l i primer operando en AC y almacenado en la, lwalidad kmparal TMPi El segundo operando se carga dentro de AC mm$ante una instruccin indimta en la posicibn OR. No hay que olvidar que Ia posicin OR c o n h et nhnero 202,Cuando Ia instmcci6n hace mferencia a ella en forma indirecta, elo @ de la p i r i h 202

- . se carga a AC. Es& operaiido-se GiipiekenbY despuCs se le aplica La funciSn AND con ei operando almacenado en TMP. Al complementarse e1 resultado se forma la operacihn OR.

El retorno de la subrutina debe manipulam para que el programa principal ccmtinde desde la posioibn 203, donde este ubicada la siguiente instniccin. Esto se logra al incrementar la poski6n OR con b instrucci6n I S Z .Ahora la lmaiid~dOR contiene el ndmeia 203 y na instrucci6n BUN indirecta provaca un retorno al lugar adecuado. EB psibie tenef mas de un operafido despus de la instruccibn BSA. La subnitina & incrementar la direcci6n de retorno aimacenada en su primera localidad para cada operando que exime del programa solkihte. El programa solicitante puede reservar una o m65 localidades para que la subrutina devuelva 19s resultad- que se cdcubron. Para estas localidades tambin debe inrrementarse la primera localidad en la subrutina a n b del retorno. S i hay una gran cantidad de datos por transferirse, pueden colocarse en un bloque de almacenamiento y despus se utilmr6 la diFecci6n del primer blque corno parhetro de enlace.
TABLA 618 Subrutina para mover un bloque de datos

BSA

MVE

HEX 100
H E X m DEC -16
HLT mx.0 LDA MVE 1 STA m 1

/Programa principal /Ramificar a subrutina /Primera direwibn de datos fuente /Primera dlmci6n de datos destino /Nmero de datos por mover
[$ubruiina MVE /Traer la direccibn de tuente /Almacenar en primer apuntador /Incrementar direccibn de retorno /Traer direccibn destino /Almacenar m segundo apuntador /incrementar direccin de retorno /Traer ntmero de datas j Almacenar en confadar /Incrementar dlrecci6n de retorno /Cargar datos fuente /&naceriar en destino /Incrementar apuntador fuente /Incrementar apuntador destino /Iswementar contador /Repetir 16 veces /Retornar a programa principal

m,

rsz MVE

WP,

Isz MVE LDAFTlI

LDA MVE 1 STA PT2 ISZ MVE LDAMVEI STA m

m, m, m,

STA FT2 1 ISZ m 1 JSZ m ISZ m BUN LOP BUMMVEI

214

-O

SEIS

Programacin bsica de la computadora

En la tabla 6-18 se lista una subrutina que transfiere un bloque de datos que comienzan en la direccin 100 a un bloque que comienza con la direccin 200. El tamaiio del bloque es de 16 palabras. La primera introduccin es una llamada a la subrutina MVE, La primera parte de la subrutina transfiere los tres parmetros 100, 200 y -16 desde el programa principal y los coloca en su propia posicin de almacenamiento. Los datos se transfieren haeia y desde sus bloques mediante el uso de dos apuntadores. El contador asegura que s610 se muevan 16 datos. Cuando la subrutina completa su operacin, los datos requeridos estn en el bloque que comienza desde la posicin 200. El retorno hacia el programa principal es a la instruccin HLT.

6-8

Programacin de entrada-salida

Los usuarios de la computadora escriben programas con smbolos que estn definidos mediante el lenguaje de programacin empleado. Los smbolos son cadenas de caracteres y a cada carcter se le asigna un cdigo de 8 bits para que pueda almacenarse en la memoria de la computadora. Un carcter codificado en binario entra a la computadora cuando se ejecuta una instruccin INP (entrada). Un carcter codificado en binario se transfiere al dispositivo de salida cuando se ejecuta una instruccin OUT (salida). El dispositivo de salida detecta el cdigo binario y escribe el carcter correspondiente. La tabla 6-19(a) lista las instrucciones necesarias para introducir y almacenar un carcter en la memoria. La instruccin SKI comprueba la bandera de entrada para ver si hay disponible un carcter para la transferencia. Se salta la siguiente instruccin si el bit de la bandera de entrada es 1. La instruccin INP transfiere el carcter codificado en binario hacia AC
TABLA 6-19 Programas para introducir y sacar un carhcter
a) Introducir un carcter SKI /Comprobar bandera de entrada CIF, BUB CIF - /Bandera = O, brincar para comprobar de nuevo INP /Bandera = 1 , introducir carcter OUT /Escribir carcter STA CHR /Almacenar carcter

HLT
CHR, b) Sacar un carcter LDA CHR COF, SKO BUN COF OUT /Almacenar carcter aqu /Cargar carcter dentro de AC /Comprobar bandera de salida /Bandera = O, ramificar para comprobar de nuevo /Bandera = 1, sacar carcter

HLT

CHR,

HEX 0057

/El carcter es "W"

(0-7). u & se escribe el cadctei mediante la instruccibn OUT. Una unidad temhai que comunica en forma directa con tina computadora no eel carcter cuando se oprime una k l a . Para impWIo, ,es necesario enviar una instruccin OUT para la impmra. De esta manefa, el usuario se asegura de que ocurra la transfemfcia correcta. Si la insmccin SKI encuentra el bit de bandera en O, se ejecuta fa siguiente instruccin en secuencia. Esta insttucci6n es un brinco para retomar y comprobar el bit de bandera otra vez. Como el dispositivo de entrada es mucho d s lento que h computadora, ,las dos htmcciones del ciclo se ejecutarn muchas vecw antes de que se transfiera un carcter al acumulador. La tabla &19@) lista las instrucciones necesarias para escribir un carcter almacenado inicialmente en la memoria. Primero se carga d car6cter a AC. DespuQ se comprueba la bandera de saiida. Si es O, la computadora permanece en .unciclo de dos instrucciones comprobando el bit de bandera, Cuando la bandera cambia a 1 , se transfiere el carhcter del acumuiador a la impresora.

Manipulacibn de caracteres Una computadora no es s61o una computadora sino tambih un manipulador de sXmbo105. Los caractem d f i e a d o s en binario que tepresentan simbolos pueden manipularse mediante instrucciones de computadora para realizar diveraas tareas de procesamiento de datos. Una de fales t m s puede reunir dos caraen una palabra. E&o es conveniente porque cada caricter w p a 8 bits y una palabra de memoria contiene 16 bits. El programa de la tabla 620 l i s t a una subrutina b d a MZ que introduce dw caracteres y los "&mpacaU en una palabra de 16 bib, ta palabra empacada permanece en el acumulador. NNBh que la subnitina SH4 (tabla 6-16)se solicita dos veces para e o e r el acumulador ocho veces hacia la izquierda.
TABLA 6-20
Subrutina para introducir y guardar junb dos c a r a e m

m 2 ,
FST,

SKr BUN m

/Entrada de subnitina
/Introducir primer d c t e r
/Recorrer a la iaquierda cuatro veces / a la izquierda cuatro vem8s / I n d u c i r egundo cai-ach

INP
OUT

BSA SH4 BSA SH4


SCD,

SKI BUN SCD

INP
OUT
BUN i N 2 1

/Retomar

C A P h L O SEIS

Pr@gmrnacih bsica de La computadora


TABLA &2i Prqpma para almacenar caracteres de enkda en un buffer

LOP,

LDA STA PTR BSA IN2 STAmI ISZ PTR

/Cargar primera direccibn del buffer

fiUN LOP
HLT

/Inicializar apuntador /Ir a la subrutina IN2(tabla 6-20) /Al,macenarpalabradedoblecatackrenelbuffer /Incrementar apuntador /Ramificar para i n d u c i r rnhs caracteres
/Primera direccibn de buffer /Pasieibn para aputitador

ADS,

m,

HEX 5&3
HEXO

En el anlisis del ensamblador

considerd que e l programa simbhlico

est ahacenadu en un bloque de localidades adyaqtes de la memoria que se denomina comQnmente bufer. E l programa simblico que se imprime se

inbduce por el dispositivo de entrada y se almacena en posiciones de memoria consecutivas en el buffer. E) programa que se lista en la tabla 6 2 1 puede utilizarse para introduur un psograma sirnbbiico desde el teclado, empacar dos caracteres en una palabra y almacenarlos en el buffer. La primera direccin del buffer es 500. El primer cardckr doble se almacena en la p~sici6n 500 y todrw los caracteres se almacenan en posiciones secuenciales. El programa utiliza un apuntador para llevar un registro de la posici6n achtalmente vaca en el buffer. No se u t i k un contador en el programa, por lo que los caracteres se leer& mientras estn dispanibIes o hasta que el buffer llega a la posicin O (despua de la.posici&n FEF). En una situacibn prsctica podra ser necesario limitar el tamaio del buffer y podra usarse un contador pwa este prop6sito. N6tese que se solicita la subrutina IN2 de la tabla 6-u) para introducir y empacar los dos caracteres. A l analizar la segunda pasada del ensamblador en la seccidn 6 4 se mencion6 que una de las operaciones m6s comunes de un ensamblador es una bdsqueda en tabla. Esta es una operacin que busca en una tabia para

TABLA 6-22 Programa para cumparar dos palabras


LDA WD1

/Cargar primera palabra


/Formar complemento a 2. /Sumar segunda palabra /SaItar s i AC B cero

CMA INC ADD WD2


SZA

m, m,-

BUN UEQ BUN EQL

/Brincar a rutina "diferente" /Brincar a rutina "igual"

saber si contiene cierto smbolo. La bsqueda puede realizarse al comparar d smbolo dado con cada uno de b s slmbols ahcenados en la tabla. La btkqueda termina cuando ocurre una coincidencia o cuando ninguno de los simbolis coincide. Cuando ocurre una coincidencia, el ensamblador recupera el valor binario equivalente. En la tabla 6 2 2s e lista un programa para comparar dos palabras, 1La comparacih se realiza al formar el complemento a 2 de una palabra (como si fuera un niunero) y al sumarla en forma aritmktica a la segunda palabra. Si el resultado es cero, las dos palabras son iguales y ocurre una coincidencia. Si el multado no es cero, las palabras no aon iguales. El programa puede servir como una subrutina en un programa de b-ueda de tabla.

Xnterrupcibn del programa El tiempo de ejmsci6n de programas de entrada y salida se f o m sobre todo del tiempo que necesita la computadora para esperar al dispositivo externo para que active su bandera. El ciclo de espera que comprueba la bandera mantiene ocupada la computadora con una tarea que emplea una gran cantidad de tiempo. Este tiempo de espera puede eliminarse si se utiliza la opci6n de interrupcidn para notificar a la computadora cuando est activada una bandera. La ventaja de utilizar la interrupcin es que la transferencia de infmaci6n se inicia cuando hay una sdicitud de un dispositivo externo. Mien tras tanto, la computadora puede ocuparse en ejecutar otras tareas tiles. Es obvio que, si no reside otro programa en la memoria, i a computadora no tiene nada qu hacer, as que bien puede comprobar las banderas. La opcin de interrupcihn es dtil en un ambiente de multiprogramaci6n cuando residen dos o mas programas en ia memoria al misms tiempo. S6Lo puede ejecutarse un p&ama en un momento dado, aunque dos
o ms programas pueden residir en Ia memoria. Por lo general los otros programas esperan datos de entrada o salida. lia funcin de la opcibn de intempcih es cuidar h transferencia de datss de uno o mAs programas mientras otro programa se ejecuta en ese momento. El programa que corre

debe incluir una uisttucci6n T O N para atender la interrupcin. Si no se usa la opcibn de inkrrupcidn, el programa debe incluir una instruccibn IOF para apagarh. (131 intemrptor de mcmdido' de la computadora podra tambin apagar la intermpci6n.) La opcibn de intwnrpci6n permite que el programa principaI avance hasta que el dispositivo de entrada o salida active su bandera como lista. Cuando una bandera esta activada en 1, la computadora completa la ejecuci6n de Ia btn-icri6n en procm y despuk reconoce la interrupcin. El mltado de esta acci6n es que la direceibn de retorno se almacena en la locaiidad 0. h p u & se ejecuta k inskmccin de la ledidad 1; esto inicia una rutina de ~ervicio para la transferencia de entrada o salida. i . a rutina de servicio puede almacenarse en cualquier parte de i a memoria siempre que

218

SELS - 4 6 n

bsica de Ia computadora

una fransfemcia al comienza de l a rutina se almacene en la localidad 1. La rutina de ervicio debe tener inshcciones para ejecutar las siguienb m a s :

1 . Salvar el contenido de los registros del procesador. 2 Comprobar cual bandera est activada. 3. D a r servicio al dispositivo q y a bandera est activada. 4 Rmperar el contenido de lm registros del procesador, 5. Habilitar la @6n de interrupcin. 6. Regresar al programa principal.

E l eontehido de lm regisiros del p m ' d o r ante de la intemupcih y despuk del retorno al programa prindpal debe ser el dsmo; de otra manera el programa principal puede ejecutarse con error. Como la rutina de servicio puede utilizar estos registros, es necesario ''~lvar" su contenido al principio de la rutina y "recuperarlo" al h l . La secuencia mediante la cual se mprueban bs banderas dicta la prioridad asignada a cada dispositivo. Aunque pueden advarse dos o m8s banderas al mismo tiempo, los dispositivos sori atendidos uno a la vez. Se atiende primero el dispositivo cuya prioridad es mayor y despub al que tiene una prioridad menor. La aparicin de.una intemupci6n inhabilita la opci6n de ms intemp dones. La r u h de centicio dek habitar la inkrrupcibn antes del retorno al programa principal. Esto habilitad interrupciones posteriores mientras h computadora ejecuta el programa prineipat' L a opci6n de intampci6n no debe habilitarse hasta que se carga la d M h de retorno en el contador del
Un ejemplo de un programa que da semicio a una interrupci6n se lista en la tabla 6-23, La posici6n O 'se reserva para la direcci6n de retorno. La pmicibn 1 tiene una instruccin de brinco al inicio de la rutina de semicio SRV. IA parte listada del programa principal tiene una instruccibn ION que habilita 11a intermpcibn. Supongamos que ocurre una interrupci6n mientras la computadora ejecuta la instrucci6n de la localidad 103. El ciclo de i n k mpcibn almacena el equivalente bharia del hexadecimal 104 en la posici6n O y brinca a la posicibn 1 : IA instmcci6n de brinco a la posici6n 1 enva a la computadora a la rutina de servicio a la interrupci6n SRV, La rutina de servicio de la intempci6n ejecuta las seis tareas mencionadas. Los contenidos de AC y E se almacenan en posiciones especiales. (Estos son los nicos registros del procesadar de la computadora bAsica.) Las banderas se verif~canen forma secuencial, primero las banderas de entrada y despus las banderas de salida. Si una o ambas banderas estn activadas, se trmfiete un grupo de d a b hacia o desde el buffer de memoria correpandiente. A n b de retomar al programa principal, se m p e r a el contenido previo de E y AC y se habilita la opcidn de intemipci6n ltima instnicci6n provma un b a la dicecei6n almacenada en la localidad O. Esta es la dwcci6n de retorno almacenada ah durante el ciclo de in-p cin. Por l o tanto1 el programa principal continuad desde la posicibn 104, donde se interrumpi6.
p'ogfama.

S E C U &

68 Pmpmacin de entrada-~~lida

219

TABLA 6-23 P m p m a para dar m i c i o a una intemipcibn

BUN SRV
CLA
ION LDA X ADD Y STA Z

/Diretcibn de retorno almacenada aqu /Brincar para dar servicio a rutina /Parte, d d programa que se ejecuta /Encender opcibn de interrupcibn

/La inlerrupcibn ocurre aqu


/El programa retorna qul despub de la
interrupcin

STA SAC

cm

STA SE

SKI BUN M

/Intemimpir servicio a la nitina /Almacenar contenido de AC /Almacenar contenido de AC /Mover E dentro de AC(1) /Almacenarcontenido de E . /La W w a estd apagada, comprobar siguiente bandera /La bandera eskA activada, introducir
cardcter

OUT

STA PTl 1 ISZ PT1


SKO
BUN m LDA m I OUT

ISZ m
QL

LDA SE LDA SAC


ION BUNZI(OI

SAC, SE,
Rl,

m,
trada

/Imprimir cadcter /Aimamnarlo en buffer de entrada /Incrcmcntar apuntador de entrada /Comprobar bandera de salida /Lahndcra esth apagada, salir /Cargar carhcter de buffer de salida /CarActcr de salida /Incrementar apuntador de salida /Rcstaiirrir vaIor de AC(1) /Corrimiento a E /Restaiimr contenido de AC /Habiliiar internipcibn /Retornar a1 programa principal /AC csb slmacenado aqu / E esU almacenado qul /Apuntadar de buffcr de entrada /Avuntador de buffer de salida

Una computadora tpica puede tener muchos m6s dispositivos de eny salida conectados a la opcin de interrupci6n. Adems, las fuentes de interrupcibn no se limitan a transEerencias de entrada y salida. Pueden usarse interrupciones con otros pmp6sitos, como para procesar v r e s internos o candiciona de alarma especial. En la seccibn 11-5 puede encontrarse un anlisis m& a n p l i ~ de las interrupciones y algunos conceptos avanzados reladonadds con este importante tema.

: S

Pqmm&n bsica de Ia computadora

-l.

E 1 siguiente programa estA almacenado en la unidad de memoria de l a cumpukidorabsiria. Muatre el contenido de AC,PC,e IR (en hexadecimal)
aI

finai, despub de que +ute sada instnrcci6r~Todos los nifmeroei Estados.abajo est&n en hexadecimal.

CLA ADQ 016 BUN 014 HLT AND 017 BUM 013
C1A5

9 3 1 3 6

-2

El siguiente programa es una lista de instrucciones en c6digo hexadecid. L a computadora ejecuta las inctrucciom comenzando m la direccin 100. ~ Q u contienen d AC y la palabra de memoria en la dkcin 103 cuando se detiene la computadora?

6-3.

Liste el programa de lenguaje ensarnblador (de las instrucciones biirias equivalentes) generado mediante un mmpilador del siguiente programa Fortran, Considere variables enteras.

SUM = O SUM-SUli+A+B DIF = DIF - C

SlJll=SUH+DIF

6 4

6-5.

64.

Puede usarse la letra 1como una d i d d n simbbliea en el programa de lenguaje ensamblador definido por la computadora bsica? Justifique la respuesta. >LQuB sucede durante la primera pasada del ensamblador (figura 6-1) si la Ilnea de c6digo que tiene una seudoinstrucei6n OR o END tambin tiene una etiqueta? Modifique el diagrama de flujo para incluir un mensaje de error si ocurre esta. Una llnea de cdigo en un programa de lenguaje ensamblador es como sigue:

DEC -35
a. Muestre que se necesitan las cuatro palabras de memoria para almacenar la lnea de d i g o y pmprcionar su contenido binario. th Muestre que una palabra de memoria almacena el &digo b i i r i o tradu6-7.

6-8.

cido y proporciona su contenido binario. a. Obtenga la tabla de direcciones simbblicas generada para el programa de la tabla 613 durante la primera pasada del ensamblador. b . Liste el programa traducido en hexadecimal. La ~eudoinstruc~i6n 3SS N @ ] q u einiciado mdiaate un smbolo)en ocasiones se emplca para reservar N palabras de memoria para un ggnipo de operandos. Por ejemplo, la lnea de d i g o

6 . 9 .

6-10.

6-11.

infoma d ensambladar que va a quedar l i W un bloque de 10 (decimal) loalidada,.comenzando desde la localidad A. Esto es si& al enunciado de Fo&mn DIMEMIDN A(10). Iddifique el diagrama de flujo de la figura 6-1 para procesar '&a seudoinstruccibn. Modifique el diagrama de flujo de la figura 6-2 para que incluya un mensaje de error cuando una direeeibn simb6liea no est definida mediante una etiqueta. Demuestre cdmo pueden almacenarse en memoria las tablas MRI y no-m, b t e el programa del lenguaje onsambladot (de las instruccimea binarias equivalentes)generado mediante un mmpilador para el siguiente enunciado ZF:

El programa brinca al enunciado 10 s i A - B <O; al enunciado 20 si A - B = O; y al enunciado 30 si A - B > 0.


612.

a. Explique en palabras qu4 realiza el siguiente progcama cuando se ejecuta. ~Gu1 es el valor de la posicin CXR cuando se detiene la
computad~ra?

b. Liste la tabla de direcciones simbb1ieas que se obtiene durante la


primera pasada del mnibtdor. c. b t ee l d i g o hexadwimal del programa traducido.

CAP~TULO SEIS

Programacin bsica 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, utilizando un apuntador y un contador, que borre a O el contenido de las posiciones hexadecimalesde la 500 a la 5FF. Escriba un programa para multiplicar dos nmeros positivos mediante un metodo de suma repetida. Por ejemplo, para multiplicar 5 X 4, el programa evala el producto al sumar 5 cuatro veces, o 5 + 5 + 5 + 5. El programa de multiplicacin de la tabla 6-14 no est inicializado. Despus de que se ejecuta una vez el progama, la posicin CTR se quedar con cero. Muesbre que si el programa se ejecuta de nuevo comenzando de la posicin 100, el ciclo se recorrer 65536 veces. Agregue las instrucciones necesarias para inicializar el programa. .Escriba un programa para multiplicar dos nmeros positivos sin signo, cada uno con 16 bits significativos, con el fin de obtener un producto de doble precisin sin signo. Escriba un programa para multiplicar dos nmeros de signo con nmeros negativos que estn al principio en representacin de complemento a 2 con signo. El producto debe ser de precisin nica y en representacin de complemento a 2 con signo si es negativo. Escriba un programa para restar dos nmeros de doble precisin. Escriba un programa que evale la OR lgica exclusiva de dos operandos lgicos. Escriba un.programa para la operacin de corrimiento aritmtico a la izquierda. Brinque a OVF si ocurre un sobreflujo. Escriba una subrutina para restar dos nmeros. En el programa que se llama, a la instruccin BSA le siguen el susbraendo y el minuendo. La diferencia se

devuelve al programa principal en la tereera p i c i 6 n despub de la instrucci6n ESA,

6-22.

W ~ b una a subnitina para complementar cada palabra en un bloque de datos. En el programa que se llama, a la instnrcci6n BSA le siguen dos parAm&ros:la direcci6n de comienzo del blaqrie y e l nmero de paiabras en e l bloque.

6-23.

k i b a una subrutina para circular E y AC cuatro veces a la derecha. S i el AC contiene e 1 hexadecirnal O 7 K y E = 1, ~ d m quedan o los contenidos de AC y E despub de que se e j w t a la subrutina?
Escriba un programa para aceptar caracteres de entrada, empacar dos caracteres en una palabra y almacenarlos en posiciones wnsecutivas en un buffer de memoria. La primera direcci6n del buffer ea (400),E l tamao del bufler es de (512), palabras. S i el buffer tiene un sobreflujo la computadora debe detenerse. Escriba un programa para desempacar dos caracteres de la posici6n WRD y almacenarlos en los bits del O al 7 de las posiciones CH1 y CH2. Los bits del 9 al 15 deben contener ceros. Obtenga un diagrama de flujo para un programa que compruebe un cdigo CR (hexadecimal O D ) en un buffer de memoria. E l buffer contiene dos c a r a c t e m por palabra. Cuando se encuentra el c6digo para CR,d programa lo transfiere a los bib de1 O al 7 de la posicin LNE sin afectar los bits del 8 al 15. Traduzca la nitina de servicio SRV de la tabla 6-23 a su d i g o hexadecimal equivalente. Considere que la rutina esta alrnamda comenzando d d e la posicibn 200. k i b a una rutina de servicio de interrupci6n que ejecute todas las funciones nqueridas pero que el dispositivo de entrada atendido & l o si una posicin espxial, MOD, contiene &lo 1. El dispitivo de salida se atiende 9610 si la posici6n MOD contiene nicamente diitos 0.

-24.

6-25.

6-26.

6-27.

6-28.

1. l b & , T .L . , Introd~ictionlo Computer Engineering, 3a. Ed. Nueva York John Wiley, 1984. 2. Gear, C.W,, Computer Organimtion and Programming, 3a. Ed. Nuwa York M d r a w

Hi11, 1980.
3. Gibcon, G. A., Computer S y s t m Conceplc and Design. E n g l e w d Cliffs, NJ: Prentice

HaU, 1991. 4. Gray, N.A. B. Introduction tu Computer S p W . E n g l e w d Cliffs, NJ: Prentice Hall, 1987. 5 . Ley, H . M, y R H.EAkhouse, Jr., Coniputer Pmgrarnming and Ardritecture: Ihe VAX-11. Wfod, MA: igital Press, 1980.

EAPfTUkO SEIS Programaci6n bsica de la computadora

6. h i n , M. H . b g k h i g n and Cmpufer Orpinitim.Reading, MA:Addison Wesley,


1983. 7. Proaser, F . P.y D. E.Winkel, TIse Art of DigitaI Design, 2a. Ed. Englewood Cliffs, NJ: Prentice H d , 1987. 8. Shiva, S .G . ,Comptiter Design m d Archilpcture, h. Ed. Nueva York: HarperColiii

PubIishws, 1991. 9. Tanenbaum, A. S, Struchired Compute? rganizntion, 3a. Ed. Englewood Cliffs, NJ: M t i c e %U, 1990. 10. Wakerly, J, F . , MimKDrnpufer Architecture and hgramming, Nueva York: JohnWiley,
1981.

1 '

EN ESTE CAP~TULO
7-1 7-2

7-3 7-4

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 funcin 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 complejidad del sistema digtal se deriva de la cantidad de secuencias de micrmperaciones que x ejecutan. Cuando la circuitera genera seibles de control por medio de t h i m s de diseo lgico ~nvencion& se dice que la unidad de control es por circuiterh. La micrdprogramaci6n es una segunda altemativa para dhear la unidad de control de una mrnpubdora digital. El principio de micropgramaci6n es un m M o elegante y sistemtico para controlar las secuencias de dcmoperaciones en una computadora digital. La funcibn de controI que especifica una microoyieraci6n es una variable binarh. Cuando se halla en un estado binarid se ejecuta la microoperaci6n correspondiente. Una variable de control en estado binario opuesto no cambia el estado de las'regktroc en el sistema. El ~ t a d o activo de la variable de control puede ser el estado 1 o el edtado 0, segn la aplicacidn. En un sistema organizado con bus, las seirala de control que especifican micmperaciones son grupos de bits que seleccionan las trayectorias en los multiplk* res, decodificadores y unidades 16gicas arh&tieas. h unidad de control inicia una serie de pasos -&les de rnicroope raciones. Durante cuaIquier momento, se van a iniciar ciertas microoperaciones, mientras otras q~edaninactivas. Las variables de control pueden

226

SIETE O Control microprogramado

palabra de control
f

microinstruccidn microprograma

memoria de control

representarse en cualquier momento mediante una cadena de dgitos 1 y O, que se denomina palabra d e control. Las palabras de control pueden programarse para realizar diferentes operaciones sobre los componentes del sistema.' Una unidad de control cuyas variables de control binario se almacenan en la memoria se llama unidad de control microprogramada. Cada palabra en la memoria de control contiene una microinstruccin. La microinstruccin especifica una o ms microoperaciones para el sistema. Una secuencia de microinstrucciones constituye un microprograma. Como no se necesitan alteraciones del microprograma una vez que la unidad de control est en operacin, la memoria de control puede ser una memoria de slo lectura (ROM). El contenido de las palabras en la ROM es fijo y no puede alterarse mediante la programacin simple porque no es posible escribir en la ROM. Las palabras en ROM se vuelven permanentes durante la produccin de la unidad. El uso de un microprograma implica la colocacin de todas las variables de control en palabras de ROM para que las use la unidad de control a travs de operaciones de lecturas sucesivas. El contenido de la palabra en ROM en cierta direccin especifica una microinstruccin. Un descubrimiento ms avanzado conocido como microprogramacin dinmica permite que un microprograma se cargue al principio desde una memoria auxiliar; por ejemplo, desde un disco magntico. Las unidades de control que utilizan la microprogramacibn dinmica emplean una memoria de control en la que se puede escribir. Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero, por lo general, se utiliza para lectura. Una memoria que es parte de una unidad de control se denomina memoria de control. Una computadora que emplea una unidad de control microprogramada tendr dos memorias separadas: una memoria principal y una memoria de control. La memoria principal estli disponible para que el usuario almacene programas. El contenido ,de la memoria principal puede variar cuando se manipulan los datos y cada vez que se cambia el programa. El programa del usuario en la memoria principal est formado por instrucciones de mquina y datos. En contraste, la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar. El microprograma consta de instrucciones que especifican diferentes seales de control interno para la ejecucin de microoperaciones de registro. Cada instruccin de mquina inicia una serie de microoperaciones en la memoria de control. Estas microinstrucciones generan las microoperaciones para llevar a cabo la bfisqueda de la instruccin en la memoria principal; para evaluar la direccin efectiva, para .ejecutar la operacin especfica mediante la instruccin y i n de repetir el ciclo para retornar el control a la fase de bsqueda con el f para la siguiente instruccin. La configuracin general de una unidad de control microprogramada se muestra en el diagrama de bloques de la figura 7-1. La memoria de control se considera como una ROM, dentro de la cual se almacena toda la informacin en forma permanente. El registro de direccionamiento de la memoria

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.de la direccjbn siguiente


Figura 7-1 Organizacin de control microprograrnada.

direccibn de control

de controI especifica la direccihn de la microinstrucci6n y el registro de datos de control contiene la microhstrucci6n que se lee de la memoria. La micruinstrucci6n contiene una palabra de control que especifica una o ms micmoperaciones para el prricesador de datos. Una vez que se ejecutan estas

registro de lineas

operaciones, el contra1 debe determinar la siguiente d i c i b n . La posicidn de la instruccin siguiente puede ser la ms pr6xima en secuencia a puede ubicarse en cualquier otra parte en la memoria de control. Por esta radn, es necaario utilizar algunos bit5 de la microinstrucci6n presente para controbr la generacihn de la direcci6n de la siguiente microinstruccibn. L a direccibn siguiente tambin puede ser una funci6n de condiciones de entrada externa. Mientras se ejecutan las microoperaciones se calcula la siguiente dimxi6n en el circuito generador de la direccidn siguiente y despub s e transfieren al regstro de direccionamiento de control para leer la pr6xima microjnstmcci6n. Por lo tanto, una microinstniccibn contiene bits para iniciar microoperaciones en la parte del pmcesador de datos y bits que determinan la secuencia de direccibn para la memoria de control. E l generador de l a .siguiente instrucci6n en ocasiones se llama un secuencindor de micropmgrama, porque determina la secuencia de direccibn que se lee en la memoria de control. La direccidn de la siguiente instnicei6n puede especificarse de varias maneras, dependiendo de las entradas del secuenciador. Las funciones tipicas de un menciador de microprograma son incrementar el registro de direccionamiento de control en 1, cargar una direccih de la memoria de control en el registra de direccionamiento de control, transferir una diremi611externa o cargar una direcci6n inicia1 para iniciar las operaciones de control, El registro de datas de control contiene la rni~~0imtmcci6n pmmte mientras que la siguiente direccin se calcula y se lee en la memoria. El registro de datos en ocasiones se denomina registro de arquitectura pmlela (pipeline) u paralelo. Ya que permite la ejecucibn de las rnicrmperaciones especificadas mediante la palabra de control simultneamente con la generacihn de la siguiente microinstruccidn. Esta configuraci6n requiere un reloj de dos fases, donde se aplica una de stas al registro de dreccimarniento y l a otra a1 registro de datos. El sistema puede operar en el registra de datos de control al aplicar una d a fase del reloj al registro de d-onamiento. ta palabra de control y la informaci6n de la siguiente direccibn se toman de la memoria de controI.

No hay que olvidar que una ROM opera como un

--

circuito combinatorio; con el valor & la direcci6n como entrada y la paIabra correspondiente como sdida. El contenido de la palabra especificada en ROM permanece en hs Iineas de salida, en bnto su valor de direccin se encuentra en el registro de direcci6n. No se necesita d a 1 de lectura como en una memoria de acceso aleatorio. Cada pulso de r e l o j ejecutara las rnicrooperaciones especificadas

d i a n k la palabra de control y tambikn transferid una nueva direccibn al


registro de direcei6n de control. En el ejemplo que sigue consideramos un reloj de una sola fase, por 10 tanto no utilizamos un registro de datos de control. D e esta manera, el registro de d k i 6 n es el nico componente en el sistema de control que recibe pulsos de reloj. Los otros dos componentes: el secuenciador y la memoria de control son circuitos combinatorios y no necesitan un reloj. L a principal ventaja dd control micropmgramado es que, una vez establecida la confiracibn de la k u i t e r f a , no hay necesidad de cambios' posteriores. Si desparnos establecer una secuencia de control diirente para el sistema, todo l o que necesitarnos hacer es especificar un conjunto de miccoinstnicciones diferentes para la memoria de control. La configuraci6n de la circuikra no debe cambiarse para diferentes operaciones; lo nico que debe cambiame es el rnicroprograma que reside en la memoria de control. 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 circuitera en lugar de una memoria de control con un mimoprograma. Un ejemplo de control de Iineas internas pam una computadora simple se presenta en la aeceidn 54.

Control de inew

internas

7-2

Secuencia de la direccion

tas ~roinstnzcuones .se almacenan en la memoria de control en grupos, y


rutina. Cada instrucci6n de.mmputadora tiene su propia rutina de microprograma en la memoria de control para generar las miamperaciories que ejecutan la instruccin. La circuitera que controla la secuencia de la direccin de la memoria de control debe poder euenciar las micronstrucciones dentro de una rutina y poder transferir el control d d programa de una a otra. Para apreciar la secuencia de la direcci6n en una unidad de contmI de programa, enumeremos tos pasos que debe seguir el control durante la ejecucidn de una ittstrucci6n de computadora. nb Se carga una dhcci6n inicial en el registro de direccibn de control d m d v nhm e mando se enciende la computadora. Esta direccidn, por b general, es la de la primera microinstmcci6n que activa la rutina de bdsqueda de instrucci6n. ti L a rutina de bdsqueda puede sscuenciarse al incrementar el registro de direccionamiento de control por medio del resto de sus microinstrucciones.
cada grupo espeeica una

mapeo

Al f i l de la rutina de bsqueda, la inatmEi6n est en el registro de instruccin de 12L computadora, En seguida, la men'oria de control m n e la rutina que determina la dkeccibn efectiva del operando. Una instrucci6n de mquina puede tener bits que especifiquen diferentes modos de direccionamiento, como un direccionamiento indirecto y los registros ndice. Puede lograme una rutina de c8lculo de direccin ektiva- en la memoria de conkm1 mediante iina mic~oi~strucei6n de brinco, la cual est ~wndicionadaal estado de los bits de modo de la operacin. Cuando se M n a la rutina de c4lcuh de direccidn efectiva, h d i i d n del operando est disponible en el registro de direccionamiento de la memoria, El siguiente paso es-generar las mimperaeiones que ejecutan la instrucdh que se trajo de Ia mmoria. b s pasos de la rnicrooperaci6n que se van a generar en l~ q i s t r o s del procesador dependen de la parte del d i g o de operacidn de la instruccin. Cada instrucci6n tiene su propia rutina de micropmgrarna almacenada en una cierta posici6n de la memoria de control. b a transformacin de bits de1 cdigo de instruccin a una diremi611en la memoria d e conkm1 donde se Iocaliaa la rutina se denomina proceso de mapeo. Un procedimiento de mapeo es una regla que transforma e 1 cMgo
de instnimi6n en una direcci6n de memoria de control. Una vez que se llega a la niti a querida, las microinstrucciones que ejecutan la instniccibn pueden uenciarse al incrementar el registro de diicionarniento de conMI, pero en ocasiones la secuencia de microoperaciones dependerA de los valores de ciertos bits de estado- y Ioe registros del procesador. i m microprograma3 que.emplean subrutinas requerirn un registro interno para almacenar la d i d 6 n de retorno. tas direcciones de retorno no pueden almacenarse en RQM porque no es posible escribir en la unidad. Cuando se termina la ejecuci6n de la instrucci6n, el control deke retomar a la rutina de biqueda. Esto se consigue al ejwutar una miuuiinstrucci6n de brinco incondicional a la primera d i c i 4 n de la rutina de bsqueda. En resumen, las posibilidades de secuencia de direcci6n que se requieren-en la memoria de control son:

EL

Incrementar el registro de direccionamiento de control. 'Transferencia de control del programa condicional o incondicional, dependiendo de las condiciones de los bits de estado. 3. Un proceso de mapeo de los bib de la instruccidn a una ,direccin para una memoria de control 4. Una opcin para ilamar y regresar solicitud de una subrutina y
retorno.

L a figura 7-2 muestra un diagrama de bloques de una memoria de control y la circuitera a w i a d a necmaria para seIeccionar la direcci6n de la siguiente microinstrucci6n. La rnic~~instruccin en la memoria de control contiene un conjunto de bits paTa iniciar micmperaciones en las registros

de la computadora y otros hits para especificar e l mtodo con e l que se obtiene l a siguiente direccibn. El diagrama muestra cuatro trayectorias diferentes de ias que recibe la direccin el registro de direccionarniento de contra1 (CAR). El incrementador incremmta el contenido del registro de dhccbnamiento de control en uno, para seleccionar la microinstrucci6n siguiente en secuencia. La transferencia de control del programa se consigue al esp~ificar la direcci6n en uno de los campos de Ia microinstmccibn. La transferencia de control condicional se obtiene al usar una parte de la microinstmcci6n para seIeccionar un bit de estado especifico con e l fin de dekqinar su condicih. Se transfiere una dileccin externa a la memoria de control mediante un circuito 16gico de mapeo. IA direccin de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza despub, cuando d rnicroprograma desea retornar de la subrutina.
Figura 7-2 Celeccin de una direcci6n para la memoria de control.

DireEcion de transferencia de control

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. Las condiciones de estado son bits especiales del sistema que proporciona nfomaci6n de parhetros, como el acarreo de un sumador, el bit de signo de un nmero, los bits de modo de una instfucci6n y las condiciones de estado de entrada o salida. la informacihn en estos bits puede probarse y se pueden iniciar acciones con base en su condicibn si su valor es 1 o O. Los bits de estado, junto con el campo en la microinstmcci6n que especifica una direccibn de transferencia, controlan las decisiones de transferencia condieional que SE generan en la 16gica de trmsfemcia de control. IA circuiteria de 16gica de transferencia de control puede implantarse de diversas maneras. La mAs sencilla es probar la condicibn especificada y brincar a la d i i 6 n indicada si se cumple una condicin; de otra manera, el registro de direccionamiento se incrementa. Esto puede logra- con un multiplexori Supongamos que hay ocho condiciones de bit de estado en d sistema. Se usan tres bits en Ia microinstrucci6n para especificar cualquiera de uno a ocho condiciones de bik de estado. Estos tres bits p"po"0nan las variables de selecci6n para d multiplexor. Si el bit de estado que se se1eociana est en 1, la salida del multiplexor es 1; de otra manera es O. Una salida 1 en el multiplexor genera una sefial de control para transferir la direeeidn de1 brinco de la microinstrucci6n al registro de direccionamiento de control. Una salida O en el multiplexor provoca que se uicremente d registro de diremibn. En esta configuracin, el microprograma sigue una de dos trayectorias posibles, dependiendo del valor del bit de estado que se seleccione. Una iristmccin de transferencia incondicional puede obtenerse al cargar la direccibn de ramificacin de la memoria de control en el registro de direccionamiento de control. Esto puede lograrse al fijar el valor de un bit de estado de la entrada del mdtiplexor para que siempre sea igual a 1. Una referencia a este bit, mediante las h a s de seleccih dei bit de estado de la memoria de control, hace que Ia dimcidn del brinco se cargue en el registro de dirwctonamiento de control en forma incondicional.

Mapeo de las instrucciones


Existe un tipo especial de transferencia de control cuando una microinstmcci6n specifica un brinco a la primera palabra de la memoria de control donde se ubica una rutina de rnicroprograma para una instrueci6n. Los bits de estada para este tipo de brinco son los que estin en la parte del ckiigo de operacidn de la instmccifi Por ejemplo, una computadora con un formato de hstmcci6n simple, como l a que se muestra en la figura 7-3, tiene un c6digo de operaci6n de cuatro bits que puede especificar hasta 16 instrucciones diferentes. Consideremos adems que la memoria de control tiene 128 palabras, l o que q u i e r e una direccibn de siete bits. Para cada c6digo de qperaci6n que ah se encuentre existe una rutina de microprogra-

rna en i a memoria de confrd que ejecuta la microinstmeci6n. Un proceso de mapeo simpk que convierte al cdigo de operaci6n de 4 biis en una direccidn de 7 bi@ para la memoria de control se rnueetra en la figura 7-3.Este m a p consiste en colocar un O en el bit ms significativo de la direccin, al transferir los, cuatro bits de cbdigo de operacidn y borrar los bits menos signscativas del registro de direccionamiento de control. Esto proporciona una rutina .& mimoprograma con capacidad de cuatro microinstrucciones para cada imtruccih de computadora. S i la rutina necesita m8s de ectas cuatro mstnicciones puede utilizar las direcciones de l a 1000000 a la 1111111. S i utiliza mepos de las cuatro instruccionesr las posiciones de memoria que no se usan p i d a n estar disponibles para otras rutinas. Se puede ampliar este concepto a una regla de rnapeo mis general, al usar una ROM para espee%car la funcidn de mapeo. En esta configuracin, los bita de lar instruccidn v i f i c a n la dimci6n de una ROM de mapeo, El contenido da la ROM de mapeo proporciona los bits para el registro de direccionamiento de contro1. De esta manera, la rutina de microprograma que ejecuta la instntcci6n puede coIocarse en la posicibn que se desee en l a memoria de!contmI. El concepto de mapeo proporciona flexibilidad para agregar inabrucciones para la memoria de contra+ ronforme surge la necesidad. En ccasiones la funcibn de mapa se obtiene mediante un circuito integrado llamado dispositivu lgico progr-amable o PLD. El concepto de un PLD es similar al de la ROM, excepto que utiliza compuertas AND y OR con fusibles electr6nicos internos. Puede programarse la intermnexibn de las entradas, >compuertasAND, cornpueria8 O R g salidas como en una ROM. ,Unafuncin de mapeo que puede expresarse en trminos de expresiones ?maleanas pude incrementarse en forma conveniente con un PLD.

Submthas
h s subrutinas son paagramas que utilizan otras rutinas para realizar una tarea partrcuiar. Puede Ilamarise una suhruka de cualquier punto desde el

registra de

subrutina

del microprograma. Con frecuencia, muchos microprogramas contienen secciones de c6digo idbnticas. Pueden ahorrarse microinstrucciones al emplearse subrutinas que ~rtilizansecciones comunec de microcdigo. Por ejemplo, la secuencia de microinstrucciones necesarias para generar la direccin efectiva del operando para una instrueei6n es c o m h a todas las instrucciones de referencia a memoria. Esta =uencia podfla s e r una subrutina que se solicite en cualquier rutina para ejecutar el dlculo de dire4411efectiva. Los nicroprogramas que utilizan subrutinas deben tener una parte para almacenar la direcci6n de retorno durante una llamada a subrutina y restablmr la direccin durante un retorno de subrutina. Esto puede lograrse al colocar la salida incrementada del regiskm de direccionamiento de control en un registro de subrutina y al brincar al comienzo de la subrutina. El registra de la subrutina puede convertirse entonces en la fuente para transferir la direccin para e1 retorno a la rutina principal. L a mejor manera de estmcturar un registro de archivo que almacena direcciones para subrutinas es organizar los en una pila (stack) del tipo itimo en entrar, p m r a en salir (LIFO). El uso de una pila en ilarnadas y regresos a subrutina se explican con mayor detalle en la seccin 8-7.
a w p o principal

7-3 Ejemplo de un microprograma


Una vez ue se establece la cmfiguracibn de una computadora y su unidad de contra micr~programadu, as tarea del diseibdor generar el microc6digo para la memoria de corttrol. b k a generacih de cdigo se llama microprogramacih y es un proceso similar a la programacibn de lenguaje de miiquina convencional. Para apreciar este prweso, aqui presentarnos una computadora digital simple y c6mo se programa. La computadora que s e usa aqui es-similr pero no iddntica a la computadora bisica que se present6 en el capftulo 5.

'

Configuracibn de la computadora El-pmgrama de bloque de una computadora se muestra en la figura 7-4. Consta de dos unidades de memoria: una memoria principal para almacenar instrucciones y datos y una memoria de control para almacenar el micropm grama. Se asoeian cuatro registros con la unidad del procesador y dos con la unidad de controI. Los regisiros del prpcesador son el contador de programa PC, el e t r o de direccionamiento AR, el registro de datos DR y el registro acumulador AC. L a funci6n de estos registros es similar a los de la computadora baisica que se present6 en el captulo S (vease la figura 5-3). 1La unidad de control tiene un registro de direccionamiento de control CAR y un registro de subrutina SBR. La memoria de control y sus registros se organizan como una unidad de control mkroprogramada, e n se m u e s t r a en la figura 7-2.

fomato de inshccibn

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

a) Formato de una imtruocibn

BRANCN

o001

SI~C<O)CP~~ (PC M ~+ C SEA)

EA wi la direccin efwkiva
b ) marro hsirurxiones de computadora

Figura 7-5 ~lnstruacionesde computadora.

representado por 1 , un c6dig.o de operaci6n de 4 bits y un campo de dXxecci6n de 11 bits. La figura 7-5(b) lista cuatro de las 16 instrucciones posibles de referencia a memoria. La instruccidn ADD suma el contenido del operando que se encuentra en la direccin efectiva al contenido de AC. La instnicciBn BRANCH provoca un brinco a la direcci6n efeetiva si el operando en AC es negativo. El p~ograma pasa a ejecutar la siguiente insbccih si AC no es negativo. AC es negativo si su bit de signo (el bit a la extrema izquierda del registro) es un 1 . La hstmceibn STORE transfiere el contenido de AC a la palabra de memoria wp&if~cnda p ' rla direcci6n efectiva. La instrucci6n EXCHANGE inkrtambia los datos entre AC y b palabra de memoria espeOfdada por la direccin efectiva. Despus se moshr6 que cada instruM6n de computadora debe microprogramarse. Para no complicar el ejemplo de microprogramaci6n, a q d 9610 se consideran cuatro instrucciones. D e b e recordarse que pueden incluirse otras 12 qmaeiones y cada iristru~ei6n debe mic~aprogramarse mediinte el p d i m i e n t o que se mipestra enseguida.

fomtato de
mhin+cidn

Formato de las rnicrohtrudones El formato de microinstruccibn para la memoria de control se muestra en la figura 7-6. b s 20 bits de la microhtrumi&n se dividen en cuatro parties fundonal~. Los tres campos F1, E?y M especifican micmperaciones para la computadora. E 1 campo CD 6eIdona las condiciones del bit de estado. El ampo BR e c a el tipo de transferencia de contror que ae usarb. El

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

campo AD contiene una direccibn de memoria. El campo de direccin es de 7 bits porque la memoria de control tiene 128 = 2' palabras. Las microoperaciones se auhdividen en tres campos de tres bits cada uno. Las tres bits en cada campo se codifican para especifiar siete operaciones distintas, como c e muestra en la tabla 7-1. Esto proporciona un total de 21 micwoperaciones.. No pueden elegim m8s de tres operaciones para una microinstrucci6n, una para cada campo. S i se usan menos de tres microoperaciones, uno o ms de los campos usar&el cdigo binario 000, que significa sin operacibn. Como ejemplo, una microinstmcci6n puede especificar dos rrilcrooperaciones simultneas de F2 y M y ninguna de El.

Dp + M [AR]
Y PCc-PC4-1

con F2 = 100

cdnF3=101

campo de condin'p

Entonces los nueve bits de los cqmpos de la micmqeraci6n serfin 000 100 101. Es irnpofinte cqmprender que no pueden especificarse de manera simult4nca dos o ,m6s miuooperaciones confiicibas. Por ejemplo, un campo de microoperaci6n 010 M31 W I no tiene sentido porque especifica la operacidn para cambiar AC a O y restar DR de AC, al mismo tiempo. Cada microoperacin de la habla 7-1 se define con un enunciado de transferencia & registros y *,le asigna un smbolo para us~rseen un micropmgrama simblico. Todos los smbo1m de mia;ooperaciones de tipo transfe~enciau N b n cinco letras. Las primeras dos letras representan el registro fuente, la tercera es siempre una T , y las dos lltunas letras representan el registro destino. Por ejemplo, la mimperacibn que especifica la transferencia AC+DR. = 100) time el shbdo DRTAC, lo cual rep-ta una transferencia de DR a AC. El campo de condicin CD consta de dos bits que estn codificados para espeUFwr condiciones de bits de cuatro esbdos, ~ @ se n listan en la tabla 7-1, L a primera condich es siempre un 1 ,p r l o que una referencia a CD W (o el aimbolo U)siempre encontrar verdadera la mndicidn. Cuando

Ninguno A C t A C t DR
AC+D A C c A C -t 1

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

a m p ~1
4

U
1 S Z

DR(1S)
slC(1S)

1Q
11

AC=Q

Tmnsfmncia incondicional Bit de direccih indirecta Bit de signo de AC Valqr,mroen AC Funcin

BR M I
01
1 0 11

Slmbolo JMP

CAU,
RET
MAP

CAR +AD si la condicidn = 1 CAR +CAR + 1 s i la d i c i n = O CAR +Mm+ SBR CvPA + 1 si la condicidn = 1 CAR+aR I siIadici6n =O CAR +SER (Retorna de.subruiina) CAR (2-5) +DRCll-141, CAR(0,I -6) +O

238

CIETE

Control microprogramado

campo de

transfwericia

esta mndicibn se utiliza junto con el campo de transferencia BR, proporciona una operacidn de transferencia inmndicionaL El bit indirecto 1 est disponible en el bit 15 de DR despus de que lee una instnicci6n de la memoria. El bit de signo de AC proporciona el siguiente bit de estado. E l valor O, representado por 2,es una variable hinaria cuyo valor es igual a 1 si todos los bits de AC son iguales a cero. Utilizaremos los smbolos U,1 , S y Z para los wtrabits de estado. cuando anotemos programas en forma simblica. El campo de transferencia BR consta de dos bits. Se utiSua junto con el campo de direccionamiento AD, para seleccionar la direccibn de la siguiente microinstnicci6n. Como se muestra en la tabla 7-1, cuando BR = 00, el control ejecuta una opmaci6n de brinco JMP (la cual es similar a una transferencia de control), y cuando BR = 01, ejecuta una llamada a subrutina

(CALL). t a s dos operaciones son idnticas, excepto en que una microinstrucci6n de llamada almacena la dirrccibn de retorno en e l registro de subrutina SBR. Leis operaciones de salto y llamada dependen del valor del campo CD. Si la mnditi6n del bit de estado especificada en el campo CD es igual a 1, se transfiere Ia siguiente direccihn del campo AD al registro de diteccionamiento de control CAR. De oka manera, CAR se incrementa en 1. E l retorno de la subrutina se consigue con un campo BR igual a 10. Esto provoca la transferencia de la direccibn de retorno de SBR a CAR. Se consigue el mapeo de los bits del cdigo de operaci6n de la instrucci6n a una d i m i b n para CAR cuanda el campo BR es igual a 11. Este mapeo aparece en ]a figura 7-3. Los bits del cdigo de operaci6n estn en DR (11-14) despu4s de- que se lee una imstniccibn de la memoria. N6tese que las dos iiltimas condiciones del.campo BR ,san independientes de los valores de los campos CD y AD.

Microinstrucciones simb6licas
Los slmbolos definidos en la tabla 7-1 pueden utilizarse para especificar microinstrucciones en forma simbblica. Un microprograma simblico puede traducirse a su equivalente binario mediante un ensambladar. Un qnsamblador de microprogram es similar en su concepto a un ensamblador de computadora convenci~nal, e n se define en la secci6n 6-3. L a manera m8s sencilla y directa de formular un lenguaje ensamblador para un m i c m p ~ m a es definir shbolm para cada campo en la microinstruccin y proporcionar a los usuarios la posibilidad de definir sus propias direcciones simblicas. Cada lnea del microprograma del lenguaje ensamblador define una rnicroinstniccibn simb6lica. Cada micmhstnicci6n simbblica se divide en cinco campos etiqueta, micrmperaciones, CD, BR y AD. tos campos especifican la siguiente informacin.

1 . El campo de la etiqueta puede estar vado o especificar una d M & n simbolica. Una etiqueta temiina con un signo de dos puntos (:). Z El campo de rnicrooperacisnes consta de uno, dos o tres simbolos separados por comas, de los definidos en la tabla 7-1. No puede

campo de dirercidn

haber & de- un simbolo de campo F. E l siibolo NOP se utiliza cuando la microinstnicci6n no tiene microoperaciones. E1 ensambladar traducir&esto a nueve ceros. 3. E 1 campo CD tiene una de las letras U, 1, S o 2 . 4. El campo BR contiene uno de 10s cuatro slmbolos definidos en la tabla 7-1. 5. El campo AD espciftca un valor para el campo de direccin de Ia microhstrueci6n en una de tres maneras posibles: a . Con una d i m i 6 n simMlica, la cual tambidn debe aparecer como etiqueta, b . Con el smbolo NEXT para representar la direccihn siguiente en secuencia. c. Cuando e l campo BB contiene un smbolo RET o MAP, el campo AD se deja vacio y d ensambhdor b convierte a siete ceros.

ORC

Tambikn utilizaremos la seudoinstnicci6n ORG para definir el origen,


o la primera diieccidn, de una rutina de microprograma. Por l o tanto, el simbolo ORG 64 informa al ensambladar que coloque la siguiente microinstrucci6n en la memoria de control de la direccin decimal 64, lo cual es equivalente a la direccidn binaria 1000000.

La rutina de %&queda Ls memoria de control tiene 128 palabras, y

cada palabra contiene 20 bits. Para mimoprogramar b memoria de conho1 es n ~ s a r i o determinar los valores de bit de cada una de las 128 palabras. tas primeras 64 palabras (direcciones -(J a 63) las van a ocupar las rutinas para las 16 instrucciones. h s iiltimas M paIabras pueden usarse para cualquier otro propsito. Una posici6n de inicia conveniente para la rutina de bsqueda es la direccin M. h s microinstnicciones necesarias para la rutina bsqueda son

biisqwda y
dwodijkucidn

a AR y despus se lee I a instruccibn de la memoria dentro de DR. Como no hay disponible un &gistro de inserucci6n, el cdigo de insfuccih permanece en DR.La parte de direccin se transfiere a AR y d @ u & se transfiere e l control a una de las 16 xutinas al mapar una parte del c6digo de operacidn de la instrucci6n de DR dentro de CAR. b rutina de btisqueda necesita estas microinstrucciones, las cuales se calman en la~mmorade control de las direcciones M,6S y 66. Usando las

La direcci6n de Ia microinstrucci6n se transfiere de PC

ronvmdones del lenguaje ensambIador definidas antes, pdemos wribir e l m i q r o g r a m smb6lico para Ia rutina de recuperaci6n como sigue:

FETCH :

ORG 64 PCTAR READ, INCPC DATAR

JMP

U U

JMP
MAP

NEXT NEXT

La traduccibn del micraprqrama simblico a binario p d u c e el siguiente rnicroprograma binario. tos valores de bit se obtienen de la tabia 7-1.

DireEcin binaria ' ~ 1 'F2

CD

BR

AD

Las tres microinstnicciones que constituyen la rutina de bdsqueda se han ihtado en tres representaciones di8ferentes. La representaci6n de Eransfe rancia de registros muestra las operaciones de transferencias de registros internas que implantan cada miczoinstrucci6n. l a qresentaci6n simb6lica es til para exribir m~cropmprztrnasen un fomnato del nguaje ensamblat e almacenarse en dor. La mpresentaci6n binaria es el contenido real que de la memoria de control, ! % acostumbra ecribir microprogramas en forma simbblica y ,dqpu4s. utilizar un programa ensamblador para obtener una traduccihn a binario.

La ejecuci6n de la tercera mfcrainsthcci6n (MAP) en la rutina de bsqueda da como resultado un brinca a la dimcibn Oxxxx00, donde xxxx son los
'cuatro bits del cdigo de operacibn. Por ejemplo, si la instmccidn es una ADD cuyo cdigo de operaciSn es 0000, la microinstmcci6n MAP transferir a CAR la d k c i b n 000000Q, la cual es la direccidn de inicio para Ia rutina ADD en la memoria de control. La primera dimi611 para la rutinas BRANCH y STORE son O O001 0 0 (el decimal 4) y O O010 00 (el decimal 8), respectivamente. La primera direcci6n para las otras 13 rutinas est en los valores de direccin 12, 16, 2 0 , .., 60.Esto proporciona cuatro palabras en la memoria de control para cada rutina. En cada rutina debernos proporcionar micminstrucciones para evaluar la direccibn efectiva y ejecutar la instruccin. El modo de direccionamienbs

Micropxogama simblico

indirecta est asociado con todas las instrucciones de referencia a memoria. Pueda usarse menos palabras de h memoria de control si se almacenan en una subrutina hs micr&nslfucciones para e1 direccionamiento indirecto. Esta subrutina, simboiizada mediante INDRCT, se coloca exactamente despus de la rutina de bsqueda, como se muestra en la tabla 7-2. i a tabh tarnbikn muestra d microptagrama simb6lico para la rutina de bsqueda y la's submtinas de microinstruccibn que ejecutan cuatro instrucciones de computadora. Para apreciar c6mo ocurre la transferencia y retorno de b rutina indiwQ, cmsidmos que la microinstnicci6n MAP al final de la rutina de bsqueda provac un brinco a la direccibn 0, donde est almacenada la rutina ADD. La primera microinstruccin en la rutina ADD solicita la subrutina INDRCT, condicionada al estado del bit 1. Si i = 1, ocurre un brinco indirecto I N D R a y la direccibn de retorno (la direccibn 1 en este caso) est almacenada en e l registro de subrutina SBR. La subrutina INDRCT tiene dos microinstrucciones:

INDRCT :

READ DRTAR

U U

JMP
RET

NEXT

Recuerde que un direccionamiento indirecto considera la parte de direcci6n de la instmcci6n como el lugar donde se almacena la direccibn efectiva ms que la dimti6n del operando. Por lo tanto, tiene que accesarse la memoria para obtenqr la direcci6n efectiva, l a cual despus se transfiere a AR. El retorno de la subrutina @ET) transfiere la direccibn de SBR a CAR y, por l o tanto, retorna a la segunda microinstrucci6n de la rutina ADD. ia ejecucibn de la tistrucci6n ADD se realiza mediante las microinstrucciones de las direcciones 1 y 2. La primera microinslnicci6n lee el operando de la memoria en DR. i~ segunda microinstmcci6n ejecuta una microoperaci6n de suma con el contenido de DR y AC y despus regresa al comienzo de la rutina de bsqueda. La instrucci6n BRANCH debe provucar un brinco a la direecibn efectiva si AC < O. AC ser menor que cero si su signa es negativo, lo cual se detecta cuando el bit de estado S es 1. La nitina BRGNCH en la tabla 7-2 comienza por comprobar el valor de S. Si S es igua.1 a O, no murre el brinco y la siguiente micrainstrucei6n provoca un retorno a la rutina de bsqueda sin alterar el contenido de PC. Si S es igual a 1, la primera microinstrucci6n JMP transfiere el control a l a posicin OVER La rnicroinstrucci6n de esta posici6n solicita l a rutina INDRCT s i 1 = 1. Despu4s la direccin efectiva se transfiere de AA a PC y d rnicroprogra'ma regresa a la rutina de

biisqueda. La nitina 5TOlU3 vuelve a utilizar la subrutina INDRCT s i I = 1. E i contenido de AC s e transfiere a DR. Se irtida una operacin de escribir en -la memoria para almacenar el contenido de DR en una localidad especificada mediante'la direccin efectiva en AR.

TABLA 74 Microprograma simb6lioo (parcial)

ADD:

ORG O NOP READ ADD


NOP NOP NOP

CAIa.

LNDRCX,

U U
S

JMP

NEXT
FETCH
OVER FETCH INDRCT FETCH
INDRCT

JMP
JMP
JMP CALL JMP

'I

W OVER:

A R n c
ORG 8
STORE:

U X U
1

NOP
ArnR WRITE

U
U

JMP
JMP

NEXT
FETCH

ORG 12

EXCHANGE:

NOf

f
U U U

READ ACTDR, DRTAC WREE

CALL JMP JEulS J M P

INDRCT

NEXT
NEXT FETCH

rd

mm:
INDRF::

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

S E C ~ 7-3 N Ejemplo de un micioprograma

243

Microprograma binario El rnicroprograma simb6lico es una foma conveniente .para escribir m i c m programas de manera que las personas puedan leerlo y comprenderlo. Pero esta no es la m e r a en l a cual se almacena un microprograma en la memoria. El microprogratna sirnbolico debe traducirse a binario ya sea mediante un programa ensamblador o que lo realice e l usuario si el mimoprograma es lo suficientemente simple como en este ejemplo.
TABLA 7-3 Mianprograma binario pata memoria de control (parcial)

u.1

rbii

~il-mci~"

Microrrutjna

Decimal
O

Binaria

ADD
3
BRANCH

1 2
4 5

6
7

STORE

8
9 1 0
11 12
13 14 15

EXCHANGE

FETCH
INDRCT

64

10000M)

110
000

65
66

67 68

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. h s di~ecciones para la memoria de control se prporcionan en decimal y b i i r i o . El contenido binario de cada microinstruccibn se deriva de los ~nb.010~ y 9us valores bimrios equivalentes se definen en la tabla 7-1. Ntese que la direcci6n 3 no tiene equivalente del microprograma simbiii porque la rutina ADD sblo tiene h.es micrbhtrueeiones en las M m e s 0, 1 y 2. la siguiente rutina comienza en la direccibn 4. Aunque

la dhwcidn 3 no se usa, debe especificarse al* valar binario para cada palabra en la memoria de control. P&OB hahr especificado &lo dgitos O en la palabra porque esta posicihn nunca se utilizar6. Sin embargo, si ocurre algn error no detectado o s i KM seal de ruido establece CAR para el valor de 3, ser4 prhetico saltar a la direcci6n 64, la cual es el comienzo de

M
memo* de contrul

ihi

A
b

contenido'de la paIabra de la memoria de control. Cuando se utiliza una ROM para la memoria de control, la lista binaria de microprograma proporciona la tabla de verdad para fabricar la unidad. Este proceso de fabricaci6n consiste en crear una mascarilla para Ia ROM con el fin de que produzca los dgitos 1 y O para cada palabra. Los bits de la ROM se fijan una vez que se funden los enlaces internos durante la produccin 'de la circuiterla. La ROM est4 hecha de I C que pueden reemplaza= cuando es necesario y sustituirse por otm. Para modificar el conjunto de instrucciones de la computadora, es necesario generar un nuevo microp~~)grama y "enmascarar" una nueva ROM.La anterior puede retirarse e insertarse una nueva en su lugar. Si se utiliza una memoria de control en la que s e pueda escribir, la ROM se sustituye con una RAM. ia ventaja de emplear una RAM para la memoria de control es que el microprograma puede alterarse de manera sencilla al escribir un huevo patrn de dgitos 1 y O s i n recurrir a procedimientos de fbncacin. Una memoria de contrnl en la que se puede es~ribir la flexibilidad para elegir en b n n a dinmica el conjunto de instrucciones de una computadora al cambiar e l microprograma bajo el control del prmesador. S i embargo, la mayora de los sistemas programados utilizan una ROM para la memoria de control porque es mas barata y mis rpida que una RAM y tambin para prevenir que un usuario ocasiona1 cambie la arquitectura del sistema.

El microprograma binario que se lista en la tabla 7-3 especifica el

7-4

Diseo ,dela unidad de control

Los bib de la microinshuccibn por lo genera1 se dividen en campos, y cada campo define una funci6n separada y distinta. Los diferentes campos que se encuentran en los formatos de instrucci6n proporcionan bits de control para iniciar microoperaciones en el sistema, bit6 especiales para especificar la manera en que se va a evaluar la siguiente instruccibn y un campo de direccin para transferir el control del prugrama. Puede reducirse la cantidad de bits de control que inician micmperaciones al agrupar variables mutuamente exclusivas en campos y cdificar los 'bits k de cada campo para proporcionar 2k micmperaaiones. Cada campo requiere un decodificador para producir las e l e s de control correspondienws. Este mdtodo d u c e e l tamao de Iw bik de rnicroinstruccin pero necesita hardware adicional externo a la memoria de control, Tambin aumenta el tiempo de retardo de

SEC~QN P-8. D k i b de

k unidad de control

245

ecodi&ad~xgs

de campos

las sehales de ~~ntr01 porque deben propagarse por los circuitos de decodificacidn. La d d i i c a c i 6 n de 10s bite de control se, mostr en el ejemplo de pmgramacibn de Ia,secci&n anterior. Los nueve bits. del campo de la microoperacibn se dividen en tres campos de tres bits cada una. IA salida de la memoria de m t m l de cada s&campo dek dediticpara que proporcione las.distintas rnicrooperaciones. Las ~ Q d a s de loa decodificadores e s & conectadas a las entradas convenientes en la unidad de procesador. b fipya 7-7 muestra las tres deico;dificadoresy algunas de les conexiony que deben hacerse a partir de sus salidas. Cada &o de los tres campos de la ~croinstr;ueci6n disponible en ese momento en la salida de I a memoria de control 'se decodifica con un decodificador 3 X 8 con el fin de propor&nar,,ocho salidas. Cada una de estas salidas debe conectarse al ,c.huito pnv&& para Miciar l a microoperaci6n ~~IT@SporidigIte, segn se e s ~ i &ca en la kbla 7 1 .Por ejemplo, cuando F1 = 101 @hario S ) , la siguiente
Figura 7-7 13erodlCicaci6nde campos de micrmperacibn.
Fl
1'
1'

F2
lr

P3

Derodificsdor 3 x 8
7 6 5 4 3 2 1 0
1

Desorlifkador 3 x 8
7 6 5 4 3 2 1 0

t t t'
ADD
DRTAC

ttt
m s

de PC

16gi y de
corrimiento

do DA (O- 10)
1t

ir

ir
Seleccionar
41

--

Multiplexores

WoY

246

m m Control micmpmgramado
trnnsicih de pulso de reloj transfiere el contenido de DR (0-10) a AR (representado por DRTAR en la tabla 7-1). De igual manera, cuando F 7 = 110 @ i r = 6.) hay una transfemcia de PC a AR {representado mediante PCTAR).Cbrno se muestra en la figura 7-7, las &lidas 5 y 6 del decodificador FI estn conectadas a la entrada de carga de AR, para que cuando una de e k s est activa, se transfxera a AR la informacibn de los multiplexores. Los muitipIexores seleccionan la informacin de AR cuando est activa la salida 5 y de PC cuando estd inactiva la salida 5. La transferencia a AR ocurre can una transici6n de pdso de reloj slo cuando* estiin activas las salidas 5 o 6 del decodificadox. L s otras salidas del decodifkador que inician transferencias entre registros deben conectarse en fomia similar. La unidad de corrmiento lbgico aritmetico puede di&rse como en lm figuras 5-19 y 5-20. En lugar de utilizar compuertas para generar las seHales de control marcdas mediante los shbolos ADD, y DR en la figura 5-19, estas entradas pwveridrdn ahora de las salidas de loa decodificadores asociadas con los smbolos AND, ADD Y DRTAC, respectivamente, como se muestra en la figura 7-7. Las otras salidas de los decodificadores que estn asociadas c m una operacibn AC tambin deben conectarse a la unidad de corrimiento ldgico aritmbtico en forma similar.

Idgfcn y de
com'mhnto

m,

Semenciador de dcroprograma Los componentes bsicos de una unidad de control minoprogramada son la memoria y ios circuitos que deccionan la direcci6n siguiente. L a parte
de seleccibn- de direccidn se llama muenciador de microprograma. Puede construirse un secuenciador de mimoprograma con funciones digitales que w? ajusten a una aplicacidn particular. Sin embargo, al igual que existen grandes unidades ROM disponibles en encapsulados de circuitos integrados, tambih hay secuenciadores de ppop6sib general convenientes para la con* tniccibn de unidades de control de micropropma. Para garantizar un amplio-rangode aceptabilidad, un secuenciador de circuitos integrados debe proporcionar una organizacidn interna que pueda adaptarse a un amplio rango de aplicaciones. El propsito de un menciador de microprograma es pmntar una direcci6n a la memoria de control con el fin de que pueda lee= y ejecutarse una microinstrucci6n. La lBgica de siguiente direcci6n del secuenciador determina la direeci6n fuente especfica que se va a cargar dentro del registro de control de direccidn. La elecci6n de la direcci6n fuente s e gua mediante los bits de informaci6n de la direcci6n siguiente que recibe el secuenciador de la microinstrucci6n presente. las secuenciadores comerciales induyen dentro de la unidad una pila de registro interno que se usa para el almacenamiento temporal de direcciones durante solicitudes de subrutina y ciclo de rnicroprograma. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direcci6n para h memoria de control.

S E ~ 7-4 N EiseM de la unidad de control

247

Para mostrar la estructura interna de un secuenciador de microprograma tpico analizamos una unidad particular que es conveniente para usarse en eI ejemplo de computadora de micmpmgrama desarrollado en la ~ecci6n anterior. El djagrama de bloque del semendador de microprograma se muestra m la figura 7-8. La memoria de control se nciuye en el diagrama para mostrar la interacih entre e l secuenciador y la memoria conedada a 41. Hay das multiplexotes en el circuito. E l primero selecciona una direecibn de las cuatro fuentes y le marca una ruta hacia dentro del registro de direccibn de control CAR. El segundo multiplexor prueba el valor de un bit de wtado wleccianado y el resultado de la prueba se aplica a un circuito 16gico de entrada. La salida de CAR proporciona la direecibn para la memoria de contral. El contenido de CAR se i n m e n t a y se aplica a una de las entradas del multiplexor y al registro de subrutina SBR. Las otras tres entradas al multiplexor nmero 1 provienen del campo de diremi611de la miminstruccin presente, de la salida de SBR y de una fuente externa que
Figura 7-8 wuenciadw & micrqprogramp r a una memoria de mnhol,

Externa

diseo de I6gfca

de entrada

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

5,

TABLA 9-8 Tabla de vedad de lbgica de entrada para un secuenciador de rnicroprograma

Camp

Entrada

MUX 1
S,&

BE

44tT

CargarSBR L

Problemas

249

tina se cargamn el valor incrementado de CAR durante una microinstniccin dicitada (BR = 01) siempie p cuando se satisfaga la condicin del bit de estado (T = 1). Puede usam"Ia tabla de verdad para obtener las funciones booleanas simplificadas para el circuito 16gico de entrada:

El circuito puede construirse con tres compuertas AND, una compuerta OR y un inversor. N6:tese que e l circuito incrementador del secuenciador de la figura 7-8 no es un contador construido con flipflops, sino un circuito combinatorio construido con compuertas. Puede disearse un incrementador de circuito combinatorio al poner .en cascada una serie de circuitos semisumadores (vase la figura M).E l acarreo de salida de una etapa debe aplicarse a l a entrada de la siguiente. Una entrada m la primera etapa menos significativa debe ser igual a 1 y prporeionar la operaci6n de incrementar en uno.

7-1

7-2
7-3 74

?*

Cual es la difapnci entre.,un.micmpmd~r y un microprograma? iEs p i b l e diar u n d c m m d o r sin un mimpmpma? Todas las computadora~ son rnicroprograrna&s tambin como microp&m? Explique h difemwh entre m m l de amiiteda y control LES +bIe hkr un m W 1de WbRia-o con UM menwriade aintrol? Defina l o siguiente: a) microoperacibn; b) microinstnieei6n; c) rnimpmgrama: d) m i d i p . ia ~rgafzaclbn dk control rnictoprogramadaque se muestra en la figura 7-1 tiene los s i ~ u i m i b tiempos da ?baso de propagacin 40 ns para generar h siguiente d i d h , 18 ns para para.transferir la direcci6n al q i s b de direcciona~m de ~ control,~40 ns para accesztr la ROM de memoria de control, 10 ns para iransferir la mieroinshccibn al registro de datos de ejecutar 4 s dcr6cperaciongs requerGas que se e s @ ~ontroI~y 40 m h n mediantela palabra de m n ~ l . ~ C u A esll a d x i m a frecuencia de reloj que puede utilizar el control? iCuI sera la frecuencia de reloj si no se usa el regism &%'datos de control? EI &tema c@e se m w t m mla figura 7-2 utiza una d de mnd de 1024 pala& de 32 bib d a m.L mi~ ~ t i e a e ~ c a m g o s m ~ ~ ~ ~ ~ c a m p s d e ~ a & ~ ~ t l a i a i 1 a. ~Cu4nbs bik hay en el campo ~d&&t de transferencia de control y en el campo d e s e l d i ' .
-

250

SIETE Control

microprograrnado

b .S i hay 16 bits d e estado en el sistema, ~ d n f o bits s de 16gica de transferencia se utilizan para seleccionar un bit.& estado?
e. ~Cpntsis bits quedan para seleccionar como entradas para l o s mdtiplexom?

74

i a memoria de control de la figura 7-2 tiene 4096 palabras de 24 bit6 cada


una,
a. cuntos bits hay en e l registro de direccionamiento de contraf? b . ~Cdntos bits hay en cada una de las c u a b mzadas que se m u como ~ entradas a los midtiplexores? c. Cuntaseniradas hay en cada muitiplexor y cunta& multiplexo~ se nece-

sitan?

7-7

Y-

Utilizando el procedimiento de m a p d b t o en la figura 7-3, proporcione la primera d i d 6 n de mieroinstruceibn para el siguiente c6digo de operacim: a) ODIO; b) 1011; c ) 1111. Formule un procedimiento de mapm que proporcione ocho microinskrucciones eomutivas para cada rutina. E l &ligo de aperacibn tiene seis bits y la memoria de control tiene 2043 palabras.

7-9

7-10

7-11

Explique &m& puede hacerse el mapeo de un c6digo de instmcci6n a una direcci6n de microinstrucc86n mediante una memoria de d o lectura. - Cul es la ventaja de -te m o comparado con d de la figura 7-3? Por qu necesitamos los dos multipIexores de la configuracibn de k d w a r e de computadora que se questra en la figura 7-4? Hay otra rnanera.en que pueda transferirse la informaci6n de fuentes mb!tiples a un destino comn? Utilizando la tabla 7-1, proporcione el campo de microoperaci6n de 9 bits para las siguienb microopadones:

7-12

Utilizando la tabla 7-1, convierta las siguientes rnicrooperaciones simblicas a enunciados de transferencia de registros y a binario.
a. READ, INCPC

b . ACTDR, DRTAC
c. ARTPC, DRTAC, WlUTE

7-l3

Suponga que cambiamos la rutina ADD que se lista en la tabla 7-2 a las siuuienh dos microinstruocion~.

RDD :

RERD

CALL
JRP

INDR;!
FETCH

ADD
sera la subrutina iNDR;!?
7-19

El swiente es un mimoprograma simb62ico para una instrueei6n en la computadoca defiriida en la m i 6 1 17-3.

ORG 40 NOP NOP

IOP
ARTPO

S Z f U

JMP

FETCH

JHP
CaLL
JMP

FETCH
INDRCT

FETCR

7-15

a. Espdfique la opetaribn realizada cuando se ejecuta Ia instruccin. b . Convida las cuatrc8h i d n s h d m a su f o m binaria equivalente. La computadora de l a secci6n 7-3tiene el siguiente microprograma binarim

a . Tradtzcalo a un microprograma simblico coma en la tabla 7-2. ect en la d i r e c c i n 64 y SNDRCT en la direccin 6 7 . ) da) b . Liste todas 19s fallas @bis cuando e l microprograma ce ejecute en la
computadora.

( B w u e

7-16

Sume las instrucciones si~uienies a la mmputadora de la seccidn 7-3 (EA es Ia direeQ6n efectiva), M b a el mhpmgrarna simb6Iico para cada rutina como en la tabla 7-2. (N6tese que AC no debe cambiar de valor a menos que

la i-ccin

especifique un 4 1 en AC.) )

Slmbo10

CMigo de operacidn

Funci6n cimbblica

Descripcibn
AND Restar
Sumar a memoria

AND
SUB

O1OO A C t A C A M [ E A ]

ADM

BTCL

B Z
SEQ

BPNZ

O101 AC +AC - M [EA] O110 M [ E 4 ] +M [ E A ] + AC 0111 A C e A C r\ M W ~ lOiM Si (AC = O) entonces (PC+EA) 1 O O J S i (AC = MEA])entonces (PC+PC 4- 1 ) 1010 S i (AC > O)entonces (PC+EA)

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). Utice eJ elmata de microinshcci6n de la secci6n 7-3. N6tese que la condici6n de estado DR = O no est disponible en el campo C D de la

cAPlTiL0

Control rnicroprogramado

7-18

computadora definida en 4 a &6n 7-3.Sin embargo, usted puede intercambiar AC p DR y comprabar si AC = O con e1 bit 2. Exriba las rutinas de mimprogfama simbblico para las instrucciones BSA @rimar y salvar direccibnj definidas en el captulo 5 (hbla 54). Utilice el formato de microinsttucddn de la secci6n 7-3.Minimice Ia cantidad de
dcroinstrucciones.

7-19
7-20

7-21

7-22

Muestre cmo van a conectar las salidas 5 y 6 del decodificador F3 en la figura 7-7 al contador de programa PC. Muestre cbmo.puee dividise un campo de m i a m p a c i h de 9 bits en m microinstrueei6n de subcampos que especifiquen 46 microoperaciones. ~Cusntas mtc~~~peraciones pueden especificarse en una micminstrucci6n? Una computadora tiene 16 regis-, una ALU (unidad ari tmbtiea-16giea) con 32 operaciones, y un circuito para corrimimto con ocho opemcioms, t d o s conectados a un sistema de bus comn. a. kmde una palabra de control para la microoperaci6n. b . Espeafique h cantidad de bits en cada campo de la palabra de mntrol y proporcione un esquema de dificaabn general. c, Muestre los bits de la palabra de control que especifican la opera6n R4 R5 + R6. Consi& que la Mgica de entrada del secuenciador de minoprograma de la figra 7-8 tiene c u a b entradas 1% ly ID T (prueba),y tres salidas, S , Soy L.Las operaciones que m van a ejecutar en la unidad e listan en la siguiente tabla. Dice* el circuito lgico de entrada utilizando una cantidad mnima de campuettas.

O O

O
O O

1
O 1 O

1
1 1

O 1 O O

1
7-23

incrementar CAR si T = 1, brincar a AD s iT=O Brincar a AD en forma incondicional IncrementaT CAR en forma incondicional Brincar a AD s iT=1 , incrementar CAR si T = O O Weitar subnitina si T = 1, incrementar CAR s i T =O 1 Retomar de subrutina en forma incondicional 1 Map&r direccibn externa en forma incondicional

7-24

Disee un incrementpdor de circuito combinatono de 7 bits para el aecuenciador de prugrama de la figura 7-8 (vhse la figura 4-8). Modifique el incrementadoral incluit una entrada de control D.Cuando D = O, el circuito se inc&menta en uno, p r o cuando D = 1 , el circuito se inctementa en dos. Inserte una compuerta 0 R e x c l ~ i v a entre el MUX 2 y la lbgica de entrada de la figura 7-8. Una entrada a la compuerta proviene de la salida de prueba del multiplexor. La otra enkadaa la compuertaproviene de un bit etiquetado P.(polaridad)en la mbroinstrumi6n de la memoria de control. La salida de la ~~mpuerta va a la entrada T de l a Ibgia de entrada. LQU& realiza el control de polaridad P?

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

EN ESTE CAP~TULO
Introduccin Organizacin general de los registros Organizacin de una pila Formatos de las instrucciones

Modos de direccionamiento
Transferencia y manipulacin de los datos Control del programa Computadora de conjunto.de instrucciones reducido (RISC)

8-1
CPU

Introduccin

L a parte de la computadora que ejecuta el grueso de las operaciones de procesamiento de datos se llama unidad de procesamiento central y se denomina CPU. La CPU est formada de tres partes principales,, como se muestra en la figura 8-1. El conjunto de registros almacena datos intermedios ' que se usan durante la ejecucin de las inst"tiicciones. La unidad aritmticalgica (ALU) lleva a cabo las microoperaciones requeridas para ejecutar las instrucciones. La unidad de control supervisa la transferencia de informacin entre los registros e instruye a la ALU sobre cul operacin ejecutar.
Figura 8-1 Componentes principales de una CPU.

Control

Conjuntode registros

Unidad aritmetica ldgica (ALU)

256

cAP~TCRX~ -0

Unidad eerifral de p t o

La CPU realiza div~rsas funciones dictadas p a el tipo de instrucciones que se incorp~ran en la computadora. En wasiones se define la arquitectura de la comp&tdwa c o m la estnicima y el desempefio de la computadora desde el punto de vista del prograplacbr que utiliza instrucciones de ienp a j e de &*a. E i f o inu e l a . l~mitoo de ihstrucciones, modos de M ~ h $ m h tel ~cijnjdto , e hstrucciones y la organizaci6n general de los registras J.. la CPU. Un Wte donde el -dar de la computadora y el programador aprecian la misma nrqirina es i a parte de Ia CPU asociada con eI conjunto de instrucciones. Desde el punto de vista del diseadw, el conjunto de instruccione de k computadora proporciona las especificaciones para el d i d o de h CPU. E l diseto de una CPU es una tarea que, en gran parte, representa la eleccEon de la circuitera para implantar las instrucciones de m8quina. El usuario que programa la computadora en lenguaje ensamblador o de n 8 p k a debe tomar en cuenta el conjunto de registros, la estructura de memoria, el tipo de datos que soportan las instrucciones y la funci6n que reaZXza cada instnicci6n. En los capftulos S y 7 se desarrollaron ejemplos del diseo de unas CPU simples. Este c&ptulod 4 la arganizaci6n y arquitectura de la CPU con nfa& en el punto de vista del usuario de la computadora. be manera breve describe cmo los registros se comunican m la ALU mediante buses y explica la opaaci6n de la pila (stack) de memoria. Despds presentamos los tipos de fomtos de instrucciones disponibles, los modos de di-onamiento que se u pam recuperar datos de la memoria y las instrucciones tpicas incorporadas pot lo reguiar en las computadoras. LA ltima seccin presenta el concepto de computadora can conjunto de instrucciones r e c i d 9

(Rzsc).

8-2

Organizaci6n general de los registros

En los ejempl~sde prograrriacih del captulo 6 hepos mostrado que se necesitan laalidades de memoria para almacenar apuntadores, contadores, direcciones de retorna, resultados temporales, y productos parciales durante la mdGplicaci6n. Tener que hacer referencia a localidades de memoria para esas aplicaciones representa una respetable inversin de tiempo porque el acceso a memoria es la operaci6n que consume m6s tiempo en una computadora. Es m8s conveniente y eficiente almacenar -tos valom intermedios en registros de procesador. Cuando se incluye una gran cantidad de registros en la CPU es ms eficiente conectarlos mediante un canal de sistema comn. Los registros se comunican uno con el otro no m510 para transferencia directa de datos, sjnD tambin mientras ejecutan diversas micrmperaciones. Por I o tanto, es necesario proporcionar una unidad comn que pueda ejecutar d a s las micmoperaciones a r i h & t i a s , lgicas y de corrimignk;! g~ el p m d o r .

Reloj

Entrada

a) Diagrama de bloque

b ) Faiabra de mtd

Figura M

bnjunto de registros c m ALU mnun.

258
c a l de sistema

Unidad central de p e e n t o

Una organizacin de canal para siete registros de CPU se muestra en la figura 8-2 La salida de cada registro esu conectada a dos multiplexores (UUX) para f o m r los dos canales A y B. Las lneas de selecci6n en cada mdtiplexor eligen un registro o los datos de entrada para e l canal particular. tos canales A y B forman Ias entradas a una unidad aritmtica 16gica comn (ALV. La operaci6n dekmhada en la ALU estable la miampacin aritica o 16gica que se va a ejecutar. E l multado de la microoperacin estA disponible para datos de salida y tambin va a las entradas de todos los registros. El registro que recibe la informaci6n del canal se selecciona mediante un decodificador. El decodificador activa una de las entradas de carga de registro y, por 10 tanto, proporciona una trayectoria de transferencia entre los datos del canal de salida y las entrad* del registro destino seleccionado. La unidad de control que opera el canal del s i s de la CPU elige el flujo de informacin a travs de los registros y la ALU al seleccionar los diversos componwtes del sistema. Por ejemplo, para ejecutar la operacih.

el control debe proporcionar variables de selecci6n binarias a las siguientes enttq&s del selector:
1 . Selector de MUX A (SELA): para colocar e l contenido de R2 dentro del canal A. 2. Selector de MUX 0 (SELB): para colocar el contenido de R3 dentro del canal B. 3. %lector de operacin (OPR) de la ALU: para proporcionar la suma
arikntia A

+ B.

4. Wecbr de destino del decodificador (SELD): para transferir el mnt d d o del. canal de silida dentro de R1.

Las cuatro variables de seIecci6n de control se generan en la unidad de control y deben estar disponibles al comienzo de un cielo de reloj. Los datos de los dos registros fuente se propagan por las compuertas en los multiplexores y la ALU al canal de salida y dentro de las entradas del registro destino, todo durante el intervalo de ciclo de reloj. k p u g s , cuando ocurre l a siguiente transici6n de reloj, la Xrifomacin binana del canal de salida se transfiere a R1. Para conseguir un tiempo de respuesta rpido, la ALU se construye con circuitos de alta velocidad. Los canales se imphntan con mdtiplexores o mmpuertas de tres estados, segiln se mwtra en la d 6 n 43.
Paiabra de control Existen 1 4 entradas de seieccibn binaria en l a unidad y su valor combinado una de conkd La palabra de control de 14 bits esa definida en la figura 8 - 2 0 Consta de cuatro campos. Tres campos contienen tres bits

paz*

de c o ~ h l

BZ ~rgamjmcih generai de los m+tm

259

TABLA 8-1 Codificad6n de campo de seIecci6n de registro


C6digo

' .

binario

SELD
Entrada
Entrada Ninguno

R1 l 7 2
R3

R1
R2
R3

R1
R2 R3 R4

R4 R5
RB R7

R4 R5
R6 R7

R5 R6
R7

cada uno y uno tiene cinco bits. Los tres bita de SELA se1eccionan un registro

ALU

fuente para la entrada A de l a ALU. Los tres bits de SELB se1eeci6nan un rrgisttro i a entrada B de la ALU. L a tres bits de SELD selec&& un mghtro destino usando el dwodificador y sus siete salidas de carga. Las cinco bits de OPR seleccionan una de las operaciones en la: ALU. Cuando se aplica una palabra de control de 14 bits a las entradas de se1ecci6n se especifica una microoperacin particular. L a ccdWaci6n de las selecciones de registro se e c a en la tabla 81. El c6digo binario de 3 bik que se lista en la prim&a columna de la tabla especifica el c6digo binario para cada uno de los h s campos. El registro seleccionado mediante los campos SELA, SELB y SELD es aquel cuyo niimero decimal es equivalente al nme~obinario del c a p . Cuando SBLA o CELB es 000, el multipiexor correspondiente selecciona los datos de entrada exkmlos. Cuando SELD = 000, no selecciona un registro de destino pero el contenido de salida est disponible en la salida externa. La ALU proporciona operaciones aritmticas y Ihgicas. AdemBs, la CPU debe proporcionar operaciones de corrimiento. El circuito de cwmmiento puede colacarse en la salida de la ALU para ofecer una posibilidad de postcorrimiento o en la salida de la ALU para bruidar una posibilidad de postcomirniento. En algunos casos, las operaciones de corrimiento se incluyen con la ALU. En la seccin 4-7 se d i h 6 una unidad arih4tica 16gica y de corrimiento. La tabla de b c i 6 n para esta ALU est$ listada en la tabla 4-8. ia codificacibn de las operaciones de la ALU para la CPU se toma de la secci6n 4 7 y est q d i c a d a en la tabla 8-2. El campo OPR tiene cinco bits y cada operacin se designa con un nombre simbdlico.

Ejemplos de microoperadones
Se necesita una palabra de control de 14 bits para especificar una microop raci6n en la CPU. La palabra de control para una microoperacibn dada

TABLA W Codificacin de operaciones de la ALU

Transferir A Incrementar A Sumar 3. B RestarA 3 Decremenfar A Aplicar la h c i b n AND de A y B Aplicar la funcidn O R de A y B Aplicar la funcibn XOR de A y B Complementar A R w m r a la Derecha A Recorrer a la izquierda A

TSFA INCA

ADD
SUB DECA
AND

OR
XOR COMA SHRA

SHLA

puede de,fivafs de la3 variablw de seZeeci6n. Por ejemplo, la micrmperaci6n de resta que giropgrcione el enunciado especifica

RZ para la entrada A de la ALU, R3 para la entrada B

de la ALU,R1 para d q j s k p des.tino, y una. opraci6n ALU que rmte A - B. Por b tanto, se especgca la palabra de c o n b l mediante las cuatro campos y el valor binaria c?rwspondiente pan cadq campr, se obtiene de l a lista de codificacin en las Wlas 8-1 y 8 2 , h. palabra de control binario para la microoperaci6n de resta . e s 010 O11 001 QQ101y se obtiene como s i p . SEL& . SELB R3 Smbolo: R2 011 Palabra de c~ntrol:

Campo:

SELD

OPR

R1
001

SUB
00101

4paJqbra.decontrol pam esfa micmoperacin y m a s cuantas otras se listan en la tabla 8-3.


Las micr0pp"aciones de incremento y transf-eia no utilizan l a entrada B de 4,ALU, Para estw , el sarnpo B se marca con un guin. Asignamos 000 a cualquier campo que no se utiliza cuando se formula la palabra de control binaria, aunque puede usarse cualquier otro nmero binado. Para colocar el mWo de un registro & las terminales de salida ponmos el tontddo del e t r o en la entrada A de Ia ALU, pero no se selecciona ninguno de los registros para aceptar los datos. La operaci6n

- 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 - k 3 R2 R4tR4VR5 Rd R6GR&+i R6
m

R7eA.P' &Salida &R2 .Salida *Entrada

Rl E
Entrada

R3 R5

R1 R4
R6 E ? Ninguno Ningnr, ' R4

SUB OR
XNCA TSFA

R5

TJFA TSFA
SHLA

R 4 t s h i R4 R5t0

R4
R5

RS

XOR-

TSFA de la ALU colma' los datos del registro, a travs de la ALU, en las terminales de Alida. ta transferencia directa de entrada a salida se consigue con &a palabra de control que tiene &lo i r o s (al hater 000 el campo B). Puede borrave un registro a O con una operacin 0 R exclusiva. Esto se debe a que x @ x = 0 . A partir de estos ejemplos, es evidente que pueden generarse otras muchas mimooperaciones en la CPU. La manera ms eficiente para generar 'palabras de control con una gran cantidad de bits es almacenarlas en una unidad de memoria. Una unidad de memoria que almacena palabras de mtcoI denomina memoria de control. A l leer palabras de control consecutivas de la memoria, es posible iniciar la secuencia deseada de microopexaciones para la CPV. Este tipo de control se denomina control microprogramado. En Ia figura 7-8 se muestra una unidad de coiitrol microprogramado. La palabra de control binaria para la CPU vendr6 de Ias salidas de la memoria de control marcadas con "mimooperacionestt.

8-3

Oqanizaci6n de una piia

Una caracterstica til que

se incluye en la CPU de la mayora de las computadoras es irn skck o. piia a lista iiltim~ en entrar, primero en salir (LTFO). Upa pila es un dispositivo de almacenamiento que guarda informaai6n de -manera que el artculo que se almacena al iiltimo es el primero que se recupera. La operacin de una pjla puede compararse a un racimo de charolas. ta dtim charola que se coloca en la parte superior de la pila es la primera que se vuelve a tomar. En las computadoras digitales, Ia pila es emcialmente una unidad de memoria con un registro de direccionamiento que s61o puede contar {desp & de que un valor inicial se carga dentro ella). El registro que contiene

262
aptciitador de pila

( ~ 3 ~ 0

Unidad central de p i o

la d i r e e c i b n para la pila se Uama apuntador de pila (SP)porque su valor siempre apunta la localidad en la parte superior de la pila. Al revs de una piIa de charolas en Ia cual la charola misma pude sacarse o insertarse, los registros flsicos de una pila esten siempre disponibles para lectura o escritura. Es el contenido de la palabra lo que se inserta o borra. Las dos operaciones de una piIa son la inserci6n y el borrado de datos. La operaci6n de escrituxa se llama "empujar" @ush) porque puede pensarse que es el resultado de "empujar"un nuevo dato sobre la parte superior. La operacin de borrado o recuperacibn s e llama ?botart' @op) porque puede pensarse que es el resultado de quitar un dab para que salga despedido de la pila. Sin embargo, nada se empuja ni s e hace saltar en una p l a de computadora. Estas operaciones w simulan al incrementar o decrementar e l registro del apuntador de ia pila.

Pila de registro Puede colocarse una pila en una parte de una memoria grande o puede organizarse como un conjunto de una cantidad finita de palabras de memoria o regis-. Xs. figura 8 3 muestra la organizacibn de una pila de registros de M palabras. El registro del apuntador SP de la pila contiene un niimero binario cuyo valor es igual a la direccibn de la palabra que en ese momento estfi en la parte superior de la pila. Se colocan tres datos en la pila: A, B y C,en ese orden. E 1 dato C est6 en la parte superior de la pila, por l o que d contenido de SP es ahora 3. Para recuperar el dato superior, se ejecuta una
Figura 8-3 Diagrama de bloque de una pila de 6 4 palabras.

89

Organktci6n de4-

pila

2 a

empujar

instrucci6n pop en la pila al leer l a palabra de memoria en la direccibn 3 y decrementar el contenido de SP. El dato B esta ahora en la parte superior de la pila porque SP contiene la direecibn 2. Para insertar un nuwo dato se ejecuta una instniccidn "push", al incrementa SP y emibir una palabra en la siguiente posicin ms alta de la pila. N6tese que e l dato C se ley6 pero no se qut6 fisicamente. Esto no importa porque cuando se accesa a la pila se escrike un nuevo dato en su lugar. En una piIa de 64 palabras, e l apuntador de piIa contiene 6 bits porque 26 = M. Corno SP tiene slo seis bits, no puede exceder un nmero mayor de 63 (111111 err biario). Cuando 63 se incrementa en 1, e l resultado es O porque 111211 1 = lMMOOO en b h i o , pero C.P d o puede acomodar los s e i s bits menos significativm. D e igual manera cuando 000MX3 se decmnenta en 1, e ) . resultado es 111111. El registro de un bit LLENO se activa en 1, cuando la pila est Uena, y el registro dk un bit VACIO ae activa en 1 cuando la pila estA vacia de datos. DR es el registro de datos que contiene los datos binarios que se van a escribir o leer de la pila. Al principio se borra SP a O , VACIO se activa en 1 y se borra LLENO a O, para que SP apunte a la palabra en la direcci6n O y la pih se marque como vacia y no como llena. Si h pila no est llena (si LLENO = O), s e inserta un nuwo dato con una instruccin push de "empujar". La instruccibn push se implanta con la siguiente secuencia de microoperaciones:

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 vaca EMTY 6 0

El apuntador de pda se incrementa para que apunte a la direcci6n de

la siguiente palabra wpexior. Una operacidn de escritura de memoria inserta la palabra dade DR a la parte superior de la pila. Ndtese que SP contiene
la direccin de la parte sup~rior de la pila y que M[SP] representa la palabra de memaria especifiida mediante la direccin dsponible actualmente en SiJ. El primer dato almacenado en la piia est5 en h dll.ecci6n 1. El ltimo dato es& almacenado en la didirecci6n 0,Si SP llega a O, la pila estA Uena de datos y se activa LLENO en 1. Esta condici6n se alcanza si el dato de la parte superior antes de la ltima operaei6n de empujar est en la lacalidad 63 y, despus de incrementar SP, el itimo dato se almacena en la localidad O. Una vez que se almaun dato en la Iocalidad O, ya no hay mgistros ~ c i o s la pila, Si se escribe un dato en la pila, es obvio que la pila no puede etar vaca, por lo que se adiva VAUO a O. Se b o m un nuevo dato de l a pila s i la piia no & vaca (si VACIO = O) la qxracidai de pop consiste en la siguiente m de microoperaooneS:

hacer saltar

264.

m 0 Unidad ceraal de

pmcesamiento

DR +MISU
SP+SP - 1

L&r

dato de la parte superior de

h pila

DecremenQr el apuntador de pila

Si'(.SP= O) entonces (EM'IT +l) Comprobar si la pila e s t vacla

F w L +o
--.

W c a que ~ la pih no

estA

liena

, -

da
h i

kb
ALA

--

~iperior de l a piIa se ,lee en DR. Despus, se demementa e l a p i a d o 1 de &,Si su valar alcanza 0, 4.pila est vaca, por lo que se activa V&JQ en 1 . Esta condicin se> alcanza si el dato que se ley6 estaba en la pasici6n 1. Una vez que se lee este dato, SP se decrementa y alcanza el ~alm.0, el cual es el valor inicial de SP. N6tese que si una instrucci6n pop lee e l dato de la localidad Q g despus $P p e decrementa, SP cambia a 112111, 4 cual es el equivalente ,al decimal 63, En esta configuracin, L palabra de la duecci6n O wibe el ltimo dato en la pila. N6tese tambi&n que se p4ucirA una opaci6n errnea s i se; ejecuta una iizstrucci6n cuando L L W = 1 a una pap, cuando VACIO = 1.

El &o

Pih de memoria
Una pila puede existir como una unidad nica, como se presenta en la figura 8-3 o puede implantarse %en una memoria de acceso aleatorio conectada a una CPU. Se rediza la implantacidn de una pila en la CPU al asignar una parte de memoria A una operacibn de pila y al usar un registro de pracesador como un apuntador de pila. La figura 8-4 muestra parte de una memoria de computadora dividida en tres segmentos: p r e gramas, datos y pila. El contadas de programa PC apunta a la direccin de la siguiente instruccibn en el programa. El registro de diremi611AR apunta a un arreglo de datos. El apuntador de pila SP apunta a la parte superior de la pila. Los tres registros estan conectados a un canal de direcciones c o m h y cualquiera puede proporcionar una direccibn para la memorla. P C se utiiiza durante la frise de bfisqueda para leer una instrucci6n. AR se utiliza en la fase de ejetucin para leer un operando. SP se utiliza para ejecutar inszrniceiones pugh o pop en datos que se guardan o se recuperan en la pila. Como se muestra en la figura 84, el valor inicial de SP es 4001 y la pila crece con Ls direcciones decrecientes. Por lo tanto, el primer dato a b c e m d o en l a pila esti en h d k c i b n 4000, el segundo se almacena en la direccibn 3999, y l a itima direcicibn que puede usarse para la pila es 3000. N o estan previstas curnpmbaciom del limite de la pila. Consideramos que el dato en la pila se comhica con el registro de datos DR.Se inserta un nuevo dato con la imbnicci6n de push, de la manera siguiente:

SECCI~N 88 Orgdmci&r

de una pila

265

Direccin

Unidad de memoria

Figtira 8 . 4 Memoria de computadora con sqpentas de programa, datm y pila.

Ei apuntador de pila

se decrwnenta para que apunte en la direcci6n de la siguiente palabra. Una operad611 de escritura en la memoria inserta la palabra de DR dentro de la parte suprior de 1$ pila. Se recupera un nuevo dato can u n a instruccin push, de la manera siguiente:

266

m OCHO

Unidad central de prow%miento

Inites de Ia pila

El dato superior se lee de la pila a DR. E l apuntador de piIa se incrementa despub para apunbr al siguiente data en la pila. Muchas mmputadoxas no tienen hardware para verificar e l sobreflujo de la pa @la lierra) o sobreflujo inverso {pila vacia). Los lhites de la pila pueden c*omprobarse al usar dos registros de procesador: uno que contenga el lfmite suprior (m este caso 3000) y el otro que contenga el limite inferior (en a t e caso 4001). D q u & de una operaci6n de push, se compara SP con eI +tro de lfnvte superior y despus de una operacidn pop SP se compara con el registro deli lfmite inferior. Las dos rnicxd~peracionesnecesarias para las operaciones push o pop son: 1) un a c c e ~ l a memoria a travgs de SP y 2) k actualizacibn de SP. Depende de la orgarhcin de la pila determinar cuA1 de las das operaciones se realiza primero y s i se actualiza SP incmentando o decrementando. En la figura 8-4 la pila crece al decmmentar la direccibn de memoria. La pila puede construirse para crecer al incrementar la direcci6n de memoria como en la.f i w a 8-3. En tal caso, se incrementa SP para la aperacidn de push y 8e deuemwiki para la operacibn de pop. Puede construirse una pila para que SP apunte ti la siguiente posicihn vacfa arriba de la parte superior de la pila. En este caso, debe intercambiarse la secuencia de microoperaciones. Un quntad~x de pila se carga con un valor inicial. Este valor inicial debe ser h.direccin inferior de una pila asignada en la memoria. En lo sucesivo SP se incremmta o se decrementa en forma automAtica con cada operacan de push o pop. La ventaja de una pila de memoria es que la CPU puede hacer referencia a ella sin tener que especificar una direccin, porque la M 6 n siempre estA disponible y se actualiza en forma autamatica en el apuntador de pila.

Notcidti polaca inversa Una srga&aci& de pila es muy ekienk para evaluar expresiones aritmticas. El mtodo matemdtico comn de escribir expresiones aritmbtias i m pone dificultades cuando las evaMa una computadora. Las expresiones aritmdticas comunes se escriben en nofacin i n t m fija, donde cada operador escrito e s K entre los operandos. Consideremos ia siguiente expresin arih& tica simple.

El asterisco (que significa multiplicaci6n) est colacado entre dos operandos A y B o C y D,El signo de ms est4 entre los dos producFos. para evaluar esta expresihn aritmtica es necesario calcular el producto A * B, almacenar este p d u c t o mientras se calcula C * D y despuk sumar los dos productos. En este ejemplo apmiamas que para evaluar expresiones aritmdticas en notacihn interna fija es necesario a n a b r la expresin en todas sus partes para determinar d l operaci6n ser4 la siguiente en ejecutarse.

SFKCI~N 83 &gank%dn de una pa

267

E l matemdtico polaco Lukasiewicz mostr que las expresiones aritmb ticas pueden r e p m t a r s e en notacitr frjn previa. Esta mp=ta&n, con
RRN

frecuencia denominada notaci6n polacnI coloca el operador antes de los operanda. La nofaci6n postm'urfija, denominada notaci6n polaca inversn (PN) colma el operador despus de los operandos. Los siguientes ejempIos mueshan las tws 'pmtaciones:

+B AE +
A
+A&

Notacin interna fija Notaci6n polaca o previa fija Notacidn polaca inversa o posterior fija

La notacidn polaca inversa es una forma adecuada para la manipulacidn de


la pila. 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. Cuando w encuentra un operador, ejecute Ia aperaci6n con los dos operandos que ,e encuentran en d lado izquierdo dd operador. Quite los dos operandw y el operador y wstittiyah por e l nmero que se obtiene de1 resultado de l a operaci6n. Cantinde analizando la expresibn y repita el procedimiento para cada operador encontrado hasta que no haya m8s operadotes. Para la expresi6n anterior encontramos el operador * despus de A y B. Ejecutamos la 0peraeiSai.A B y sustituhus A, B y * por el prcducto para &tener

dende (A * B) es una cantidad dnim' que s e bbtiene del producto. E l sfguiente operador es m y sus d& operado- previos son C y D,por lo que ejecutamos C * D y obtenemos una instnicci6n con dos operandos y un opekdor:

H siguiente -radar
com~wdn ri

RPN

es + y los dos operandos que S& van a sumar san los dos p r o d w I asi que mimamas las dm cantidades para obtener el mltado. La conversicin de nobcidn interna fija a notaci6n poiaca inversa debe considerar la jerarquia operacional adoptada para la notacibn interna fija. Esta jerarqua dicta que primero ej&utemos todas las operaciones aritm& ticas dmtio.de los padntesis internos, despus las de los parntesis externos

268

cAPfnno -O

Unidad central de procesamiento

y que realicemos las operaciones de multiplicaci6n y divisin antes de las operaciones de suma y resta. Consideremos la expresidn:

h r a evaluar la expresin primero debemos ejecutar las operaciones aritm&


ticas

expresi6n dentro de los padntesis cuadrados. La multiplicaci6n de C * (D + E ) debe realizarse antes de la suma de porque la multiplicacibn tiene precedencia sobre la suma. La iiltima operad611es la multiplicacibn de los t h i n o s entre parntesis y parntesis cuadrados. La expresin puede convertirse a notacien polaca inversa sin usar parntesis, al considerar la jerarqua de operaciones. La expresin convertida es:

dentro de patntesis (A + B) y (23 + E). Despus debemos calcular la

Al proceder de izquierda a derecha primero sumamos A y 3, despus sumamos D y E, En es& punto nos queda:

donde (A + B) y (D .t El son cada uno un nijunero niw que se obtiene de la suma. Los dos operandos para el siguiente * son C y I D + E). Estos dos nmeros se multiplican y ei producto se suma a F . El * final produce la multiplicaci6n de los dos &minos.

Evaluacibn de las expresiones aritmticas La notacibn polaca inversa, combinada con un arreglo de pila de registros, es la m e r a ms eficiente que se conoce para evaluar expresiones aritmdticas. Este procedimiento se emplea en algunas caIculadoras electrdnicas y tambih en algunas computadoras. L a pila es particularmente til para manejar problemas grandes y complejos que repre-tan cadenas de c4lcuIos. Se basa en el hecho de que cualquier expresibn aritmtica puede expresarse en notaci6n polaca sin parntesis. to consiste en convertir primero la expresidn aritmtica E l pra su notacin polaca inversa equivalente. Los operandm se escriben (push) dentro de la pila en el arden en el cual aparecen. El inicio de una operacin depende de si tenemos una calculadora o una computadora. E n una calculadora,, se introducen Los operadores mediante el teclado. En una computadora deben iniciarw m e d i a n t e instrucciones que contengan un campo de o p e r a 6 (no se necesita campo de direccin). Las siguientes micf~operacie nes se e j m h con l a pila cuando se introduce una operacibn en una calculadora o se emite mediante el controI en una computadora: 1) los dos omrandos supeciom de la pila se utilizan para la operacin, y 2) se lee el

m & M ~xganizacih de una pila

269

dato ,@p) de la pils y el resultado de la operacidn sustituye el operando i l a continuamente y ejecutar inferior. Al escribir los operandos dentro de la p las operaciones como se definid, se waliia la expresibn en el orden apropiado y el resultado final permanece en Ia parte superior de l a pila. EI siguiente ejemplo nurndrice puede clarificar este procedimiento. Considere la expfesibn aritmdtica
.rr

w p w n (3 * 4)
aP4 &

+ (5 * 6)

En notacidn polaca mversa, w expresa como

-mi,

operm'ones de pila

Ahora consideremos las operaciones de b pila que se muestran en la figura 8-5. Cada caja representa una aperaci6n de la piia y las flechas siempre sefialan a la parte superior. Al analizar la expresi6n de izquierda a derecha encontramos dos operandos. Rimero, se escr1h el nmero 3 dentro de la pila, despds el nmero 4, el siguiente shholo es eI operador de multiplicaci6n Esto provoca una multiplicaci6n de los dos datos superiores'en la pila. Despues se l e e la pila y el producto se coloca en la parte superior, reemp-do los dos operandos ori@Ies. En wguida encontramos los dos operandos 5 y 6, por lo que ellos se escriben dentro de la pila, ta operacin de la piia que resulta del siguiente sustituye estos dos nmeros por su producto. La dltima operacin produce una suma aritmktica de los dos nmeros superiores en la pila para obtener e l resultado final de 42. Las calculadoras cientificas que emplean una pila interna requieren que el usuario convierta las expresiones aritmticas a notacibn polaca inversa. Las computadoras que utilizan una CPU organizada con pila proporcionan un programa del sistema para ejecutar la conversi6n para el usuario. La mayoria de los compiladores, sin considerar la organizacidn de su CPU, convierten todas las expresiones aritmticas a notacin polaca de todas maneras, porque este es el mktodo mBs eficiente para traducir expresiones aritmbticas a instrucciones de lenguaje de mquina. Por l o tanto, en esencia,

*.

Figura 8-5 Operacienes de piia para evaiuar 3 4 + 5 * 5.

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.

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. Tales manuales explican la construcci6n interna de I a CPU, incluyendo los registros de procesador disponibles y sus posibilidades 16gicas. TambiGn listan todas las instrnicciones que se implantan con hardware, especificaii su formato en c6digo binario y proporcionan una definicin precisa de cada instrucci6n. Por lo general, una computadora tendrA varios formatos de c6digos de'instrucciones.Una funci6n de la unidad de control dentro de la CPU es interpretar cada c6digo de instruccin y proporcionar las funciones de control necesarias para procesar la in~trucci6n. Normalmente el formato de una instrucci6n se muestra en una caja rectangular que simboliza los bits de la instruccidn conforme aparecen en la palabra de memoria o en un registro de control. Los bits de la instruccibn se dividen en grupos llamados campos. Los campos ms comunes que se encuentran en los formatos de instrucciones son:

l. Un campo de cdigo de operacibn que especifica la operaci6n que se va a ejecutar. 2 . U n caknpo de direcci6n que represeata una direcci6n de mmoria o un registro de procsador. 3. Un campo de modo que especifica la manera en que se determina el operando o la direccin efectiva.
En wasiones se emplean otros campos especiaIes bajo ciertas circunstancias, por ejemplo un campo que proporciona el nhmero de corrimientos en una instnicci6n de tipo corrimiento. El campo de c6digo de operacibn de una instruccibn es uii grupo de bits que define varias operaciones de pracesadar, como sumar, restar, complementar y corrimiento. Las operacionec mas comunes dispoi-iibles en instrucciones de computadora se listah y analizan en la secci6n M. Los bits que definen el campo de modo de una instrucci6n especifican diversas alternativas para escoger las operandos de la direcci6n dada. Lus diferentes modos de direccionamiento que se han formulado para las computadoras digitales se presentan en la secci6n 8-5. En esta seccin, presentamos el campo de direccin de un formato de instruccihn y consideramos el efecto de incIuir mltiples campos de direcci6n en una instruccin, h s operaciones especificadas mediante instrucciones de computadora se ejecutan sobre algunos datos almacenados en b memoria o en registros de procesador. Las operandos que residen en I a memoria se especifican

SECCI~N M Fomtos

de las instniccionec

di-&

de +sFro

mediante sus direcciones de memaria. Los operandos que residen en un registro de procesador se especihcan con una direcci6n de registro. U n a $imccidn de registro es un n b a a binnrio de k bits que define uno de 2k registros en la CPU,Por lo W o , una C m con 16 registros de procesador del RO a1 R15 WdrA un campo de direcEi6n de r e g i s t r o de 4 bits. Por ejemplo, e l nhero binario 010'1, representad el registro R5. Las computadoras pueden tener instrucciones de diferentes tamaiios que contengan una cantidad variable de direcciones, La cantidad de campos de direcciones en el formato de instrucCi6n de una computadora depende de i a organizacibn interna de sus registros. ta mayora de las computadoras caen en uno de tres tipos de arganizaci6n de.CPU:

l . Organizacibn de acumulador i'mlco, 2 Organizacin de registro general. 3. Organizacihn de pila.

Un ejemplo de una organizaci6n de tipo acumulador es a computadora bsica presentada wi e l capitulo 5. Todas las instrucciones se ejecutan con un registro de acumulador relacionado. El formato de instrucci6n en este tipo de computadora utiliza un campo de direccibn. Por ejemplo, la iristmcci6n que especifica una suma arihdtica se define mediante una iiistruccin del lenguaje ensamhlador como
ADD

X
+

donde X es la direcci6n del operando. L a instrucci6n ADD en este caso da como resultado la operacibn AC AC + M[XJ. AC es el registro acumulador y WXJrepresenta la palabra de memoria que se localiza en la direccin X. Un ejemplo de un tipo de organizac6n de registro general se presentd en la figura 7-1. El formato de instrucci6n en -te tipo de computadora necesih tres campos de direcci6n de registro. Por 10 tanto, la instrucci6n para una suma aritmktica puede es~ribime en lenguaje ensamblador como RDD Rlr, R 2 , B3

pera representar la operacin R1 + IC2 + R3. La cantidad de campos de direccin en la Vistnieci6n puede reducirse & tres a dos si el registro destino es igual a uno de los registros fuente. Por lo tanto, la instnicci6n
ADD RltfB2
repxesentarh h operacibn R1 + Rl + R2. Slo necesitan especificarse las &&dones de registro para R1 y R2 en ata iishucci6n. Las computaddras con miilriples registros de procesador utikan la instruccin de mover con un nemhico MOV para reprecentar una instnicci6n de trangferencia. Por b tanto, la instnicci6n

272

CMfTUW OCHO Unidad

mtral de procesamiento

nov

RL,.RZ

"pmenta Ia transferencia R1+ R2 {o E 2t .R1, dependiendo de la computadora en particular). Entonces, las instrucciones de tipo de transferencia neceitan dos rampas de direcci6n para especificar la fuente y el destino. Las computadoras de tipo de registro general emplean dos o tres campos de direccin en su formato de instrucciones. Cada campo de direcd6n puede especificar un registro de procesador o una palabra de memoria. Una btnirein representada mediante

especificara la aperaci6n R1 + R1 4- M [ a . Posee dos campos de d i m i & , uno para el registro R1 y el otro para la dhxci6n de memoria X. La CMJ organizada /con pila se precent en la figura 8-4 Las computadora~ con organizacidn de pila envan instrucciones PUSH y POP las cuales requeririan un campo de d k d d n . Por l o tanto l a instrucci6n

PUSH

escribir4 la palabra de la direcci6n X a la parte superior de la pila. El apuntador de piia se actualiza en foma antomAtica, L;ts instrucciones de tipo operaei6n no necesitan un campo de direccin en las computadoras organizadas con pilas. Esto se debe a que h operacin se ejecuta sobre los dos datos que estn en la parte superior de l a pila. La instrucci6n

BDD
en una computadora con pila consta de un solo c6digo de operacibn sin campo de direccibn. Esta operacibn lee (pop) los dos nmeros superiores de la pila, los suma y escribe (push) la suma dentro de la pila. No es necesario especificar operandos con un campo de direcci6n porque es implcito que d o s estn en la pila. LA mayora de las computadoras caen en uno de estos tres tipos de organizacibn que se acaban de describir. Algunac. computadoras combinan caracteristicas de ms de una estructura oanizacional. Por ejemplo, el micraprocesador Intel 8080 tiene sfete registros de CPU, uno de los males es un registro acumulador. Como consecuencia, e l procesador tiene algunas de las caracteristicas de un tipo de registro general y algunas de las de un tipo acumulador. Todas las instrucciones aritmi5ticac y ldgicas, al igual que las instrucciones de carga y almacenamiento,-utilizan el registro acumulador, por lo que estas instrucciones slo tienen un campo de direccidn. Por otra parte, las instrucciones que transfieren datos entre los siete registros .del procesador tienen un formato que contiene dos campos de direccibn de registros. Adems, e l psocesador intel 8QW tiene un apuntador de pila e

instniccionq push y pop desde una pila de memoria. S i embargo, el pn>sesador no @ne iq@ruccionesde tipo de direccionamiento cero, las cual= son caracterkticas de una CPU ownizada con pila. Para dar una ejemplo de la influencia de la cantidad de direcciones sobre los programas >decomputadora, evaluaremos el siguiente enunciado aritmtico

utibdo m ,uno, dos a tres instrucciones de direccionamiento. Emplearemos los slmbalcs ADD, SUB MUL y DIV para las cuatro operaciones aritmticas; MOV para la operacibn de tipo transferencia; y LDAD y STORE para transferencias hacia y desde la memoria y e1 registro AC. Consideraremos que las operandos es las direcciones de n i e m r a A, B, C y D y e l multado deben almacenarse en h memoria en h difecein X.

z,

instrucciones de tres direcciones Las computadoras con formato de instrucci6n de tres.direcciones pueden utilizar cada campo de direcci6n para especificar un registro de procesador o un operando de memoria. En *+da, s e muestra el programa en lenguaje ensamblador que evala X = (A i. B] * {C + D), junto con comentarios que explican la operaci5n de transferen;eia de registros de cada instruccin.

AQD

RlirAIB

ADD
EUL

RZ,

Cf

D
82

X r RZir

R2*-H[C] + H[D] M[X] +RS*R2

RI+H[A]

+ M[B]

Se considera que la-computadora tiene dos registros de pmesador,

R1 y R2.

E l smbolo WA]representa el operando en la direccin de memoria que se


simboliza mediante A. La ventaja del forrnato de tres direcciones es que produce a la brevedad programas cuando wdJa expmiones aritm6tiCas. 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. Lns formatos de instnxcciones en la computadora C y k estn 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.

Inshcdonea de dos dreccionqs Las instruccioties de dos direcciones zsonlas d s comunes en las computadoraa comerciales. En d a s , bmbin cada campo de direccin puede specificar un registro de pwcesador o qna palabra de memoria. E i programa para evaluar X = (A -i-l?) * {C 23) es como sigue:

274

KHO

Unidad central de pracesamiento

MOV ADD HOV


ADD

RI, A
RlrB
R2,C

RI+M[A]

R2, D
R2r82 XrRb

MDL MOV

Rl+RL+M[B] R2+M[C] R Z e R 2 + M[D] RI+Bl*R2

H[XJ+RIi

La instnrccibn MOV mueve o transfiere e l operando hacia y desde la memoria y 10s registros del procesador. E l primer smbolo listado en una instruce transfiere e1 resultado de la ci6n se considera fuente y destino, adonde s operacin. hshcciones de una direcci6n tas instnicciones de una direcci6si utilizan un registro acumulador (AC) irnpicito para toda la mmipuhci6n de datos. Para la multiplicacibn y divisin se necesita un segundo registro. Sin embarga, en =te ejemplo no l o tomaremw en cuenta y consideramos que AC contiene el resultado de El programa para waiuar X = (A i- BB)* (C + D)es todas las

LORD ADD
STORB EOAD

AC+B[A]
RCtA[C]

B
T
C ,

+ HIB]

M[T]+AC AC+H[CJ

ADD

MUL
STORE
de memoria.

D T
X

RCg-AC + H[D] AOtAC*M[T] M[X]bAC

Todas las operaciones se realizan entre e l registro AC y un operando T es la diwc86n de una localidad de memoria temporal necesaria para almacenar el resultado intermedio.

Instnicciones de cem direcciones Una computadora organizada con pila no utiliza un campo de direcci6n para las instrucciones ADD y MUL. Sin embargo, las instrucciones PUSH y POP necesitan un campo de direeci6n para especificar e l operando que comunica con la pila. El siguiente programa muestra d m o se 4 i r 6 X = (A B) * (C D)para una computadora organizada con pila. (TOS significa la parte superior de la pila.)

PUSP PUSH

a
C

r o s t ~
TOS+B
TOSt(A

P~SH B ADD

+ B)

TOStC

TOS+D T O S + ( C 4-D ) TOSt(C+D)*(R+B) POP X H[XJ +TOS Para evaluar expresiones a r i t d i c a s en una computadora con pila, es necesario convertir la expresi6n a motaci6n polaca inversa. E 1 nombre "dkecci6n cero" se da a este t i p de computadora por la ausencia de un campo de direccibn en las instrucciones computacwdes.

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 . El conjunto de instnicciones de un procesador RlSC tipico est limitado a w las instrucciones cargar y almacenar c u d o hay comunicaci6n entre la memoria y la CPU.Todas las otras instrucciones se ejecutan dentm de los registros de la CPU s i n transferir* a la memoria. Un programa para una CPU tipo RE consta de instrucciones LOAD y STORE que tienen una memoria y una direcci6n de registro, e instnieciones de tipo computaciond que poseen tres direcciones donde d a s especifican registros de procesador. El siguiente es un programa para evaluar X = (A i B) * (C + D).

LOAD
LOAD LOAD LOAD ADD ADD UL

'

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. Las operaciones de sumar y muItiplcar se ejecutan con datos en los registros sin acceder a la memoria. El resultado de los c6lculos se guarda despuks en la memoria con una inshucci6n de almacenar.

E31 campo de operaci6n de una instruccidn especifica 4 opexaci6n que se va a ejecutar. E s t a operacl6n debe realizarse mbfe algunos datos almacenados en registcos de computadora o en palabras de memoria, La manera en que eligen los operandos durante la ejecucin del programa depende del modo de direccionamiento de la instruccin. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dwcci6n de la

276

Unidad

~entra1 de p m m i e n t o

instrucci6n anta de que se haga la refehcia real al operando. Las computadora~utilizan tcnicas de modo de direccionamiento para acomodar una o las das siguientes consideraciones:

1. Proporcionar al usuario versatilidad de programacidn al ofrecer facilidades como apuntadores a memoria, contadores para control de ciclo, in&aci6n de datos y reubicacin de programas. 2, Reducir la cantidad de bits en el campo de direccionamiento de la iastnicci6n,

La disponibilidad de los modos de dlreccionamiento proporciona al programador con experiencia en lenguaje ammbiador la flexibiiidad para escribir programas mas eficientes en relacibrr con la cantidad de instrucciones ye l tiempo de ejecu~i6n. Para comprender 10s diferentes modos de direecionamiento que se presentarh en esta seccin, es imperativo e n h d e r el ciclo de operaci6n bAsh de la computadora, ta unidad de control de una computadora estd M a d a para recorrer un ciclo de instrucciones que se divide en t r e s faprincipales:

1 . Bsqueda de i a instrucci6n de la memoria. 2. Decodificar la instrueci6n. 3. Ejecutar la insmiccin.


contaor de

programa IPC)

ampo de modo

Hay un registro en la computadora llamado contador de programa o PC, que lleva un registro de las instrucciones del programa almacenado en la memo&. PC coagene la direeoi6n de la siguiente instruccin que s e va a ejecutar y se incrementa cada vez que se recupera una instruccin de la memoria. La decodificacibn realizada en el paso 2 determina la qxraci6n que se va a ejecutar, el modo de dinxcionamiento de h instnicci6n y la posici6n de los operandos. Despus la computadora ejecuta la instniccihn y regresa al paso 1 para hacer l a bsqueda de l a siguiente instruccin en secuencia. En algunas computadoras el modo de direccionamiento de la instnicci6n se especifica con un cdigo biario diitititd, como se hace con e l caigo de op"aci6n. Otras computadoras utilizan un c6digo binario nico que representa la operaci6n y el modo de la instruccin. Pueden definirse instrucciones con &&so$ madd de direccionarniento y, en ocasiones, se combinan dos o m8s modos de direccionamiento en una insbruccibn. Un ejemplo de un b m t o de hshuccibn con un campo de modo de direccionamiento distinto se muestra en la figura 84. El c6diga de operaci6n la operadn que se va a ejecutar. El campo de modo se utiliza para ubicm los +randas necesarios para la operarihn. Puede haber o no un campo *dedireccionamiento en la instruccin. Si hay uno, puede representar una di~eccibnde memoria o un tegistm de preesadot. Adems, como se

SECU~NM Modos de direEcionarniento

277

analiz6 en l a seccibn anterior, la inctrueci6n puede tener mAs de un campo de d i d b n , y cada campo de direccibn puede estar asociado con su propio modo de direccionamieno particular. Aunque la mayorfa de las m & de d i d n a m i e n t o modifican e1 campo de dimccihn de la instruccin, hay dos modos que no necesitan el campo de direccin, Son los modm hnplfcito e inmediato.

Modo implcito: En este modo se especifican los qperandos en forma implcita en la definicibn de la inst'nicci6n. Por ejemplo, la instruccin "complementaracumulador"es una instmcci6n de modo implcito porque e l operando en el registro dk acumulador est5 impliako en la definicibn de la instrucci&n.D e hecho todas las instrucciones de referencia a registro que utilizan un acumulador son instrucciones de modo implcito.
Modo
Direaibn

w n campo de modo. Figura 3 4 Formato de instru~iones

Las instrucciones de direccidn cero en una computadora organizada con pila son hstrucciones de modo implcito parque esth implcito que los operandas estdn en la parte supetior de la pila.

Modo inmediato: En este modo se especifica el operando en la instruccin misma: En otras palabras, una instrucci6n de modo inmediato tiene un campo de operando, en lugar de un campo de d i r d 6 n . Un campo de operando contiene el operando real que se va a usar jmto con la operacibn especificada en la insttucci6n. Las instrucciones de modo inmediato son ' tiles para inicializar registMs en un valor constante.
Se mencionb antes que el campo de direcci6n de una instrucci6n puede especifkar una palabra de memoria o un registro de pmesador. Cuando el campo de direcci6n especifica un registro de prccesador se dice que la instniccin estii en modo de registro,

Modo d registro: En este modo, los operandos estn en registros que residen dentro de la CPU. Se seieccioni el registro particular de un campo de registro en la insfrkcidn. Un campo k bik puede especificar cualquiera de 2k registros.
Modo indiregto por registro: En este modo la instruccin especifica un registro en' la CPU cuyo contenido proporciona la direccidn del operando en la memoria. En tras palabras, al registro seleccionada contiene la d i ci6n del operando en lugar del operando mismo,, Ahtes de utilizar una instruccin de modo indirecto par registro, el programador debe asegurarse

278

-0

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. Entonces ura referencia al registro es equivalente a especificar una d h x i 6 n de memoria. La ventaja de una instaicci6.i de moda de xegistm indimdo es que e1 campo de direccibn de la iristrumi6n utiltza menos bits para seleccionar un registro de los que necesitara para especificar una diremi611de, memoria en forma directa.

direccibn efedivu

Modo de autoincremento o autodecremento: Este es similar al modo de registro indirecto, excepto en que e l registro se ipcremenb o decremenka despu& (o antes) de que su valor se utilice para a-r la memoria. Cuando la direccibn almacenada en el registro hace referencia a una tabla de datos en la memoria, es necesario incrementar o decremenfar el registro despuks de cada acceso a la tabla. Esto puede lograrse al usar la instruccibn de incrementar o decrementar. Sin embargo, como este es un requisito comn, algupas computadoras incorporan un modo especial que incremenb o d e crementa en forma automtica el contenido del registro despus de cada acceso de datos. La unidad de control en la CPU utiliza el campo de direccibn para obtener e l operando de la memoria. En ocasiones el valor que se proporciona en e l campo de direccibn es la direccibn del operando, pero en ocasiones es sbla una direccidn desde la cual se calcula la di~ecci6ndel operando. Para poder diferenciar los distintos modos de direccionamiento es necesario distinguir entre la parte de direccin de la inctmcci6n y la direccin ef-ctiva utilizada por e l rontxol cuando ejecutit la instruccidn. La direecibn ejectiva s e define como la &mi611de memoria obtenida del dlculo, fijado mediante el modo de difeccionamiento proporcionado. La dimi6n efectiva es la direccibn del operando en una inshuccidn de tipo cornputacional. Es Ia direccidn en que e l control se transfiere en respuesta a una instmccidn de tipo brinco. Ya hemos defiriido dos modos de direccionamienta en el caphiio 5. Se resumen aqu para que sirvan de referencia. Modo de direcdonamiento directo: En este modo la d i m i b n efectiva es igual a la parte de direcci6n de la instnicci6n. E i operando reside en memoria y su d i i c i 6 n la proporciona en forma directa el campo de direccibn de i a instruccin. Esi una instrucci6n de tipo brinco el campo de direccin especifica la d h i 6 n de transferencia de control del programa real.

Modo de direccionamiento indirecto: En =te modo, el campo de direccibn de la inskucci6n proporciona la dimtibn en que se almacena la direcci6n fectiva en la memoria. El control recupera la instrucci6n de la memoria y tiliza su,part;ede +direecibnpara accesar la memoria una vez m As con e l fin &-&le leer la dimci6n efedtlva. El m& de direccionarniento indirecto tambin se explica e n la d n 5-1 junto con la figura 5-2. '
.

Unos cuantos modos de diicionamiento requieren que el campo de dimcci6n de 1a instmcci6n se sume al contenido de un registro especifico en la CPU,En estos modos la direccidn efectiva se obtiene del cdlculo siguiente

d k c i 6 n efectiva = parte de direccidn de la instrucci6n -t- el contenido de


[registro de CPU

E l registro de CPU utilizado en el cdcuio puede ser el contador de programa,


un registro de ndice o un registro base. En cualquier caso tenemos un modo de dimcimamiento diferente que se utiliaa para una aplicacin distinta.

Modo de di~eccionamiento relativo: En este modo el contenido del cantador de programa se suma a la parte de direccin de la instruccibn para obtener la direccin efectiva. ta parte de direcci6n de la instruccibn por lo general es un nmero con signo (en representacibn de complemento a 2) el cual puede ser positivo o negativo. Cuando se suma este nmero al contenido del contador de prugrama, el resultado produce u n a direccibn efectiva cuya posicin en la memoria es &tiva a la direccin de la siguiente uistmccin. Para hacer ms claro con un ejemplo, consideremos que e l contador de programa contiene el nmero y que i a parte de direcci6n de la instruccibn conkiene el nmero 24. La inctniccibn en Ia posici6n 825 se lee de la memoria durante la fase de reniperacilin y el contador de programa se incrementa en uno a 826. E 1 ciilculo de dreccibn efectiva para el modo de direecidn relativa es 826 + 24 = 850. Esto es 24 posiciones de memoria adelante de la direccin de la siguiente hhucci6n. Con frecuencia se utrliza el direccionamiento relativo con instrucciones de tipo brinco, cuando la direccidn del brinco est en el Brea que m i e a la palabra de la instrucci6n misma. Esto da como resultado un campo de direcci6n ms pequefio en el formato de la instniccin porque la direccin relativa puede especificarse con una cantidad de bits menor en comparacibn con la cantidad de bits que se necesitan para r e p m t a r la direccih de memoria completa.
este modo el contenido de un registro fndicese suma a la parte de d h x i 6 n de l a instruccibn para obtener la diici6n efectiva. El registro ndice es un registro de CPU especial que contiene un vaBr ndice. Un campo de direcci6n de h instnicci6n define la direccin inicial del arreglo de datos en la memoria. Cada opando del arreglo &e almacena en la memoria m relaci6n con la direcci6n inicial. La distancia entre la direcci6n inicial y la dimci6n del operando es el valor del ndice h a c e n a d o en el registro de indice- Cualquier aperando en el arreglo puede accesarse con la misma instruccidn siempre y cuando el registro

Modo de direccionamienfo indexado: En

indice contenga el valor de ndice correcto. El registro ndice puede i n m mentar= para facilitar el acceso a operandos consecutivos. N6tese que si una instrucci6n de tipo ndice no incluye un campo de direcci6n en su formato, la instrucci6n se convierte al modo de operaci6n de indirecto por
registro.

280

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. D e rnanera hplicita este registro participa cuando se utiIiza una inshcci6d de modo ndice. En las computadora~con muchos registros de procesador, cualquiera de los registros de la CBU pueden contener el nmero de Endice. En tal caso, e l registro debe estar especificado en forma explcita en un campo de registro dentro del

formato de instruca6n.
Modo de didonamiento de xegistro base: En este modo, e l contenido de un registiro base se suma a la parte de direcci6n de la instnicci6n para obtener la direccin efectiva. Esto es similat' al modo de direccionamiento indexado, excepto en que e l registro se denomina ahora registro base, en I q p r de registro de indice. L2t diferencia entre los dos modos est en la manera que se usan mAs que en la manera en que se calculan. Se considera que un ~registmndice contiene un n~mero de ndice que se relaciona con la parte de d W 6 n de h insf-nicd6n. Se considera que un registro base contiene una dkc6n base y que el campo de direccibn de la instruccin proporciona un desplazamiento en relacibn con esta direcci6n base. E 1 modo de ,direccionamiento de registro base se utiliza m las computadoras para facilitar la locaikaci6n de las. programas en memoria. Cuando se mueven datm y programas de un segmento: de memoria a atra, como se requiere en los sistemas de multiprogramacibn, los valores de d i i b n de b s instrucciones deben reflejar esle cambio de posicin. Con un registro base los p e valores- de desplazamiento de h s instrucciones no tienen que cambiar. S610 e l valor del registro base requiere una a c ~ ~ c i para 6 n reflejar e l comienzo e un nuevo qmenta de memoria. jd J

, m

recuperar esta instcucclbn. El cantenido del registro de procesador R1 es m, y el contenido de un registro hdice XR es 100. AC recibe e I operando despu4s de que se ejecuta h instnicci6n. La figura lista unas cuantas direcciones pertinentes y muestra el contenido de la memotia en cada una de ellas. El campo de modo de la instruccibn puede especificar uno de varios modos. Para cada modo posible calculamos la direcei6n efectiva y el operand o que debe cargarse dentro de AC. En d modo de direccionamiento directo la direccidn efectiva es la parte de la direccidn 508 de h instniecih y el operando que se va a cargar dentro de AC es 800. En el modo inmediato

Ejemplo numnce Para mostrar las diferencias entre los diferenv modos, veremos e l ejemplo de los modos de direccionamiento sobre Ias instrucciones que se definen en la figura 87. h inshmi6n de dios paiabras m la d k i 6 n 200 y 201 es una iilstmccih "cargara AC" con un campo de diPecci6rr igual a 500. La primera palabra de la .inctrucci6n especifica e l cdigo de operacibn y modo, y la segunda palabra especifica la parte de la direccin. PC tiene e l valor 200 para

SEWI~N
C L T

Modos de di-ionamiento

281

u,

--hkrirn
Memoria

Figura 8-7 Ejemplo nurn6ricq para modas de diceccionamiento.

la segunda palabra de la instruccin se toma como el operando m s que


como direccih por lo que se carga 500 dentro de AC. (En este caso la

direcci6n efectiva es 201.) el modo indirecto se almacena la direcci6n efectiva de la memoria en la direcci6n 500. Por lo tanto, la direcci6n efectiva es 8 0 y el operando es 300. En el modo relativo, la direccibn efectiva es 500 202 702 y el operando es 325. (N6tese que e l valor eri PC, despds de la fase de recuperaci6n y durante la fase de ejecucin es 202.) En el modo de ndice la direccin efectiva es XR + 500 = 100 + 500 = 600 y el operando es 900. En e l modo de registro el operando est en R1 y se carga 400 dentro de AC. @ n este caso no hay una dimi611 efediva.) En e l modo indirecto de registro la dirqci6n efectiva es 400, igual al contenido de R1 y el operando cargado en AC es 7lO. El modo de autoincremento es igual que el modlo indirecto de registro, excepto en que R1 se incrementa a 401 despu& de la ejecuci6n de b instniccin. E l modo ,de autodecremento decrementa R1 a 399 antes de la ejecuci6n de la instrucci6n. E l operando que se carga en AC es, ahora W . La tabla 8-4 lista los valores de la direccihn efectiva y el operando cargado en AC para los nueve d o s de direccionamienta.

282

W OQIO Unidad--al

de p~wesamienbo
TABLA &4 Lirta tabular de un ejempIo numhrico

Modo de direccionamiento
Direccionamiento directo

DirecciSn efectiva
500 201

Contenido
de AC

Operando inmediato Dimciommiento indirecto Direccionamiento relativo Direccionamiento indexado Registro Indirecto por registro
Autoincrcmento Autodmento

800 702

000

1400 400
399

8-6

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. El conjunto de instrucciones de diferentes computadoras vara de una a otra sobre todo en la manera en que los operandos se determinan de las campos de direcciones, Las operaciones reales disponibles en el conjunto de instnicci* nes no,son muy &rentec de una computadora a otra. fio que sucede es que las asignaciones de d i g o binario y e l campo de d i g o de la operaci6n son diferenb en diversas computadaras, aun para la misma operaci6n. Tambih puede suceder que el nombre shwlico asignado a instrucciones en la notaci6n de lenguaje ensamblador sea diferente en varias computadoras, aun para la misma instruccidn. No obstante, hay un conjunto bsico de operaciones que gran parte, si no es que todas las computadaras incluyen en su repertorio de instmccionq. El canjunto de operaciones bsicas dispnibles en una computadora tipita = e1 objeto que se cubre eri esta semi613y la siguiienk. ta mayor parte de instrucciones de computadora pueden clasificarse en tres categorhs:

1 . Instrucciones de transferencia de dms. 2. Instrucciones de manipulaciBn de datos. 3. Instrucciones de control de programa. Las instrucciones de transferencia de datos producen una transferencia de datos de una localidad a otra sin cambiar el contenida de la informaci6n
binaria. Las instrucciones de manipulaci6n de datas son las que realizan operaciones arihn&ticas,lbgicas ,y de corrimiento. Las instrucciones de control de programa proporcionan posibilidades de toma de decisiones y cambian la trayectoria que toma un programa cuando se ejecuta en Ia computadora. E l conjunto de instrucciones de una computadora particdar d e t e d a

las aperacim de transferencia de regisws y controla las decisiones disponblw para el usuario.

clda;

I@ruccbnes de ,&wderenciade los datas Zlag instruccione*de transferencia de datos mueven datos de un lugar en la computadora a olm:~iTi sambiir e l contenids de IPS datos. Las transferencias ms comunes son enhe registros. del p~ocesador y memoria, entre registros de+ pr<rcesadar y etibda a ,salida y entre loa mismos registros del procesadoic, La tabla 8-5 proporciona una lista de ocho instrucciones de transferencia de datos que se u&n en muchas computadoras. A cada instruccibn le acompaa un nembnFm. Debe recoda* que dihrentes computadoras usan nem6nicos distintw para el mismo hombre de instruccin. L a instruccin load (cargar) se ha usada principalmente para designar una transferencia de memoria a un registro de pragramaci61-1, por lo general un acumulador. La.instruccidn storg (alnrncennr) representa una transfev c i a de un registrp de p m o r a 1%m.ioria. La instrucci6n mov (rnuver) se ha usado en las ca~putadorascon -istrw rnGltiples de CPU para designar una transferencia de un a otro. Tambi4n s e ha usado para transfere0cia.s de d a m entre registros de C??U y la, piemoria o entre dos palabras de memoria. ,Lainshcc611exchadge iintercaltibiar) cambia la informaci6n entre dos registros o un registro y una palabra de memoria. Las hj "struc$"es input (intruducir) y output [sacar) transfieren datos entre registros del prwesadqr y tepinales de entrada o saiida. Las instrucciones push (empfir) y pop (snlfar) transfiere0 datos entm registros del procesador y una pila de memor'ia. bebe recordarse que las instrucciones que se listan en Ia tabla 8-5, al igual . ", que en Ias tabhs sipuientes en esta seccibn, con frecuencia estn asociada's C o n diversos mods de direccionamiento. Algunas nomias del lenguaje ensaniblador modifican 14smbolo nembnico para diferenciar entre los diversos modos de direccionamiento, Por ejempla, el nemnico para
m

TABLA 8.5 Xns&uccionesde transhncia & dats tipica

Cargar

Alrnamr
kilovet

,LD ST
MOV

InkrmmbLr
Entrada

,WH
I N
OUT PUIMi.

-:r l.a+qipbi
Sai1L.a~

Ciilida

POP

2@

m ~

M O Unidad

central de procesamiento

TABLA & Ocho modos de direccionamientop r a la inhduccin 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 - R1 AC *- M[R1] AC c- M[RI], R1- R1

/'"

cargar de inmediato se convierte en LDI. Otras normas del lenguaje ensamblador utilizan un carcter especial para asignar el m d o de direccionarniento. Por ejemplo, e l modo inmediato se reconoce por un signo # colocado antes del operando. En cualquier casa, b importante es entender que cada histnicci6n puede ocurrir con diversos modos de direccionamiento. Como ejemplo, consideremos la instrucci6n cargar d ammulador cuando se usa con ocho modos de diteccionamiento d i f e m ~ . La tabla 8-6 muestra la convenci6n recomendada del lenguaje ensarnblador y la transferencia real que se logra en cada caso. ADR r e p m t a una direccibn, NBR es un ndmero u operando, X es un registro de ndice, R1 es un registro de procesador, y AC es el registro acumulador. El carcter B simboliza una ditwei6n indirecta. E 1 caracter $ antes de una direccin hace el direccionamiento relativo al contador de programa PC. El carhcter # precede al operando en una instruccibn de modo inmediato. Una instrucci6n de modo indexado se reconoce por un registro que se coloca entre parntesis despuCs de la direccin simb6lica. El modo de registro se simboliza al proporcionar el nombre de un registro de procesador. En el modo indirecto por registro, el nombre del regisffo que contiene la dimcci6n de memoria se encierra entre parntesis. El modo de autoinaemeito s e distingue del modo indirecto por regictro al colocar un signo de mas despus del registro entre padntesis. A su vez e l modo de autodecremento utilizara un signo de menos. Para poder escribir programas del lenguaje ensambladar para una computadora es necesario conocer el tipo de instrucciones disponibles y tambibn e s t a e s t a r familiarizado con Ios modos de direccionamiento utilizados en la computadora particular.
Instnicciones de manipulacin de los datos L a s instrucciones de manipulacin de datos ejecutan operaciones sobre los datos y proporcionan las posibilidades computacionales para la computad*

SECQ~N 8 4 Tradxencia y manipulacin

285

ra. Las instruaiones & M p . & c i S n de datos en una computadora tipica se dividen por l o general en tres tipos bdsicw

l . instrucciones aritmeticas 2 inskmcciones 16gkas y de manipulaci6n de bits. 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. Si embargo, debe.recordarse que cuando se ejecuta tal instrucdbn, la computadora d e k recorfer la fase de remperaci6n para leer su valor de cdigo binario de la memoria. Tambin deben traerse los operandos a los registros del piocesadar, .deacuerdo con las reglas del morir>de direccionamiento de i&tnicci6n. E l 6 1 h o paso e s ejecutar la instnrccibn m el procesador. Este ltimo paso s e implanta mediante microoperaciane, segn se explic6 en el capitulo 4 o por medio,de una ALU y un cirt~to de corrimiento como se muestra en la figura 8-2. Algunas de las instrucciones aritmticas necesitan circuitos especiales para su impIantaci6n.

Instrucciones aritmdticas las cuatro operaciones aritmticas bsicas son suma, resta, multiplicacin y divisin, La mayora de las computadoras proporcionan instrucciones para
las cuatro operaciones. Algunas computadoras pequeas dlo tienen las instrucciones suma y, tal vez, resta. La multiplicaci6n y a divisi6n deben generarse mediante subrutinas del software. L a s ctrtro operaciones ariticas basicas son suficiente^ para formular salucionss a problemas cientficos cuando se expresan en trminos de mCtodos de anlisis numbrico. En la tabla 8-7 se proporciona una lista de las instrucciones aritm4ticas tipicas. La instnieci6n de incrementar suma 1 al valor almacenado en un

TABLA 8-7 Imttwiones arilmticas tipicas

Nembnico

lncremcntar Pmmentar Sirmar


,

INC DEC ADD

ResHr
M~ilti~Iicar Dividir Sirmar con acarreo R c s ~ ron r ~rbtarno N e r (complemento a 2)

SUB

mv

MUL

ADDC
SUBB MEG

286

MFlWB m 0 Unidad central de prriwsamieniw

registro o palabra de memoria. Una caracteristica comiin de las operaciones de incremenhr, cuando se ejecutan en regishos de pr~esador,es que un nmero binacio que contiene &lo digiba 1, produce un resultado de 9610 agitas O cuando se incrementa. La instruecidn para decrementar resta 1 de un valor ah4cenado en un registro o palabra de memoria. Un niimero con &lo datos 0, produce un ndmero con slo digitm 1 cuando se decrementa.
iipo ds d a h

Las hstrucciones sumar, restar, multiplicar y d h i d i pueden estar dispadbles para diferentes tipos de datos. 'los tipos de datos que se considera que estn en los registros dei p m d o r durante h ejecuci6n de estas operaciones aritmticas, ae incluyen en la definicidn del cdigo de operacin. Una instruccibn aritrnbtica puede especificar datos de punto fijo o flotante, datos binarios o derimales, datos de preciaibn h i c a o de doble precisi6n. Los diferentes tipos de datos se presentaron en el captulo 3. No es extrao encontrar computadoras con tres o ms instrucciones de suma: una para enteros binariost una para operandm de punto flotante y una para operandas decimales. En seguida, se muestran los nemdnicos para tres instrucciones de suma que especifican tipos de datos diferentes.
ADD 1

ADDF ADDD

Sumar dos niimeros enteros de punto flotante Sumar dos nmeros de punto flotante Sumar dos n b e r o s decimales en BCD

Los algoritmos para operaciones con enteros, punto flotante y arihktica


decimal se desarrollan en el capitulo 10. La cantidad de bits en cualquier -tro es de extensi6n finita y, por lo tanto, los resulhdw de las operaciones aritrn6ticas son de precisibn finita. Algunas computadoras proporcionan operaciones de hardware de doble precisi611,en las d e s el tamao de cada operando es de dos palabras de memoria. La mayora de Ias computadoras pequeas proporcionan instrucciones especiales para facilitar la arihngtiea de doble precisi6n. Un flip-flop especial de acarreo se utiliza para almacenar el acarreo de una operaci6n. ia instruccin "sumar con acarreo" realiza la s u m a de dos operandos ms el valor del acarreo dd c2ilculo previo. De igual manera, la inshueci6n "restar con prktamo" resta dos palabras y un prstamo que puede haberse producido de una operacin de resta previa. La instntccibn negar forma el complementa a 2 de un numero, invirtiendo en forma efectiva el signo de un enkm cuando se representa en forma de complemento a 2 con signo.

instnrcciones Ihgicas y de manipulacin de bits Las instrucciones ldgicas ejecutan operaciones binarias sobre series de bits almacenadas en registros. Son tiles para manipular biis individuales o un grupo de bits que represente informacin en c6digo binario. L a s instrucciones lgicas consideran en forma separada cada bit del operando y b tratan como una variable booleana. Mediante una aplicacin adecuada de las

instrucciones Igicas, es posible cambiar los vabres de bits, emplear un grupo de bits o insertar nuevos vahres de bib m los operandos almacenados en registros o palabras de memoria. Algunas instrucciones I6gicag y de manipulacin de bits tpicas s e Ustan en la tabla M , La instrueribn de borrar hace que e l operando especificado se sustituya con 0. La instrucci6n complementar produce el complemento a 1 al invertir todos los bits del operando. Las instrucciones AND, OR y XOR
producen las operaciones 16gicas correspondientes sobre los bits individuales de las operandos. Aunque realizan operacbonm hleanas, deben considerarse que las instmccianes ejecutan operacb~es de manipulaci6n de bits cudndo se usan en instrucciones de computadora, Existen tres operaciones de manipulacibn de bits posibles: un bit seleccionado puede borrarse a 0, activarbe en 1, o puede compJementarse. Por lo general, se aplican las tres instrucciones 16gicas para hacer &lo esa. La instrucci6n AND se utiliza para borrar un bit o un grupo seleccionado de bits de un operando. Para cualquier variable booleana x, las relaciones xbO = O y xbl = x dictan .que una variable binaria a la que se le haya aplicado un AND con un O produce un O ; pero la variable no cambia de valor cuando se le aplica un AND con un 1 . Par lo tanto, la instnieci6n AND puede utilizarse para b~rrar bits de un operando en forma selectiva al aplicar AND ai operando con o h operando que tiene O en las posiciones de bit que deben borrarse. La instruccibn AND t'ambign se llama mscara, porque enmascara o inserta O en una parte seleccionada de un operando. La instnicci6n 0 R se u tiliza para activar un bit o un grupo seleccionado de bits de un operando. Para cualquier variable booleana x, las relaciones x + 1 = 1 y x + O = x dictan queana variable binara a la que se le aplica 0 R con un 1 produce un 1; p e w la variable no cambia cuando se le aplica OR eon un O. Por l o tanto, la htnidn O R puede utikarse para ackiva~
TABLA - h t n i c E i w 16giaii y de manipdaci6nde bits tipicas

desactivar bits sebccionados

activar los bits'

seleccio~ados

Bomr Complementar Aplicar la funci6n AND Apliar la furici6n OR Aplicar la funci6n.OR exclusiva Desactivar a
Acti~,m a .-

CLR
C O M

AND OR
XOR CLRC SETC COMC

Compkmentar a c a m Habiliwr intemi@&n IXd~G~itar i n e i 6 n

E 1
DI

completar los bits s e ~ m d o i

biis de un operanrto en f o m dwtiva, al aplicar OR con otro operando con dgitcw 1 en las p d o n w de bits que deben activarse: m 1. De igual forma, la, btmccibn XOR se ut.iliza para complementar bits de un operando en f a m a &&va. .Bto se debe a Ia relaci6n hiena x @ 1 = x' y ;u Q 0: = x. Por b tanto, m a variable binaria se complementa mando se le aplica XOR cbn un 1 , pero no cambia en vdlof cuando se le aplica XOR con un O. En la k c i b n 4 5 se muestran ejemplos numbrims de las tres operaciones lgicas. 1319 la tabla 8-8 se induym algunas otras-'~~l~trucciones de manipulaciijn de bits. Los M Y s individual@ [como los de un acarreo) pueden borrarse, a c t i v m a complementarse eon las instruccioneis aprbpiadas, Otro ejemplo es un fip-lop que controla la opcin de inkrrupci6n y se habilita o deshaMita mediante instrcciores ,de manipulacin de bits.

Instrucciones de corrimiento Las instrucciones para recorrer e l contenido de un operando son muy ames y se ~fkecertcon frecuencia en diversas variaciones. t o s corrimientos son operaciones en las cuales l o s bits de una palabra se recorren a la izquierda o derecha. El bit que s recorre al extremo de la palabra determina el tipo de corrimiento que utiliza. Las instrucciones de arrimiento pueden especificar conirnientos 16gicos, aritmdticos u operaciones de tipo rotatorio. En -lquier caso, el corrimiento puede ser a la derecha o a la izquierda. La tabla 8-9 lista cuatro tipos de instrucciones de corrimiento. El corrimiento lbgico inserta un O al de la posici6n final de bit, L . a posicidn final es el bit al extremo izquierdo para el corrimiento a la derecha y el bit al eximmo derecho para el coirimiento a la izquierda. Por lo general, loe c o ~ e n aritmticos b se apegan a h s reglas para los ntimeros de complemento a 2 can signo. Estas reglas se proporcionan en la d 6 n 4-6. La instrucci6n aritm6tica de corrimiento a Ia derecha debe preservar el bit de signo en la posicih al extremo izquierdo. E 1 bit de signo se desplaza a la
TABLA 8-9 L i s W o n e s de coerimiento tipicas
Nombre
Nembnico

Corrimiento a la derecha lbgico SHR Corrirnieritoa la izquierda lbgico SHL Corrimiento a la derecha aritmktico SHRA Corrimiento a la izquierda ariim&tico SHLA Rotar'a la derecha ROR Rbtar a l a izquierda ROL Rotar a la defecha mediante acarrea RORC Rotar a la izquierda mediante acarreo ROLC

c ~ mw Conkol ~ del programa

289

derecha junto con el resto dd nmero, pero e l bit de signo no cambia. Esta es una operacin de combnhfo a la derecha en la que el bit final permanece igual. La instmcci6n de corrimiento aritmgtico a l a izquierda inserta O en l a posici6n final y es idntica a la instruccin I6gica de corrimiento a la izquierda. Por esta r&n muchas computadoras no proporcionan una instruccin distinta de corrimiento aBtm&tico a la izquierda cuando ya est di&pom%ie la inchccibn de coxrimiento lb@eo a la izquierda. Las instrucciones-de rotacibn producen un carrimiento circular. Los bit6 recorridos en un extremo de la palabra no se pierden en un desplazamiento ldgiao, pero se hacen circular hasta d otro extremo. La inslnicci6n de mtaci6n a travs ,del .bit de acarreo trata al bit de acarreo como una extensidn del registro cuya palabra se est mtando. Por l o tanto, una instnicci6n de rotaci6n a la izquierda a Bav6s del acarreo transfiere e1 bit de acarreo a la posicidn de bit a la extrema derecha del registro, transfiere la posici6n de la extrema izqukrda al acarreo y, al mismo tiempo,recorre todo el registro a Ia izquierda. Algunas,computadoras tienen un formato de carapo mltiple para las instrucciones de corrimiento. Un campo contiene el cdigo de operaci6n y los otros especifican e l tipo de corrimiento y la cantidad de veces que se va a recorrer un operando. Un formato de cdigo de instruccibn posible de una instnicdbn de desplazamiento puede incluir cinco campos de la manera siguiente:

nP

REG

TYPE

RL

COUNT

Aqu OP es e l campo .dec6digo de operacin; REG es una direccidn de W t r o que especifica la posici6n del operando; 'l"YPE es un campo de 2 bits que espeeifiea las cuatro diferentes tipos de corrimientos; LR es un campo de 1 bit que especifica un corrimiento a la denecha o a la izquierda y COUNT es un campo de k bits que especifica hasta 2k - 1 corrimientOs. Con tal

formato es posible especificar el tipo de corrimiento, la direccibn y la cantidad de corrimientos, toda en una sola instrucci6n.

8-7

Control del,programa

Las instrucciones siempre se almacenan en localidades de memoria sucesivas, Cuando se procesan en la CPU, las instrucciones se recuperan de localidades de memoria consecutivas y se ejecutan. Cada vez que se recupera una instruccibn de la memoria, el contador de programa se incrementa para que contenga la direcci6n de la siguiente instnicci6n en secuencia. Despus de Ia ejecucibn de una instrucci6n de transferencia de datos o de manipulacibn de datos, el control retorna al ciclo de recuperaci6n con d contador de programa que contiene la direccin de la siguiente instruccin de m e n c i a . Por otra parte, un tipo de instrucci6n de contra1 de programa,

290

m0

Unidad ~ e n t t ade i procesamiento

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

Transferir Saltar
omitir

BR
JMP SKP

CALL Retornar RET Comparar (mediante resta) Probar (al aplicar la funci6n AND) TST

Llamar

La instnrcci6n de brinco no necesita un campo de direcci6n y por l o tanto es una b t r u c c i h de direccibn cero, Una instnrcci6n de brinco condicional brincara la siguiente instruccin si se cumple una condici6n. Esto se logra al incrementar el contador de programa durante la fase de ejecucibn, adems de lo que se incrementa durante la fase de recuperacin. Si la condicibn no se cumple, el control avanza a la siguiente instmccihn en secuencia, donde el programador inserta una instnicci6n de brinco incondicional. Por lo t a n t o , un par de instrucciones de brinco y transferench del control provocan un brinco si no se cumple la condicih, mientras una sola instnicci6n de brinco condicional produce una transferencia si se cumple la condicidn. Las instrucciones de llamada y regreso se utilizan junto con subrutinas. Su daempefo e imphntaci6n se analizan m6s adelante en esta secci6n, L2ia instrucciones de comparar y probar no cambian la secuencia del programa en forma directa. Estn listadas en la tabla 8-10 par su aplicaci6n al estable cer condiciones para instrucciones de brinco condicional subsecuentes. Una instruccin de comparar ejecuta una resta entre dos operandos, pero no se conserva el resultado de la operaci6n. S i n embargo, se activan ciertos bits de condiciones de estado como resultado de la operacibn. De igual manera i a instrucci6n de probar ejecuta el AND Ibgico de dos operandos y actualiza ciertos bit5 de estado sin mantener el resu1tado ni cambiar los operandos. Los bits de estado de interks son el bit de acarreo, el bit de signo, una indicacibn de cero y una condicin de sobreflujo. Primero se anabrA la generacidn de estoa bits de estado y despus mmtramos cbmo se utilizan en instrucciones de brinco condicional.

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. Lus bits de estado tambi6n se llaman b i t s de d i g o de condicidn a bits de bandera. La figura 8-8 muestra eI diagrama de bloque de una ALU de 8 bits con un registro de estado de 4 bits. Los cuatro bits de estado se representan mediante C, S, Z y V.'.Zns bits se activan o dsactivan como resultado de una operacidn ejecutada en la ALU.
Z X3I bit C (acarreo) se activa en 1 si d acarreo final C, es 1. Se desactiva a O s i el acarreo es O. 2. E I bit S (signo) se activa en 1 si el bit de orden m s allo F, e~ 1, se desactiva en O si el bit es O, 3. El bit Z (cero)se activa en 1 si la salida de la ALU contiene dio ceroe. Se desactiva a O de cualquier otra manera. En otras palabras, Z = 1 si la salida es cero y Z = O si la d i d a es d i t e de cero. 4. 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

1'8
I I

,'8
Ir

c 7

ALU de 8 bits

cg
1i

AL
F;

F7-F0

11

h r n p r o h r una salida O

11

, '8
lr

Salida F

Figuta m Bits de registro de estado.

O. Esta es la condicin para un sobrefiujo cuando los nmeros negativos estn ,enmmplements a ,2 (vaw .la seccin 33). Para la AUI de 8 bik, V = 1 d la. salida e s mayor que 127 o menor que 228.

heden verificarse los bits de estado despues de una operacin ALU para determinar *ciertas mlaciones que existen entre lm valores de A y B. S i R activa el bft P despues de h suma de dos nmeros,ron signo, indica una m d i c i n de sobreflujo; S i Z se activa despus de una operaci6n OR exclusiva, indica que A = B. Esto se debe a que x @ x = O, y la OR exclusiva de dos operandos iguales proporciona icn resultado de 5610 nilimeros 0, lo cual activa e3 bit 2. Puede verificarse un bit dnico en A para determinar s i est ,enO o 1 al m a m a r todos los bits excepto el bit en cuestin y despus d c a r el bit de estado 2. Por ejemplo, sea A = 101x1100, donde x es e l bit que se va a comprobar-. La operaci'bn AND de A con B = OUOlOOOO @uce un resultado OOOxMH10. S i 2 = O, e~ aetiva el bit de estado 2 , pero ei xx' =.1, se desactiva el bit 2 pue$ el resultada es diferente de cero. Puede gemrdrse la. optaci6n AND con la ~ ~ c c i 6TEST 1 i que se lista en l a tabla 8 1 0 ,si debe mantenerse el corthido onginsI de A.

= & N

8 7 CmtRi1 del

programa

293

instrucciones de brinco condicional La tabla 8-11 proporciona tfna lista de las iIptrucciones de transferencia del control del. programa mas comunes. Cada nem6nico estA formulado con la letra B (por branch, salto) y una abreviatura del nombre de la coqdici6n. Cuando se usa e l estado de condici6n opuesta, se inserta la letra N (no) para definir el estado 0. Por lo tanto BC es brincar en el,acarreo y BNC es brincar cuando no hay acarreo. S i la condicihn planteada es cierta, se transfiere el cmtrol del programa a l a direccin especificada por la instrucci6n. Si no, el control contina con la instnicci6n que sigue. Las instrucciones condicionais pueden a a ~ ~ i a r s tambidn e con las instrucciones del tipo de control de programa brincar, interrumpe, llamar o retornar. E l bit de estado cero se utiliza para probar si el resultado de una operaci6r en la ALU es igual a cero o no. El bit de acarreo se utiliza para comprobar si hay un acarreo de la posici6n de bit ms significativa de la ALU. Tambin se wa junto con las instrucciones de rotaci6n para verificar el bit ms significativo recorrido de un registro dentro de la posici6n de
TABLA 8-31 Instrucciones de tmnsfereneia de mn&iI,~ndicional
-7
-m-'

Nemnico

eondicihde tmnsfqncia

Condicin probada
2 - 1

ri **L

dw = m
rrk

BZ
BNZ

BC
BNC

BP BM
BV BNV

Brincar si hay cero Brincar si nb hay -o Brincar si hay acarreb bimt si~nomhay acarreo B-sihayundgnomh Brincara hay irn signo menos Brincar si hay sobdujo , Brincarsi no hay sobrduio

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 Brincr si es menor o igual A S B BE Biincar si es igual A=B BNE Brincarsi e sdifhte A+B

BGT BGE
BLT

Condic.iones para comparar con signo (A Eriqcr si es.mayor que Brincar M, e s mayor o igual

- B)
A>B A 2 3

BLE BE BNE

brincar si es menor que U'rincars i es menor O igual Brincar s i es igual Brincarsi es Bifbmfe '

A<B
A I B
A=B A f B

ejemplo num6tieo

acarreo. El bit de signo refleja d estado del bit ms significativo de la salida de la ALU. S = O repmenta un sipo positivo y S = 1 un signo negativo. Por l o tanto, un brinco sobre ms comprueba un bit de signo en O y un brinco sobre menos comprueba un bit de signo en 1. Sin embargo, debe recordarse que estas dos instrucciones de brinco condicional pueden utilizarse para verificar el valor del bit mbs significativo ya sea que rep-te un signo o no. E l bit de sobreflujo se u t h junto con operaciones aritmbticas realizadas sobre nmeros en rep-ntacibn de complemento a 2 con signo. Como se dijo antes, Ia instruccin de comparar ejecuta una resta de dos operandos, digamos sl - B. El resultado de l a operaci6n no se transfiere a un registro destino, pero se afectan los bits de estado. El registro de estado proporciona informacin acerca de la magnitud relativa de A y B. Algunas computadoras proporcionan instrucciones de transferencia del control del programa condicionales que pueden aplicarse exactamente despus de la ejecucin de una instniccidn de comparar. Lsis condiciones especificas que se van a probar dependen de si los dos nilmeros A y B se van a considerar con signo o sin signo. La tabla 8-11 proporciona una lista de tales ins:mcciones de transferencia condicional. Nbtese que utilizamos las palabras d s alta y miis baja para denotar las relaciones entre nCimeros sin s i p y mayor y menor que para nmeros con signo. ta magnitud relativa que se muestra bajo la columna de condicin probada, en la tabla, parece igual para los nmeros con signo y s i n signo. Sin embarga, este no es el caso porque cada uno debe considerarse en forma separada, como se explica en el siguiente ejemplo n d r i c ~ , Consideremos una ALU de 8 bits, $amo se muestra en l a figura 8-8.E l nmero sin signo ms grande que puede acomodarse en 8 bits es 255. El ranga de nmeros con signo esU entre + 127 y - 128. La resta de d a nSimeros es igual, ya sea que no tengan signo o estn en 'epresentaci6n de complemento a 2 con signo (vase el capitulo 3). Sean A = 1 1 1 1 O O O O y B = 00010100, Para ejecutar A - 13, la ALU toma e l complemento a 2 de B y lo suma a A.

La hstruccibn de comparar actualiza el bit de estado segn se muestra. C = 1 porque hay un acarreo de I a ltima etapa. S = 1 porque el bit a la extrema izquierda ea 1. V = O porque Im ltimos dos acarreos son iguales a 1 y Z = O porque el resultado es diferente de O. Si consideramos nmeros sin signo, el equivalente decimal de A es 240 y el de B es 2 0 . ta resta en decimal es 240 - 20 = 220. Por l o tanto, el resultado bmrio 11O111OO S el equivalente del decimal 220. Entonces 240 > 20, tenemos que A > B y A f B. Estas dos relaciones tambih pueden derivarse de que el bit de estado C es igual a 1 y el bit Z es igual a O. Las instrucciones que producirsn una transferencia de control despubs de esta comparacin

SEMWa7 Control del programa


son I3H (brincar s i es mayor),

295

BH6 (brincar si es mayor o igual) y BNE (brincar s i es diferente}. Si consideramos nmeros con sighq el equivalente de A es -16. Esto se debe a que e l signo de A es negativo y 11110000 es e1 complemento a 2 de @M10000, e1 cual e a el equivalente decimal de + 1 6 .E l equivalente decimal de 3 es 20. ia resta en decimal es (-16) - (+20) = -36. El resultado binario 11011100 (el complemento a nmeros de 8010010Q), es el equivalente del decimal -36. Como (-16) < (+20) terkmos que A B y A # B. Estas dos relaciones tambien pueden derivarse de que los bits de estado S = 1 (negativo), V = O (no hay sobreflujo) y Z = O (no hay cero). Las instrucciones que provocardn una transfereircia de control despus de esta comparacibn son: BLT (brincar si es menor que), BLE @rimar s i es menor o igual) y BNE (brincar si es diferente'}. Debe notarse que las instrucciones BNE y BNZ (brincar si no es cero) son identicas. De igual manera, Ias dos instrucciones BE (brincar si igual) y BZ (brincar si es cero) tambin son idnticas. Cada una estA repetida tres veces en la tabla 8-11 para hacerla mas cbra y completa. Con este ejemplo, resulta obvio que Ia magnitud relativa de dos nme ros sin signo puede determina= (despubs de una instrucci6n comparar) de los valore de bits de estado C y Z (vkase el problema 8-26). La magnitud relativa de dos nrimeros con signo puede determinarse de los valores de S, V y Z (vase d problema 8-27), Algunas computadoras consideran el bit C como un bit de prstamo despus de una operaci6n de resta A - B. No ocurre un prstamo s iA 2 B, pero debe prestarse un bit de la siguiente posicibn m s significativa si A < B. L a candici6n para un prstamo es el complemento del acarreo que se obtiene cuando se realiza la resta, al tomar el complemento a 2 de B. Por esta razn, un procesados que considera al bit C como un prstamo despuk de una resta, comphentar8 eI bit C despus de sumar el complemento a 2 del sustraendo y denotar que este bit es un prstamo.

Llamada y retorno de subrutina


Una subrutina es una secuencia completa de instrucciones que ejecuta una cierta tarea eomputacional. Durante la ejecucibn de un programa puede solicitarse que una subrutina ejecute su funcb5n muchas veces en diferentes puntos de1 mismo programa. Cada vez que se solicita una subrutina, 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, se hace un brinco de retorno al programa principal. La instrucci6n que transfiere e l control del programa a una subrutina se conoce con nombres diferentes. Los mis comunes son llamar subnifina, saltar a subrutina, tramfenr a submtina o tran$erir y guardar direccin. 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. Se ejecuta la

296

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 direccin de retorno en una posicibn temporai, para que la subrutina sepa a d6nde retomar y 2) se transfiere el contcol al comienzo de l a subrutina. La ltima instrucci6n de cada subrutina, por lo general liamada ret~rno de la subrutina, transfiere la direccibn de,retorno de la posici6n temporal dentro del contador

de programa. 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. Algunas k almacenan en la primera posici6n de memoria de subrutina, otras en una posicidn fija en la memoria, algunas mas en un registro de procesador y otras en una pila de memoria. La manera mis eficiente es almacenar la direcci6n de retorno en una pila de memoria. La ventaja de utilizar una pila;para la dimcidn de retorno es que cuando se solicitan subrutinas sucesivas, las direcciones de retorno secuencides pueden salvarse &m de la pira. E1 retorno de la instruccin de subrutina lee (pop) la pi,h y el contenido de su parte superior se transfiere al contador de programa. De esta manera, el torno es siempre al programa que solicitd la ltima vez una subrutina. 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, la nueva direccidn de retorno s e salva dentro de la pila, y as sucesivamente. La instruccin que hace retornar de la dltima subrutina se realiza mediante las microoperaciones:

PC t M I S P ] SP +SP + >1

Recuperar la pila y transferir a


incrementar apuntador de pila

PC

A utilizar una pila de subrutina, Ia circuiteria almacena en forma autodtica todas hs direcciones de retorno en una unidad. El programador no tiene que preocuparse o recordar d6nde sa dmacen6 i a direccibn de rctorno. Una subrutina remrsim es una subrutina que s e solicita a s misma. Si 9610 se utiliza un registro o localidad de memoria para almacenar la dicin de retorno y la subrutina recumiva se solicita a s i misma, destruye l a

SBCCION 87

Control del programa

297

b c i 6 n de ,retorno anterior. Esto no es deseable porque s e destruye XOCmaci6n vital. Este problema puede resolverse s i se emplean diferentes localidades de almacenamiento para cada utilizadhn de subnitina mientras otra utilizacin de nivel ms ligero estd activa todava. Cuando se utiliza una pila, cada ckcci6n de retorno puede saIvarse dentro de la pila sin destruir ningn valor previo. Esto resuelve eI problema de la subrutina reamiva porque Ja siguiente subrutina que sale es siempre la utima subrutina que se wlicit6.

Interrupcin> d d programa El concepto de interrupeibn de programa se utiliza para manqar diverproblemas que surgen de la secuencia de programa narmaL La internipcibn de p m g r m se refiere a l a transferencia del control de programa de un programa que com en cierto momento a otro programa de servicio, como resultado de una socitud generada en forma externa o interna. El control retorna aI programa original despus de que se ejecuta el programa de
servicio. I11 prodimiento de interrupcibn es, en principio, muy similar a una solicitud de subrutina, excepto por tres diferencias: 1) por l o general la interrupcin se inicia mediante una sefial externa o interna ms que por la ejecuci6n de una instruccin (excepto para una intempci6n de programa, como se explica m A s adelante); 2) Is d k c i 6 n dd programa de servicio de interrupcibn la determina la c i r c u i k a y no el campa de direccin de una instrucci6n; y 3) un procedimiento de intempci6n por 10 general almacena toda la itormaci6n necesaria pasa definir el estado de h CPU en lugar de slo almacenar e l contador de programa. Estos tres conceptos de p m d i miento se detallan en seguida. & @ S de que se ha interrumpido un.programa y se ha ejecutado la mtina de servicia, la CPW retorna al mismo estado exada que tenia cuando ocumb la intempcin. S6io de esta manera el progrma interrumpido podrh reanudar exactamente como si nada hubiera ocurrido. El estado de la CP al final del ciclo de ejecucih (cwndo se reconme la intermpcibn) est determinado por:
'

1 ,E 1 contenido de1 contador del programa. 2. El contenido de todos 1 - regi&os del procesador. 3. El c o n W u .de ciertas condiciones de estado.
p a i i i k de estado & programa

E i conjunto de todas las condiciones de bit de estado en la CPU se denomina en ocasiones una palaha die estado de p r o p m o PSW (PVogram sfafus m d ) . T;a PSW se almacena en un registro de hardware separado y contiene la informaci6n de estado que caracteriza a b CPU. Normalmenter inrIuye los bits de estado de la ltima operacibn de la ALU y especiEica las interrupciones que han permitido ucurran y si l a CPU est operando en

298

CAPfiULo -0

Unidad central de prmesamiento

modo srrpemlsor

un modo supervisor o de usuario. Muchas computadaras tienen un sistema operativo residente que controla y supervisa todos los otros programas en la computadora. Cuando la CPU ejecuta un programa que es parte del sistema operativo, se dice que estA en modo de supervisor o de sistema. Ciertas instrucciones tienen privilegios y d o pueden ejecutarse en este modo, Por l o general la CPU est en e l modo usuario cuando ejecuta programas de usuario. E l modo en el cual esta operando la CPU en cualquier momento dado lo d e t e k ~ a n los bits de estado especiales en la PSW. Algunas computadoras &lo almacenan el contador de programa cuando responden a una intempci6n. El programa de servicio debe entonces incluir instrucciones para almacenar el contenido de estado y registro antes de que se utilicen estos recursos. S610 unas cuantas computadoras aImacenan e l contador de programa y todo el contenido de lw registros y del registro de estado en respuesta a una interrupcih. La mayoh de las computadoras d i o almaeI contador de programa y la FSW.Bn algunos casos, existen dos conjuntos de registros de procesador dentro de la computadora, &o para cada modo CmT. D e esta manera, cuando e l programa cambia del modo usuario al supervisor (o viceversa) en respuesta a una intempcibn, no es necesario almacenar el contenido de los registros de procesador porque cada modo utiliza su propio conjunto de registros. E1 p d h i e n t o de hardware para prwesar una interrupci6n es muy similar a l a ejecucibn de una instruccih de solicitud de subrutina. E1 estado de la CPU se salva a una pila de memoria y la direccibn inicial de la rutina de servicio se transfiere a1 contador de programa. La direccidn inicial de la rutina de servicio la determina h circuiteria en lugar de un campo de dire&dn de una instnicci6n. Algunas computadoras asignan una localidad de memoria en donde se transfieren siempre las interrupciones. La rutina de m i c i o debe determinar despuk qu h e lo que produjo la interrupci6n y proceder a darle servicio. Algunas computadoras asignan una localidad de memoria para cada intempcibn posible. En ocasiones, la interrupcidn de hardware proporciona su propia direccin, la cual dirige a la CPU a la rutina de servicio deseada. En cualquier caso, la CPU debe poseer alguna forma de prodimiento de hardware para seleccionar una direccibn de transferencia del control para dar servicio a la interrupci6n. La B U no responde a una interrupcibn hasta el final de una ejecucin de instruccibn. Justo anbes de pasar a la siguiente fase de recuperacidn, el control comprueba cualquier seal de interrupcin. Si & @ente una, el control va a un ciclo de interrupcin de hardware. Durante a t e ciclo el contenido de PC y PSW se salva dentro de la pila. Despus se carga la direcci6n de transferencia para la intempibn particular al PC y se carga una nueva PSW dentro del registro de estado. El programa de servicio puede ejecutarse ahora, comenzando de la direccibn de transferencia y con un d a CPU 10 especifica la nueva PSW. La 6 1 t h inshucci6n en el programa de servicio es wia instnrcci6n de retomo de interrupcibtt. Cuando se ejecuta esta instruccin, se hace leer la

S E C Q8 ~7

Control del p-ma

2.99

pila para recuperar fa FSW anterior y la d h a i 6 n de retorno. La PSW se transfiere al registro de estado y la direcci6n de retorno a1 contador de programa, Por l o hnto, se restablece el estado de la CPU y el programa original puede continuar su ejecucin.

Tipos de interrupciones

Existen tres tipos principales de intermpcionea que producen una detenci6n en la ejecucibn normal de un programa. Se clasifican de la manera siguiente:

1 . Intenvpciones extemas 2 Intempciones internas 3. Interrupciones de programa


Las interrupcion& extemas provienen de dispositivos de entrada y salida @/S), de un dispositivo de temporizacibn, de un circuito que monitorea la fuente de alrmentacibn o de cualquier otra fuente externa. Algunos ejemplos de lo que produce interrupciones externas son dispositivos de E/S que solicitan transferencia de datos, dispositivos de E/S que tenninan transferencia de datos, tiempo transcurrido de un evento o una faUa de energa. Puede ocurrir una intemipcibn por tiempo transcurrido de un programa que est en un ciclo que no termina y que, por lo tanto, excede su tiempo asignado. Una kkmpci6n por falla de energa 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 energa. Las interrupciones internas surgen debida a la utizaci6n ilegal o errnea de una instrucci6n o datos. Las interrupciones internas tambin s e llaman trampas, Algunos ejemplos de las interrupciones provocadas por condiciones de e r r o r htemas son los sobreflujos de registro, intentar dividir entre cero, un d i g a de operaci6n no vdlido, desbordamiento de pila, y violaeihn de la protecci6n, Por lo general, estas condiciones de error ocurren como resultado de una terminaci6n prematura de h ejecuci6n de una Xnstrucci6n. El programa de seruicio que procesa la interrupcin interna determina la medida correctiva que se debe tomar. L a diferencia entre las interrupciones interna y externa es que la interna se inicia por alguna andici6n excepcional causada por el programa mismo, ms bien que por un evento externo, Las interrupciones internas son sincrocon el programa en tanto que las externas no la son. Si el programa s e vuelve a ejsnihr, las interrupciones internas o e h n en el mismo lumr cada vez. Las interrupciones externas dependen de condiciones inde pendientes al programa que se ejecuta en w e momento. Las interrupciones internas y externas se inician a partir de &ales que o c en I a circuitera de la CIiU. Una interrupcibn de p'ograrna se inicia al ejecutar una instruccibn. La interrupcidn de programa es una insmccibn de solicitud espcial que se comporta como una interrupcin ms que como

intpr*rrpc#ri rle Programa

300

GMT!iL@ OMO

Unidad emht de procesamienb

una solicitud de subtutina, El programador puede utilizarla para iniciar un pmcedimimto de inkmpdn en cualquier pimto que se desee del programa. El 'usomAs conin de l a intempkibn de programa se asocia con una instrucci6n de llamada de supemisor. Esfa nstniccin proporciona medios para cambiar el modo de usuario de C W al modo supervisor. S610 ciertas operaciones pueden asignarse al modo supervisor en la computadora, par ejemplo, un procedimiento de transferencia de entrada o salida complejo. Un programa escrito por un usuario debe correr m el modo usuario. Cuando se necesita una transferencia de entrada o salida, se solicita el modo supervisor mediante una instruccin de solicitud de supkrvisor. Esta instnicci6n pmduce una interrupci6n de programa que almacena el estado anterior de i a CPU y trae una nueva PSW que pertenece al mcdo supervisor. El programa que solicita debe pasar l a info~maci6n ai sistema operativo con el fin de especificar Ia tarea particular solicitada.

8-8

Computadora de conjunto de ins-tmcciones reducido (IRXSC)

Un aspecto importante de la arquiktura de computadoras es el diseo de conjunto de ictrucciones para el pmc-dor. Ei conjunto de instrucciones elegido para una computadora particular determina la manera en que se construyen los programas de lenguaje de mquina. Las primeras computa-

asc
m

Rlsc

doras t e n a n conjuntos de htruccions pequeos y simples, forzados sobre todo por la neresldad de minimizar la circuikra utiliiada para implantarlos. Conforme la ckuiterk digital se hizo mas barata con la aparici6n de los circuitos Integrados, las instns.cciones de computadora tendieron a aumentar, tanto >m cantidad como en complejidad. Muchas mmputadbras tienen conjuntos de instrucciones que incluyen ms de 100 y, en ocasiones, miis de 200 instrucciones. tas computadoras tambih emplean diversos tipos de datos y una gran cantidad de modos de direccionamentrr. L a tendencia hacia la complejidad de la circuikra de computadora la produjeron varios factores, como el mejoramiento de los modelos existente para proporcionar m8s aplicaciones al cliente, la adicin de instrucdanes que facilitaban l a traducci6n de programas e n lenguaje de alto nivel a programas de lenguaje de m6qirina y la baqueda para desamollar maquinas que-trasladaranfunciones de implantaciones de,programa a implantacionec de hardware. Una computadora con una gran cantidad de instnieciones se cIasifca como una computadora coa miunto de imtrucciontos m p l e i p , CISC (complex instructian set amputer). Al principio de los aiim mhenfa, muchos disefiadores de computadora recomendaron que las mquiiias utilizaran menos instrucciones con f6rmulas sencillas para que, pudieran ejecutarse cbn mucha mayor rapidez dentro de la CPU, sin tener que utilizar la memoria con tanta frecuencia. Este ttpo de computadoras se clasifica como mrnpufaiIoms de conjunto de instrumiones

SECU~N M

Computadora de conjunto Be instrucciones reducido

3 M

reducido, RTSC (reduced btniction set mmpukr). En esta d 6 n pmentamos las principales caractersticas de Ias arquitecturas CISC y RISC y despu6s d conjunto de instrucciones y el formato de instrucciones de un pmcesador. Caractersticas CISC E i dkiio de u n conjunto de instrucciones para una computadora debe considerar no 6610 f6rmulas de lenguaje de mAquina, sino tambin Iw requerimientos internos en i a utiIizaei6n de lenguaje de programacin de alto nivel. La traduccin de programas de alto nive].a programas de lenguaje de mquina se realiza mediante un progama compilador. Una razn para la tendencia a proporcionar conjuntos de instrucciones complejos es el deseo de simplificar la compikcibn y mqorar el desempefio general de la computadora. La tarea de
un compilador es generar una secuencia de instrucciones de mquina para cada enunciado de lenguaje de alto nivel. La tarea s e simplifica si existen - instrucciones de mAquha que integren los enunciados en forma directa. El propsito esencial de una arquitectura USC es intentar proporcionar una nica instmi6n de mquina para cada enunciado que estC emita en un Iwiguaje de alto nivel. Algunos ejemplos de las arquitecturas CISC son la computadora VAX de Digital Eqtaipment Carporatian y Ia IBM 370. Otra caracteristica de la arquitectura ClSC es la incorporaci6n de formato~ de instrucciones de tamafio variable. Las instrucciones que necesitan

operandos de registro pueden tener dio dos bytes de longitud, pero las instrucciones que necesitan direcciones de memoria pueden .necesitar cinco bytes para incluir todo el c6digo de la instrucci6n. Si la computadora tiene palabras de 32 bits (cuatro bytes), l a primera instmccibn mupa la mitad de una palabra, en tanto la segunda instnicci6n necesita una palabra m8s un byte en la siguiente. Para guardar formatos de instrucciones variables en una palabra de memoria de longitud fija se necesitan circuitos qeciales de demdificaci6n que cuenten 10s bytes dentro de Ia palabra y separen las instrucciones de acuerdo con la longitud de sus bytes. Las instrucciones en un procesador CISC tpico proporcionan Ia manipulacin directa de los operandos que residen en la memoria. Por ejemplo, una tistrucci6n ADD puede especificar un operando en la memoria mediante un direccionamiento de hd'ice y un segundo operando en ia memoria por medio de un direccionamiento directo. Puede incluirse en la instruccibn otra localidad de memoria para almacenar la suma. Esto requiere tres referencias de memoria durante la ejecucibn de la hstruccibn. Aunque los procesadores CISC tienen instrucciones que slo utilizan registros de procesador, la dispe nibilidad de otros modos de operaciones tiende a simplificar l a compilacidn de lenguajes de aIto nivel. S i n embargo, conforme se incorporan m8s instnicciones y modos de direccionamiento en una computadora, se necesita m s circuiterh lgica para implantarlos y soportarlos, y esto puede producir que los clculos se hagan lentos. En resumen, las principales caracteristicas de la arquitectura CISC son:

' .

.-1'
302:
cMrWL.0 mQ Unidad c e n t r a l de p t o

1, Una gran cantidad de in~tFucciones, por l o p e r a l de 100 a 250. especializadas y que no se 2. Aigmas .Instrhccion& qu ejecu,en' usen con frecumda. 3. Una gran cantidad de m d o s de didonamiento, por l o general de
5 a 20 modos diferentes. Formatos de instruccione8 .deexhsi6n vafiablb. 5. hbtnicciones que mariipiilm operandos en la aemaria. CwacterfsticasRISC El concepto de la arquitectura RISC signifita un intento para reducir el tiempo de ejecucidn aI simplificar el conjunto de insttucciones de la computadora. principales caractersticas de un proresador RlSC son:

1 . Relativamente pocas insthiecion&. 2. Relativam&Q p o s modos de direccionamiento.' 3. El acceso a memoria limitado a instrucciones de carga y alrnacenamiento. 4. Todas las .operaciones realizadas dentro de 1 - regisde la CPU. 5. Formatol de instrucriones decodificados ion facilidad, de longitud

fija,
6. Ejecudbn del ciclo de instruccidn nica. 7. Control pot circuiteria en lugar de rnicroprogramado.

El pequdo conjunto de instruccionec de un procesador RTSC tipico consiste principalmente en operaciones registro a registro, y &lo tiene las operaciones cargar y almacenar para accesar la memoria. Cada operando se introduce al pmesador con una instrucci6n cargar. Todos los clculos se bcen entre los datos almacenados en los registros del prticesador. Los resultados se transfieren a la memoria mediante instrucciones almacenar. Esta caracterbtica de arquit-tura simplifica ef conjunto de instrucciones y estimula la optimizacki de la manipulaci6n de qistros. Se usan unos cuantos modos de direccionamiento porque casi iodas las inshcciones tienen registros de direccionaM'1ento simple. Pueden incluirse otros modos de direecionamiento, como los operandos inmediatos y e l modo relativo. A1 usar un formato de instrucciones simple, la longitud de las instrucciones puede Fijarse y alinearse en palabras contiguas. Un aspecto importante del formato de instniccidn RTSC es que resulta fzicii de derodificar. Por b tanto, el control puede accesar simultneamente el cdigo de operaci6n y los campos de registro del c6digo de I a htrucci6n. A l simpiificar las instrucciones y su f k a t o , tambsn puede hacerse m s sencilla la 16gica de control. Para operaciones m63 rpidas, es preferhle un control de circuiterfa sobre uno rnicroprogramado. En el capitulo 5 se presenta un ejemplo de contmI de circukda, junto con la unidad de control de la computadora Msica. E n el captulo 7 se presentan ejemplos de control rnicroprogramado.

Computadora de-oonjunb de instrucci-

reddo

m m3

Una caracterstica de loa p r d m s e s su capacidad para e j e cuhf una Uisku&in por c i c l o ,de relaj. Esto se l a p al hacer simuitheamente las fases, de mpera&n, d ~ c a c i n y ejecucibn de dos o tres instni+na, u d un proredhhb denominado paralelismo. Una instrwci6.n cargar o almacenar puede requerir dos ciclos de reloj porque el acceso a memoria toma d a tiempo que las operaciones de registro. En acasimw se (atribuyen'a RISC un paraielisma eficiente y otras cuantas caractersticas, aunque tambib pueden existir en arquitecturas no RISC. Otras caracteristicas que se le atribuyen a la arquitectura RJSC son:

1 . Una .cantidad de,registros en el w d m relativamente grande. 2. Uso de m a s de re@kcm traslapados para acelerar la h a d a y retorno de p r o c ~ ~ , 3. Paralelismo de indrucriones eficiente. 4. Soporte de compilador para &aduccin &&te de programas de lenguaje de alto .nivel a programas de lenguaje de mquina.
& comimte'kner una gran cantidad de registros para almacenar los resultados intermedios y para optimizar las referencias de operandos. Za ventaja del a l m a ~ t en o registros, a diferencia del almacenamiento en memoria, es que los registras pueden transferir irzfomau6n a otros registros mucho ms rhpido que la transferencia de idoqaci6n hacia y desde la memoria. Por esa razbn, se pueden minimizar lae operaciones al conservar en registros los operandos a los que se a d e con mayor frecuencia. tos d u & s que muestran un mdinenta mejorado pa& la arquitectura RISC no esbblecm l a diferencia entre los e W .del conjunto reducido de instruceianes y h s e f m de un archivo de regi~tros grande. Debido a eso, a veces se a d n c m procesadores RMC una gran cantidad de registros en la unidad de pmcsadenta, En. la siguiente mxi6n se explica el uso de ventanas de regisbs trsisiapadoe cuando se transfiere el control de programas despus de una solicitud de prrpcedimhto, El.c~nducto de instrucciones en BXCC se p-ta en la secci6n 9-5, dkspus de que se expIica el concepto de conducaOn y saturaci611de lnea.

3
s a h r M n de I k u

gsr

Ventanas de regktros traslapados


lenguajes de pgramacihn de db nivel o m m n con frecuencia llamadas y stomos de aprwdhientos.Cuando se traduce a lenguaje de , miiquina, una llamada de prwedimimtq produce una secuencia de instruccbnes que @ d a n valo- de regis-, pasan pdmetros que necesita e l pmcedimiesito y, dvpu&s,solicitan w subcwtina que ejecute el cuerpo del procedmto, Despus de un retomo Be procedimiento, el. programa restablece 1 9 valo- de registco anteriores, trasmite lm resultados al pmgrama solicitante y, retorna de Ia subrutina. Guardar y restablecer registros, y pasar pardmehm y rwultados son operacior~a que con~umen tiempo. Algunas

En

304

-O

Unidad centra1 de proceSamienia

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

s!xcI6w M Computadora de conjunto dehslauceiimes rdhcido (m)

3 f l 5

306

cAetrrno -0

Unidad aentral de p-miento

Como se mencion6 antes, l o s 10 registros globales RO al R9 estn disponibles para todos los procedimientos. Cada procedimiento en h fqpra 8 9 tiene disponible un total de 32 registros mientras eht activo. Esto inelup 10 registros globales, 10 registros locales, seis registros bajos traslapados y seis registros altos traslapados, Con posibles otros esquemas de ventanas de registros de tamao fijo y cada una puede variar en el hmafio de la ventana de registro y en el tamafio de todo el archivo de registros. En general, la organizaci6n de las ventanas de registros tendrii las siguientes relaciones: Cantidad de registros globales = G Cantidad de registros locales en cada ventana = L Cantidad de registros comunes a las dos ventanas = C Cantidad de ventanas = W

La cantidad de registros disponibla para cada ventaaa se calcula de l a manera sipuienk.

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,L = 10, C = 6, y W = 4. El tamao de la v e n t a es 10 + 12 + 10 = 32 registros, y el archivo de registros consta de (10 + 6) X 4 + 10 = 74 registros.
RlSC 1 de Berkeley Uno de los pmq proyectos que pretendi6 mostrar las ventajas de la arquitectura iSC se mostr6 en la Universidad de California, Berkeley. La XSC 1 de Berkeley es una CPU de circuitos integrados de 32 bits. Soporta direccion- de 32 bits y,datos de 8, 16 y 32 bits. Tiene un formato de instrucci6n de 32 bits y un total de 31 instrucciones. Existen tres modos de diredonamiento Wm. Direeeionamiento de registros, operando inmediato, y direccionamiento relativo al PC para instrudones de transferencia o brinco. Tiene un archivo de registros de 138 registros ~ J Jun arreglo de 10 registras globales y 8 ventanas de 32 registros cada una. Los 32 q i s t r o s en cada ventana tienen una otganizaci6n similsir a la que se muestra en k figura 8-9. Como s61o se accesa un conjunto de 32 registros en una ventana en cualquier momento dado, e l formato de instruccibn puede especificar un registro de pracaador con un campo de registros de 5 bits. La figura 8-10 mue8tta los formatos de instrucciones de 32 bits utilizados para instnrcciones de n@stro a e s t r o y de acceso a memoria. Siete de

&g

computado^ de

ccuij~to de k t n i c c i s n e ~ reducido

307

Caigode opr-

Rd
5

Sin usar

S2

a) Mado de regislro: (S2especifm un registro)

31

24 23

1 9 18

14 13 12.

13

b) Modo dc W t r o inmediato: (SZmpeclfica un opmndo)

5
c) Modo relativa a P C :

19

Figura 8-10 Fomata de Instruccionesde la REC 1de Berkeiey.

los bi en el cWgo de operacidn especifican una opsrari6n y eI ocbvo indica si s e a c t u a i los bits de estado despuk de una oyeracin ALU. Para instrucciones de registro a registro, el campo Rd de S bits selecciona uno de los 32 registros como destino para e l resultada de la operacibn. La operacin se ejecuta con los datos eapedicados en los c a * p Rs y S2. Rs es uno de los r e g s i w fuente.'Si e l bit 13 de la instrudbn es O, los 5 bits de orden menor de S2 especifican otro registro fuente. Si el bit 13 de la instzucci6n es 1, S2 especifica uoa constank de 1 3 bits de signo extendido. Par l o tanto, la instnicci6n tiene un formato de tres direcciones, pero l a segunda fuente puede s e r un registro o un operando inmediato. Las instrucc W de acceso a memoria utiliza Rs para especificar una direcci6n be 32 bits ea un registra y S2 para especificar un deplazamiento. El registro RO m n t h a &lo n h e r 0 ~ O, por lo que puede utilizarse en cualquig campo para especificar una cantidad de cero. E l tercer formato de instntcci6n tombm Ios tres i I i l h ~ farnpos para fo-1: una direcci6n relativa de diecinueve bits Y y se il(sa sobg todo con las instrucciones brincar y llamar. El carhpo COND sustituye el campo Rd para instrueclones de brinco y se u t i l i para especifiieari yna de ' 1 6 condiciones de brinco posibles. Las 31 instrucciuqes de la RICC 1 se listan en la 'tabla 812. Se han agrupado en tres categorhs. Las instnrcciones de d p u l a c i 6 n de datos ejecutan operaciones artrndticas, 16gicas y de corrimiento. Lns simbolos bajo las columnas del cdigo de operaci6n y operando se utilizan cuando se d-

308

GMIIJW -O

Wdad m a l de

TABLA 6-12 Conjunto de inrtruccionesde la RISC I de BPrkeley

-digo

de ,~pwacifinOperanda

Tnmf~erencia de pgistrw

Dcwripcibn

hsimcciones de nranipulacibn de datos

ADD
ADDC SUB
SUBC SUBR SUBCR

&,S2,Rd

RS,SS,R~ . ~d t Rs,SZ,Rd Rs,S2,Kd

M*Rs + S2
~

+ s2 r + ~ c a r n ? a Silmar con acarreo

Sima d c enteros

RdtRs-S2 Rd +RF - S2 Acarrco Rs,S2,Rd R d t S 2 - R s Rd S2 l b - Acarrco Rs,S2,Rd Rd +RE r\ S2 AND Rs,S2,Rd Rd +Rs V S2 OR Rs,S2,Rd Rd tR r El3 S2 XOR Rs,SZ,Rd SLL Rs,S2,Rd Rd +lZF acarrear a S2 Ad c m a c a m r a 5 2 SRL s,S2,Rd SRA Rs,M,Rcl Rd +&:acarrear a $2 Instniccion~ de transferencia de dalos LDL (Rs)M,Rd Rd*M[& S21 LDSU (Rs)BZ,Rd Rd + M [ h + S21 WSS (RskS2,Rd . Rd +M[& + S21 LDBU (Rs)M,Rd Rd +M[& + S 2 1 LDBS (Rs)S2,Rd Rd + M [Rs S21

Resta de M I Restar mn a c m Restar i n v c ~ o Rcsiar mn acarreo Aplicar la luncidn AND Aplicar la funcibn OR Aplicar la funcibn OR excliisiva Corrimiento a la izquierda Corrimiento a la derecha Ibgico Corrimiento a la derecha aritmkico

LDHI

Carga larga Carga corta sin signo Carga corta con signa Carga by te sin signo Carga byte con signo

m
Sr3

STB GETPSW PU'T'Ps~

Rd,Y R&,[Rs)SZ w;(Jb)S2 Rd,(R$S2 Rd

RdtY

M[& M[&

+ s2.1-Rd -t. a] +Rd

Carga alto inmediato Almacenar largo


Almacenar corto Almacenar byte Cargar palabra de estada Inicializar ,palabra de estado

M[lb1+S2]+Rd Rd +PSW

PSWtRd

Inshcciones de ccrntrol d e . p m p q CONI), PCi-RP

W R CALL
C-AZLR

m) Cm,Y
Rd,ws)
Rd,Y

+ S2

Brinco condicional
Brinco relativo llamar a subnifina y cambir verrtana Llamar a relativa y c3;fmbiar ventana Retomar p cambiar
ventana

PC+Pc+Y Rd +Pi2 PC'+& + S2 CWP+CWP - 1 Rd PC


P C t P C IT CWPt-Cwp 1 K + R d +S2

m
CALLINT

3 2 d , s 2
Rd
1

CWp-CWP+l

%;CCmP R&+E

RErn
. .

Rd,S2
~d
'

pC tRd S2 CWp+m+ 1

-1

Deshabilitar interrupciones

Habilitar inkrrupclonm
Obtener el fdtimo PC

GTLPC

SECCI~N w Computadora de conjunto de instrucciones reducido (RXSC)

309

--.

T-@
M

tren proprnas de lenguaje ensamblador. Las columnas de transferencia de mgktmis y descripcibn explican la instrucci6h en notacin de transferencia de wgMm y m palabras. N6we que t d a s las instrucciones tienen tres operandos. La s8gunda fuente $2 p u d e ser un registro o un operando inmediata, representado mediante d -signo #. Por ejemplo, consideremm la instncdh ADD y c6mo pude ut%zarwparaejecutar divemas operacionec.
A.PD R22 r.R21i, R23 ADD R2.2,XliSO'i 8 2 3

R 2 3 +A22 R Z 3 +RZZ

+ R21i + L50
(Mover) Cargainmediata f 1 incrementar

ADDROiR21irR22 ADDRC1,#15Q,R.?2
Y : -

ADDRZZt#litR22

R22+R21 R22-150 R22tR22

Al usar el registro RO,>el cual siempre contiene nmeros O, es posible transferir el contenido de un registro o de una constante dentm de otro registro. La operacibn incrementar se tealiza al sumar una constante 1 a un regi~tro. L s instrudiodes de &ansfetencia de datos constan de seis instrucciones de carJa, tres instrucciones de almacenamiento y dos instrucciones que transfieren la palabra de estado del programa EW.E l registro que contiene la PSW contiene el estad^ de la CPU e incluye el contador de programa, los bits de estado de l a ALU, apuntadores usados junto con las ventanas de registro y otra informacin que detemina el estado de la C m . Las btruccion,es de cargar y almacenar mueven los datos entre un F9 v g i s t r o y una memoia. Las inst~~+ones. cargar acomodan datas con o sin ?signode 4 bib. byte) o 16 bits Ipaiabra coW)- Las instrucciones de palabra larga operan eIi dabs de 32 bits. Aunque parece existir un modo de direcaionamienha de registro.mAs desplazamiento, en las instrucciones de transferencia de datos, tambi6n es posible el diree~ionamiento directa e indirecto por registros. W siguientes m n ejemplos de cmo se cargan instrucciones larga6 con diferentes modos de direccionamiento.

LDL{R22)#150,RS LDL (R22)#01RS

LDL (RO)#SOOaRS

RS+M[R22]+lSU R5+iY[R22] RStfl[SOl]

La direccibn &fha en la primera instmccidn se evala a partir del contemido dd m@stm R22 mAs un desplakmiento de 150. La segunda insfruccidn utiza un desplazamienta O, d &'lo reduce a un modo iridirecto. por regish. La tercera instruccidn Mi* t d o s los nmeros O del registro RO par3 producir un tipo de instruccin de .direccionamiento directo, Las instrucciones de control de pmgrwa operan con el contador de programa PC para controlar la secuencia del programa. Hay dos instruccio-

310

m m

Unidad central de pxoeesamiento

nes de brincar y dos in~trucciones de liarnada. Una utilii un direccionamiento ndice ms desplazamiento; la ~ g u n d a utiliza un modo relativo a PC m d valor 'Y de 19 bits como la direcoi611relativa. Las instrucciones llamar y retomar utilizah un ~ g i s t r a de apuntador de ventana actual CWP (mrrent window pohtez) de 3 bib que apunta a la ventana de fegistms activa en ese momento. Cada vez que el programa dicita un nuevo prmedhiento, CWP se decrementa en uno para apuntar a la ventana de registro de nivel inmediato inferior. Despus una instruccidn de retorno CWP se incrementa en uno para retomar a la ventana de registros previa.

8-I.

Una CPU organizada con un anal simiIar a la de la figura 8-2 tiene 16 regisiros con 32 bits -da uno, una ALU y un dedifiador de destino. a ~Cudntos multiplexores.hay en el canal A, y cul es el tamaiio de =da uno? b. CuBntas entradas de selecci6n se necesitan para e l MX A y el MUX

B?
c. Cuantasentradas y salidas hay en el derodicador? d. ~Cuuitasentradas y saIidas hay en la ALU para datos, incluyendo acarreos de entrada y alida? e. Formu1e una palabra de control para el s i s ~considerando , que ALU
tiene 3 5 operacion~.

8-Z

E I canal del sistema de la hgwa 8-2 tiene los siguientes tiempos de retraso
de propagacin: 30 ns para que las seilales se propaguen por los multiple xores, 80 hs para qerutar la dperdci6n ADD en l a ALU, un retraso de 20 ns en el decalificador de destino y 10 ns para sineronizar los datos dentro del registro de destino. Cual es el tiempo del cielo mnimo que puede utilizarse para el reloj? Especifique la palabra de control que deba aplicarse al procesador de 1a figura 8-2 para implantar les siguientes micrwperacions.
a.
C.

8-3.

RI+R2+R3 R5+R5 - 1 6 +shl R1


+

b . R4tR4

Entrada

S 4

Determine las micm~racionas que se 4ec.utarAn en el procesadar de k figura'&Z w n d o se apliquen las sigubb potlabras de mtml de 14 bits. a. 00101~00101

b .
c. d.

EEEz m r m 1 o

e. 11110001110

8-5,

Sea SP = OW,OC4 en la pila de l a f@ra 8-3. Cuaintos datos hay en la pila

s i :

8-6,

a LLENO = 1 ,y VAClO = O? b . LLENO = O y VACIO = l? Una pila estd organizada de m e r a que SP siempre apunte a la siguente posicibn vada en la pila. Esto significa que SP puede inicializarse a 4000 en la figura 8 4y el primer dato en la pila se almacena en la posici6n 4WO. Liste las mimooperaciones para las operaciones push y pop.
Convierta las siguientes expresiom aritmitieas de notad611interna fija a polaca inversa.

&7.

8-8.

. Convierta las siguientes expresione aritmhticas de notaci6n polaca inversa


a interna fija.

Convierta la siguiente expresib n h i c a aritdtiea a notaci6n polaca inversa y muestre las operaciones de pilq para evaluar el resultado numrico.

8-10.

Un sistema primero & e n & ,

p h e r o en salir (RFO) tiene una organiza& de memoria que almacena informa& de manera que el dato que se almacena primero e s d primero que se recupera. Muestre cmo opera UM memoria FiR3 con tres contadores, Un contador de d t u r a WC contiene

8 1 1 ,

8 1 2 .

la d l d b n para escribir en la memoria. bn contador de ledura RC contiene la direcci6n par1 leer de la memoria. Un conhdor de ahacaamiento disponiblelMC indica la cantidad de palabras almacenadas en FIFO.ASC se h e m e n t a para cada palabra almamada y sed t a para cada dato mpetado. Una computadora tiene instrucciones de 32 bits y direcciones de 12 bits. Si hay 250 ir&truccioxm de das dimriones, ~ c u h t a s immieciones de una d W 6 n puedkn formularse? Escriba un p&arna para evaluar el enunciado admico:

3 ; 1 2

C A P ~ XHO ~ ~ O Unidad

central de procesamiento

8-13.

8-14.

8-15.

8-1.6,

8-17.

8-18.

a. Al usar una computadora d e registro general con instrucciones de tres direccionamientos. b. Al usar una computadora de registro general con instrucciones de dos direccionamientos. c. Al usar una computadora de tipo acumulador con instrucciones de un direccionamiento. d, Al usar una pila organizada c ~ rcero t instrucciones de aperacin de cero direccionamiento cero. La unidad de memoria de una computadora tiene 256K palabras de 32 bits cada una. La computadora tiene un formato de instruccin con cuatro campos: un campo de cdigo de operacin, un campo de modo para especificar uno de siete modos de direccionamiento, un campo de registro o direccin para especificar uno de 60 registros de procesador y una direccin de memoria. Especifique el formato de las instrucciones y la cantidad de bits en cada campo si la instruccin est dentro de una palabra de memoria. Una instruccin de dos palabras est almacenada en la memoria en una direccin representada por el smbolo W. El campo de direccin de la instruccin (almacenado en W +1)est representado mediante el smbolo Y. El operando utilizado durante la ejecucin de la instruccin est almacenado en una direccin representada por Z. Un registro ndice contiene el valor X. Refiera cmo se calcula Z de las otras direcciones si el modo de direccionamiento de la instrucain es a. directo b. indirecto c. relativo d. indexado Un tipo de instruccin de brinco de modo relativo est almacenado en la memoria en una direccin equivalente al decimal 750. El brinco se hace a una direccin equivalente al decimal 500. a. Cul debe ser el valor del cam,pode direccin relativa de la instruccin (en decimal)? b. Detsrmine el valor de direccin relativa en b m r i o utilizando 12bits. (Por qu debe.estar el nmero en forma de complemento a 2?) c. Determine el v a l ~binario r en PC despus de la fase de recuperacin y calcule el valor binari~ de 500. Despub muestre que el valor binario en PC ms la direccin relativa calculada en la parte b es igual al valor binario de 500. Cuntas veces hace referencia la unidad de control a la memoria cuando recupera y ejecuta una instrucen de modo de direccionamiento indirecto si la instruccin es: a) tipo computacional que requiere un operando de la memoria?; b) un tipo de transferencia de control del programa. Cul debe ser el campo de direccin de una instruccin de modo de direccionamiento indexado para hacerla igual que una instruccin de modo indirecto por registro? Una instruccin est almacenada en la localidad 300 con su campo de direccin en la localidad 301. El campo de direccin tiene el valor 400. Un

R1 contiene e l nmero 200. Evale la direesi6n efectiva si el modo de didonamiento de la instrucci6n es: a) directo; b) inmediato c) relativo; d) indirecto por registro; e) indexado con R1 como e1
w@stro~-de pmmsador

regisfm Sndice.
8-19.

Cdderando uria computadora de 8 bits, rnudtte la sum de prehsi6n mItiple de los dos n sin signo ,de 32 bits que se listan en seguida, utilizandok sutiwi con Instnicciom de acarreo. Cada byte se expresa como un niimero hemdecimaI de dos d fgitos.

8-20.

8-21.

Rmlie la I 6 g i e ~AND, OR, y XOR can las dos series binarias 1M)11100 y 101Q1010. Dado el valor d e 16 bits 1001101011001101. &Qu& operaci6n debe ejecutarse con el fin de:
a. Borrar a O los primeros ocho bits? b. Activar a 1 los ltimoa ocho bits? c. Complementar 10s ocho bits de enmedio?

8-22.

Un registro de 8 bits contiene el valor 01111011 y el bit de acarreo es igual a


1. Ejecute ias OChD operaciones de corrimiento proporcionadas por las instniceionea que se l5stan en la tabla 8-9. Cada vez, inicie de1 vaIor inicial que se dio en esta pregunta. Repregente los siguientes nheras con signo en binario utilizando ocho bits. & ; -83; +68; 6 3 .

8-23.

la suma (-83) + (+68) en binario e interprete el resultado obtenido. b . Realice la resta (-68) - (+a) en bina& e indique si hay cobreflujo. C. Recorra a la derecha el binario -68 una vez y proporcione el valor del nmero recorrido en diximal d, Recorra a la izquierda el binario -83 e indique si hay un sobreflujo.
a. Realice

&24.

&E.

Demuestre que el circuito etiquetado "verificarsi hay una salida cero" en la figura 8-8 es una compuerta NOR de 8 bits. Una computadora de 8 bits tiene un registro R. Determine los valores de los bits de estado C, S, Z y V (figura 8-8) despuds de cada una de las siguientes htrucciones. E l vdor inicial del registro R, en cada cam es e l hexadecimal 72. Los nhmeros siguientes tambi&nestn en hexadecimal. a. Sume el operando inmediato C6 a R. b . Sume el operando inmediato 1E a R. c R e t e el operando inmediato 9A de R. d Aplique Ia funci6nAND del operando m e d i a t o 8D a R. e. Aplique 1 a funci6n O R exclusiva R con R.

8-26.

h s nmeros Sin s w o A y B se cqqparan al restar A B. E l bit de estado de acarreo se coxisidwa como un bit de pdstamo despus de una inctrucn comparar en la mayoda de las computadoras comercia~es, por ]o hnb c =

14

CAPfrvLo "-0

Unidad central de proce9amiento 1s i A < B, Muatre que puede dekminam la m a @ M relativa de A y B de-hh s p d n d e ,los$its de-C y 2,segn 8e especifica en la tabla p a r 4 problema:&%. W i i n Ia tabla 8-11.)
'8-27.

Dos nCrmeros c o n signo A ) ,E, iepresmtados en forma de complemento aDm 4sigit85.s=paran al =bar i 4 B. Los bits de estado S, Z y V semkivari!o dwotivm~depndiendp del resultado de la operacin w 6 k ino&~si6i3.h ~igno.ei w r r e un sobreflujo.) Demuwtre que ..que hay pude det;errnImiWlii egnitctd telativa de A y B a partir de la inspeccidn de los bits de estado, wmo se especifica en seguida. (Vhse tambin la tabIa.&ll.)

Tabla para el probIema 8-26


Relaci6n CodCrQn<de los bits de estado

8-28,

Ee aecemrio disebr un cirquita digital con cuatro entradas C, S ,Z y V y 10 salidas, una para cada una de. hs condiciones de transferencia de controI listadas en los problemas 8-26 y 8-27. (Las condiciones igual y desigual s6fi 'eiihunes a ambad tablas.) Dibuje el diagrama 16gico del circuito utilizando dos compuertas OR, una compuerta XOR y cinco inversores.

~elacihn bndici6nde l o s bits de estado

A3.B

(SBl/r=OriyZ=O

4;)s
A<@
AS$ A =B ACB
,

Cs@<v=o

(S@Vj=I ~dYv)=loz=I

z=1
Z=O

equivalente decimal de cada nmero considerando 'f}no tienn riigno y 2 ) . riendasigno. 'b, Sume Iris d& ndfikros biiar'ias e interprete la suma considerando que Iwfi&& sud: il sin 5 1 p y 4 con signo.
@e:

a. Praporone el

Determine las valores de los bits de estado C, Z, S y V despus de la suma. d. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera. El programa en una computadora compara dos nmeros sin signo A y B al ejecutar ima resta A - B y actualizar los bits de estado. Sean A = OlOOOOOl y B = 10000100.
G

a. Evale la diferencia e interpfete el resultado binario. b. Mermine los valores de los bits 'de estado C (prstamo) y Z. c. Liste las instrucciones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera.

El programa en una computadora compara dos nmeras con signo A y B al ejecutar la resta A - B y actualizar los bits de estado. Sean A = 01000001 y B = 10000100.

a. Evale la diferencia e interprete el resultado binario. b. Determine el valor de los bits de estado S, Z y V. c. Liste las instrucci,ones de transferencia de control condicional de la tabla 8-11 que tendrn una condicin verdadera. El contenido de 1; parte superior de una pila de memoria es 5320. El contenido del apuntador de pila SP es 3560. Una instruccin de llamada a subrutina de dos palabws se localiza en la memoria en la direccin 1120 seguida por el campo de direccin de 6720 en la localidad 1121. Qu contienen PC y la parte superior de la pila a. Antes de qu se recupera la instruccin solicitar de la memoria? . b. Despus de qu se ejecuta la instruccin de llamada? c. Despus del retorno de la subrutina? &Culesa n las diferencias bsicas entre una instruccin de transferencia de control, una instruccin de llamada a subrutina y una interrupcin de programa? Proporcione cinco ejemplos de interrupciones internas y cinco ejemplos de interrupciones externas. Cul es la diferencia entre una interrupcin de programa y una llamada ,a subrutina? Una computadora respondea una seal de solicitud de interrupcin al salvar pila el contenidode PC y la palabra de estado de programa PSW dentro de $la actual. Despuds lee una nueva PCW de la memoria a partir de una posicin proporcionada por una direccin de interrupcin representada por IAD. La primera direccin del programa de servicio se toma de la memoria en la posicin IAD +l. a. Liste la secuencia de microoperaciones para el ciclo de interrupcin. b. Liste la secuencia de microoperaciones para el retorno de la instruccin de interrupcin. 1 e intel 386 son ejemplos de computadoras con La IBM 370, VAX 1 formatos de instrucciones variables. Compare los formatos de instruccin variable de una de estas computadoras con el formato de instruccin de longitud fija que se usa en ISC T.

316

Unidad central de p~icesarniento

8-37,

Tres computadoras utilizan ventanas de registro con las siguientes caractersticas. Determine el tamafio de Ia ventana y la cantidad total de regisen cada mmpatadriia.

Co"mputadora1 Computadora 2 Computadora 3

Registros globales Registros locale8 Registra comunes Cantidad de ventanas


D-ag.

10
10 6

8
8

16
16

8
4

16

16

Proporcioneun ejemplo de instrucciona de &1que ejecutenlas siguientes

8-39.

opera&orw. a, Decrementar un registro b . Complementar un registro c Negar un registro d. Bbrrar un rgistro a O e. Dividir un n5mm con signo entre 4 f. Ninguna aperaci6n Escriba las i~trucciones de R I X 1en lenguaje ensamblador que p d u c i r h un brinco a la d M i 6 n 3200 si e1 bit de estado Z (O) es igual a 1. a. Usando el modo inmedigto b . Usando un modo de direccionamiento relativo (considere que PC
= 3400)

1. Gear,.C.,W , Cmpter Qrgawkationund hqrmm~tling, 3a;Ed.Nueva York: McGraw-

-.

Ha,1 m .

2. Godhe, G. W., ~ i r i p u f tOkgmia#tjoh? v &rrlWre/Sqhwre, h. Ed. Englewood Qiffs,


i

WPrentii &u, l s ' @ . a, &ayv M,k. lX;lhtrod~~&m to Compter'Sysl;8ms.h g l e w d Cliffs,


1 w .

Prentice Hall,

4,' Hamch'er, V .C 2 ~ . ' v r w i c ~ S.-G i .2aQE Computer Qrganihmz, B.Ed. N u m Vork: MGraw-%iB, f 9 % . 5. Hays, J. P . , -Ar&hture wrd Grgwidq, 2a. M. Nueva Y & M=mw-i-W 1983. 6. ~angholz, , $ . , F&E;o~~, y A. Kaadel, Ekm.znts pJComputer Orpnization. E n g l e w d CMfs, kmti&&El: 8@. , 7. b y , R M . y R. H.Eckiwge, 17, C ~ p u k P r r o p p n i g and Arckit&hw: 2 ' 7 ~ VAX-11. MA: Dgib;ir p m s , iW. 4. dppjatt, A: C.j Ml*hi, g k drehjfecka S D U ~computn ~ systems, 2.. d. wlwQod a ! & ,riU:,wtiwm, 1 %

w;

a.

htice 9. Mano,M . M., Computer Engin~ring: Hardware D e . EngIewood Cliffs, Hall, 1988. 10. Murray, W. D . , Conrpirter and DkitaI System Architecture. E n g l e w d Ciiffs, NJ: Prentice HaH, 1990. 11. Patterson, D.A., y J. L.Hemessy, Computer Archiiechrre: A Quantitative Appmch. San Mateo, CA: Morgan K a u f m a ~ kiblishers, 1990.

12. Patirson, D. A,, y C. H. Sequin, . "AW RTCC." IEEE Compufer, Septiembe de 1982,
pp. 822. 13. Pollard, L.H . , c o n i @ ~ i i ; iArc7titecture. ~ie E n g l e w d Cliffs, Nk Prentice Hall,
199D.
14. Rafiquzzaman, M., y R. Chandra, W e r n Cmtrputer Architeeture. St. Paul, MN: West

Publishers, 1988.
15. Siewiorek, D . ,C.G.Bell y A. NeweU, Compukr Strilcturec: Principk and Emmph. Nueva York: McGraw-Hill, 1982, 16. Stallings, W,, Computer Organiaztion and Architeehw, 2a. M. Nueva York, W l a & 1 9 8 1 ) . 17. Tanenbaum, A. S,, Structurd Computer Orpnization, 3a. Ed. Englewood Cliffs, NJ: Prentice Hall, 1990. 1 8 . Tornek, I., Intmfuctioii to Computer Organizatiun. Rockville, MD: Computer Science Pms, 1981. 19. Toy, W., y B. Zse, Co~tyuter Hardmre/SoWre Architecture. Englewood Cliffs, NJ: Prentice Hall, 1986. 20. Ward, S.A. y R.H. Halstead, Jr., Computatiofi Struct ums. Cambridge, MA:MiT h ,
1990.

EN ESTE wfTUL0
9-1
9-2

9-3
94
9-5

9-6

9-7

besamiento paralelo A r q u i t e c t u F a paralela Lnea paralela aritmbtica Lnea paralela de instrucciones Arquitectura paralela RICC Procesamientovectorial Arreglo de pmcesador S'IMD

9-1 Procesamiento paralelo


El procesamiento paralelo es un trmino que se usa para denotar un grupo de tcnicas significativas que se usan para proporcionar tareas sirnultArms de procesamiento de datos con el fin de aumentar la velocidad computaciw nal de un sistema de computadora. En lugar de p-ar cada instrucci6n en forma secuencia1 como en una computadora convmcional, un sistema de procesamiento paralelo puede ejecutar prosesamienta concurrente de datos para conseguir un menor tiempo de ejmuci6n. Por ejemplo, mando se ejecuta una instruccin en la ALU, puede leerse la siguiente instruccin de la memoria. E i sistema puede tener dos o ms ALUS y ser capaz de ejecutar dos o ms instrucciones al mismo tiempo. Adems, el sistema puede tener dos o ms procesadores operando en forma concurrente. E 1 propbito del procesamiento paralelo es acelerar las posibilidades de prmesamiento de la computadora y aumentar su eficiencia, esto es, la cantidad de p-nto que puede lograrse durante un cierto intervalo de tiempo. ta cantidad de circuiterla aumenta con e l procesamiento paralelo y, con 6 1 , tarnbih el cmto del sistema. S i n embargo, los descubrimientos tecnolgicos han reducido el costo de la circuiteria a un punto en donde las tcnicas de procesamiento paralelo son eron6micamente factibls.

El procesamiento pwwo pmde cangiderarse desde diversos niveles de .cornplqi&d: &-el n i w d m& bajq, eistinguhw entre operaciones seriales y para].eiasmediante el tipo de @gis~r& ijue4utilizan. Los registros de corri&@qer&t;eri f~wa &al -hit a la vez, mlenttas que los registras con m g aparaIela o ~9.ri @mLlusbib de l b palabra en forma shdtdnea. ~ f i d F + UF pdentoipralelo a un nivel m8s alto de complejidad al h d = % e ' s IonHm1es que ejecuten Operanbna idhticao Q difqqbs, ,de m e r a simd&@. E l procesamiento paralelo se establece al distcibi&t 1 b datos en^ la@unidades funcionales mitiples. Por jmplo, las op&adones adtmeticas, 16gicas y de corrimiento pueden separarse en tres unidades y dividirse los operandos a cada una, bajo la supervisi611de una unidad de control.
Figura 9-1 Procesadar con unidades funcionds miiltiples.

A la memoria

qiistmde

pmadw

. r

Suma-mtade
w f l -

..
'

'

MuiUplicdci6nde punuofloeanie

Divipi5n de puntoflotante

"

uniilass fintiihdJes
mtiii$piIes

ta figura 9-1 muestra u m manera posible de separar la unidad de ejecutik en ah~.unidades M&d& que m paralelo. b s operandos eh los registrds s ' e aplican a una de las unidades, dependiendo de *la opwaci6n respeci%tcada, mediante l a instiurrci6n asodada con los operandos. La aperacib ,ejecutada en dada unidad fundonai se-hdica en cada bloque del diagrama. El sumador y el multiplicadof de enteros ejecutan las opera~iones aritm4tkas ton f i h & o s mitim~. I.A~ ~etaciones de puntb flokante se separan eri kres c i d h s que operan en par#lelo. Las operaciones 16gicas de mmimiento p . de incremento. pueden ,ejecuhme en forma concurrente sobre dfferentes d a b , Todas las unida de s. ion fnriependientes una de otra, pbr lo que puede recomme uh nthliem rhiehttas otrb Ge incrementa. Por l o genaal, ura organlzacih inultihi6iml esti! seda con una unidad de control &ompl~$h $&a. cootdinar todas la$ actividades entre los diversos componentes. Existen varias maneras de clasificar el procesamiento paralelo. Puede considerarse a partir de la organbci6n interna de 106 procesadores, desde i a estrudura de interconexin entre los procesadores o desde el flujo de informacl6n a travds del sistema. Una clasificaci6n presentada por M. J. Fiynn considera la orgmi~ci6n de un sistema de computadora mediante la cantidad de instrucciones y unidad= de datos que se manipulan m forma simultnea. Za operacibn normal de una computadora es recuperar instrucciones de la memoria y ejecutarlas en e l p r e a d o r . La secuencia de instrucciones leda de.la memoria constituye un pujo de insfrucciunes. Las operacie nes ejecutadas -sobreIlm datos m ,el procesridor constibyen un flujo de datos. El procesamiento paraldo puede m r i r en el flujo de instrucciones, en el flujo de datas o o ambo%. La clasificacin de FIpn divide a las computadora~en cuatro grupos principales de la manera siguiente:

Flujo de Fiuj~ de Flujo de Huj'? de

instruccih nico, flujg datqs h i c o (SISD) instrucc6ii ~i&Co~-&jode 'datos mltiple (m) instruccibn mLltiple, flujo ,dedatos iInieo (MISD) instmcci6n mdltipie, fliljp .de datos d t i p l e (MIMD)

SISD representa la o@nizaciGn ,de una computadora nica que contiene una unidad. de control, tina unidad de procesador y una unidad de memoria. .Las instni~ionas.,se ejecutan en forma m e n c i a l y el sistema puede o no tener posibilidades de procesamienko paralelo. En este caso el pmmiepito. paralela pude logtarse mediaiike unidades funcionales mltiples o mediante u n arquitectura paraleh. SMD r e p r e s a t a una orgadzacihn qrre incluye muchas unidades de procesamiento bajo la qmvisin de una unidad cte control cornk. Todos 1 s p-Ores r & i . kmfsrra Instmc&n de la unidad de control, pera operan sobre diferentes eonjuritos de datos. Lri -unidad de memoria compartida debg contener >~6ddos. mliltipIes para 'que -pueda comunicarse con

322

cAPmnoNUEVE

Paralelismo y pnxesamiento de v e c b

los prwesadores simultneamente. La estructura MiSD es s61o de inters tebrica porque no se ha construido h g h &terna prd~tico uiiLizmdo esta organhaciQn. L a ocganjzacin MIMD se refiere a un sistema de computadora~ capaz de procesar mltiples programas al mismo tiempo. La mayora de los sistemas de multicomputadoras y multiprocesador pueden clasificarse en esta cateprh. ' IA dasiffmcin de n y n n depende en la d ' b c i a en& d de$mpeno de l a unidad de control .y el de la unidad de procesamiento de datos. Exatba las caractersticas de desempeo del sistema de computadora mis que sus interconexiones estructeiraks y operacionales. Un tipo de procesamiento paralelo que no entra en la dasificaci6n de Flym es la arquitectura paralela @ipe-line)Las Sinicas dos categoras utilizadas de esta clasificaddn son los procesadores de arreglo SIMD, analizados en la secci6n 9-7y MIPVPD, que s e presentan en el capitulo 13. En este capitulo consideramos el procesamiento paralelo bajo los sitodos

guientes temas principales:

l. Procesamiento por arquitectura paralela


Z P m c d e n t o de v-r 3. Arreglo de procesadoma

El procesamiento por arquitectura paralela es una tcnica de implantaci6n en donde las suboperaciones aritmdticas o las faws de un ciclo de instntccibn de computadora w traslapan en su ejecuci6n. E 1 procesamiento de vector se relaciona con los c4lculos que implican vectores y matrices grandes. Los procesadores de arquitectura paralela ejecutan clculos sobre a q l m de datos grandes.

9-2

Arquitectura p d e l a

ta arquitectura paralela o de lineas paralelas (pipline] es una tcnica m la


que se descompone un prtrceso secuencia1 en subaperadones, y cada subprose ejecuta en un segmento dedicado especial que opera en forma conaurente con los otros segmentos. Una lnea puede considerarse como un conjunto de segmentos de procesamiento por el que fluye informacidn binaria. Cada q p e n t o ejecuta un procesamiento parcial, dictado por la manera en que se divide la tarea. E 1 resultado obtenido del clculo en cada "gm@o s e transfiere al siguiente segmento en la lnea. El resultado final se obtiene despuh de que 1 - datos han recorrido tados los segmentos. El nombre "hea" implica un flujo de infonnacibn similar a una inea de ensamblado industrial. Es caracbistico de las heas que varios clcuios puedan estar en proceso en distintos segmento& al mismo tiempo. La simultaneidad de los cailculos es posible al asociar un registro con cada segmento en k inea. Los registros proporcionan aislamiento entre cada
ceso

segmento para que cada uno pueda operar sobre datos distintos en forma

un demplo

simultnea. Tal vez la m e r a ms simple de apreciar la arquitectura de luieas paralelas es imaginar que cada segmento consta de un registro de entrada seguido de un circuito combinatorio. El registro contiene los datos y el circuito combiitorio ejecuta la subope~aci6n en e l segmento particular. La d i d a del circuito combinadonal m un segmento dado se aplica al registro de entrada del siguienk segmento. Se aplica un reioj a todos los registros despus de que ha transcurrido un tiempo suficiente para ejecutar toda la actividad del segmento. D e esta manera la irdormaci6n fluye por la Unea un paso a la vez, La organizacibn de la linea se mostrara mediante un ejempIo simple, Supongamos que deseamos ejecutar las operaciones multiplicar y sumar combinadas con un flujo de n m m

Cada suboperaci6n se va a implantar en un segmento dentro de la h e a . Cada segmento tiene uno a dos registros y un circuito combinatorio, como se muestra en la figura 9-2 D e R1 a R5 son registros que reciben nuevos datos con cada pulso de reloj. E l multiplicador y el sumador son circuitos
Figura S2 Ejemplo de ptmesamienio p d e l o .
Al

B 1

ci

ducto son
A',

csmbinatorios. Las suboperaciones ejecukadps en c d a segmento del conlas siguientes:

RI+Ai, R2?3, B : * l R . l*R44, R4+ Ci


~5-33

Ft+ue,ir A; y B; hhltiplicar E introducir Ci


Sumar Ci al aroducto

+ ~4

&e0 ~+tm se cargan- con d a b s nuwos en cada pulso de reloj. El efecto de cada pulso de reloj se muestra m la tabla 9-1. El primer pulso de reloj hanskm .Ai y Bl, ~denhode Rl y m. El sepndo pul- de. rel~j trans8ere:d p d h * de-R1 y.R2 dentro de R3. y Gl$entro de R4. E 1 mismo pulso de reloj tramfie~e & y B~ dentro de R1 y R2. E m I tercer pulso de reloj opera sobre los tres segmentos en forma simultnea. Coloea a A, y B3 dentro de R 1 y R2, transfiere el producb de R I y R2 dentro de R3, transfiere C, dentro de R4 y coloca la suma de R3 y R4 dentro de R5. Se necesitan tres pul&&de e l o j para llehhr la lhea y recuperar la primera salida de ES. De ahf en a d h t e , cada ciclb. de reloj pbciuce una nueva salida y mueve los & k m un paso adebnte en la lhea. Esto sucede en tanto fluyan nuevos datos denh del sistema. Cuando ya no hay datos de e n k h disponibles, el reloj debe continuar hasta que emerge la iriltima salida de la lnea.

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, + C,

Consideraciones generales
Cualquier operacin que puede descomponerse en una secuencia de suboperaciones de aproximadamente la misma complejidad, puede implantarse mediante un pcoeesador de arquitectura paralela. i i a &nica es eficiente para

aqueIlas aplicaciones que necesitan.repetir la misma tarea muchas veces con dikwtes wnjunw de ,datqs, La,e@mctura general de una lnea de cuatro qpentoi, se ilurba en la f i g u ~ 9-3. LOb opnandos recorren los cuatro s e g m e n t m en uns secaenda fija Ca6. &$lento consta de un circuito comhiaiiicisnd si que ejecuta rina subopraci6n sobre e l flujo de datos que fluyen por la U ~ E L b segmenws se separan mediante registros Ri que cbntien8h 'lb$ resultados inkrmedfos entre las etapas. La informacidn fluye entre dapaa adyacentes baja el control de ua reloj comilin aplicado a todos
tarea

los regis!ms en forma simultnea. Defjnimos una tarea como la operaci6n total ejecutada &do w recorren 'todos Ios Begrnentos en l a Ift~ea.

m4

Entrada
" F

SI

C .

Ri+
1

S2

+ R1

S3 - t R 3

S4

+ R4+

Figura 9-3 k e a paralela & cuatro segmentos.

diagrama

espacio-tiempo

de-pefid de la ,arquitectufa paralea puede ilustrarse mediante un diagrama espacio-tienipo. Este &S un diagrama que muestra Ia utilizacidn del %menta como una funcibn del tiempo. E l diagrama espacio-tiempo de un conducto cori c u a b segmentos se muestra m la figura 9-4. El eje horizontal muestra el tiempo en ciclos de reloj y el eje verticai proporciona el nmero de qpnento. E l diagrama muestra seis tareas de Ia TIa la T , ejecutadas en t u a m egmentos. Al princip'o, l'a tarea TIse maneja mediante el segmento k hqm& del. prlmer Giclo de reloj, el segmmto '2. estii ocupado can T p mientras que e l segmento 1 est4 oreupdu con la tarea T2. Al continuar de esta manera la primera tarea TIse completa despuks del cuarto ciclo de1 reloj. D e ah adelante, la Unea completa una tarea en cada ciclo de reloj, No importa cuantos segrnentm existan en el sistema, una vez que la linea est llena, slo se necesita un p"1ado de reloj para obtener una salida. Ahora ~ ~ ~ s i ~ n icaso o sen ~ donde e l selutiiiza una lnea de k segmentos para ejecutar n tareas con un tiempo de ciclo de reloj t, La primera tarea TImcdhun tiempo igual a ktP paga coiqdetar su operacibn, porque existen ke a .enla %ea; Ims n4--1tareas restanb emergen de la h e a a una wlwidad de una +ama p ~ d r c b de reloj y se termhrAn despus de un - tiempo igual a (n - l)t,- Por lo tanto, para compkhr n tareas utilizando una bezi de & se ntos & : n d m k + "($t - 1) 'cidosde reloj. Por ejemplo, el diagrama deyfigura 9-4 muestwcuawi &qfrri&bs y seis tireas. El tiempo r e q d d o . p t a tqmpleiar-todas hs opciones e~ 4 + (6 - 1) = 9 ciclos de reloj, egkn e iIidic~-en el &&rama.

Figura 9-4 Diagrama &acio.tiempo para inea paralela.

A continuacin considemm una unidad de arquitectura no paralela que ejecuta la miama operad611y requiere un tiempo igual a f, para completar cada tarea. El tiempo total requerido para n tareas es n f , IA aceleradn de un prmesamimto por arquitectura paralela sobre un procesamiento no paralelo equivalente se define mediante la relacih:

Conforme aumenta h cantidad de tareas, n se vuelve mucho ms grande que k - 1 ,y k n - 1 se aproxima a1 valor de n. Bajo esta condici6n, la aceleracibn se convierte en:

S i consideramos que el tiempo que se necesita para procesar una tarea es igqd m una arquitectura paralela y en una no paralela, tendremos f,, = k$
Al incluix esta supo&i&n, la aeeleracibn se reduce a:

Esto muestra que la miixima acelemci6n tddca que puede pmporcionar un d u d o es k, en donde k es la cantidad de segmentos en e l conducto. Para hacer ms claro el s i e c a d o de la rielaein de aceleracidn, consideremw el siguiente ejemplo numrico. Sea t, = 20 ns e l tiempo que s e necesita para pmu>cesar una operacin en cada segmento. Consideremos que la tiene k = 4 segmentos y ejecuta n = 100 tpras en m c i a . E l sistema de arquitetura paralela necesitad (k + tn - l)fp = (4 99) X u] = 2060 ns para terminarse. Considemndm que f, = 4 = 4 X 20 = 80 m, un sistema de arquitectura no paralela necesita nktp = 100 X 80 = 8tMO ns para completar las 100 tareas. L a relaci6n de aceleracin es igual a 8M30/2060 = 3.88.

Corsforme auentai d n r o de tareas, la acderaci6n se acercarA a 4, lo cual es igual al nmero de segmentos era el conducto. Si consideramos que t, = 60 n s , la acelaacibn se toma 60/2Q = 3. Para duplicar la ventaja de velocidad tebrica de un proceso paralelo mediante unidades funcionales mdltiples, es nexsario construir k unidades idnticas que operarn en pacalelo*Esto implica que puede esperarse que un pr-dor de arquitectura paralela de k segmentos iguale el desmpeo de k copias de un circuito de arquitectura no paralela equivalente bajo condiciones de operad611iguales. Esto se ilustra m la figura 9-5, en donde estn cmeados en paralelo amtro h i t o s idnticos. Cada circuito P ejecuta la misma tarea de un circuito con arquitectura paralela equivalente. En lugar de operar con los datos de entrada en secuencia, como en una Unea, los circuitos paralelos aceptan cuatro conjuntos de datos de entrada en forma simultnea y ejecutan cuatro tareas al mismo tiempo. En l o que se refiere si la v w d a d de operacidn esta es equivalente a una lnea con cuatro segmentus. N 6 W que el circuito de cuatro unidades de Ja iigura 9-5, constituye una organhcin de instmcci6n hita, datas mltiples (SIMD), porque se u t i h Ja misma instruccin para T r a r sobre datos mltiples en paralelo.

Existen varias razones por las que una arquitectura pardela no puede operar a su mxima velocidad &rica. Los diferentes segmentos pueden requerir tiempos diferentes para completar su suboperacih. Debe elegirse e l c i c l o de reloj para que iguale el titiempo de retraso del segmento con el mximo t i e m p o de propagacin. Esto provoca que los otros segmento8 desperdicien tiempo mientras esperan el siguiente ciclo de reloj. Ademiis no siempre es correcko considerar que un circuito de arquitectura tiene el mismo r e k : de ~ tiempo que un &mito con ~~a paralela equivalente. MuScos de los W t r u s inhmdios no se en un M t a de una sola unidad d cual, por lo general puede ~onstruirsepor completo como un circuito combinatorio. N o obstante, k tcnica de arquitectura paralela proporciona una operacibn ms +da que una secuencia puramente serial, aunque nunca se b p por m m p h la dima velocidad Urica.

328

CAP~TULO NUEVE

ParaIeEsmo y procesamiento de vector

Existen dos reas de dieefio de computadoras en las que es aplicable la organizacin paralela. Una lnea aritmticas divide una operacin aritmtica en suboperaciones que se ejecutan en los segmentos de la lnea. Una lnea de insfwmiones !opera sobre un flujo de inst~ucciones al sobreponer las fases de recuperacin, .decodificacin y ejecucin del ciclo de instruccin. En las siguientes secciones se ejcplican los dos tipos de lneas.
4

+ ? !
Lnea #paralelaari.tmtica

9-3

Por lo general, se encuentran unidades aritfnticas dk arquitectura paralela en computadoras de gran velocidad. Se usan para implantar operaciones de punto flotante, multiplicacin de nmeros de punto fijo y clculos similares encontrados en problemas cientficos. En esencia, un multiylicador de arquitectura paralela es un arreglo multiplicador como el que se describe en la figura 10-10, c m sumadores especiales diseados para minimizar el tiempo de acarreo mediante los producbos parciales. Las operaciones de p~opagaciSn de punto flotante se descomponen con facilidad 'en.suboperaciones, como se muestra en la seccin 10-5. Ahora mostmremos un ejemplo de una unidad paralela para suma y resta de punto flotante. Las entradas para la lnea sumadora de punto flotante son dos nmeros binarios normalizados de punto flotante.

A y B son dos fracciones que representan las mantisas, en tanto que a y b son los exponentes. Puede ejecutarse la suma y resta de punto flotante en cuatro segmentos, como se muestra en la figura 9-6. Los registros etiquetados R se colocan entre los segmentos para almacenar los resultados intermedios. Las suboperaciones que se ejecutan en los cuatro segmentos son:

--

, a

PPICIILi

1 . Comparar los exponentes. 2. Alinear [Ias fnantisas. 3. Sumar o restar las mantisas. 4. Ndhnalizar el resultado.
Esto se apega al preedimiento delineado en el diageama de flujo de la figura 10-15, pero se usan algunas variaciones para reducir el tiempo de ejecucin de las suboperacimes. Se comparan los exponentes al restarlos para determinar su difeencka. Se escoge el exponente mayor como el exponente del resultado. La diferencia entre exponentes determina cuntas veces debe ejecutarse un corrimienko a la derecha sobre la mantisa asociada con el exponente menor. b t o provoca un alineamiento de las dos mantisas. Debe notarse que el clorrimknto debe estar disefiado como 'un circuito combina-

-m m

SECCI~N 9-3 Lnea

paralela aritmtica

329

Exponentes b

Segmento 2 :

Segmento 3 :

segmento 4:

Figura % Arquitectura paralela para suma y resta de'punto flotante.

torio para reducir el tiempo de corrimiento. Las dos rnanfisas se suman o restan en el segmento 3, E 1 resulkado se normaliza en el segmento 4. Cuando ocurre un sobreflujo, la mantisa de la suma o diferencia s e recorre a la derecha y el exponente se incrementa en 1. Si ocurre un sobreflujo, la cantidad de nmeros O significativos en la mantisa determina el nmero de conhientas a la izquierda y la cantidad que debe restarse del exponente. El siguiente ejemplo numrico puede achrar las suboperaciones que se ejecutan en cada segmento. Pqr simplicidad utilizamos nmeros decimaies, aunque Ia figura 9-6 hace derada a nmeros binarios. Consideremos los dos nmeros de punto flotante normalizado&

Se restan los dos exponentes en e l primer segmento para obtener 3 - 2 =

1. Se escoge el exponente ms grande, 3, como el exponente del resultado. EI siguiente segmento z r x o m a la derecha la mantisa de Y para obtener:

, -

Esb-alinea las dos mantisas bajo e l misma exponente. i a suma de las dos mantisas en el segmento 3 produce la suma:

Se ajusta l a suma al normalizar el resultado para que tenga una fraccin con un primer d@to diferente de IE. E s k o se hace aI ~ o x r e a r la derecha una vez la ~antisa e kmmentar el alponente en 1 para obtener l a suma normalizada.

En la linea paralela de punto flotante se implantan el comparador, corrimien- b, sunador, s u ~ t r a c b tincremenkador ~. y decrementador con circuitos combinatorio. Supongamos que los retrasos de tiempo de los 4 segmentos son ti = 60 ns, f2 = M ns, t3 = 100 ns, t4 = 813 ns y que los registros de interfaz tienen un retraso de f, = 10 Se ~ l m i o n a d ck10 de reloj para que sea 1, = t3 -it, = 1 1 0 ns. Un sumador-sustractor de punto flotante equivalente no paraido, tendra un retraso t,, = t, i t2 + t3 + t4 + t, = 320 ns. En este caso, el sumador paralelo tiene una aceleracidn mayor 320/110 = 2.9 que el sumadar no paraielo.

9-4

Lnea paralela de instrucciones

,
c s c b L

El procesamient~por h e a paralela puede ocurrir en el flujo de datos y tambin en e l flujo de instnicciones. Una lnea paralela de instrucciones lee inshuccionea ronseativas de la memoria mientras, en otros segmentos, se eiecutarr instnicciones anteriores. Una pmibk di~pesibn asociada con tal un brinco fuera de secuenkuema es que una insmiccibn puede cia. En tal caso, debe vaciarse h lnea y deben descartarse todas las instnic ciones que s e han leido de la memoria despus de la instnicci6n de brinco. Consideremos una computadora~on una unidad de recuperacibn y una unidad de ejemcibn de instrucciones d k h d a para proporcionar una lhea de dos segmentos. hede imphkarse el segmento de recuperaci6n de XIlk tniaciones mediante un registro intermedio (buffer) primero en entrar, primero en s a h Este es un tipo de unidad que forma una cola en lugar de una pila. Cuando h unidad de ejecuci6n no e s t i usando la memoria, el contd Uncrementa el contador de programa y utiliza su valor de d i c i 6 n para leer instnicciones consecutivas de la memoria. Las instrucciones se hsertm en el registro intermedio FZFO para que puedan ejecutarse en un &quema primero en entrar, primero en salir. Par l o tanto, puede colwarse un flujo de instnicciones en una cola, en espera que lo decodifique y procese el segmento de ejecucin. El mecanismo de formaci6n de colas con flujos de nin&u&nes proporciona una manera eficiente para reducir e l tiempo promedio de acceso a memoria para leer instrucciones. Cuando hay espacio en e1 # e g & ~intermedio FEO, la unidad de aonhol. inicia la siguiente fase de recuperaci6n de instniccions. El registro intermedio actiia como una cola de la qye el control obtiene las instrucciones para la unidad de ejecucibn. i a cmtpbcioms m hsbmmones compleja reotras fases a d e d s de las de tecuperacibn y +ci6n para p m t por completo una insbudh n el easo mi4s general, la computadora m i t a prmesar d a inst n i d 6 r i con l a siguiente secuencia de pasos. 1 . R m p r a r la instrucci6n de la memoria. 2 . ,Deeodificar i a instruccin. 3. Cakuiar la &recci6n efectiva. L los operandos de h memoria. 5. :Ejecutar la instnicei6n. 6. Almacenar el multado, .. en el lugar adecuado. Existen iertas diuc&& q u . evitardn que la lnea paralela de iristrucciones funcione a s u vel&dad mxima. Segmentos diferentes pueden necesitar tiempos diferentes para actuar sobre la informacin que ilega. Se saltan algunos segmentos pata &&as operaciones. Por ejemplo, una instnicci6n de modo de registro no necesita un &culo de d i c i n efectiva. Dos o d s segmentos pueden requerir el acceso a la memoria al mismo tiempo, provocando que un segmento r e hasta que o t r o termine su c o m u n i c a ubn. En ocasiones, se resuelven los conflictos de acceso a memoria al usar

m),

. '

das can&s,de ,memo* par$ qc-w 4s insbgcgiones y los datos en mbdulos separados, D esta Manra, pueden leer& en forma simultnea una palabra de instrudbn y una palabra d~ datas de dos mdduloc diferentes. E l diseno de una lnea paralela de iristruccime =A m6s eficiente s i se divih. el ciclo\,de instrucciones en xgmentas de igual duracibri. El tiempo que.neelesltacada p a paral terminar su, funci6n depende de la instruccin . y de h m m como se ejecuta.

Ejemplo: Lnea parlela d e . ~ h s ~ c c i o nde e s cuatro segmentos Consideramos que pueden combharse a .unsegmento la decodificaci6n de la instrwci&n y el ~ $ 1 4 de0 la & i i 6 n ektiva. Adems, consideremos que la mayoria de las i n s ~ ~ o n whcan es e l multado en un registro de
A
I

Figura 9-7 hquitectura paralelg de Ude cua@ scgmcntm.

j .

SECCI~N 9 4 Lnea paralela de instrucciones

333

procesador, para que la ejecucin de la instruccin y el almacenamiento del resultado puedan combinarse en un segmento. Esto reduce la lnea paralela de instrucciones a cuatro segmentos. La figura 9-7 muestra como puede procesarse el ciclo de instrucciones en la CPU con una lnea paralela de cuatro segmentos. Mientras se ejecuta una instruccin en el segmento cuatro, la siguiente instruccin en secuencia se ocupa en recuperar un operando de la memoria en el segmento 3. En un circuito aritmtico separado puede calcularse la direccin efectiva para la tercera instruccin y, cuando est disponible la memoria, pueden recuperarse y colocarse en una localidad del registro intermedio FIFO la cuarta instruccin y todas las subsecuentes. Por lo tanto, pueden traslaparse y estar en proceso hasta cuatro suboperaciones en el ciclo de instrucciones. De vez en cuando, una instruccin en la secuencia puede ser del tipo de control de transferencia del programa que produce un brinco fuera de la secuencia normal. En ese caso, se terminan las operaciones pendientes en los ltimos dos segmentos y se borra toda la informacin almacenada en el registro intermedio de instrucciones. Despus, la lnea paralela reinicia a partir de la nueva direccin almacenada en el contador del programa. De igual manera, cuando se reconoce una solicitud de interrupcin, har que se "vace" la lnea paralela y vuelva a iniciar a partir de un nuevo valor de direccin. La figura 9-8 muestra la operacin de la lnea paralela de instrucciones. El tiempo en el eje horizontal se divide en pasos de igual duracin. En el diagrama, los cuatro segmentos se representan con un smbolo abreviado. 1 . FI es el segmento que recupera una instruccin. 2. DA es el segmento que decodifica la instruccin y calcula la direccin efectiva. 3. FO es el segmento que recupera el operando. 4. EX es el segmento que ejecuta la instruccin.

Figura 9-8

Temporizacin de lnea paralela de instrucciones.

. separadas,

cmflict~e de
condwto

Se considera qge el pr.mmado~ time nwwx!ia,s de instrucciones y datos ,por +bque pude avanar la l~peracibn en FI y FO, al mismo tiempo. En auSencia de una instnicci6n de .transerencia de control, cada segmento *pera m b imshuc;Pne$, ~ 8dfmmtes.Por l o tanto, en e l paso 4, se 4-b la inskrucWr) m q y n e n t ~ .X;el opera~do para la hstruccihn 2 se -pera en ei &en@ FQ; e n el ~ p w i t DA n . e decodifka la instnicri6n 3 y en-dsegpenta se m p e r a & la memoria la instruccin 4. Sugongzm~s que k h p i i 6 n 3 es yna ipstmi&n de transferencia de control. Tan pronto com~,seb hodifica esta hmmi6n en el segmento DA m e3, paao 4 se detiene b transferencia de Fi a.,DA de las otras instrucciones, hasta que se,ejecuta la ,instnicci6n de transferencia de control en el paso 6. Si w da la transhcias .se nwa hstruqci6n en e1 paso 7. Si no i da la ,~&erencia, puede uwme ,la hstmiccin recuperada antes, en d pasa 4, +pu&(: la k a paralela, co&a la efeeucibn hasta que se encencyehtca una nueva htmmi6n de trawfmncia de control. ,Puede o& QQO retram en la lnea si 4 segmento EX necesita almaqmar 4 respltadg de la ct-acin en la aiemoria de datos mientras el segmento FQ w i t a recuperar ,un operando. En ese caso, e1 segmento FO debe e s p p r . hasta que d . q m t EX ~ haya knnhad~ su operacibn. ' En general, existen tres dhultades principales que provocan que una inea de instruccbnw se apam de su operacibn,normal.

1 . CmjZrClos de recurso$,provocados al a la memoria dos gegmentos diferentes, al mismo tiempo. Gran parte de estos conflictos pue.den rgsolverge al .u$za~ memorias de instrucciones y de datos sepawdw.. 2. Surgen conflictm de depen&ncia de &tos cuando u n a uistruccin depende dd resultada de una anterior, pero ste todava no est disponible. '3. producen difrcuttades de hnsferencia de control a partir de instrucciones que modifican el valor cid FC.

Dependencia de los datos


Una dificultad que puede producir una degradaci6n del desempeo en una lnea paralda de instrucciones se debe a una posible coIisi6n de datos o direcciones. Ocurre una rolisi6n cuando no puede avanzar una instrucei6n porque ciertas ,instruccionesprevias no terminan sus operaciones. Ocurre una dependencia de datos mando una Xnstrucci6n necesita datos que todavfa na est& disponibles. Por ejemplo, una insbfucci6n en el segmento FO puede necesitar un operando que se est generando, en en momento, mediante una instmcci6n anterior en el segmento EX. Por l o tanto, la segunda- instruccin debe esperar a que la primera instnicci6n le deje disponibles los datos. De igual manera, puede ocurrir una dependencia de direccibn, cuando no puede calcularse una direccidn de operando porque

no e@ disponible la informacidn que necesita el modo de direccionamiento. Por ejmplo,, una instruccin cQn modo de direccionarniento indirecto por registro no puede avanzar a recuperar e l operando si l a instrucci6n anterior esth cwgando la direccin en e l registro. Por lo h t o , el acceso del operando en la memoria &be retras- hasta que est disponible la.direcci6~ querida. L s computadoras w n arquitectura paralela enfrentan tales conflictos de dependencia de datos de divasas maneras. cirmitos E l mbtqdo ms d b t o es h r t a r circuitos vertjmdores. Un verificador vsrifica&res es circuito que .detecta ktnicciones cuyos operandos fuente son destinos de instrucciones que se encuentran m6s adelante en la lnea. La deteccin de esta situaci6n hace que la iiistrucci6n cuya fuente no estd disponible se mtrw suficientes ciclos de reloj para evitar el omfiicto. Este enfoque mantiene la secuencia de programa al usar hardware. para insertar los retrasos requwidos. auatrcs de operandos Qt~.atcnica, llamada a w i ~ c ede oprnndos, utiliza hardyare especial para detectar un comfiiqto y despu4s evitarlo pl direccinnar b s datos mediant e trayectorias espwiaIes entre segmentos de la Ilnea. Por ejemplo en lugar de transferir un resultado de la .ALU a un registro destino, la circuikria comprueba el operando d e s h a y, si se necesita como fuente en la siguiente instruccin, pasa el resuhado dimctamente la entrada de la ALU, sin accesas el archivo de registros. Este rnktcrdo necesita trayectorias de hardwmm a&cioililIes por medio de multiplexores y el circuito que detecta el cmflicto. Un procedimiento empleado en algunas carnputadoras es proporcionar 4 campitador que @aduceel lenguaje de programacibn de alto nivel a un pmgrarna de lenguaje de ,mdquina, la responsabilidad para resolver los probJ9as de connictos de datos. E l compilador para tales computadoras est& &&a40 para ,detectar un conflicto de datos y reordenar las instrucciones conforme sea,necesario al retrasar l a carga de .los datos en confiicta por medio de la inserci6n'de instrucciones de no coperacin, Este m6todo s e cafgp pclspuesta de~~omina carga psPwstEi O retardoda. eR la siguiente seccibn se presenta un ejemplo de este prwe.&ieiito.

Manejo de las instrucciones de transferencia de control Uno de los problemas priiicipales al operar uii conjunto de instrucciones es
la aparicidn de instrucciones de transferencia de control. Una instruccidn de trarisferencia de coiitrol puede ser condicional o incondicional. Una transferencia incondicional siempre altera el fiuja secuencia1 de1 programa al cargar e l coiitadar de programa con la direcci6n objetivo, En una instruccidn condicional, el controI selecciona l a direccibii objetivo si se satisface la rogdicibri o la siguiente instrucci~i secuencia1 si no se satisface. Como se mencion6 antec, la instruccin de transferencia de control interrumpe la secuencia narmaI del flujo de instrucciones, produciendo dificultades en la aperacibn de l a Iinea paralela de instrucciones. Las computadoras con

registro de

r#tlpifi~~~cin

objetivo

arquilectura partilela emplean d h t e s tcnicas de hardware para minimimr la degrada6n .del desempeo provocada por las instruccioiies de transferencia de control. Una maner'a de manejar una transferencia condicibnal es recuperar con anticipacibn la ciireccih objetivo, adems de la instmccibn que sigue a la transferencia. Ambas se guardan hasta ,que se ejecuta la transferencia. Si la condicin de la transferencia se cumple, la lnea paralela conkin$a a partir de ia lashucci6n objetiva de la transferencia. Una exknsi6n de este p d i miento es c~ntimuar la muperaci6n de insbmccciones de ambos lugates hasta que se tome la detisi611 de la transferencia. En ese momento, el control seleccima el. flujo de imskuccianes de la secuencia de programa correcta. Otra posibilidad es usar un wghfro de ratrnFcacin objetivo (branch target buffer, BT3). El BTB es una memoria asociativa (v&ase la secci61112-4) incluida en el segmento de recuperacin de la lhea. Cada entrada en el BTB consiste en la instnicci6n de transferencia recuperada con anticipaci6n y la instrucc"i6n objetivo para esa transferencia. Tambin almacena unas cuantas htrcicciones que se encuentran despiis de la instruccidn objetivo de la trmsfemcta. Cuando l a hea, decodifica una iastrucci6n de transferencia, busca I a memoria asociativa BTB para la dlmd6i de la Instrucci6n. Si est ei el BTB, se puede dispdner de la inshrucci6n en forma directa y la recuperacibn roh anticlpatibn cantina a partir de la nueva trayectoria. Si la instrucci6n na estd en el BTB, la lnea paralela cambia a un nueva ciclo de instrucciones y almacena la instrucci6n objetivo en el m, la ventaja de este esquema es que las inshmiones de transferencia de control que han ocurrido con anticipci6m 6 disponibles con fadidad en la iea, sin interru~iones. Una variante del BTB es el registro deciclo. Este es un pequefio archivo de registros, de muy aIta velocidad, que se mantiene en e l segmento de remperaci6n de instruceisnes de Ia linea paralela. Cuando se detecta un ciclo de prcrgrama, se almarena por compleito en el registro de ciclo, incluyendo todas ias trmferencias. El ciclo de programa puede ejecutarse en forma directa, sln tener quemaccesar la memoria hasta que se retira el modo de ciclo con la transferencia de control final. Otro pmcedbiento que utilizkn algunas computadoras es la prediddtr de trrinsf~enck de wntrot y tinm praieh. Una arquitectura paralela con prediccibn de transfe@ncie de control utiliza cierta(kgica adicional para predecir el resultada de una instruccin de transferencia condicional antes de que se ejecute. Despub, la Iinea paralela empieza a recuperar con anticipaci6n el flujo de instrucciones de la trayectoria predicha. Una predicci6n correcta elimina ei tfempo perdido causado por el proceso de transferencia de control. Un procedimiento usado en la mayora de las procesadores RTSC es la trmferench -!a O retardada. En este prdimienpof el pmxsador detecta las instrucciones de transferenria de control y reordena la secuencia de cdigo de lenguaje de mdquina al ihsertar'instniceiones iitiles que conservan s i n interrupciones la operaci6n de la lnea paralela. Un ejemplo de transfe-

SECU~N $5 hquite&ma paralela 3 i S C

33'1

rencia retardada es la iriserci6n de w a instnicci6n de no operacin d w & de una iristnacei6n de transferencia de conSro1. Esto hace que la computadora recupere la b c i n nbjetivo, durante h ejecucin de la instniccibn de no ope~ati6n, l o que permite tener un flujo continuo del conducto. En la siguiente secci6n se p m t a m ejemplo de transfemch de control pospuesta.

9-5

Arquitectura paralela RISC

En la seccibn 8-8 se present6 la computadora con conjunto reducido de histrucciones (RISC). Eiitre las caracteristicas que se le atribuyen a RTSC est la capacidad .deusar un conjunto de instrucciones eficiente. Puede usarse la sencillez del conjunto de instrucciones para implantar una linea paralela de instrucciones con un nmero pequelo de operaciones y que cada una se ejecute en un ciclo de reloj. Debido al formato de instrucciones de longitud fija, la decodificacin de la operaci6n puede ocurrir a1 mismo tiempo que la selecci6n de registro. Todas las instrucciones de manipulacibn de datos tienen operaciones pgistro a registro. Como todos los operandos estsin en registros, no es necesario calcular una direccin efectiva o recuperar operandos de la memoria. Por 10 tanto, J a lnea paralela de instrucciones puede implantarse con dos o tres segmentos. Un segmento .recupera la hstrucci6n de la memoria del programa y el otro segmento ejecuta la instrucci6n en la ALU. Puede usarse un tercer segmento para almacenar el resultado de la operacidn de la ALU en un
registro destino.

ejwidn&
fnstmcctin eii

un solo cid0

En la arquitectura RISC, las iristrucciones de transferencia de datos e s t h limitadas a bs instrucciones cargar y almacenar. E l a s instrucciones utilizan un dimcioiiamiento Mirecto por registros. Por lo general, necesitan tres o cuaba etapas en e l egme~ito. Para evibr mnElietos entre un acceso a memoria con el fin de recuperar una instrwcibn y cargar o almacenar un operando, gran parte de Ias mquinas TUSC u t h dos canales separados con dos memorias: una para almacenar hs iiistmccioiies y otra para almacenar l o s datos. En algn momento, las dos memorias pueden opwar a la misma velacidad que el reloj de la CPU y se denominan memorias cach6 (vase la seccin 126). Como se meiicionb mi la = & n &8, una de las principales ventajas de la IUSC es su capacidad para ejecutar instrucciones a una velocidad de una por ciclo de reloj. No es posible esperar que cada instruccin se recupere de la memoria y se ejecute en un ciclo de reloj. En realidad, lo que se hace es empezar cada instruccin con cada ciclo de reloj y mediante su arquitectura paralela el procesador logra e l prophito de una ejecuci6n de instruccibn en un solo ciclo. La ventaja de la R15C &re la CICC (computadora con conjunto de hstsucciones complejo) es que la RTCC puede h e r segmentos paralelos, al requerir slo un d o de reloj, en tanto la S E utiliza muchos segmentos en su arquitectura paralela y e i .segmento mis grande requiere dos o &S ciclos de reloj.

suporte de
cowi~or

Otra caracterlstica de la RISC es el soporte que proporciona e l compilador que traduce l programa de lenguaje de alto nivel en un programa de lenguaje de m6quirra. T h lugar de diseliaf hardmre para manejar las dificultad& e i a d a s con conflictos de datos y prdi&c.por transferencias de control, los prmesadores RlSC se basan en la eficiencia del cornpiiador para detectar y minimizar los retrasos que se encuentran con estos problemas. L o s siguientes ejemplos muestran como un compilador puede oplimizar el programa del lenguaje de d q u i n a para compensar los conflictos de la arquitectura paralela.

Ejemplo: Unea paralela de instrucciones de tres segmentos Uh conjunto +pico de instrucciones para un prcesador MSC se a l i s t a en b tabla 8-E.En esta hhla apreciamos que existen tres tipos de instrucciones. ias instrucciones de rnanipulaci6n de datos operan sobre los datos en l o s registros del procesador. ias instrucciones de transferencia de datos son Mstrucciones de aarga y almacenamiento que utilizan una direcci6n efectiva obtenida de la suma del contenido de dos registros o ,de un registro y un desplazamiento constante proporcionado a la instrucci6n. Las instrucciones de m k a l de transferentia del programa utilizan valores de registro y una constante para evaluar. la direecibn de transferencia, la cual se transfiere a un registro o al contador de programa PC. Consideremos a b r a la operacin de hardware para dicha computadp. ra. ta secci6n de control recupera la instntcc6n de la memoria del programa dentro de un registro de instnrcci6n. La instnicci6n se decodifica al mismo tiempo que se seleccionan b s registros necesarios para la ejecuci6n de la instruccin. La unidad del pme6ador m s t a de un namero de registros y una unidad aritmBtlca 16gica (ALU) que ejecuta las operaciones arinticas, 16gkas y de corrimiento. Se usa una memoria de datos para cargar o almacenar los datos de un registro seleccionado en el archivo de registros. El ciclo de imstrucei6n puede dividirse en tres suboperaciones e implantarse m tres segmentos:
1 : Recupmci6n de instnicci&n A . Operaci6n de la ALU E : Ejwufar instruccidn

El zepento 1 recupera la instruccibn de la memoria del programa. La instru~cin se decod&a y se ejecuta una operacih ALU en el segmento A. La ALU se utrliza para tres funcione diferentes, dependiendo de la instrucci6n codificada. Ejecuta una operaci6n para una instrueci6n de madpulaci6~
de datos, maltia la direecibn efectiva para una instruccibn de emga o heen.aWentci o calcula la direcci6n de traderencia para una ~ ~ c c i Q n de transferencia de control del programa, El seginento B dirige la laida de la ALU a uno de tres destinos, dependiendo de la imstrucci6n decodificada.

Transfiere el d t a d o de la operaci6n ALU dentra de un ~ g i s t r o destino en e l d v o de registras. Transfiere h direccih efectiva a una memoria de datos para cargar o alnacenar o transfiere la direccin de transferencia al contador del programa.
Carga pospuesta o retardada Cansideremos ahora la opefacibn de lae .cuatro instrucciones siguien&

S i Ia hea paralela de tros mgmentos avanza sin intermpciona, habrd un conflicto de datos en la instnicci6n 3 porque el operando en R2 todada no est disponible en e l segmento A, Esto puede apreciarse a partir de la temporizacibn de h lhea paralela que se muestra en la figura 9-9a. El segmento E m el d o de reloj 4 se enmentra en d proceso de colocar los
Figura 9-P Toilporizaeih de tlnea p d e h de.im . t o s .

340

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 todava no se ha transferido de la memoria. Depende del compilador asegurarse que la instruccin despus de la instruccin cargar, utiliza los datos recuperados de la memoria. Si el compilador no puede encontrar una instruccin til para ponerla despus de la carga, inserta una instruccin no operacin (no-op). Este es un tipo de instruccik que se recupera de la memoria pero que no tiene operacin, por lo tanto, gasta un ciclo de reloj. Este concepto de retardar la utilizacin de los datos que se cargan de la memoria se denomina carga pospuesta o retardada. La figura 9-9(b) muestra el mismo programa con una instmccin n m p insertada despus de cargar a la instruccin R2. El dato se carga dentro de R2 en el ciclo de reloj 4. La instruccin sumar utiliza el valor de R2 en el paso 5. Por lo tanto, la instruccin no-op se utiliza para avanzar un ciclo de reloj con el fin de compensar el conflicto de datos en la lnea paralela. (N6tese que no se ejecuta ninguna operacin en el segmento A durante el ciclo de reloj 4, o en el segmento E durante el ciclo de reloj 5.) La ventaja del enfoque de carga retardada es que el compilador se hace cargo de la dependencia de datos y no la M t e r a . Esto da como d t a d o un segmento de hardware ms simple porque no tiene que comprobar si el segmento del registro que se accesa es vlido o no.

Transferencia pospuesta o retardada


Como en la figura 9-8 se mostr que una instruccin de transferencia de control pospone la operacin de la lnea paralela hasta que se recupera la instruccin en la direccin de la transferencia, en la seccin anterior se analizaron varias tcnicas para reducir los retrasos por transferencia de control. El mtodo ms usado en la mayora de los procesadores RISC es apoyarse en el compilador para definir las transferencias, con el fin de que se efecten en el momento apropiado en la lnea paralela. Este mtodo se denomina trancferencia pospuesta o retardada. El compilador para un procesador que utiliza transferencias retardadas est diseado para analizar las instrucciones antes y despus 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 ms instrucciones anteriores a la transferencia de control se muevan dentro de los pasos retardados despus de la transferencia de control. Estas instrucciones se recuperan despues de la memoria y se ejecutan mediante la lnea paralela, en tanto la instruccin 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 despus de la instruccin 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 revisin de la temporizacibn de la h e a paralela muestra'que PC ests actualizado al valor de X en el ciclo de reloj 5, pero las hstrucciones de sumar y restar se recuperan de la memoria y se ejecutan en la e n & deseada. En otras palabras, si h instruccin cargar &iiS en Ia d M d n 101 y X es igual a 350, la bttucci6tr de tran&&n& de control & v e r a de la direccin 103. La instniccibn de sumar se recupera de la d-in 104 y se ejecuta en el ciclo de reloj&: Fa btniccilin de restar se reapek de Ia direcci6n 105 y se ejecuta en el &lo de reluj 7, C m d vdor de X s e transfiere a PC con el ciclo de reloj 5 en e l segmenta E, la inetniceibn recuperada de ia memoria en el ciclo de h l ~ 6 j proviene de la W i n 350, la cual es la instruccin de la dimi5611de t r ~ ~ c h .
9-6

Procesamiento vectorial

Existe m tipo de problema computacional que est6 ms alla de h capacidad de una computadora convencional. E$te problema se caracteriza por el hecho de que requiere una gran cantidad de c4ldos que le tomar4 a una computadora convencional das o inclusa semanas para terminar. En muchas aplicaciones cientficas y de inpiera el pmbkma ptreEk formularse en trmims de vectores y matrices qize se prestan a procesamiento de
vectoEi.
aplicaciones

Las computadoras con posibiidades de procesamiento de vectores ti* nen demanda en aplicaciones especializadas. Las siguients son Areas de aplicacibn representativas, en las cuales el prccwmiento de vectores es de la mayor importancia.

h d k i o n e s climatol6gicas a largo plazo Exploraciones petroliferas Anlisis de datos sfsmicos Diagn6stieo rn&dico Simulaciones de aemdin4mica y Weio espacial Sistemas expertos y de inteligencia artificial Mapeo de los genes humanos Prmaaniento de imlgenes

Sin computadoras de avanzado diseo, muchos de 1 - clculos requeridus no pueden l i q m a cabo! dentro de un tiempo razonable. Para conseguir el nivel querido de desempeo de calidad es necesario utilizar la circuitera mas rapida y mnfiabIe y aplicar p d m i e n t o s innovadores de tcnicas de
procesamiento.paraldo y de vectores.

Operaciones .devectoxea Mu,&os problemas dentificos requieren operaciwes ari tm6ticas sobre arreg l a de niheros grandes. Por 10 general, estos nmeros se formulan como vktores y matricei de nmeros &'punto flotante. Un vector es un conjunto ordenado de un za?egIo de un dimensidh de coniunb de datos. Un vector V e longitud n se representa corno un vector lileal mediante V = [VIV2 Vg VA. Puede reprewntarse como un vector de columna si los conjuntos de datos se enlistan en una columna. Una computadora secuencia1 convencional pude procesar gieranda uno a L vez. En consecuencia, las operaciones sobre vectms deben dividirse m cAiculus simples con vartables suswit-, El elemento Videl v q h r V se m b i e como V(I)y e l indice 1 se refiere a una direcci6n de memoria o registro en donde se almacena el n8mero. Para examinar la diferencia entre un procwdor escalar convencional y un procesador de vector, considere el siguiente ciclo DO de Fortran.

...

Este es un pr~gr& de longitud 100 para sumar dos vectores A y B para pwdutir un vector C! Estp .se implanta en lbguaje .demhquina mediante la siguiente .secuencia de qperqciones: Imitialize 1 = U 20 Reaa.A(I). Read B ( 1 ) Skore C(1) = A " ( 1 ) t B ( 1 ) Iatcrement 1 = 1 f . 5 If 1 5 300 go to a0

Continue
Esto constituye un ciclo .de programa que lee un parde operandos de los m g l & A y B y ejecuta una suma ton m t o fiarnk. La variable de control del ciclo se actualiza despus y los pasas se xepiten 100 veces. Una, computadora capaz de procesar mediante vectores elimina la sobrecarga asocihda con el tiempo que se necesita para recuperar y ejecutar ias instrucciones en ei ciclo del programa. Permite que s e especifiquen operaciones con una sola m c c i 6 n de vecfbr, d& l a form

la instnicci6n'de vector incluye la dimci6n inicial de los operandos, la longitud de los vectores y la operacin que se va a ejecutar, todo en una htru'kci6n compu-ta. La suma.* m k m m m sumador de punto flotante de arquitectura paralela, similar al de l a figura 9-6. Un fomto posible para una htmrcibn de <vectorse muestra en la *a 9 . 1 1 . h c h l m e n t e , es una i n s w e i 6 ~ de tres direcciones en donde

344.

~Aetrvre

Paralelismo y pmeesamiento de v e r
.

.
Lnngitud de m t o r

adigude
0 -

DhemMnh hrente 1

W h nh e
fuente 2

Direamnbase deano

o vechr. Fignia 9-11 Fommte & insmwin 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 disear el pmsador con una gran cantidad de registros y almacerrar todos los operandos en registros antes de la operacibn de suma. En ese caso, la dWd'6n base y l a longitud en la. instmcci6n del vector espeiim un grupa de registros de CPU.

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 nmeros 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 multiplicraein 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) nmero 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

,,',

'

)l. m ' ' .L , , . j , . ,,reqi;lierci . : y (Ite8pub da: i n : i l i i C l l en O) tres sumas Ila c&dad b f e i l de rnioltipUwipx~s suqa~ queridas para calcu.h.;@ prod~b; .&.la, matriz .es9 ' X. 9 Bsf. S i .,&nsideram i a operacidn , ,global de ~ m d ~ x a cc-f: m a N~b nriro UW bpem'rin acumulativa, el
,
' i
m

.'

,.

u 'd h 2 pmducb de dos matrices n X

n requiere

r? o p c i o n e s de multiplicar-su-

mar. El edhlo consta de n2 praductos internos, en: donde cada producto interna r+uiete n operaciones de inultipfica~surnar, considerando que c se inicializa eh O arites de cakhlar cada elemento en la matriz producto. En general, el pbdukto h t h o consta de la suma de k tdrminos de producto de la forma:

En uria aplicacidn tipka k puede ser igual a 100 o incluso a 1000.El cicuio de producto interno eri un pmcesador de vector de arquitectura paralela se muestra en la &gura 9-12.L o s valores de A y B estn en la memoria o en registros & procesadw. Se considera que, la lnea paralela del multiplicador d;! punta fl&ante y la Enea paralela del sumador de punto flotante tienen cuatro segmen'tos cada uno. Todos 16s re&istrasde sepentos en el multiplicador y erl el sumador se iniciaSuan en O. Por lo tanto, la salida de1 sumador es O para los primeros ocho ciclos, hasta que estn llenas ambas lneas. Los pres Al y B1 se nfroducen y multiplican a una velocidad de un par por cido. Despus & 1 % primeros cuatro ciclos, el producto comienza a sumarse a'la salida de1 sumador. Durante las cuatro ciqios sQuientes se suma O a los productos que entran a la h e a del sumador. Al final del octavo cido, los primeros cuatro prductos A, B1hasta Ap Bq estitn en los cuatro segmentos del sumador y los siguientes cuatro productos de As B5 a Ag Bs estn en los segmentos de multiplicador. Al comienzo del noveno ciclo, la salida del sumador es Al Bl y Ia salida del mult.$licador es A5 Bg. Por lo tanto, el noveno ciclo comienza la suma A, BI + A5 B5 en la h e a sumador. E 1 dbcimo ciclo comienza la suma A2 B2 + A, Bg y aai sucesivamente. Este patr6n divide

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

Lnea paralela del aumador

Cuando Xa no hay ms tminos de producto par sumar, el sistema inserta cuatro ,ceros en la lbea del multiplicador, Entonces h lnea del sumador tendrd pproduckaparcial en cadq uno de sus cuatro segmentos, que csmesp~nden. a las cyatr~ .sumas que se listan en los cuatro renglones de l a f - u a a n antpripr. Deipyds, se s w n lag cuatro $urnas parciales para formar la suma final.

Memoria entrelazada
Los procesadores de vecfor y de arquitectura paralela con frecuencia requieren acceso sirnult~~eb a la memoria desde dos Q mZts fuentes. Una l i paralela de instnicci6n puede requerir 4 mntperaci6n de una instrucci6n y un operando al rnisrn~tiempo desde dos segmei~tpsdiferentes. De igual manera, una Ibea aritmhtica, por lo general, requiere que se introduzcan dos o mds operandos en i a linea, al mismo tiempo. En lugar de usar dos canales de mgmoria para acceso sirnultEtneo, puede dividirse l a memoria en varios mdulos conectados a canales de direcciones y de datos comunes. Un mi5dulo de memoria es un arreglo de memoria junto con sus propios registros de datos y. direcciones. La figura 9-13 muestra una unidad de memoria con hatro mdulos. Cada arregio de memoria tiene su propio registro de d i r ~ c i 6 n AR y registro de datos DR. Los registros de d ' i b n reciben informacin de un cawl de direcciones comn y los registros de datos cpmuican con un canal de datos bidireccional. Pueden utilizarse los
Pi&ra 9.13
&&&de d i d w

OrgarizacXn de mcmoria de mdulos mltiples.


8 8

11

ti

AR
lr

A R
lf

AR
lr

AR
1

'
de

Arreglo de
memoria

Amglo de

Vria
1i

Arreglo de
, memoria

memoria

t
DR

ir
DR

t
DR
L l r

DR
J,

CanaI de da-

dos bits menos significativos de la dhecci6n para diferenciar entre 10s cuatro m6dulos. E l sistema modular permite que un m6dulo inicie un acceso a memoxia mientras otros m6dulos estn en proceso de leer o m i i r una palabra y cada mdulo puede cumplir una solicitud de memoria independiente del estado de Iw otros.m6dulos. La ventaja de una memoria modular es que pennite la utilizacibn de una tcnia llamada e n h k d o . En una memoria entrelazada, se asignan diferentes conjuntos de d k c w n e ~ a diferentes m6dulos de memoria. Por ejemplo, en um sistema de memoria de d w mdulos, las direcciones pares pueden estar en .unmQdulo y-las direcciones impares pueden estar en otro. Cwndo la cantidad de mdulos es una potencia de 2, 10s bits menos significativos de la direccidn seleccionan un m6dulo de memoria y Ios bits w t a n t p s repmxntan la posici6n especifica que se va a accesar dentro del msdulo seleccionado. Una memoria modular es til en sistemas con procesamiento de vector y de arquitectura paralela. Un prwesador de vector que uliliaa una m e m d entrelazada de n canales, puede recuperar n operandos de n m6ddos diferentes. Al entrelazar d acceso a h memoria, el tiempo de ciclo de memoria efectivo g u e reducirse en un facMr cercano a la cantidad de m6dylos. Una CPU con lnea paralela de instruccicines puede aprovechar los m 6 d u b de memoria mltiples para que cada segmento en la lnea pueda accesar la memoria en forma independiente del acceso de los otros -entos.

Sugercompuhdoras
A una computadora comercial con instrucciones de vector y operaciones
arih&ticas de punto flotante de heas paralelas se le denomina supmompu-

tadora. tas supercomputadoras son mAquinas de aILo rendimiento muy poderosas que se #usansobre todo pwa clculos ciwitificos. Para acelerar la ~peracibn, b s componentes se juntan para minimizar h distancia que tienen que recorrer las seales ekctr6nicas. Lns supercomputadoras tambin utilizan tcnicas egpiales para evitar e l calor en los circuitos y prevenir que se
quemen debido a su proximidad. El conjunto de instruwi~nade las supercornputadoras contiene las instrucciones de tyansferencia de datos, manipulaci6n de datos y transferencia de control del programa de las computadoras convencionales. Esto se aumenta mediante instrucciones que procesan vectores y combinaciones de escalales y vectores. Una supercomputadora es un sistema computacional que se reconoce por su alta velocidad de cblculo, sus sistemas de memoria grandw y rpidos y un uso amplio de procesamiento paralelo, Est4 equipada con unidades funcionales miliiples y cada unidad tiene su propia configuraci6n de arquitectu'ra paralela. Aunque Ia 'supercomputadora maneja aplicaciones de prop6sito p e r a l que se encuentran en todas las otras computadoras, est optimizada sspecff icamenie para el tipo de

~~1~11 n11~i6ricm 05 que invo1ucran vectores y matrices de nmeros de punto fIotante. Las supercomputadoras no son eonvehierrtes pata procesamiento cotidiano normal de una instalaci6n de computadora tpica. Su uso se limita a ciertas aplicadones cientfieaas, como pfedicci6n numrica del clima, anlisis de ondas ssmicas e Uwestigacih espacial. Se usan en foma limitada y su

mwdado taffibh

~ pe-qdla dtMds. a S I a l b pmiu. Una medida u t k d a para evaluar mmputadoras, es su capacidad para ejecutar cierta cantidad de operaciones de punto flotante por segundo, que se denomihan fiq. El trmino meggups se iitilUa para representar millones de flops y gi&ops para representar mil millones de flops. Una supercom-

putadora tpica tiene un fiempo de ciclo bAsico de 4 a 20 ns. Si e l procesador puede calcular una operacin de punto flotante por lnea paralela cada ciclo, tendr Ia capacidad de ejecutar de S0 a 250 megaflops, Esta velocidad s e sostendria desde el momento en que se produce la prmera respuesta y no incluye e l tiempo de i n i c i 6 n de las h e a s paralelas. Za primera supercomputadora desarrollada e n 1976 es la Cray-l. Utiliza el procesamiento de vector con 12 unidades fuhcionaIes distintas en paralelo. Cada iinidad funcional estA dividida para p m a r los datos de entrada a trav4s de una lnea paralela. Todas las unidades funcionales pueden operar en forma concwnte con operandos ahcenados en una gran cantidad de registros ( d s de 150) en l a CPU. Puede ejecutarse una operacin de punto flotante sobre dos conjuntos de operandos de 64 bits, durante un ciclo de reloj de 12.5 ns. Esto nos da una velocidad de 80 megaflops durante el tiempo que se procesan Ios datos a travgs de las lneas paralelas. Tiene una capacidad de memoria de cuatro millones de palabras de 64 bits. La memoria se divide en 16 bancos, en donde cada'banco tiene un tiempo de acceso de 50 ns. Esto signfica que cuando se accesan los 16 bancos en forma sirnultanea, la velocidad de transhencia de memoria es de 320 millones de palabras por segundo. La investigacibn acerca de la Cray ampli su supercomputadora a una configumd6n de multipr~cesador llamada Cray X-MP y Cray Y-MP. La nueva supercomputadora Cray 2 es doce v ms poderosa que la Cray 1 en el modo de p m m i e n t o de vettor. Otro modelo inicial de supercomputadora es la Fujitsu VP-200.Tiene un pmcesador. ewalar y un procesadbr de vector que pueden operar en forma mmrrente. Como en las supercompukadoras Cray, se utiiizan una gran cantidad de registros y de unidades funcionales mltiples para habilitar las operad~m de vector de registro a registro. Existen cuatro leas paralelas de ejecucidn en el procesador de vector y, cuando operan en forma simultghea, pueden procesar hasta 300 megafIops. ia memoria principal tiene 32 millones de palabras conectadas a l o s registros de vector m e h k heas pardehs de carga y almacenamiento. I;a VP-200tiene 83 instrucciones de vedor y 195 instnicdmes escalares. La mEts reciente VP 2MHl utiliza un ciclo de reloj de 3 . 2 ns y r e dice que a su mxima capacidad pude procesar cinco gigaflops.

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 orgariizacin de instniecibn
dnica, datos mltiples. Manipula matrucciones de vedor mediante miiltiples unidades hciona~es que responden a una instrucci6n comn. Aunque ambos tipos de procesadores de arreglo manipulan vectores, su organizaci6n interna es diferenie.

Arreglo de procesador conectado Un tureglo de pmsador conectado ~ t diseado como un perifrico para una computadora anfitriona convencional y su prop6sito es mejorar el desempefio de la computadora al proporcionar pi'ocesamiento de vector
para aplicaciones cientfficas complejas. Produce un alto rendimiento mediante el procesamiento paralelo con miiltiples unidades funcionales. incluye m unidad aritmCtica que contiene uno o ms sumadores y multiplicadareb de punto flotante de arquitectura paralela. El usuario puede programar el arreglo de p-esador para que d&cabida a diversos problemas aritm&ticoscomplejos. La figura 9-14 muestra la int&onexih de un arreglo de procesador conectado a una computadora anfitriona. La computadora anfitriona es una computadora comercial de prop6sito general y el procesador conectado es una terminal conectada a una computadora anfitriona. E l arreglo de procesador est conectado por medio de un controlador de entrada-salida a la computadora y la computadora l o trata como una interfaz externa. t o s datos para el proeesador conectado se transfieren de la memoria principal a una memoria local mediante un canal de alta velocidad. La computadora de propsito general sin e l procesador conectado atiende a los usuarios que
Figura 9-14 Arreglo de proeesador conedad0 con compuiadora anfihlona.

Computadora de pro*Uom

k i t d a de
wbadagalida
T

, ArregIodep&ador

cmezhdo

W p a i

-=

Memoria de veioddad alta a canal de mmwrh


Memonlalocal

350

mParalelismo y praoesamiento de vector


necesitan proceqamiento de &tos convenciq~al.El sistema con el procesador conectado satisface las necesidades para aplicaciones aritmt5ticas com-

plejas. A l p o s fabsicantes de procesadores de arreglo conectado ofrecen un modelo que puede conectarse a diversas computadorae anfitridn. Por ejemplo, cuando se conecta a una computadora VAX11, el FSP-lM/MAX de Hoating-Point Sysaumenta el poder de dlculo de la VAX a 100 megaflups, E l objetiv~ del procesador de arreglo conectado es proporcionar posibilidades de mdpulaci6n de vector a una camputadora convenciar,al a una fracci6n del costo de las supercomputadoras.
Arreglo de procesador SIMD Un arreglo de procesador SIMD es una computadora con mUltiples unidades de procesamiento que operan en paralelo. las unidades de procesamiento e s t h sincronizadas para ejecutar la misma operaci6n bajo el control de una unidad comn, por l o que proporcionan una organizacidn de flujo de instnicciones ficol flujo de datos m~ltiple(SIMD). Un diagrama de bloque genecal de un arreglo de procesadar se muestra en la figura 9-15. Contiene un conjunto de elementos de procesamiento (PE) idnticos, en donde cada uno tiene una memoria l c a l M. Cada elemento del procesador incluye una ALU, una unidad aritmtica de punto flotante y registros de trabajo. La unidad de control maestro dirige las apmaci~nes en los elementos del procesador. L a memoria principal se utiliza para almacenamiento del programa. La funci6n de a unidad de control maestro ea decodificar las instrucciones y deteminar &no SS van a ejecutar. Las instrucciones de

pE;I
Unidad de mmd m a e s m

MI

-l

m
41

M 2

m
m

M 3

11

m p a i
PEn

Problemas

351

control de programa y escalares se ejecutan en forma directa dentro de la unidad de control maestro. Las instrucciones de vector se transmiten a todos los PE en forma simultnea. Cada PE utiliza operandos almacenados en su memoria local. Los operandos de vector se distribuyen a las memorias locales antes de la ejecucin en paralelo de la instruccin. Por ejemplo, consideremos la suma de vector C = A + B. Primero, la unidad de control maestro almacena los isimos componentes ai y bL de A y B en la memoria local M ipara i = 1, 2, 3, 4, ..., n. Despus transmite la instruccin sumar de punto flotante ci = ai + bi a todos los PE, causando que la suma se realice en forma simultnea. Los componentes de ci estn almacenados en localidades fijas en cada memoria local. Esto produce la suma del vector deseado en un ciclo de suma. Se usan esquemas de enmascaramiento, con el fin de controlar el estado de cada PE durante la ejecucin de instrucciones de vector. Cada PE tiene una bandera que se activa cuando el PE est activo y se desactiva cuando est inactivo. Esto asegura que slo estn activos durante la ejecucin de la instruccin aquellos PE que necesitan participar. Por ejemplo, supongamos que un arreglo de procesador contiene un conjunto de 64 PE. Si se va a procesar una longitud de vector menor que 64 conjuntos de datos, la unidad de control selecciona la cantidad correcta de PE que van a estar activos. La unidad de control debe dividir los vectores con longitud mayor de 64, en partes de 64 palabras. El procesador de arreglo SIMD ms conocido es la computadora ILLIAC N,desarrollada en la Universidad de Illinois y fabricada por Burroughs Corp. Esta computadora ya no est en operacin. Los procesadores SIMD son computadoras altamente especializadas. Sobre todo son convenientes para problemas numricos que pueden expresarse en forma de vector o de matriz. Sin embargo, no son muy eficientes en otros tipos de clculos o para trabajar con programas de procesamiento de datos convencionales.

9-1.

9-2.

En ciertos clculos cientficos es necesario ejecutar la operacin aritmtica (Ai + B,)(Ci + Di) con una serie de nmeros. Especifique una configuracinpara realizar esta tarea. Liste el contenido de todos los registros en la arquitectura paralela para i = 1 a 6. Dibuje un diagrama espacio tiempo para una arquitectura paralela de seis segmentos que muestre el tiempo que se necesita para procesar ocho tareas. Determine la cantidad de ciclos de reloj que se necesitan para procesar 200 tareas en una arquitectura paralela de seis segmentos. Un sistema no paralelo necesita 50 ns para procesar una tarea. La misma tarea puede procesarse en una arquitectura paralela de seis segmentos con

9-3. 9-4.

382

CAlWD NUEVE Paralelismo y procesamiento de vecbr

9-5.
i

9-7.

9-8,

99.

940.

9-13,

un ciclo de reloj de 10 ns, 'Determine la ~ a z 6 n de aceleracibn de la arquitectura pardela pam IN t a m .Cul es l a mxima aceleracin que pude C Q I ~ S ~ ~ & M ? L21 arquitectura paralela de la figura 9.2 *e los ,siguientes tiempos de r de la memoria dentro propagaci6n: 40 para los operandosque van a k de los registro Rl, p E, 85 ns para la sefa1 que se va a propagar por el mdtiplicador, S mpara la transferencia denb de m R 3 y 15 ns para sumar 10s dos n 1 ~ ~ d e n t de ro H. ~ C des l el-tiempomhimo de a& de reloj que -puedeutiihme? b. Un &ana.no paralelo puede ejecutar la misma operaci6n al quitar R3 y 324. cunta se necesitar& pma m d t i p k y sumar los operandos sin w la arquitectura paralela? c C W e la ademei4nde l a .arquitecturaparalela para 10 tareas y vuelva a hacerlo p a p a 100 tareas. d. ~Cui es l a mxima aceleracibn que puede l v ? E s necesario disekr una Iinea paralela para un multiplicador de punto fijo .gueafecta a dos enteros binarios de ocho bits. Cada segmento contiene varias compuertas AND y un sumador binario similar a un arreglo multiplicador, .como se muestra en Ia figura 10-10. a , ,~ C u h t a s compuertas A N D hay en cada segmento y qu6 tamao de s.umador se necesita? b, Cuntos segmentos hay en la m ? c Si el retraso de propagad6n en eada,segmentoes de 30 ns, cul es el tiempo pkmedio que se n d t paca multiplicar dos nheros de punto fijo en la'lhea? E l retardo de los euatrq segmentos en la &ea paralela de la figura % es el siguien@:t, =SO n s , $i = 30 m, t3= 95 m, y tp= 45 m. El retardo de los registros de interfaz t, ='5 m. a. cunto tiempo se necesitara pa- sumas 100 pares de nilmerus en la Enea? b . ~Cbrno podcmos reducir el tiempo total a aproximadamente la mitad del timp calculado en la parte a? iC&w.iaram^os el sumador de punlo flotante de Enea paralela de la figura 9-6 para sumar 100 nilimeros de punto Elatante Xl+ X2+ X3+ ... + Xlod - Fonnule unzr Unea paralela de instrucciones de &s t o s para una computa$ora. &@fique las operaciones que se van a ejecutar en cada segmento. Expiique cuatro posibles -quemas de circuitera que puedan usarse en una lhk parakla de instrucciones para minimizar la degradaclbn del rendimiento provocada por las instrucciones de transferencia de control del programa. M d w las c w b instnicciones en el prapma siguiente. Suponga que la primera instruccin enipieza en el paso 1 en la ltnea paralela utilizada en la figura 9-8: Especifique cual- opddciones se ejecutan en los cuatro segmentas durante el p c o 4.
4

Loaa ADD
IWC

STORE

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. Proporcione un ejemplo que utilice carga reardada con la lnea paralela de tres segmentos de la seccidn 9-5. Propwcione un ejemplo de un progama que produzca una $rdida por transferencia de control en la lnea paralela de tres segmentos de la secci6n 9-5. Proporcione un ejemplo que utilice transferencia de control del programa -dada con la l h a paralela de t m ~gmentos de i a seceibn 9-5. Considefe la muldplicaci6n de d a matrices 40 X 40 utilizando un proc=dor de vecbr. a. ~Cubintos trminos de produeto hay en cada p d u c t o interno y cuntos peoduatos intefnos deben evaluarse? b. cuntas operaciones mdtipliear-sumar se necesitan.para ea!cuhr la matriz del producto? ~Cuintos ciclos de reloj se necesitan para procesar un producto interno en la lnea paralela de Ia figura 9-12,cuando se usa para evaluar el producto de dos matrices 60 >C #? Cuhntas productos internos hay y cuntos ciclos de reloj se necesitan para evaluar la matriz dd producto? Asigne direcciones a un arreglo de datos que s e va a almacenar en la memoria descrita en la Iigura 9-13. Un c&lcula de predicci6n del d i requiere 250 mil millones de operaciones de punto flotante. E l problema se calcula en una computadora que puede ejecutar 100 megaflops. Cunto tiempo se necesita para llevar a cabo
estos cblculos?

Considere una computadora con cuatro procesadores de punto flotante de arquitectura paralda. Suponga que cada procesador utiliza un cicb de 40 m. Cunto tiempo se necesita para ejecutar 400 operaciones de punto flotante? Existe una diferencia si se llevan a cabo las mismas operaciones usando un procesador de una sola lnea paralela can un ciclo de 10 ns?

1 . Dasgupta, S, Computer Arckitectare: A A d e r n SptIresis, Vol. 2 Nueva York John Wilegr, 1989.

2. DKegama, A. L . # Pamllei Pimessing Architmture ami VLS1 Ebrdwre. Englewd C W , NJ: h t i c e Hall, 1989.

354

-NUEVE

Paralelismo y p-miento

de vector

3. Gibson, G.A,,CoiFnputw Sysfemf Concqts snd Design. E n g i e w d Ciiffs, NJ: l'rentiee

Hall, 1991. 4 . Hays,J. F . ,C m p u f & A r c h i ~ e a n OrgnnhtCon, d 2a. ed.Nueva York: McGraw-Hill,


1988.
J. H w a n K, ~ y p. A. Briggs, Computer Architechire and ParaEIeI P w s s i n g . Nueva York: McGraw-Hili, 1984.

6. Kain, R., CompMer Ardritsctirre: S@~~oftware and hlmdware. Vol. 2. Englewood Cliffc, N: Prentice Hall, L989. 7. Lee, J. K F . , y A. J. m t h , "BranchPredidon Strategiee and Branch Target Buffer Design".Coflpkr, Vol. 1 7 ,No. 1 (Enero WW),pp. 6-22. 8. Lilja, D .J,, "Reducing h e BranchPenaltiesin Pipeline Processors".Computer, Vol. 21, No. 7 (Julio l W ) pp. , 47-55. 9. PaWson, D .A., y J. L.Hennessy, Carrputet.Ardu'tectnre:A QuanfitatiwAkproach, San Mateo, Ctl: M o r p Kaufrnann Publishers, 1990, 10. Pollard, L.H : , Cotilputer Design and drckikhm. Englewood CliEfs, NJ:Pientice Hall,
\

1840.
11. Stane,H. S . , High-Ptqhmnce Computer Architature, 2a. 4.Reading, IvlA:AddisonW d e y , 1990. 12. Tabak, D . , MuItipmessm, Englewood Cliffs, NJ: Prentice Hall, 1990.

ESTE C ~ U O
1-1
10-2

le3 104
10-5.

1
10-7

Introducd6n Sumayresta Aigoritmm de mdLipIicaci6n Algoritmos de divisi6n Operaciones aritrnicas de punto flotante Unidad ariWerr decimal Operaciones aritmticasdecimal-

Las instrucciones aritmticas en las computadoras diiitales manipulan los datos para producir los resuItados necesarios para la solucibn de problemas computacionales. Estas instrucciones ejeaitan c6lcuIos aritm6ticos y son responsables de la mayor parte de la actividad para el procesamiento de datos en una computadora. Las cuatro operaciones arilmkticas biisieas son suma, resta, multipHtaci6n y dfvisibn. D e estas cuatro operaciones bsicas es posible formular otras operaciones aritmgticas y resolver problemas cientficos mediante mktodm de anUiis numrico. Un procesador aritmtico es la parte de una unidad de procesador que ejecuta operaciones aritmkticas. El tipo de d a b que se considera residen en los registros del procesador durante la ejecuci6n de una instruccidn aritmtica se especifica en la definicin de la instrucci6n. Una instnicci6n aritrndtica puede e s w c a r datos binarios o decimales y en cada caso los datos pueden d a r en forma de punto fijo o flotante. Los niimeros de punto fijo pueden tqresmtar e n k m o fracciones. Los niimeros negativas pueden estar en repremmtaci6n de un complemento de signo o de magnitud de sipo. El pmcesador aritm!ica es muy simple s i sblo se incluye una instruccin de

sumar bhria de punto fijo. Sera mAs complwdo si incluyera las cuatro operaciom aritm&cas para datos binarios y decimales en representaciones de puto fijo y flotante. Cuando nos maeiPlaron a ejecutar las operaciones aritmkticas bisicas aprendimos la representadhn de magnitud de signo. Este conocimiento es vahoso & d o lag operaciones van a implantarse mediante hardware. Sin embargo,el d i h d o r debe,estar fmilidzado por completo con la secuencia de pasris que se van a ,-ir con el fin de ,realizar la operaci6n y lograr un resultado correcto. La solucin de cualquier problema que est definida mediante un nmero finito de pasos de procedrmiento bien definidos se denomina algoritmo. En la seci6n 3-3 se definid un algoritmo para la suma de dos nmeros binaros de punto fijo cuando los nhneros negativos estn en su representaci6n de complemento a 2 con signo. Este es un algoritmo simple, porque para su implantaci6n 9610 necesita un sumador binano paraleb. Cuando los nmeros negativos estin en representacin de magnitud con signo, el algoritmo es ligeramente mAs complicado y su implantacin requie re circuitos para sumar y mtar, y para comparar los signos y las magnitudes de los nmeros. Por lo general, tin algoriho contendr: varios pasos de procedimiento que dependen del resultado de los pasos anteriores. U n metodo conveniente para presentar algoritmos es un diagrama de flujo. Los pasas computacionales se especifican en el diagrama de flujo dentm de cajas rectangulares. Los pasos de decisin se indican dentro de cajas en forma de diamante, de las cuales surgen dos o ms trayectorias Jternativas,

En este capitulo desamHamos los diferentes algaritmos aritmticos y mostramos el p d i m i e n t a para obtenerlos con hardware digital. Consideramos la suma, resta, rnultiplicaci6n y divisida paza los siguientes tipos de
datos:

1 . Datos binarios de punto fija en r.epresentaci6n de magnitud con


signo. 2. Datos binarias de punto fijo en representaci6n de complemento a 2

con signo. 3. Datos biarios e punto 8flotante. 4 Datos decimales ,en cdigo binario WD).

10-2 Suma y resta


, .

Como se mencionb w la seccibn 3-3, &ten tres maneras de representar nmeros binarios negativos de p u b fijo: magnitud con signo, complemento a 1 cun signo o complemento a 2 con signo. La mayora de las computadoras
utiliza la reprem~taci6n de complementa a 2 c m signo cuando ejecutan operaciones aritmticas con enkm. Para operaciones de punto flotante, la myora de las computadoras usa la representacibn de magnitud con signo

SEcmNlrrL suma y

resta

357

En a t a aemi6n desarrullamos 1 w algoritmos de suma y resta para datos representados en magnitud de signo y, una vez ms, para datos representados en complemento a 2 con signo. Ea importante wordar que la represmtacibn adoptada para los niunerus n ~ t i v o se s wfiei;e a Ja mpsmtacibn de los M e r o s en los registros antes y despus de la ejecuci6n de h ,opefa~i6n aritmbtica. N o significa que no puede usarsg aritmdtiea cpmplementaria en un paso intermedio. Por ejeppl% es conv@mte emplear ,a,ritm$ticacompIementaria cuando se ejecuta iyra operacidn ,deresta con, nmeros en representacin de magnitud con signo. Mientras el minuendo y d sustrzyndo iniciales estn en forma de magnitud con sipo, a l igual que la diferencia final, e l hecho de que se hayan u~do c o m p M - i t o s en un paso intermedio no altera que Ia representacidn sea en magnitud con signo.
para
Suma y resta con datos de magnitud con signo I a representaci6n de nmeros en magnitud con signo nos resulta familiir

magnitud

porque se usa en los elculos arihdticos cotidianos. El procedimiento para sumar y restar con papel y. lpiz dos nmeros binarios con signo es simple y directo. Un repaso de este prodimiento ser&til para derivar el algoritmo de hardware. Representemos la magnitud de los dos nmeros mediante A y B. Cuando los niimeros con signo se suman o restan, encontramos que existen ocho condicioncs diferentes por considerar, dependiendo de los signos y de las operaciones ejecutadas. Estas condiciones se lisbn en la primera columna de la tabla 10-1. Las otras c~lumnas en la tabla muestran la operacin real que se va a ejecutar con la magnitud de los nnwms. La ltima columna se necesita para evitar un cero negativo, En otras palabras, cuando se restan dos nmeros iguales, el multado debe wr +O y no -O.
TABLA 10-1 Suma y resta de niimpros de magnitud de signo

Operacin

Sumar magnitudes

Restar magnitudes

Cuando A > B CuandoA < B Cuando A

algadtmo de sum ( d a )

Los dgoritmos para la suma y la resta se derivan de la tabla y pueden definirse de la manera siguiente (las paiabras dentro de parntesis deben usarse para el algoritmo de resta): AlgmAtmo de suma (resta): cuando los signos de A y B son idnticos (diferentes), mme las dos magnitudes y agregue e1 signo de A al resultado. Cuando los signos de A y B son diferentes (idnticos), compare las magnitudes y reste e1 nrimero mds pequeo del m6s grande. Escoja el signo de resultado para que w igual a A si A > B o el complemento de signo si A B. Si las d i magnitudes son iguales, wk B de A y haga positivo el signo del resultado. Los dos algoritmos son similares, excepto por la comparacin de signo. El procedimiento que se va a seguir para signos idhticos en el algoritmo de suma es el mismo que para s@m diferentes en el algoritmo de r e s t ay viceversa.

hplantaci6n de hardware Para efettuar las d& operaciones aritmLticas con hardware, primero es necesario que los dos n5.mestn almacenados en registros. Sean A y B los dos n h e m s que contienen la magdtud de los nfimeros y A, y B, los dos flip-flops que contienen 1m signos compondienles. El resultado de la operacin puede transferim a un tercer registro: sin embargo, eso se puede evitar si el resultado se transfiere a A y A, Por lo tanto, A y A, juntos forman
un registro acumulador. Consideremos ahora la impIantaci6n de hardware en los algoritmos anteriores. Primero, se necesita un sumador paralelo para ejecutar la microoperacibn A + B. Segundo, se n-ita un circuito comparador para establecer si A > B, A = 3, o A < B. Tercero, se necesitan dos circuitos sustractores paralelos para ejecutar las micmoperacianes A - B y B - A. Puede determinarse la relaci6n de signo a partir de una compuerta OR exclusiva, con A, y Bs como entradas. Este procedimiento requiere un comparador de magnitud, un sumador y dos sustracbles. S i n embargo, puede encontrarse un procedimiento diferente que requiera menas equipo. Primero, sabemos que la resta puede realizarse mediante complementai. y sumar. Segundo, el resultado de una cornparacidn puede determinarse del acarreo final despus de la resta. Una investigacin cuidadosa de las alternativas reveIa que el uso del complemento a 2 para la resta y la comparacibn es un procedimiento eficiente que requiere slo un sumador y un cornplementador. La figura 10-1 muestra un diagrama de bloque de la circuikria para implantar las operaciones de suma y resta. ConsM de los registros A y B y de loa fiipflops con signo A, y B, L a resta se realiza al sumar A al complemento a 2 de B. El acarreo de salida se transfiere al flip-flop E, donde puede comprobarse para determinar las magnitudes relativas de los dos ndmeros. el flipflop AVF de sobreflujo de suma contiene e1 bit de sobreflujo cuando

Figura lb1 -are

para suma y mta de magnitud con signo.

se suman A y B. El registro A proporciona otras microoperaciones que pueden necesitarse cuando especificamos la secuencia de pasos en e l algoribno. La auma de A y B se realiza m d h t e d siimador paralelo. La salida S (suma)del sumacbr se aplica a la entrada del r e g i s t r o A. El complementador proporciona una salida de B a el complemento de B, dependiendo del estado del control de fiado M. El complementador consta de compuertas OEl exclusivas y el sumador paralelo se forma de circuitos sumadores completoc, como se muestra en la figura 47, en el caphilo 4. La seiial M se aplica bnbib d aacarreo de entrada del m d m . Cuando M = O , la salida de B se transfiere al humador, el acarreo de entrada es O y la sazida del sumador es igual a la suma A B. Cuando M = 1 , el eomphnmto a 1 de B se apfica al sumador, el acarreo de entrada es 1 y la salida S = 1 A + B + 1, Esto es igual a A ms el. complemento a 2 de BI l o cual es equivalente a l a resta A - B.

Algoritmo de Iiardware

E I diagrama de fiuja para e . algoritmo de hardware se presenta en h figura 10-2. Los dos signos A, y B, se comparan mediante una compuerta OR
exclusiva, Si la salida de la compuerta es O, los signos son idnticos; si es 1, los sipo5 son diferentes. Para una opaci6n de sumar, signos idknticw dictan que se sumen Ias magnitudes. Para una operacin de restar, signos diferente determinan que se sumen las magnitudes. tas magnitudes se suman con una microwperaciSn EA + A + B, don* EA es un registro que combina E y A: ' E lacarreo en E despus de la suma, constituye un mbreflujo s i es igual a 1. Ei valor de E se transfiere al fpflop AVF de sobreflujo de 6uma. Se restan las dos ma&tudes si los signos son diferentes para una oprakibti de smr o idnticos para una opera&n de restar. Se restan las

CAP~TULO DIEZ

Aritmtica de computadoras

-eraci6n

Restar

*racin

Sumar

1
,,,..aendo en B

Sumando en A Adendo en B

.11:

'

"

.')

,'

. ;
1,

.t,l,--'

l . ,

: ,.
/

J , , .J:*I

'
- .
8

A<B
1 ,

;,
1
J.

,
:
'817
8 .

,d. A
1

,,
+A
"

A&#&
.i.si,
. ,

..

. :

i i ... 1..

r
.

ii-". !', >

:'n

,~',~,:.,,II..

;
.,L2

.:

.
,'
8

h i

'
'

.A,

.e ,.&
'1
I

1 : .~
V.'

.
.,..

+,.,#

,
1

.,'d , , , r,
'%1!
8.1

, .
A, + O
1
,l

k.1

1.

!~t+mi'.
.

.,

.".

A+A+1 A, +A,

1.
8

t: i i
1

,1
1

1 , '

'
:

,
1

...
T.

r,

..... . ...
t .

, '.:'
8

C!

. .

ILIL

V I
J
e.

h ,

'

,-N
'
8 1

Figura 10-2 Diagrama de flujo para las operacianes sumar y restar. + *f I e, 1


8

,l.

complementar e incrementar
-p,

magnitudes al sumar A al complemento a 2 de B. No puede ocurrir un . sobreflujo, si se restan los nmeros, de modo que AVF se borran a O. Un 1 en E indica q u A ~ r B y que el nmero en A es el resultado correcto.' Si este nmero es O, el signo A, debe hacerse positivo para evitar un cero negativo, Un cero en E indica que A c B. Para este caso es necesario tomar el complemento-a 2 en A. Esta operacin puede realizarse con una microo'peracin A c A + 1. Sin embargo, consideramos que el registro A tiene e incrementar, por lo que circuitos para las microoperaciones de corn~krnentar se obtiene 'el complemento a 2 a partir de estas dos microoperaciones. En

O N

1 0 . 2 Suma y resta

3 3 ' 6 1

otras trayectorias del diagrama de flujo, el signo del resultado es igual al signo de A, por lo que no se requiere un cambio en 4.Sin embarga, cuando A < B, el signo de1 multado es eZ complemento de1 signo original de A. Entbnce es n h a r i o camplmentar A, para obtener e l signo correcto. El multado final se encuentra m el registro A y su signo en A,. valor en AVF proporciona una indicacin de sobreflujo. a vdor fina1 de E es inmaterial.

Suma y resta con datos de compfemmto a 2 con signo La representacidn de mmeros en complemento a 2 con signo, junto con los algoritmos aritm&tlmspara la suma y h mita, a e presentaron en la secci6n 3-3. Se resumen en esta seccidn para una referencia fcil. E l bit de la extrema izquierda de un ntlmem binario representa el bit de signo: O para positiva y 1 para negativo. S i el hit de signo es 1, todo el nmero e n h a a e representa en su forma de complemento a 2. Por lo tanto, 4-33 se representa corno DOlOOOOl y -33 como 11011111. N6tese que 11011111 es e l complemento a 2 de O O l O O O O 1 y viceversa. La suma de ds nmeros en forma de complemento a 2 con signo consiste en sumar 10s ntmenis con los bits de s i p o tratados de la misma manera que los otros bits en el niimero. Se descarta un acaireo de la posicin de bit de signo. La resta consiste en tomar primero el complemento a 2 del sustraenda y despuh sumado al minuendo. Cuando se suman dos nmer~s de n dgitoc cada una y la suma ocupa n 1 digitos, decimos que ha ocurrido un cobreflujo. E l efecto de un sobrdujo sobre la suma de dos nmeros de complemento a 2 con signo se analiza en la w i h n 3-3. Puede detecta= un sobreflujo al inspeccionar los dos 6 1 ~ 0 acarreos s de la suma. Cuando los dos acarreos se aplican a una compuerta OR exclusiva, se detecta el &reflujo cuando la saiida de la compuerta es igual a 1. La configuracin de registros para la implantacih de hardware se muestra en la figura 104. Esta es la misma configuraci6n de la figura 10-1,

Figura 10-3 Hardware para s u m a y resta de complemento a 2 con signo.

Complemen*y

sumador paralelo

que los bits de signo no esqn separados del resto de los registros. Nombramos AC (acumulador) al registro A y EiX al registro B. El bit de la extrema izquierda en AC y BR representa los bita de signo de los nmeros. Los dos bits de signo se suman o se restan junto con los otros bits en e l complernentador y en el sumador paralelo. E i flip-flop V de sobrefluja, se activa en.1 si hay sobreflujo. En este caso,. se descarta el a c a m a ~ , ~ salida. E 1 algoritmo para sumar y restar dos nmeros binarios en representauh de complemento a 2 con si= se muestra e n el diagrama de flujo de Ia figura 10-4. La suma SE obtiene a l siimar el contenido de A C y BR (incluyendo sus bits de signo). B 1 bit de sobreflujo V se activa en 1 si la OR exclusiva de los dos iiltimos acarreos es 1). y en casa contrario s e desactiva aO . La operacidn de resta se logra al sumar el contenido de AC al complemento a 2 de M, Tomar d c~mplemento a 2 de BR tiene el efecto de cambiar un nmero positivo a negativo y viceversa. Debe verificarse si ha ocurrido un sobreflujo durante esta operaci6n porque los dos nmeros sumados podran tener el mismo signo. E l programador debe recordar que, si ocurre un sobreflujuI aparwaA un resultado errSm en el registro AC.
excepto

Figura I W Algoritmo pata sumar y mstw nmeros en rrprrsentacidn de c~mplemmb a 2 con


signo,

Al comparar este algoritmo c o n su contraparte de magnitud con signo, notamos que es mucho m4s sencillo sumar y restar nmeros si se mantienen kis nmeros negativos en su representacidn de complemento a 2 . Por esta
r d n , las computadoras adoptan esta representacidn, en lugar de la de magnitud c o n sipo, que nos resulta m8s familiar.

10-3 Algoritmos de multiplicacin


La multiplicacin de dos nmeros binar& de punto fijo en repre~entaci6n de magnitud con signo se hace con papel y lpiz mediante un proceso de operaciones de corrimiento y suma sucesivas. Este proceso se ilustra mejor con un ejemplo numrico.

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,


el ,bit menos significativo. Si el bit del mdtiplicador es un 1, se copia el multiplicando; de otra manera se copian ceros. Los nmeros copiados en ieas sucesivas se recorren una posicih a l a izquierda a partir del nmero a n k i ~ r Por . @timo, se s u m a n los nmeros y su suma forma e l producto. El signo del producto se determina a partir de los signos del multiplicando y el muitipli~dar. S i son iguales, el signo del producto es positivo. S i son diferentes, el signo del vp@ucto es negativo:

Implantacin de hardware para datos de magnitud con signo

Cuando s e efecta la multiplicacin en una computadora digital, es conveniente cambiar un poco el proceso. Primero, en lugar de proporcionar registros para almacenar y sumar en forma simultnea la misma cantidad de nmeros binarios que la que hay en el multiplicador, es conveniente

propordonat un $rimador para la suma de s61o dos nmeros binarios y acumular sucesivamente los productos parciales en un registro. Segundo, en lugar de ejecutar un corrimiento del muItiplicando a la izquierda, el producto parcial se morre a la derecha, 10 qpe & como resultado ia colocacibn del producto parcial y del mulfiplicando en las posiciones relativas requeridas. Tercero, -do el bit correspondiente al multiplicador es O, no hay necesidad de silmar todos los nmeros O al producto parcial porque esto no alterarh su valor. La chuiteria para la multiplieaciSn consiste en el equipo que ce rnuestra en i a figura 10-1 ms dos registros. stos dos registros junto con los registros A y B se muestran en la figura 10-5, BI multiplicador se almacena en el registro Q y su s@o en Q ,E l cbntador secuencia1 SC se inicializa al phcipio en un nmero igual a la cantidad de bi! en el multiplicador. El

(bit a la extrema derecha)

e,

Figura 1D.S Hardware para la operaci6n multipliw.

contador se d e c m n t a mediante 1 despu4s de formar cada producto parcial. Cuando el contenido del contador llega a O, ,se forma el producto y d proceso s e detiene. A l principio, el multiplicando e s a en el registro B y el multipcador en Q . La suma de A y B forma un producto parcial que se transfiere al' registro EA. E i praducto parcial y e l muitiplicador se recorren a la derecha. Este corrimiento se representar4 m e d i t e el enunciado shr EAQ para designar el corrimiento a la derecha que se muestra en la figura 10-5. El bit menos significativo de A se recorre a la posicin m8s significativa de Q, el bit de 4 . - E se recorre dentro d e n l ap'bsiein mbs sigriificativa de A, y O se recorre m dentro de E. Despues del corrimiento, un bit del producto parcial hace lo - -G u d s m o dentro de Q,xecorriendo los bits del multiplicador una posicin a la derecha. De esta manera, e l fiip-fiop a la extrema derecha en el registro Q w d representado mediante Qw contendr2i el bit del rnultiplicador, el mal ea el que debe inspeccionarse despues.

'*
O

* F
5 '

B, y Qw respectivamente. Se comparan los signm y A y Q se activan para que correspondan al signo del producto, IwF ya que se almacenar un producto de doble Longitud en los registros A y Q. Los registros A y E se borran y el contador -m&l (SC) se inicializa en un ntmero igual a la cantidad de bits del multiplicador. Aqui wamos Y' mnoidemndo que los operandm se tmnsf~ren a los registros de una unidad de lh memoria que tiene palabras de n bits. Como un operando debe almacenaSus signos correspondientes estdn en

'La figura 1 0 4 es un diagrama de flujo del algoritmo de multiplicaci6n en "' hardware. Al principio, el multiplicando est en B y el multiplicador en Q.

Alg[~rtmo de hardware

Figura l M Diagrm de flujo para la qxmci6n' multiplicar.

consistir en n - 1 bits. Qespu&s de l a iniciailiza~ib~ se prueba el bit de orden inferior del multiplicador en Qa. S i es un 1 , el multiplicando en 8 se suma al producto parciai p-te en A, Si es un O, no ee hace nada. Dsspus, se ejecuta un commiento a la derecha en el registroJAQ una ~ez, para formar el nuevo producto pareial. Se decrementa ei contador secuencia1 en 1 y se comprueba su nuevo valor. Si diferente de O, el proceso se >repitey se forma un nuevo pxoduct~ p a h l .B1p m c se ~ detiene ~ mando SI = O. Ntese que el producto parcial formado en A se recorre d e n b de Q un bit a la vez y, eventualmente, sustituye al multiplicador. El pducta*finalest6 disponible

con su signo, un bit .de. la palabra lo ocupar4 el signo y la magnitud

en A y Q , donde A contiene )os bib mas significativos y Q contiene los bits menos significawos. El ejemplo nmbrico anterior se repite en la tabla 10-2 para hacer m8s claro eI pracesa de mdt~plicacibn con hardware. El procedimiento sigue los pasos delineados en la tabla de flujo.
-B.LA
10-2 EjempIo numrico para multiplicador binario

'.

MultiplIcaduren Q Qa= 1; E u m , E Primer producto pardal 'Etac01 EAQ a l q derecha Q. = 1; sumar B -doproaucto . Recorrer EAQ a la!derecha Qa = @RecorrerEAQaladefecha Q, = O; Recorrer EAQa laderecha
Q.=l;mmarB. Quintopd~parciaI &mmx EAQ a la derecha Prod~ct~ final en AQ = 0ll01i010l

Aigoritmo de multiplicacibn de Booth El al8oritmo de Booth proporciona un procedimiento para multiplicar enteros binarios en representaci6n de complemento a 2 con signo. Opera con base en que las series de nmeros O en el multiplicador no requieren suma, sino &lo corrimiento y ue una S& de digitos 1 en el multiplicador de una 1 ponderacin de bit de 2 a una ponderaci6n T puede katarse como 2 2m. Por ejemplo, e l nmero binario O01110 (+14) tiene una serie de digitos 1 de $ 2' (k = 3, rn = 1). E i n~mer~i puede como 2h1 - 2"' = 2 ' -' 2 = 16 - 2 = 14. Por l o tanto, I a multiplicacin M X 14, donde M es el multiplicando y 14 el muitiplidr, ppuede d i z a como ~ M X 2 ' - M x 2'. Como d t a d o , e l producto puede obtenal ejecutar el corrimiento del multiplicando binaro m cuatro veces a la izquierda y cesta una vez M recorrido a la izqukda: Como en todos los q u e m a s de multiplicaci611,el aigoritma de Booth r e q u i e un examm d losqbits del multiplicdor y ejecutar un corrimiento del producto patciaI. Antes del corrimiento, puede sumarse el muItip1icando al producto parcial, restarse.odejario s i n cambio, de acuerdo con las siguien-

-te6

1. El multiplicando se resta del producto parcial cuando se encuentra el primer 1 menos swcativo en una serie de digitos 1 en el
multiplicador.

2 El multiplicando se suma al producto parcial cuando se encuentra e l primer O (siempre y cuando exista un 1 anterior) en una serie de
dgitos O en el multipIicador. 3. E I producto parcial no cambia cuando el bit multiplicador es idnt i c o al bit multiplicador anterior.

El algoritmo funciona para multiplicadores positivos o negativos en repmtaei6n de complemento a 2 Esto se debe a que un rnultiplicador negativo temtixia c m una serie de dgitos 1 y a que la Ciltima operacidn ser una resta de la ponderaci6n adecuada. Por ejemplo, un multiplicador igual a -14 se reprem~taen complemento de nlmeros 2 como 110010 y se trata como -z4 + 2' - 2' = -14. La implantaddn de hardware del algoritmo de Bmth requiere la configuracin de registros que se muestra en la figura 10-7. Esto es similar a la figura 105, excepto en que los bits de signo no estn separados de1 resto de los registros. Para mostrar esta diferencia, renombrarnos los registros A, B y Q,como AC, BR y QR, respectivamente. Q, representa el bit menos significativo del multiplicador en el registro QR. Se conecta un flip-flop extra Q , , a Q R para facilitar urm ddble hspecci6n de bit del multiplicador. El diagrama de flujo para el algoritmo de Bwth se muestra en la f i r a 10-8. AC y el bit extra QM1se inicializa a O y el contador secuencia1 SC se inicializa en un niimero n, igual a la cantidad de bits en eI rnultiplicador. Se inspeccionan l o s dos bits del multiplicadar en Q,y en QW1.Si los das bits son iguales a 1 0 , significa que se ha encontrado el primer 1'en una serie de ellos. Esto requiere una resta del multiplicando del producto parcial en AC. Si los dos bits son iguales a 01, significa que se encontr el primer O en una serie de
Figura 10-7 Hardware para el algosirno de Booth.

368

CAP~~VLO D~EZ Aritmtica de computadoras

Multiplicar

Multiplicando en BR

C-)
Figura 10-8 signo.

~igoritmo de Booth para rnultiplicaci6n de nmeros de complemento a 2 con

SECCI~N1@3

Algoritmos de multiplicacin

369

ellos. Esto requiere la suma del multiplicando al producto parcial en AC. Cuando los dos bits son iguales, el producto parcial no cambia. No puede ocurrir un sobreflujo porque la suma y resta del multiplicando siguen una a la otra. Como consecuencia, los dos nmeros que se suman siempre tienen signos opuestos, una condicin que excluye un sobreflujo. El siguiente paso es recorrer a la derecha el producto parcial y el multiplicador (incluyendo el bit Q,,+3. Esta es una operacibn aritm6tica de corrimiento a la derecha (ash) que recorre AC y QR a la derecha y deja sin cambiar el bit de signo en AC (vase la seccin 4-6). El contador secuencia1 se decrementa y el ciclo computacional se repite n veces. Un ejemplo numrico del algoritmo de Booth se muestra en la tabla 104 para n = 5. Presenta la multiplicacin paso por paso de (-9) X (-13) = + 117. Ntese que el multiplicador en QR es negativo y que el multiplicando en BR tambin lo es. El producto de 10 bits aparece en AC y QR y es positivo. El valor final de Q,+l es el bit de signo original del multiplicador y no debe tomarse como parte del producto.
TABLA 10-3 Ejemplo de multiplicacin con el algoritmo de Booth

1 O 1 1 O 1

Inicial Restar B R

ashr ashr
Sumar B R

ashr ashr
Restar B R

ashr

Arreglo multiplicador Comprobar los bits del multiplicador uno a la vez y formar productos parciales es una operacin secuencial que necesita una secuencia de microoperaciones de suma y corrimiento. La multiplicacin de dos nmeros binarios puede hacerse con una microoperacin mediante un circuito combinatorio que forma los bits del producto todos a la vez. Esta es una manera rpida de multiplicar dos nmeros porque slo necesita el tiempo para que las seales se propaguen a travs de las compuertas y formen el arreglo de multiplicacin. Sin embargo, un arreglo multiplicador requiere una gran

cantidad de compuertas y, por esta d n , .no resut6 costeable hasta el d e d o de los circuitos integrados.
Para observar c6mo puede implantarse un arreglo multiplicador con un c i ~ u i t o combinatorio consideremos la multiplicaci6n de das nmeros de 2 bits, como se muestra en la figura 10-9. Los bits del mu1tiplicando son bf y & los bib del,multiplicadoi!son al y a. y el producto es CH~CO. El primer producto parcial se fonna al multiplicar s10 por blb& La muitiplicaci6n de das bits y b, produce un 1 d los dos son dgitos 1 ; de otra manera produce un O. Esto es idhtico a una operacih A i N D y puede loparse con una compuerta AND. Como se muestra en el diagrama, e1 pI;mer producto parcial se foma mediante dos compuertas M. El segundo producto parcial se forma al multiplicar al por bxboy se korre una posicihn a la izquierda. Los dos productos parciaies se suman con dos circuitos semisumadores (HA). Por lo general, hay ms bits en los productos parciales y ser necesario utilizar sumadores completos para producir la suma. N6tese que el bit menos significativo del producto no tiene que seeomc un s m d o r porque estA formado por la salida de la primera compuerta AND.

E3

c2

cl
X 2 bita.

Figura lO.9 Arreglo muiplicador 2

"""

Puede construizsse un muJkiplicador binario de circuito combinatorio eori m s b h en una forma h i l a r . A un bit del multiplicador se aplica la funcin AND con cada bit del multiplicando en tantos niveles como bits ~ieexistm en el multiplicador. La salida binaria en cada nivel de las compuertas ) b A N D se suma en paralelo con el producto del nivel anterior para -formar un nwyo,p d w b .parcial. E i 61th~ nivel da el producto. Para los a-iflfm bits del mdtipbador j y h bits del multiplicando k necesitamos j x k
m

compuertas AND y-Cj sumadow de.$& para &tener un producto de j + k bik Coma d o ejemplo,, mnsidesemos m chuitb md tiplicador que m d t i p h un n h r o bharb de cuatro bits con un nmero de tres bib. Repxle~~ntem el multiphando mediante b&&lbo y d,multiplicador mediant e a f l y p Como k = 4 y j = 3, naesitamoe 12 compuertas AND y doe sumadores de4 bib p m ,lograr prudwto de siete bita. E l diagrama lgico del multiplimdox se muesm en la fipca 10-10.

10-4

Aigoritmos de divisin

La divhi6n de dos nmeros b i r i o s de punto fijo en representacin de magnitud m signo se hace con papel y lpiz mediante un proceso de
operaciones de comparar, corrimiento y resta sucesivas. La divisin b i r i a es m6s sencilla que i a divisi6n decimal parque los dgitos del cociente son 1 o O y no hay necesidad de estimar &tas veees cabe el dividendo del producto parciaJ. dentro dd divisor, E l proceso de divlsin se ilustra mediante un ejemplo numrico en la figura 10-11. El divisor B consta de cinco bits y el dividendo A de diez bits. Los cinco bits ms signX1cativos del dividendo se comparan con e l divisor. Como el n h e r o de S bits es menor que El, probamos de nuevo al tomar los seis bits mds significativos de A y comparar este nh-mo con B. El nhmm de 6 bils m mayor que B, por l o que colocamos un 1,para e1 bit del d e n t e en i a sarta pici6n arriba del dividendo. Despub a recorre e l divisor una vez a la derecha y se resta del dividendo. La diferencia se denomina residuo parcial porque la divisin podb habeme detenido aquf para obtener un cociente de 1 y un miduo igual al residuo parcial. El prmesb contuiaa al comparar un residuo parcial con el divisor. Si d residuo parcial es mayor o jgual que e l divisor, el bit del cociente es igual a 1. Despus se recorre el divisor a l a de& y se resta del residuo parcial. Si el miduo parda es menor que el divisor, el bit del cociente es O y no se neeecita una resta. En cualquier caso el divisor se recorre una vez a la derecha. Ndtese que el resuhado proporciona un cociente y un residuo.

II

Jal

Dividendo A
5bitseA<B,dcltetiene5bita 6bibdehrB Recrirrer B a la d d y regtar; introducir 1 e nQ

R&d~ocB;n~ucirOenQ;rrcwrerBabdcxefha

Residuo2 S
R d d w Rnal Divisor Ejemplo de divisih binatia.
bcm&Bab~ymtux;introducir~enQ Rgiduo < B;introdudrOmQ

knpluit.ei6n de Hardware para dato; de magnitud con signo Cuando = efecta la divipi6n en una computadora digital, es conveniente cambiar el proceso ligeramente. ~n lugar de ejecutar un corrimiento sobre el divisor a la derecha, e1 dividendo o residuo parcial se recorre a la izquierda, con lo que se dejan los dos n b e r o s en h posicin relativa

requerida. La resta puede loparse a l sumar A al complemento a 2 de B. h p d s la informacin acerca de las magnitud= relativas est disponible a partir del a w m nal. L a c'lreuiteda para implantar la operaEi6n de divisin es iddntiea a l a que se requiere para la multiplicacin y constas de ius componentes que se muestran en h figura 10-5. Ahora se ejecuta. un commiento a la izquierda d registro EAQ cuando se inserta un O en Q, y se pietde e1 valor anterior de E. El ejemplo numrico se repite en la figura 10-12 para hacer mais c b el proceso de divisi6tr p"puestci.~El divisor se almacena en d registro B y el dividendo de dable IongituB se alniaeena en los regis- A y Q El dividendo se recorre a la izquierda y el divisor se resta al sumar su valor de complemento a 2 . La informacin acerca de la magnitud relativa est dispe nible en E. Si E = 1 , s i g d b que A 2 B. Un bit de cociente 1 se inserta en Q,, y el residuo parcial se recorre a la iquieda para W t i r el proceso. Si E = O, esto significa que A < B por lo que el cociente en Q, s e queda como O (insertadv durante e l corMento). Despus el valor de B se suma para
Figura 1 W Ejemplo de divisi&n& b
con hardware digital.

DivisorB.= 1,000.1,

8 + 1=01111

DMdenda B

A l MQ Sqmr B +1
E=l
shl EAQ

aunar$ + 1
Sumr B + 1

En 1
m Q n = l

EAQ

E = D;'dejarQ=O Sunriir 8
Resta&t*siduo Bh' U Q SmqrS + X

E= 1

m i z a r Qm= 1

d,MQ
&imatB+i
E=Od+Qn=o Sumar B

RWF
-en@

residuo NoconaidemE k i d m en A:

-,

restablecer el residuo p d l en A a su valor previo. El residuo parcial se recorre a l a izfierda y d p n se repite una vez m68 hasta que se forman todos los bits del miente. Ntese que, mientras el residuo parcial se kcorre al a izquierda, tambin se recorren los bits del cociente y, despus de cinco corrjmientw, el d e n t e esti m Q y el residuo final en A. Antes de mostrar el algoritmo en forma de diagrama de flujo, tenemos que considerar el signo del resultado y una posible condici6n de sobreflujo. E i signo del cociente se determina a partir de los sipm de1 dividendo y del divisor, S i los dos signos son iguales, el signo del cociente es mAs. Si son diferentes*el signo es menos. El signo del residuo es igual al signo del

dividendo.

Sobreflujo al dividir
La operacicin de divisibn puede dar como resultado un cociente con un sobrefiujo. Esto no es un problema d o se trabaja con papel y Upiz, pero es crtico cuando la operacibn se implanta con hardware. Esto se debe a que la longitud de los registros es finita y no contendri un nSimero que exceda la longitud estndar. Para observar esto, consideremos un sistema que tiene registros de 5 bits. Utiharnos un registro que contenga el divisor y dos registros para contener al dividendo. A partir del. ejemplo de la figura 10-11, notamos que d cociente estar& formado de seis bits si b s c h bits m s significativos del dividendo constituyen un nSunero mayor del divisor. El cociente se va a almacenar en un registro estndar de 5 bits, por lo que el bit de sobteflujo requerir un flipfhp ext.ra para almacenar el sexto bit. Esta condicin de sobreflujo al dividiu d e b evitarse en operaciones de computadora normales, porque todo el cociente ser4 demasiado largo para transferirse a una unidad de memoria que time palabras de longitud esthdar, esto es de la misma longitud que los registros. Deben incluirse provisiones para asegurar que se detecte e s t a condici6n ya sea por la circuitera o programaci6n de la computadora, o en una combinaci6n de las das. Cuando el dividendo es dos veces ms largo que el divisor, puede definirse k condicidn para un sobrefiujo de l a manera siguiente: ocurre una condicin de sobreflujo al dividir s i la mitad de los bib de orden superior del dividenda constituyen un nmero mayor que o igual al divisor. Otro problema asociado con la divisibn es que debe evitarse UM dhisibn entre cero. L a co$icin de sobreflujo al dividir tambih cuida esta condici6n. Esto ocurre porque cualquier dividendo ser4 mayor o igual al divisor, el cual es igual a cero. Por lo general, se detecta la mndici6n de wbreflujo cuando se activa un flip-flop -al. Lo llarnacemos un flipflop de sobreflujo al dividir y lo titularemos DVF. La apadci6n de un sobreflujo al dividir puede manejarse de diveraas maneras. En d p a s computadoras, es reqponsabiiidad de los programadocomprobar si D W est activo despus de cada instrucci6n de dividir. Despus se puede llamar a una subrutina que tome una medida c o d v a ,

como poner una nueva escala a los datos para evitar el sobreflujo. En algunas computadoras antiguas, la aparici6n de un sobreflujo al dividir detenia l a computadora y esta condicin se denominaba d e t m d n al dividir. Detener la-operacinde la computadora no es recomendabl&porque consume tiempo. E n la mayora de las computadoras el p r m ~ e n t o se basa en proporcionar una solicitud de interrupcin cuando M establece DVF. La intempcibn hace que la computadora suspenda el programa achiaI y se ilame a u m rutina de servicio que tome una medida correctiva. La medida comctiva m& comfm es quitar d programa y escribir un mensaje de error explicando la M6n por la que nocpdra completarse el programa. Despus es responsabilidad del usuario que escribid ei programa volver a fijar la escala de los datos o tomar cualquier otra medida correctiva. b mejor manera de evitar un sobreflujo al dividir es usar datos de punto flotante En la d 6 n 10-5 veremos que un desbordamiento al dividir puede manejarse con mwha d e z si los nmeros e s a en su represmtadbn de punto flotante.

Algoritmo de hardware
El algorimo para dividir en hardware sis muestra en el diagrama de flujo de La f g w a 10-13.E l dividendo est en A y Q y d divisor en B. El signo del resulta& se transfiere a CS, para que sea parte del'cociente. Se inicializa una constante dentro del contador secuencia1 S@ para especificar l a cantidad de bits en el cociente. Como en la mdtiplicaci&n,consideremos que los operandos se transfieren a los registras de una unidad e memoria que tiene palabras de n bits. Como un operando debe almacon su signo, se ocupar para el signo un bit de la palabra y la magnitud mnstard de n - 1 bits. Se prueba una condici6n de sobreflujo al restar d divisor en B de la mitad de los bits del dividendo almacenados en A. S i A 2 3, se activa el fip-flop DVF del sobreflujo al dividir y la,operacibn se termina en h a prematura. Si A 3, no ocurre un sobreflujo al dividir, por lo que el valor de1 dividendo se restablece al sumar E a A. La divigih de las magnituh comienza al ejecutarse un corrimiento del dividendo en AQ a la izquierda con el bit de orden superior recorrido a E. Si el bit recorrido dentro de E 1, sabemas que EA > B, por 10 que EA consta de.un d@to 1 seguida de n 1 bita mientras que B consta &lo de n - 1 bits. En este caso, B debe restarse de EA y debe insertarse un 1 eri Q, para el bit del cociente. Como e l registro A no alcanza el bit de orden superior del dividendo (e1 cual m t en E), s u valor es EA - r " ' . Sumar este valor al complemento a 2 de'$ da como wdtada:

E 1 acarreo de esh suma no se transfkra a , E s i &seamos que E permanezca


en 1.

Operacin diiHdir

nlvfdir magnltudw
L

SC+n

Q , -4e4

-1

ghl

EAQ
=1

lr

=o
EA+A+~+I

EA+A+8+1

A+A+B+I

=1

=O

A>B

A<B
1 f

tf

Y EA + A + & DYF+ 1

YA>B

Ei4*A+B

DVFtO

&+r

t
A

4
SC

SCtSC- 1

=O
-7L & -

+o

PIN (dlvidlr e-@)

en 8,ei d u o

figura f 0-13 iagrarna de flujo pam la operaci6n dividir.

.Si la operaci6n de corrLninto a la izquierda inserta un O dentro de E, w resta el divisor al sume su valor de ,complemento a 2 y el acarreo se transfme a E. S i E = 1, significa que A 2 B, por lo tanto Q,, se activa en 1. Si E = O, significa que A B, y el nmero original e =tabla al sumar B o A. En el ltimo caso, dejamos un O en Q, (el O w insert durante e1 corrimiento). &te proceso se repite una vez ms con e l registro A que contiene el residuo parcial. -u& de n - 1 veces, la magnitud del cociente se fonna en el registro Q y el rksiduo se encuentra en el registro A. El signo del

SECU6N 105 Operacimes aribdlkas de punto flotante

377

cociente es@ en Q, y el signo del residuo en 4es igual al signo origind del

dividendo.
Otxos aigorlhnos
&toda
de

~fahiecitrrknto
&todo

E i mdtodo de hardware que r e acaba de describic se denomina mdtodo de wsfableeinihto. b razdn de este nombre es que se mtablece el residuo
pardal al sumar el divisor a i a diferencia negativa. Hay disponibles otroe dos m6todm para dividir nmefos. El d t d o de mrnparadn y el m h d o de m r&f&k&kzfo, En el d t o d o de cmmparaa6nl A y B s e comparan antes de la operaci6n de resta. Despus, s i A r B, se resta B de A. S i A < B no se hace nada. El residuo parcial se recorre a la izquierda y Ios nifmeros se vuelven a comparar. La comparaci6n puede determinarse antes de la resta al inspeccionar el acarreo final del sumador paralelo antes de su transferencia al r e g i s t r o E. En el metodo de no m establecimiento, B no se suma si la diferencia es negativa pero, en lugar de eso, se recorre a ia izquierda la diferencia negativa y despus se suma B. Para apreciar por qu es posible sta, concidexlemos el caso en el cual A 2: B. A partir del diagrama de flujo en h figura 9-11, notamos que las operadona ejecutadas son A - B + B; esto es B se resta y despus se suma para restablecer A. Durante el siguiente ciclo, este nmero se recorre a la kquierda (o se multiplica por dos) y B ce vuelve a restar. Esto da 2(A 0 + B) - B = 2A - B. Este d + d o s e obtiene en ei mgtodo de no restablecimiento al dejar como esta A - B. En el siguimte ciclo, el nmero s e recorre a la izquierda y B se s m para dar 2(A - B) + B = 2A - B, lo cual es igual que el ejemplo anterior. Por lo tanto, en el m&todode no restablecimiento, B se resta si el vaior anterior de Q,era un 1, pero se suma si el valor anterior de Qnera un O y no se quiece un resfabbiertto del residuo parcial. Este proceso ahorra el paso de suinar e l divisor si A - B, pero quiere una 16gica de controI especial para mordar el resultado anterior. La primera vez que se morre d dividendo, debe miam B. Tambih, si el atimo bit del cociente es O, residuo parcial d e k x e s t i i b h para obtener el residuo parcial correcto.

&

comparad6n y no ~stablecttn iento

10-5 Overaciones aritmficas de vunto flotante


Muchos lenguajes de programacibn de alto nivel tienen una opcibn para especificar nmeros de punto flotante. La manera ms comn e s especificarlos mediante un enunciado de dechaci6n real, en oposici6n a nmeros de punto fijo, I o s cuales s e especifican m e d i t e un enunciado de declaracin mfem. 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. Con mucha f m e n c i a se incluyen las operaciones en la brcuikrb uiferna. Si no hay circuitei-ia disponible para las operacions, el compilador debe disea* con un paquete de subrutinas de

enum'adu de

dechneidn

pmto flotante. Aunque el'M o de programas es m8s caro, el que R incluye en la mayoda de las computadom es mucho ms eMmk que el mtodo de ptoa.ramas y la QKuiWa de punto flotante slo se omite en las muy pequeas.

'

Consideracionesbsicas La reprwntacih-de datos de pmto flotante se introdujo en la seccin 3-4. Un nmera de puto flotante en los .registros de la computadora consta de dos partes: una mantisa m y un exponente e. h s dos partes r e p m t a n un n b e m obtenido de multiplicar m v e m una iafz r elevada al valor de e; par l0Jtanto:

-.

-.--T.

qwbwros h mantisa pwde ser una fraccioii o n 'itero. ia posicidn del punto de base y el valor de la base r se asumen y no se inciuyen en los registros. Por ejemplo, consideremos una t"prsentaci6n de fracci6n y una raz de 10, el con m = 53725 y e = 3 y n i u n a dechal 537.25 se r e p m t a en un se interpreta parsi t'epmsmtoir el nmero de punto flotante: .53m x 109.
' l a

m x f m&-

dc

Un nfimero de punto flotante se normaliza si el primer nmero m8s si@ficativo de la mantisa es diferente de cero. Re esta manera, la mantisa contiene la entidad mxima posible de clgitps significativos. Un cero no puede nomalizarse porque no tiene un d@to diferente de cero. Se T e p e senta en punto Botpnte mediante Lodos O en La mantisa y en e l exponente. La repmsentaci6n de punto flotante aumenta e l rango de nmeros que pueden alojarse en un regrstro dado. Concideranos una computadora con palabras de 48 bits. Como debe reservarse un bit para el signo, eI rango de los mmeros ente. de punto flotahte ser&1(F- 11, lo cual es aproximadamente. +1014. Los 48 bits pueden usarq para rep-tar un nmero de punto flotante con 36 bits para la mantisa y 12 para e1 exponente. Al considerar la repmtaci6n de fracci6n para la mantisa y a l tomar 10s dos bits de signo en consideraci6n, e l de niimeros que pueden alojarse es:

&te n-em se deriva de una fracci6n que contiene 35 n~meros1, un expon&& de 11 bit6 (excluyendo"susigno) y el hecho de que 2" - 1 = 2047. E I nmep m8s grande que puede alojarse S aproximadamente.1 0 ' 7 el'cual es un n m muy granida La mantisa puede alojar 35 bits [excluyendo el signo) y si se considera como un entero puede almacenar un nmero tan grande cdmo ( p - 1). Esto es aproximadamente igual a lo1', el cual es equivalente a un nmero dechal de diez dgitos.

S E C C I1 ~M Operaciones aritmii~as de punto flotante

379

Las computadoras con longitud- de palabras m s cortas utilizan dos pdabras para rep-tar un nmero de.punto f l o t a n t e . Una micm wmputadora de 8 bits puede utilizar cuatro palabras para representar un ndmera de punta flotante. Se reserva una palabra de ocho bits para el exponente y los 24 bits de las otras tres palabras se utilizan para la mantisa. Las op-er&neg aritmficas con ni'tneros de punto flotante son mis campUcaas.,que con niuneras de punto fijo, y su ejmci6n requiere ms tiem~oy un hardware ms complejo, Fara sumar o restar dos nmeros, primero es necesario alinear e l punto de .base, porque las partes de los
o m8s

exponentes deben v o l v a iguales antes de sumar o restar las mantisas. E l alineamiento se ejecuta al alinear una mantisa mienhs se ajusta su expw nente, hasta que es igual al otro ,exponente. Consideremos la suma de los siguientes n6meros de punto flotante:

+ .lS0000 x 10-'
Es necesario que los dos exponentes wan iguales antes de que puedan sumarse las mantisas. Podemos recorrer el primer nmero tres posiciones a
la izquierda o el segundo nmero tres posiciones a la derecha. Cuando se almacenan las mantisas en registros, el corrimiento a la izquierda produce una perdida de los d g i h s mAs significativos. E l corrimiento a la derecha p d u c e una prdida de b dgib ms ~ L v o sE l . segundo m6todo es preferible porque & l o reduce la exactitud, en tanto que el primer mktodo puede producir un e-, E l pr~edimiento de alineamiento usual es recorrer a la derecha la mantisa que tiene el exponente d s pequefio una cantidad de lugares igual a l a dihmcia entre los exponentes. Despuds de que se hace estu, puede sumarse la mantk:
,

/,

Cuando se su* dos mantisas normalizadas, la suma puede contener un dfgito de sobrefiujo. Un sobreflujo puede col'rregirse con facilidad, al recorrer la suma una vez a la derecha e incrementar el exponente. Cuando se restan dos nheros, el resdtado puede hhtener una mayora de nheros O significativos, como se muestra en el siguiente ejemplo:

Se dice que un nmero de punto flotante que tiene un O en la posicibn m8s

significativa de la manb, tiene un s~breujo inziw50. Paxa nomializar un nmero que contiene un sobreflujo inverso, es necesario recorrer l a mantisa a la izquierda y decrementar el exponente hasta que aparezca un digito diferente de cero en 1s primera posicih. En el ejemplo anterior, es necemrio recorrer a la derecha das veces para obtener X lo3. En la mayora de las computadoras, se ejecuta un pmdimienb de nomalizaci6n despub de cada operacibn para asegurar que todos lw resultados est2in en su forma normahada. La multiplicacibn y la divisi611 de punto flotante no necesitan un alineamiento de las mantisas. Puede formarse el p d u c t o al multiplicar las dos mantisa~y sumar los exponentes. La divisi611se realiza al dividir las mantisas y restar los exponen&. Las operaciones ejecutadas con las rnantisas son las mismas que con los nmeros & punto f i j o ,por b que l o s dos tipos pueden compartir los mismos registros y circuitos. Las operaciones ejecutadas con los exponentes son comparar e incrementar (para alinear las mantisas), sumar y restar @ara multiplicar y dividir) y decrementar (para nomalizar el resultado). El e x p nente puede qresentflrse eri cualquiera de las tres formas siguientes: magnitud de * o J magnitud de complemento a 2 con signo o complemento a 3 con signo. Un cuarto tipo de q m t a c i 6 n que se emph en muchas de las computadora~ se conoce como exponente polarizado. En esta representacibn, se eviQ que el bit de signo sea una entidad -arada. L a polarbacin es un n~mero positivo que se suma a cada exponente mientras se forma el nmero de punto flotante, para que internamente todos los exponenles sean positivos. El siguiente ejemplo puede hacer m8s claro @te tipo de representaciones. Consideremos un exponente que vara de -M a 49. internamente, se representa mediante dos *tos (sin signo) al sumarle una polarizaci6n de 50. H registro del exponente contiene el nmero e + 50, donde e es el pxponente real. De esta manera, se representan los exponentes en los registros como nmeros positivos en el rango de 00 a 99. Las exponentes positivos en registros tienen e l rango de nmeros de 99 a SO. La resta de 50 prupocciona los valares positivos de 49 a O. Los exponentes negativos se representan en los registros en el rango de 49 a 0 0 . La mta de 50 proporciona los valores negativos en d rango de -1 a -50. La ventaja de los exponentes polarizados es que &lo contienen n m ras positivos. Por lo tanto, es m8s senciUo comparar su magnitud relativa sin preocuparse por sus signos. Como consecuencia, puede utilizarse un comparador de magnitud para apreciar i a magnitud relativa durante el alineamiento de la mantisa. Otra ventaja es que el exponente polarizado miis pequeo posible contiene slo nmeros 0. De esa manera la representacibn de punto flotante de O ec una mantisa O y el exponente mAs pequeo posible. En h s eje+s anteriores, utiiizamoe niuneros decimal- para mostrar algunos de los conceptos que deben comprenderse cuando se trabaja con

SECCI~N 10s

Operaciones arihn6ticas Be punto flotante

3 8 ! l

nameMs de punto flotante Es obvib que 1 - mismos conceptos se aplican tambih a lm Mmerqs bhrim. Los dpitmos d&arrollados en esta seccin son para n h m binarioa. La ari&& d k c i r n a l de computadora se analiza en la m i b n siguiente,
'

C o ~ ~ a c i de 6 n registros La confi'gurahn de re!ghtros para operaciones de punto flotante es muy similar a la dmrita para operacioaes de punto fijo. Como %la general, para procesar h s m h s se usan. 1 o miamos ~ regfstros y el mismo sumador para bs operaciones de punto fijo. La diferencia estftba en la manera m que se manejan lbs exponents. La org&aci6n de registros para operaciones de punto fiotante se muestra en l a figura 10-14. Existm res registros, BR, AC y QR.Cada registro & subdivide en dos pattes. Ln parte de la mantisa time los mismos simbolos
de letras rnayCiscub que la repmentaci6n de punto fijo. IA parte del exponente utiliza d smbolo de letra m i n h l a eomspondienk.

Rgura 10-14 Registros para

aritmca~ de punto fiotanb.

Se considera que cada nmero d punto flotante tiene una m t i s a en representacin de magnitud con signo y un exponente polarizado. Por l o tanto, el AC time una mantisa cuyo signo est en A, y una magnitud que est en A. E1 exponente s t A en la parte del' registro r e p m t a d a por el smbolo de la letra a minscula. Rl diagrama muestra en forma explcita el bit ms sigdkativo de A etiquetado mediante Al, El bit en esta p i c i 6 n debe ser un 1 para e l nmero que va a nomializarae. Nbtese que el sfmbolo AC representa todo el registro, esto es, i a concatena96n de A, A y a. D e igualmanere, el registro B R s e subdivide en B,, B y b, y QR en Q, Q y q. Un simiador paralelo suma las dos mantisas y t r a d k e el resultado p* a A y e l a c a r m a E. Para los exponentes se utiliza un sumador paralelo 7 baseparado. Como los exponentes estn pala-dos, no tienen un bit de sipo

distinto, pero se repremtan como una cantidad positiva polarizada. Se considera que los nmeros de punto flotante s q tan grandes que es muy remota la posbihdi?d.deun sobreflujo de exponente, y por esta razbn, no se considera un sobreflujo de exponentes. Los exponentes tambikn s e conectan a un comparador de magnitud que proporciona ires salidas binarias para indicar su magnitud relativa. El n h o de la mantisp 1 tomar8 como Una fraccidrz, para que se considere qqe el ,puntobinario reside a la *uierda de la parte de magnitud. La r e p ~ q t a c i 6 n eritera para punto fiotatrte pmducqciertos problemas en el establ-ento de escalas, duran@ la multiplicacin y la divisi6n. Para evitar es@ problqas, doptamoc una representacin de fracciones. 'rcr Se considera que, inicialmente, I a s nfineros de los registros esten .normaliados. Despus de cada operaci6n arimi&tica, se normalizad el n suItado, Confome ,a B O , todos los operandos de punto flotante que se '*@-q -,mueven de v a la unidad de memoria estan siempre normalizados.
,

--

--JW@
a

'Suma y resta

mlr

Durante la suha o resta, los dos operandos de punto flotante estan en AC y en BR, La suma por diferencia S forma en e l AC. E l algoritmo puede dividirse m cuatro parta consecutivas;

1 . Comprobar l a p-cia
2. Aiinear las mantims.

de ceros.

3, Sumar o restar las rnantisas. 4. Normalizar el resultado.

No puede normalizam un nmero de punto flotante que es cero. Si se u c i a este nWiero durante el c3lcul0, el resuitado tambin puede ser cero. En l u ~ a r de comprobar l a presencia de ceros durante el proceso de normalizaci611,wmprobamos Ios ceros en un principio y, s i es necesario, se termina el p m . Ihbe realizarse el aineamienb de las mantisas antes de su operacihn. Despus de que se suman o restan Ias mantisas, el resultado puede estar sin normalizar. E l procedimiento de nomalizaci6n asegura que el resultado es@ normalizado antes de su transferencia a memoria. El, diagrama de flujo para sumar o restar dos nmeros bmriw de pwto flotante se muestra en la i p a D15, Si BR es igual a cero, se termina opaci6n, y ei v&r ea AC es el resultadotado Si AC es igual a cero, transferirnos el c o n W o & BR a ,4Cy, s is e van a restar los mhems, Micompk g i e n t w su signo. Si ninguna de los nmeros es igual a cero, procedemos a alinear las rrimths. El mrnpqadqr de mapitud conectado a los exponentes a y b proporciona kes .salidas que indican su magnitud relativa. Si los dos exponentes son iguah, pamms a $ecutar Ia operaci6n aritmtica. Si los exponentes son dkentes,,la m a @ b con e l exponente menor se dwplaza a la derecha y s e

SECCI~N 1~

Opraciones aritmt5ticas de

punto flotante

383

'

IL

Figura 1&15

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.

La suma y resta de las dos mantisas es idntica al aigoriho de suma y resta de punto fijo que se present en e l figura 10-2. La parte de magnitud se suma y se resta dependiendo de la operaci6n y de los signos de las dos mantisas. Si murre un sobreflujo cuando se suman las magnitudes, se transfiere al flipflop E. Si E es igual a 1, se transfiere eI bit a A, y todos los otrcis bits de A se re&rren a la -a. &be intrementarse el expcmenk para mankmer e l n W m corredo. En este caso, no puede ocurrir un sobreflujo inverso porque la m a n b original que no se recorri durante el alineamiento ya estaba en una posici6n normalizada. Si se restaron las magnitudes, el resultado ser6 un cero o podra tener un sobreflujo inverso. Si la mansa es cero, todo el nmero de punto flotante en AC se hace cero. De otra manera, la mantisa debe tener al menos un bit que sea igual a P. La m a n b time un sobreflujo inverso si el bit ms significativo en la posicidn Al es O. En ese caso, la mantisa se recorre a la izquierda y se d-enta el exponente. Se comprueba de nuevo el bit m Al y e l prcceso se repite hasta que es igual a 1 . Cuando A, = 1, se normaliza l a m a n h y se completa la yeraci6n.
b

--_

Mdtipliacih La multiplicacin de dos nmeros de punto flotante requiere que multipliquemos las mantisas y sumemos ios exponentes. No es necesaria una comparacin de exponentes o alineamiento de rnantisas. La multiplicacibn de las
manse ejecuta de la misma manera que con e l punto fijo para proporcionar un producto de doble precisi6n. La respuesta de doble precisi6n se utiliza en los nmeros de punto fijo para aumentar la exactitud del producto. En el punto flotante, el rango de la rnantk de precisibn nica, combinado con el exponate, por l o general es lo bastante acertado para que se mantengan &lo nmeros de precisidn nica. Debido a eso, se tomarn juntos la mitad m A s significativa de bits del producto de la mantisa y d exponenk para formar. un pmducto~ de punto flotante de precisibn nica. E l .aIgoritmo de multiplicacin puede subdividirse en cuatro partes:

'

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 simuItnea s i se dispone de suma& separados para las mantisas y los exponentes. En la figura 10-16 se muestra el diagrama de f l u j o para la multiplicacin de punto flotante Se comprueban los das operandos para detemiinar s i contienen un cero. Si algn opando es igual a 4 el producto en AC se inicializa

m IM

0peracim-marhndticas de punto flotante

385

m O y la cyemcibn se temina. S i ninguno es igual a O el proceso contina con la suma deexponentes, El exponente del snultiplicadox est en q y el ssumador est entre los wpomenb a y h Esnwwario mderir, los exponentes de q a a, sumar los dos exponentes y kansferir la suma a a. C m ambos exponwib se pohriFigura 10-16 Multipliuiun d e - n w - m de plinto flotante.

Multiplicar mansa

shl AQ
U'@-

=1
f

i1

386

cwimm~ DIEZ Mhtica de.eomputad~ras zan mediante la suma de u n a constante, h suma de exponentes tendrii doble polariaaci6n. El exponente polahdo mrikto para el producto se obtiene al restar el n h e m de pab de la suma. .. La mulkiplicab6n de las mantkshsehace como en el caso del punto fija, ron d producto residiendo en 34 y Q.No puede ocurrir un sobreflujo durante Ia rnultiplicaci6r1, par lo que no es necesario comprobar.
N

El producto puede tener un sobrefiujo inverso, por lo que se comprueba el bit d s sipificativo m A. S i es 2, el producto ya est normalizado. Si es O, se recorre a la izquierda la mantisa en AQ y s e decrementa el exponente.
Nbtese que d o se necesita un corrimiento de nomlizacibn. El multiplicador y el multiplicando estaban nomializados originalmente y contenan fracciones. E l operando normaIizado mAs pequeiio es 0.1, por lo que el producto m& pepueio posible es 0 . 0 2 . Por b tanto, slo puede presenkuse un O en el extremo significativo. Aunque .la mitad de orden inferior de la mantisa est en Q, no la tilizamos para el producto de punto flotante. %lo se toma el valor de AC omo producto.

Divisi6n
La divisi611 de punto flotanie requiere que se resten los exponentes y se dividan las mantisas. La divisibri de mantisas se hace como en e l punto fijo, excepto que el dividendo tiene una mantisa de precki6n nica que se coloca en AC. Recuade que el dividendo de la mantisa es una fraccin y no un entera. Para representar enteros, un dividendo de precisin nica debe colocarse en el registro Q y debe borrarse el registro A. ~ Q S ceros de A estin ai a i z y d a del punto binario y no son significativos. En representaci611 de fracciones, se coloca un dividendo de pmisin nica en el. registra A y se b m a d registro (2. Las ceros de Q e~tn-ah &echa del-p-mo binario y no son significativos. La prueba del sobreflujo al dividir es igual que en la representacidn de punto fijo. Sin embargo, con nmeros de punto flotante, el sobreflujo al dividir no implica problemas. S i el dividendo es mayor que o igual al divisor, se recorre a la derecha la fraccibn del dividendo y su exponente se incrementa m 1. Para operandos normalizados esta es una operacibn suficiente para asegurar que no ocurrirA un sobreflujo al dividir la mantisa. La operaci6n ankrior se denomina alineamiento del dividmdo. La divisi611de dos ntmeros de punto flotante normalizados dar camo multado un d e n t e normalizado, siempre y cuando se realice un alineamiento del dividendo antes de la divisih. Por b tanto, a diferencia de otras operaciones, el cociente que se obtiene despus de ia divisibn no necesita una normalizaci6n. El algoritmo de divisi611puede subdividirse en cinco partes:
1 . Comprobar la existencia de ceros. 2 Inicializar los registros y evaluar el signo.

alineamiento de1
dividendo

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 sera establecer e l cociente de Q R en el n-ctmero ms positivo posible ( s ie l dividendo es positivo). O el nmero ms negativo posible (si el dividendo es negativo). Si ei dividendo en AC es cero, el cociente en Q R se hace cero y termina la ~peracibn. Si b s operandos no son cero, avanzamos para determinar e1 signo del cociente y almacenarlo en Qs, El signo del dividendo en A, no se afecta para que sea el signo del residuo. E 1 registro Qtse borra y el contador secuenciaI SC se inicliza en un nmero igual a La cantidad de bits en e l cociente. El alineamiento del dividendo es similar a h prueba del sobreflujo al dividii h operaci6n de punto fija El aheamiento adecuado requiere que el dividendo de la fraecihn sea menor que el divisor. Se comparan las dos fracciones mediante una prueba de resta. El acarreo en E deterpiina su magnitud relativa. Se restablece l a fraccibn del dividendo a su valor original al sumar el divisor. Si A 2 B, es necesario recorrer a la derecha A una vez e incrementar el exponente del dividendo. Como ambos operandos estn normalizados, este alineamiento asegura que A c B. Despub, se resta el exportente divisor del exponente dividendo. Como ambos exponentes estaban polarizados originalmente, la operacin de resta proporciona la diferencia s i n el polo. Despub se suma e l polo y e l resultado w z transfiere a 4 , porque el cociente se fom6 en QR, Se divide la magnitud de las mantisas como en e l caso del punto flotante. Despus de la operaci6r1, e l cociente mantisa reside en Q y el residuo en A. El miente de punto flotante ya est normalizado y reside en QR. El exponente del residuo debe ser igual al exponente del dividendo. El punto binario para la mantisa residuo se encuentra a (n - 1) posiciones a la izquierda de A,. Puede convertirse el residuo en una fraccibn normalizada al restar n - 1 del exponente deI dividendo y a1 recorrer y demementar hasta que e l bit en Al sea igual a 1. Esto no se muestra en el diagrama de flujo y se deja codio ejercicio.

10-6 Unidad aritmetica decimal


El usuario de una computadora prepara datos con nmeros dechales y r e c k resultados en forma decimal. Una CPU con una unidad aritmtica-lgica puede ejecutar rnicrooperaciones aritmticas con datos binarios. Para ejecutar operaciones aritmticas-con>datoadecimales, e necesario convertir

m..,

C'

SECCI~N 10-6 Unidad aritm6tica decimal

389

b s nmeros decimales de entrada en binarios, para ejecutar todos los - clculos con nmeros binarios y convertir el resultado en decimal. Este puede ser un mtodo eficiente en aplicaciones que requieran una gran cantidad de clculos y una cantidad relativamente ms pequea de datos de . entrada y salida. Cuando la aplicacin solicita una gran cantidad de entradas - y salidas y un nmero relativamente ms pequeo de clculos aritmticos, es- nids conmiente hacer la aftm6tica Hrterna de manera directa con los nmeros decimales. Las computadoras capaces de ejecutar aritmtica decimal deben almacenar los datos decimales en forma de cdigo binario. b Despus se aplican los nmeros decimales a una unidad aritmtica decimal ! tI capaz de ejecutar microoperaciones aritmticas decimales. a Las calculadoras electrnicas utilizan invariablemente una unidad arit1 1 mtica decimal interna, debido a que las entradas y salidas son frecuentes. No parece existir una razn para convertir los nmeros de entrada del teclado en binario y volver a convertir los resultados exhibidos en decimales porque este proceso requiere circuitos especiales y tambin necesita ms tiempo para ejecutarse. Muchas computadoras tienen hardware para clculos l o aritmticos con datos binarios y decimales. Los usuarios pueden especifi-, ' car mediante instrucciones programadas si desean que la computadora ejecute los clculos con datos binarios o decimales. Una unidad aritmtica decimal es una funcin digital que ejecuta . microaperaciones decimales. Puede sumar o restar nmeros decimales, por 1! lo regular, al formar el complemento a 9 o 10 del sustraendo. La unidad , ,, acepta nmeros decimales codificados y genera resultados en el mismo cdigo binario adoptado. Una unidad aritmtica decimal de una sola etapa t . consta de nueve variables binarias de entrada y cinco variables binarias de salida, porque se necesita un mnimo de cuatro bits para representar cada dgito decimal codificado. Cada etapa debe tener cuatro entradas para , un dgito sumando, cuatro entradas para el otro sumando y un acarreo de . ,.8lU#. 1 .L. ' " entrada. Las salidas incluyen cuatro terminales para el dgito de suma y uno para el acarreo de salida. Por supuesto, existe una amplia variedad de '' configuraciones de circuito posibles, que dependen del cdigo utilizado para I I , , ~ representar los dgitos decimales. .

-- --

11

++

1,)'

'lA'

J.)-

-,

. , ,n

'r

lb

5..

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


f
l f

'S,

' I

11'

J .

1 1 ~ 1I ,

11

'

1 ,

,rl
l .

rr

17.2

"
I 4 I
Y

' 4

" "

VL

'l-

tb

Consideremos lb '&%unaaritmtica dos dgitos decimales en BCD, junto con ." "!"' -*11 un posible a c a r d de una etapa bnterior. Como cada dgito de entrada no , I J,- , , t , , . excede de 9, la d&a de salida n6'6uede ser mayor que 9 + 9 + 1 = 19, el .,l .. I~ 1 " 1 en la suma es un acarreo de entrada. Supongamos que se aplican dos ' h1 ' * dgitos BCD a un sumador binario de 4 bits. El sumador formar. la suma ' , , . "'. en binnrio y producir&"&$ iesultado que puede variar de O a 19. Estos nmeros binarios se listan en la tabla 10-4 y se etiquetan mediante los -* (.it>n*- smbolos K, Zg, Zp,Z2 y Z1. K es el acarreo y los subndices bajo la letra Z 1' 11 r ' ' - representan las ponc+xgcipes 8 4, 2 y 1 que pueden asignarse a los cuatro 'tnr: I.t>lI. '1 , ', -1 c,
-#\.J.

''

,J~,CII,?,

?'

"
+

L,

1Ig

TABLA 1 W Detivaci6n de un wmador BCD


Sumadorbinario
Sumador BCD

Z e

&

Za

21

S 8

Sub

SE

SI

Decimal

O O

"
0 0
0 0 '

O
0

O
0 1 0
1 0

O
1
0

O
0
0

O
0
0

Q
0 0 1
0 1

Q
0
1

O
1 O 1 0
1

O
1

o
0 0

0 1
1

1 0
1

0 0
0

0 0 0 0 0 l

1 0
0

2 3 4
5

0 o

0 0 O

0 1 l

1 0 O

1 0 O

1 0 l

o 0 O

1 1 1 O

1 1 0 O

0 1 ~ l

6 7 0 8 9

bits en el cdigo BCD. La primera columna en la tabla lista las sumas b i i r i a s conforme aparecen en las salidas del sumador binariu de cuatro bits. La suma de salida de dos ndrneros hcimaks debe representarse en BCD y debe aparecer en b forma que se lista en la segunda columna de la tabla. E l protilema es encontrar una regla simple mediante la cual pueda convertirse el nmero binario de la primera columna en la representacidn correcta de dgito BCD del n h e m de l a segunda columna. Al examinar e l wntenido de la tabla, es evidente que cuando la suma binaria es @al que o menor que 1W1,e l nmero BCD correspondiente es idntico y, por lo tanto, no es necesaria una conversin,Cuando la suma binaria es ,mayor que 1001, obtenemos una representacidn BCD no vlida. Lii suma'de binario 6 (0110) a la suma binaria la convierte en la repremtaci6n BCD correcta y tambib praduce un acarreo de salida, conforme s e requiere. Un mtodo para, sumar nCimeros decimales en BCD sera emplear un sumados binario de cuatro bits y ejecutar la operaci6n aribktica de un dgito a l a vez. El par de &@tos BCD de orden inferior se suma primero para

mm~ i~ Unidad aritmtica 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 automkica un acarreo de salida para el siguiente par de dgitos
significativos. E l &+te par de *tos de orden superior, junto con e l acarreo de entrada, se suma despus para pruducir su suma biiria. Si el resultado es igual que o mayor que 1010, se corrige al sumar 0110. E l p d i m i e n t o se repite hasta que se suman todos los dgitos dmimales. E L circuito 16gico que detecta la correcci6n necesaria puede derivarse de las entradas de tabla. Es obvio que se necesita una correeei6n mando la suma binaria tiene un acarreo de esalida K = l. Las otras seis combinaciones de 1010 a 1111 que necesitan una cormi6n tienen un 1 en la pmici6n Z& Para distinguirlas de los b&m 1000 y 3001, que tambin tienen un 1 en la picibn Zw ~ ~ adems que c2 ,o &<deben s tener un 1. la condicin para una correccidn y un hcarreo de salida puede expresarse mediante la expresi6n bmleana:

Cuando C = 1, es necesario sumar 0310 a la suma b i a r i a y proporcionar un acarreo de saiida para la siguiente etapa. Un sumador BCD es un circuito que suma dos dgitos BCD en paralelo y produce un digito de suma tambin en BCD. Un sumador BCD debe incluir la 16gira de correccibn en su construcci6n interna. Para sumar O110 a la suma biaria, ,utilizamos un segundo sumador binario de cuatro bits, como se muestra en la figura 10-18. t o s dos dgitos decimales, junto con el acarreo de entrada, se suman primero en el sumador binario de 4 bits superior, para producir la suma binaria. Cuando el acarreo de salida es igual a O, no se suma nada a la suma binaria. Cuando es igual a 1, se suma el bina& O110 a l a suma bina& mediante e l sumador binario de cuatro bits inferior. Puede ignorarse e I acarreo de saiida generado por e1 sumador binario inferior, porque proporciona informaci6n ya disponible en la terminal de acarreo de salida. Un sumador paralelo decimal que s u n a n dgitos decimales necesita n etapacde sumador BCD, con el acarreo de salida de una etapa conxtado al acarreo de entrada de Ia siguiente etapa de arden superior. Para conseguir retrasas de propagacin d s cortos, los sumadores BCD incluyen los circui~QS necesarios para acameos antiapados. Adeds, el circuito sumador para la correccin no necesita los cuatro sumadoras completos y este circuito wuede optimizarse.

Resta BCD
Una resta d ' i t a de dos nmeros dmimales requerir4 tui circuito sustractor diferente, de alguna manera, de un sumador binario, 13s mas prActico ejecutar la reta al tomar el complemento a 9 o 1 0 del suatraendo y sumarlo al

392

CAP~TLILO DIEZ

Aritmtica d e computadoras

Adendo

Sumando

fnu
hacia afuera

JIMIIO ~its Sumado11 ' ' ae ' 4 "


"

Lz -

Acarreo

de entrada

Acarreo de salida

1
rtrn

Sumador binario de 4 bits

"-

::&Ez;:~d
J

inl

Figura 10-18 Diagrama de bloque de un sumador BCD. ~,.I*.IlIY YIrnY-, m# A U U I C I '1 m t w j ,1...l-r ir* i
*y.

minuendo. Como el BCD no es un cdigo autocomplementano, no puede obtenerse d complemento a 9 al complementar cada bit en el cdigo. Debe formarse mediante )un circuito que reste cada dgito BCD de 9. El complemento a 9 de un dgito decimal representado en BCD puede obtenerse al complementar los bits en la representacin codificada del dgito, siempre y cuando se incluya una correccin. Existen dos mtodos de correccin posibles. En el primero, se suma el binario 1010 (decimal 10) a cada dgito complementado y al acarreo descartado despus de cada suma. En el segundo mtodo, se suma el nmero binario 0110 (decriinal 6) antes de que se complemente el dgito. Como un ejemplo numrico, el complemento a 9 del BCD O111 (decimal 7) se calcula al complementar primero cada bit para obtener 1000.Al sumar el binario 1010 y descartar el acarreo, obtenemos O010 (decimal 2). Mediante el segundo mtodo sumamos O110 a O111 para obtener 1101. Al complementar cada bit, obtenemos el resultado requerido de 0010. Complementar cada bit de m ncimero binario N de cuatro bits es igual a restar el nmero de 1111 (decimal 1 5 ) . %mar el equivalente binario del decimal PO proporciona 15 - N + 10 = 9 - N + 16. Pero 16 significa el

S0

S4

S2

S1

MUI

I rn

.o

1.

SECCI~W

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 despus cornpl+ mentar proporciona 1 5 - ( N + 6) = 9 - N, queves10 que s e necesita. El complemsnb a 9 de+und.@to BCD tambin puede obtenerse me diante un circuito combinaeionaL Cuando se conecta este circuito a un sumador BCD, el resdtado es un sumador/sustraetor BCD. Representemos el dgito del ~usbmdo[a del sumando) mediante las cuatro variables bina& B , B,, BB y Bi. Sea M un bit de m d o que controla la operacin sumar/mtar. Cuando M = O, s e suman los dos digitos; cuando M = 1 se restan los digitos. Sean las variables bidras x& x* q y x, las salidas de c h i t o complementado^ a 9. Mediante ima revkibn de Ia tabla de verdad para el circuito, puede observarse (vgase e l problema 10-30) que B1 pude complementarse; B2 est siempre igual en f o p a de compIemmto a 9, como e n el & @ t o origid; x4 es 1 cuando la OR exclusiva de B1 y B4 es 1 ; y x8 e s1 cuando BS, B4 p B2 -- (WXI. L a s funciones boo1eanas para el circuito complemenhdor a 9 son: xi=BiM1+BiM - --T.
'

I t l m xz = Bz ~4 = B4M1 ( B i B l + B4B3M

Q=

BBM'

+ &&&M
M
= O. Cuando

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

,
,+N-?

apirddR d

Una etapa de una unidad aritmgtica decimal que puede sumar o restar das digitos BCD se muestra ,enla figura 10-19. Consiste en un surnador BCD y un complementador a 9. El mddo M controla la operaci6n de la unidad. Con M = O las,s a l i h S fonh2ui lasuma de A y B! Con M = 1 , las didas S forman la suma de A d s el complemento a 9 de B, Para nmeros con n &&os decimales necesitamos n etapas como &a. Ellacarreode saiida Ckl de-etapa debe ccnahnc a l ata-m de entrada Cf de la siguiente etapa
de arden superior. 14L mejor manera de retar los dos nSimems decimales es dejar M = 1 y a p h r un 1 al acarreo de entrada C1de la primera etapa. Las salidas brmdn l a suma de A m8s el complementa a 10 de B, lo cual es equivalente a una operacibn de resta si w descarta el acarreo de la iiltima etapa.

10-7 Operadones aritdticas decimales


Los algoritmos para las operaciones4 aritmticas mn datos decimales son similares a los algaritmos para las operaciones correspondientes de datos binarios. De heeha, excepto por una Siera modificacin en los algoritmos de multiplicacibn y divisin, pueden usarse los mismos diagramas de flujo para ambos tipos de datos, siempre y cuando interpretemos los smbolos de la microoperaci6n en forma adecuada. Los nmeros decimales en BCD se almacenan en Ios registros de la computadora en grupos de cuatro bits. Cada grupo de cuatro bits representa un digito d&aI y debe tomarse como una unidad cuando se ejecutan microoperaci~nes decimales. Por conveniencia, utilizaremos b s mismos sfmbolos para microoperaciones aritmdticas binarias y decimales, pero les daremos una interpretacibn dlferente, Como se muestra en la tabla 1 M una barra cobre el smbolo de la Letra del registro repmenta el complemento a 9 del nmero decimal almacenado en el registro. A1 sumar 1 al complemento a 9 se prcduce e l comple_mento a 10. Por lo tanto, para nmeros decimales, el smbolo A +- 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 dgitas 9 de E E Contenido de A mls complemento a Qt+Qt + 1 dfgitos 10 de B dentro de A ~ t . ~ + f i - + ihammmtarnberoBCDenQt dsh A -Commiento d 4 al a erecha del registro A dshlA Corrimiento decimal a ia izquierda del registroA

contenido original A al complemento a 10 de B. El uso de smbolos idhticos para e l c o m p b t o a 9 y el complemento a 1 puede resultar confuso si se emplean ambm tipos de datm en el mism~ sistema. En este caso, seria mejor adophr un dmblo~ diferente para'el comphnto a 9. Si & l o s e est conside rando un tipo de datos, .el simbolo se aplicada a i tipo de datos que se usa. incrementar 6 decrementar uh registro es igual paraJbin&os y decima1% excepto en la cantidad de estados que se permite que tenga eI registro. Un contador b h a h recorre 16 esbdm, del 0000 to 1111, cuando se incrementa, Un contador decimal recorre 1 0 esbdw, de 0000 a 1001 y de regreso a 0000, dado que 9 es eI ltima contea. De igual manera, un contador binarlo cubre una secuencia de 1111 a 0000 cuando se decrementa. Un contador decimal va de iOD1 a 0 0 . A un corrimiento decimal a la derecha o izquierda, le antecede la letra d para indicar un corrimiento sobre los cuatro bits que contienen los dgitos decimales. Como un ejemplo num&rIro, consideremos un qistro A que contiene el decimal 7860 en BCD. El patr6n de bits de los doce flip-flops es:

La micmoperacih dshr A ejecuta un corrimiento en el nhnero decimal un digito a la d d a para "proporcionar'0786.Este corrimiento S sobre los cuatro bib y cambia el contenido del registro a:

Suma y res@ El algoritmo para suma y resta de niuneras binarios de magnitud con signo se aplica tambin a los nmeros decimales de magnitud con signo, siempre y cuando interpretemos 10s smbolos de la microoperaci6n en forma correcta. De igual manera, el algoritmo para nameros de complemento a 2 bbrios con signo se aplica a lw nmeros decimales de cony,1emento a 10 con signo. Los datos binarh deben mnplear un sumador b i r i o y un complementada. h s datos decimales deben emplear una unidad arihbtica decimal capaz de sumar los nmeros K D y formar el complemento a 9 del sustraendo, como se muestra en la figura 10-19. 'Los datos decimales pueden sumarse en tres diferentes formas, como se muestra en 4 figura 10-20. El rnktodo paralelo utiliza una unidad aritm& tica dechal compuesta de tantos sumadores BCD como dfgitos hay en el ndmero. L a suma se forma en paralelo y 6610 requiere una microoperacih Iln el mtado de * t o serial y bit paralelo, loa dgibs se aplican a un W o sumador ECD en f o m serial, mientras se transfieren los bits de cada dgito d i c a d o , efi paralelo, L a suma se forrha al ejecutar un corrimiento de los niimms decimales por e l sumador BCD, uno a la vez, Para k digitos decimales, esta confiracion requiere k mici00peraciones, una para cada

O 1 Q,I

0 0 0 0

0 0 1 1

Sumando

Surm

S
FA

CAdda
I I

1I

I I
1L

t
Figura 1 0 7 i lTres maman de ~umarnilrrserwrddmaimz

corrimiento digital, por todo el sumador serial, los bits se recorren uno a la vez por medio del sumador mmplel~. La suma binaria formada despu4s de cuatro corrimientos, d ~ b e cmgirse dentro de un dlgito BCD vblido. Esta correcci6n, analizada en la seccibn 10-6, consiste en comprobar la suma binaria. S i es mayor o igual que 1010, la suma binaria se corrige al sumarle O110 y generar un acarreo para el siguiente par de dlgitos. m w o paralelo e sd~ido pero d t a una gran cantidad de sumado~es. El mtodo de digita.dy bit paralelo $610 mpiere un sumados BCD, d d comparten todos los dgitoet. Es m6s h t o que e l mtodo pardeb por el tiempo que se para desplazar IQSdigitos. El mtdo totahente setlal. quiere una cantidad mhima de equipo pero es muy lento.

Multiplicad6n La multiplicaci6n de ndmeros decimales de punto fijo es simar a la de nmeros binarios, excepto par la manera en que se forman los productos parciales. Un mdtiplicador decimal tiene digitos cuyo valor flucth de O a 9, mientras que un multiplicador binario slo tiene dgitos O y 1. En el caso binario, se suma el multiplicando al producto parcial si e l bit multiplicador es 1. En el caso decimal, el multiplicando debe multiplicarse por el dIgito del multiplicador y sumarse el resultado al producto par-. Esta operacin puede realizarse al sumar el mItjplicando al producto parcial una cantidad de veces igual al valor del digito muItiplicador. La organizaci6n de're&tros para la multiplicacih decimal se muestra en la figura 10-21.Consideramos aqu niimeros de cuatro dgitos, en los que
Figura 10-21 Reghfros para multiplifacin y divisibn a-kntica decimal,
3
/

q
8

.aaw
c a i

&Lh.d

dlgito ocupa cuatro bits, para un.total de 15 bits por nmero. Existen tres registros, A, B y Q , . y cada uno tiene un flip-flop de signo correspondiente A, B, y Q, Los q i s b A y B tienen cuatro bits rnds, denominados mediante 4 y Bw que pmporcionan una extensibn de un digito m4s a los registros. La unidad aritmtica BCD suma los cinco digitos en paralelo y colma la suma en e1 registro A de cinco dgitos. El acarreo final va al flip-fiop E. El propdsito del e o t A, es alojar un sobreflujo o mientras swna el multiplicando a l p d u & parcial, durante la multiplicacibn. E l pmp6sito del dfgito B, es f ~ m el x complemehto a 4 del divisor cuando se resta de un residuo parcial, durante i a divisihn. El dgito menos significativo en el registro Q de repmxnta mediante Qp Este dgito puede incrementarse o
cada

decrementarse. Un operando decimal que proviene de Ia memoria consta de 17 bits. Un bit (el signo) se transfiere a B, y se coba la rniapitud del operando en
Figura 1&22 Diagrama de flujo para multipliEaa6n decimal.

los 16 bits inferiores de B. Al principio s e borran tanto E, como A, E1 resultado de Ia operacidn tambmbin tiene 17 bits de longitud y no usa la parte A, del registro A. El algoritmo de muItiplicaci6n decimal se muestra en la figura 10-22. Al principio, se borran los registros A y Be y el contador secuencial SC se inicializa en un nmero k igual a la cantidad de &@tos en el multiplicadoi. Se comprueba e1 dfgito de arden inferior del multipIcador m QL.Si es diferente a O, e e suma una vez el multiplicando en B al produdo p a r d en A y se decrementa Qt. Se comprueba QLuna vez ms y ce repite el proceso hasta que es igual a O. i h esta manera, el muitipkando en B se suma al produdo p a m d una cantidad de veeea igual a i 1U8;to multiplicador. Cualquier dgito de sobreflujo temporal residid en A, y puede variar su valor de O a 9. Ensepida, el produtto parcial y el multiplicador se recorren una vez a la derecha. Esta coloca un O en A, y transfiere e1 siguiente digito del multiplicador a QL. ;-pus se repite el proceso k veces para formar un producto de doble Z~ngituden AQ.

Divisin L a divisidn decimal es similar a la divisi611binaria, excepto que, por supuesto, los dlgifos del cociete pueden tener chalquiera de diez valores de O a 9.. En el mtodo de divisibn-restablecer, se resta el divisor del dividendo o residuo parcial, tantas vmxs cpmo sea necesario, hasta que se produzca un residuo negativo. ihspus, s e sestab1we el residuo correcto al sumar el divisor. El dfgito en e1 cociente d e j a la cantidad de restas acumuladas, pero excluye la que produjo la diferencia negativa. El algofitmo de divisidn decimal se muestra en la figura 10-23.Es simiir al algoritmo con datos binarim, excepto por h manera en que se f m n los bits del cociente. E 1 dividendo (o residuo parcial) se recorre a la izquierda, con su dgito ms significativo colocado en A, Despus, se resta e l divisor al sumar su valor de comphento a 10.Como Be se limpi6 al inicio, su valor de complemento es 9,que es lo querido. El acarreo en E determina la magnitud relativa de A y B. Si E = 0 ,s i m a que A < B. En =te caso, se suma el divisor para restablecer el residuo parcial y QL se queda en O, (insertado ah duranfe el cofrimiwito). S iE = 1 , significa que A 2 B. El dgito del cociente en QLse incrementa una vez y e1 divisor se resta de nuevo. Se repite este p m hasta que la ,resta produce una diferencia negativa que se reconoce cuando E es O. Cuando ocurre esto, el digito del cociente no s e iocremenh, pero se suma e1 divisor para restablecer el residuo positivo. De esta manera, el dgito del a t e n t e se hace igual a la cantidad de veces que ,el residuo parcial ':va'Vmtro del divisor. t o s bits del residuo parcial y del cociente se recorren una vez a la izquieda y e l praceso -se repite k veces para formar k dgitos de cociente. Despub s e eneentfa el miduo en el registro A y el cociente est en e l registro Q.N o * consideta el valor de E.

Dividir

(Q cociente esta en a)
Agura 10-23 D i a m a de flujo para divisi6n decimal.

,Operacionesde punto flotante tas operaciones aritmticas de punto flotante decimales siguen los mismos pxocediiientos que las operaciones bbarias. L a s algoritmos de la secci6n 103 pueden adaptarse para datos decimales, siempre y cuando se interpreten en forma correcta los shbolos de la, microoperaci6n. La multiplicaci6n y divisibn de las mantisas deben hacerse mediante los mtodos ya descritos.

.con s w o cwmdotserestan las mapjtudes mediante hs operaciones

A+AyE&+-A*B:
10-2.
.

3W.

Marque cada baybctofih indlddial en e1 diagrama de flujo de la f i p r a lb2 m&dhhun n h e r o y despu4stindique;la trayectoria general que toma el,aig@itnoaand@m ' d d a m los siguientes nmeros de magni.f-ud' c m 48r(s. En reaaa eawi p r & w n eel valor de AVF, E 1 bit a la .ex@ew kqgi&,q,\w si&m@ phmerosqeprenta el bit de signo. O OUW83, 9;'OllIl$ b . 1. OllM1 1, 2011Q c. p 10liO'. O 01111 d. 0 101101 - 1 0 1 m b e, i tiiilf~ - O' lb110 L n -L 2 - -lL Ejerirte las wacioiies z t e s con n & binarir* y mn niimems negativos en representad& complemento a 2 con signo. Utiliee

+ + -

- 8

P'

siek b i t s ~ a ~ ~ a a & l ~ o h e m ~ i I r l ~ En ~ cada n acaso, ~ @determine b. si k y un .9olWbjg alcpmpm& 'bs~a$nrreo hacia s adentro y h a & afuera

de la piccbn de bit de signo. s . (+.Q>+ ,l.+) b* 6 q : + J-%),


c:

A W

10-4.

'

Considere los n r l r n q ~ s bjn?&s cuapdo e s t h en repreaentacidn de crrmplsmwito a 2 coa signo. Cada n h r o tiene n bifs: u w para el sipo p k : = n, gata la m B @ i i h $ Vn . narhm& n -X se rqresarita como ~ ~ . ~ ~ - ~ , - & i d & d ~ ~ i ? ~ ~ t (5.ka e i -el b i t ~ s i complenia ~ 3,ds X:Utr'nCrmwo p b s i t h so representa como O + X , donde el O significa el bit de y %la magnitud de k kits. Utilizando estos ,ahboJps gperdj~ad0sfL wpip~?ie:be: qw la suma (+X) f {*Y) puede&~m%fsa :24 sumar i o s : e r ~ incluyendo s sua bits de signo y descartand~el acarreo hacia afuera de la posicibn de hit de signo. En w ' a b h s ,@dipM&Cel iil$o&nd para sumar dos n W o s en r@q@ad&nd i l e ~ f $ e m b " a 2 &n signo.
- b T

k &gte:& q p e m c i D .(-q+ (rb)= -15 m n mimeras binarios en ~e~resentacirin de caplemento a 1 con signo, utilizando sdlo ",E " bib qa. r p F e n Q r cada r&tem,&riJuyenda d sQno). Muestre & dp&edin&&~tod r d%~/6n di1Zobrefi ujd que m s t e en bmpioGr.b,~-&-@d$rl d.l q Gltimm a ~ r w sno , funciona en

de computadoras

b . Sugieraunprocedimiento d f i c a d o para detectar un sobreflujo cuando


s e utilizan nmeros de complemento a 1con 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 nunems negativos estn en reprmntacibn de complemento a 1 con signo,

Compruebe que la muhipli~ci6n de dos nheros de n dgitos en base r proporciona un producto no mayor de Zn dgitoc de longitud. Demuesb que &e enunciado implica que no puede ocurrir un sobrefiujo en la operaci6n de mu~tipiicaci6n.

Muestre e l rnntaido de los q i s t r o s E, A, Q y SC (como en la tabla 10-2) durante el proceso de multipeaei6n de dos nrimeros binarios, 1 1 1 1 1 (multiplicando) y 10101 (multiplicador).No se induyen Ios signos. M u m el eontenida.delos tegis- E, A, Q y SC (como en la figura 10-12) durante e1proceso de divisidn de: a) 101OM)ll entre 1 0 1 1 ;b) OMXlllll entre 0011 (utilice un dividendo de acho bits),
Demuectre que al sumar B despus de la operacibn A + + 1 restablece e l valor origiinal de A. ~ Q u k debe hacerse con el acarreo final?

11

s o r qt$ debe s e rigual el signo del residuo al del dividendo, despuk de una d&$i6n? I , Disee un arregl~ mdtiplicador que funcione sobre dos nmeros de cuatro bh. Utice mmpuertas AND y sumadores binarios.

Muestre el groepa de multiplicacib paso por paso utilizando el algoritmo de Booth (como en la tabla 10-3) cuando se multiplican los siguientes nmeros binarios. Considere registras de Unco bits que contengan los nmeros con signo. En ambos casos, el multiplicando + 15.

M v e un aigaritmo en forma de diagrama de flujo para el mtodo de ,&vi$6n de b m a b de punto fijo sin mtablcimiento. Derive un alpritma para evaluar la raiz cuadrada de un n h e m binario de

punto Ej. Un numero b W o de punto flotante tiene siek bits para un exponente phrfiada. l a constante utihzida para polarkm es 64. a . tistelarrpresentacinpl~adetodoslw~tesde64a~. b . Demu&re que puede UWW un comparador de magnitud de s i * bits pmacompamb~tudrrlativade~dosexpmbes. c . fiemuestfe que, despus de la suma de dos exponente p h r k d a s , es necesario restar 64 para tener una suma de exponentes polarizados. d Demuestfe que, despuzs de la resta de dos exponentes polarizados, es necesario sumar 64 para tener una diferencia de exponentes polarizados. Derive un algoriimo en forma de diagrama de flujo para la comparacinde dqs niimera blnatim con signo, mando los nmeros negativos estiIn en repmentacin de complemento a 2 eon signo:

Wanb una

b . Al revisar y comparar para de bita de izquierda a derecha f 0-19. R e p i t a . s L p h 10-W para mhems bharidsde magnitud con signo. de bits de h m a n h e n un n h e m binario de punto 1 0 c m Sea n la ca~tldad Botank. Cuando sealinean bmdhwdurante la suma o mta, la difeiencia
,

a=

opnci6rrdE

aur n d d e mrnplemento a 2 mn

1 0 2 1 .

-J

4 10.Z r
10-23.

1024.

1 W .

d~tepuedeser~que~n~tl.S~6cutre&,hmtisaconel menor m reame p r Wpleta fuera del registro. Modilique el ~ ~ ~ den la +a e m 1 5 ~al incluir l un contador a secuen~ d S C q u e ~ b l a ~ & ~ b , C i e l n d m e m d e ~ b es mayor que n 1 . se usa e n & nmero ms grande para determuiar el &tsdo. E l ' t o para a h a u mantisasdurantela suma o r d a de ni5meroa d e s i t e ppe+de&qne 4. i a manga siguienk m h r rl expo nente ms ppeio d d mayor y r a la derecha fa m t k que tiene d -te ms peq.&rrna eantiddd de lugares igual a la d i h e d a entre ios exponente. E it e de h su& (o d b c i a ) a igual a las e x p m t e m8s @ e s . Sin utllinrat un 5 h m d o r de magnitud, e d e r a n d o eqm~entes pdiarizadas y tomando mi cuenta que % l o puede recorreme AC, derive un algoritmo en brma de diagtama de flujo para alirbeat las m a n h y colel exponente mayor enLel AC. Demucsire que no puede haber uh sobreflujo de mantisa despus de una * & n de mthltipbcin 4 Demueahk que Ia divisibn de dos-nthefosnormakmdos de punto flotante con manSeas b a c t h a g siempre d e como multado un &te normalizado, d * y mando & m d k un alineamiento del dividendo antes de i a o p m d h de divid& I I Atriplik e1 diad i flujo de la figura 10-17 para pmporeionar un resid20 d e l otante normaliic el AC. La mantisa debe ser una fraccin ' i u s aipritmos a las *apaeigtbes'aride punto flotante m la '-im 1W no la @Ididid de sobreflujo o sobreflujo inverm del'expmte. r Rivlr km ires dhgqpiw de f l " p y m n h . dnde puede muL un mb.n&ujo de explente. b . '"pp~apdp6&flrq'p del 8ugokivdeapmehtesi el es ms negativo que el nhnem m g r s ' m u e A a que puede alojanse en ei registro. E ~ e o q i o ~ ~ ~ k h a g d w a r e u n ~ u j o o u d u j o inverr#,deteqmmtp. S i u p i a de m m i l a mmtisa de d m a m de p b= ., p r o b e l m a s J e & b h iriL.dupanbe ia d t i p , y h dhhibit ! k i la cantidad de bits en la parte de mapitudde k mantupa (n - 1 ) . Para w h c @ de e n t m a &mws& que sise utiiii m de p d i n bnica, (n -1) debe sumarse al pradwbde qwmk en el AC.

'Exz

. ..b . .Demu&re
-.
10-27.

bniea, (n . bom Q.

- 1) debe restaredJ dividendo de exponente cuando se . . -

que si se u t i i i a d v i d d de mantisa de precisibn

Muestrela d~~ d ~ ~ , e ~uiJ&rnfl~j~.

que seva 9 a W p r a l a - h i w y r e s t a de dos Nmeros n ~ ~magnibddeon t a ~ ddp .e Indiquecomo w detecta

10-28. 'Demuesireque 673 &5 pude calcularse al sumar 673 al complemento a U3de 356 y-de-mr elatafteu~fd. Dibuje el diagrama de bloques 1, . de una: unidad1 ari,h&ica &ecimakd&tres etapas y muestre e6mo se . +,implantaestaoperakih, biste MOS les bits de entrada y de salida de la
n

unidad, '
&muestre que el sumador bit&;

? ,

II

&o

... ..

de cuatm bits inferior de la figura 10-1 puede suatituirse con m d d o r completo y0d&semisumadores. . 1WU. UtilPzando biw & d i & ciicuitk combicionales, derive las hui. ,,. ; cfo* b o o f F~ a ~el com$lem&nta:dora 9 BCD de la figura 10-19. Dibuje ei d*a& 1'6gim. -i Uldl?. Es wesario diseiiar un oumadbr para dos digitos decimales reprei cdigo de e ~ r tres , (tabla 3-6). Demuestre que la correcseytso& a . .. ci6v desp* d dos dfgim eoq un sumador bimrio de cuatro bits es oomp sigue: a. wmw de wlida es igriaI d -a sin carregir. b . Si el acarreo de saW = 1 , summ W 1 1 . c 3 el acarreode q d a =+O, p r 1107 e i p p y el acarreo de gsta suma. Detnuestreqe el &dor de exceso t mp i d e constniime eon 7 suma-u\ ' dores mf"ip1ebs y dos @ve&#, . . 10.32 M v e el circuitop a w w eornplementador a 9 cuando los d @ hd-es . seq?-tan w c&hgo ,sle m.(tabb Una entrada de mntrol de ~ q de p $se ~ pel dgito o no. l Cules Ia ~ ventaja de~ ud&r k t e z e i lugar de BCD?
10-29.
b

8 . .

2 % .

M g W 4 ,c@$perlg que se utlza para la sumq y resta de dos nilimeros d w 4 -?negativ~ en .repmmtaan de complemento a 10
Idique cdmo se ,&tech un .mbrdujo. Derive al algoritmo del diigraqa de Aujo y prueix unos n&em para a v e m e m e que el algorihno

' c o i signo.

p d u & d t a d a s mrredd
'I

.'.l.?

&hwb $~wf$$do *,km rrgiahosy4, B, Q y SC durante i a multiplipd6n y b) 999 X 199. Considere regisim de , . . dslelplal (+a 10-22) de: a)+X 4 como el rnuitiplicador. , * t q y tome~l :iWS, Mue&rBd -contenido de lm A, E, Q y SC durante la divisibn decimal (figum'i-23)de 36W/32. C o m h registrae de dos dlgib, '.lWr'bue$trequed ~ ~ b A;;Wia"Ea'gura ~ t m 1O 2 1es cero al final de: a) la khkipUahdermia1, t d g k &pifia en la figura 10-22 y b ) la divisibn ~~;~ se en l a ff&ua;lC)-23. a W t i n 0 8 aritm&& 8e iunto flotante en l a &10-5 de 1 . ~mE;ie'ios ' . .dabsbim&sa M&. En me I a , lisie ebmo d& interpretarse d a dnhlo d e n n i ~ a d h .
1

l. Blaauw, G,-1 Systemii IrnpiemntaFion. Englewwd mi, NJ:Prentie Ha11,1976. 2. Cavanagh, J. J. F . , Digiftzl Gwpfer Arithmetif. Nueva York: MeGraw-Hili, 1 M 3. Hamacher, V. C., Z. G. Vranesic, y S. G. Zaky, C m p t e r Organiuition, 3a. Ed. Nueva Ywk McGraw-Hiii, 1990. 4. Hap, J. F . , CompirterArchi&re ami Organiration, 2a. Ed.Nuwa York McGraw-Mil,
1 m ,

4. Hill, F.J., y G :R Petemn, Digiktl Systm: rlrduwire Orgmtlzntion and h i g n , 3a Ed. Nueva York JohnWiley, 1987. 6. Hwang. K . ,Computer Atr'thmetk. Nuwa York JohnWiiey, 1979. 7. Kuliiih, V. W., y W.L.Miranicer, Cmpukr Afifkmdic in Thmy and Practice. Nueva York: Aeademic Prws, 1980. 8. Schrnid, H . , Decimal Arithmetic. Nueva York: John W i ,1979.

EN WTE CARfTUW

tivo vos
I n e e e de
rrqf&ia

w&na

de datos

M d w d e framkml&
~

~ d interrup&n~. d e 1 A--diiammh @M) P-dor de dtr'ada4ida @ O P )


d d i ' ; i 6 n d

'

.c

-m
m

B1. subditema de entrada-salida de una computadora; denominado B/S, p~oporcim u n - d o de comiinxcacifi eficiente && el sistema central y el mbhte extemo. i m pmgtamas' gr datos debren introducirse a la memoria de Ir .computadora para su p ~ ~ ty he o miiltados " que se obtienen de los C~ICUIDS hben grabarse o q$trarse.para el ushrio. Una computadora mb Gene n3nigiui pm$slto sin k capacidad de recibir informaci6n de urm fuente exPwna y d& h&& b multados de manera r~mprensibl~ medio m& familiar de introdtikir'ihfoima~nkn una computadora ' .es a travs de un Wiado tipo mquh' ' & &tr, que permite a una p w m htrodudr uifo&8ti dhTidrice en fomh direda Cada v a que se oprime una l a , i a tie4nihd enva un c d c t w cudificado en binario a la computadora; Xn veIoeiW ms alta pibb pah ihtroducir informaEi'6 de esta depende de kvelmidad para elear de una pwsona. Por otra p r & ila-un&d , & e p ~ ~ e n t o ~ c e n ta ra uri l dispositivo extremadamente 1 ' fp& capaz c k ejecut2u.*.operacidma muy alta Velocidad. Cuando se handeie;a-un plocesador h f o r m c i h de enhada mediante un tedado lento,

la,mayor park 44.,t-p, mientras espera que el pps+40r~~estwd iiegue la iromiacidn. &ka uq,*r una computadora de manera eficiente, deben p m a r a M con ariWpaeibn u n ag , r w,cantidad de programas y datm, y deben ha*-rse a m& de almacenamiento como discm o cintas .&gn~'ess.., fa Wormaci del . d i & se .@aqsfieredespus a L a memoria de la ''c~mph&i@d Bg L a r ve i W d , k s resul@dusde los programas tarnbikn .@ de Ata v~IorT.dad, como discos, ddesde los se h a n i * 8, m mates + 'd * ! t l : = tsrde, a una impresora para proporcionar ypa d i d a inprqu&, %B .resulbdos. -Ia. dispmitivbi que estn bq<> co~tml directo de la computadora e s t h conectadoe en linea. Estos dispositivos estn diseados para leer hformaci6n hacia adentro o afuera de la unidad de memoria a n t e un comando de la C m y; sie r o ~ ~ W a ' q u son e parte del sistema total de la computadora. Los dispositivos de entrada o saIida conectados a la computadora tambi4n

'

el

llaman &@Qs.~ Entre i a ~ ~ ~ m8s M comunesS =tAn los teclados, los mo~@~res .y i m p q r a s . LOBperif&cw que proporcionan a h c e n a miento &liar paia el Usiema p? cintas y discos magn&ticos. Los perifri'cm six dihpz1sitivirs efectromecAnico$ y eleetromagn&ticosde cierta comple jidad. A q f se , ~ & i o n a T un 6 breve anlisis de su funcionamiento, sin entrw:en d-lles de BU con$thicci&ninterna. Los rqpnjtores d e , video son los p e r i M h de uso mds comn. Consismonitor y kclado , Fn q un Wla* como clisposivo de entrada y una panfalla como dispositivo de &da.'&y diferentes tipos de mo~tores de video, pero los ms populares'titW8-un 'tubo de rayos catdicos (CRT).E l CRT contiene un caiin electFdnico que enva un haz de electrones a una pantalla fosforescente al frente del tubo, El haz puede desviarse en forma horizontal y vertical, Para producir un patr611en l a pantalla, una rejilla dentro del CRT recibe un voltaje variable que hace ,q9eIeJ.M mtziem ,con la pantalla y la haga brillar en punm ~ l e c c i o ~ d o Las s . -le6 ' h o m n t a k y verticales desvW e 1 3 b a y:l o ham,bmer por el tub,.dmcien& que aparezca en la pantqiIa ,h. p~tr6n viswb, ,Una .mrwteds@ ,de. b. -pitores es un cursar qye marca la~ ~ m,que,6 insertad n el siguiente'carcter en la pantalla. . -. .& c;upr: puede w v ,a cualquier pwki5n en la pantalla, sobre un , earfickr ni~%~wia palabrq o, cci+quier linea, h s &ha de edicibn agregan ,, , o , l q r a n h$ocacir). w n base en la p i c h del.mmor. El monitor puede .,, opesjtr en b q de 8q&jez, *o, .& donde todos-b r c a r a c m inhoduci, 11, dw la pvtj!k a ,hv$s del t e e W : = t r w t a la mputadora m ,simuWm. En ql- gpod~ !deb w e , .el .text~editado se almacena , . for;m~. W,UIM memoria ! Mdmtw de.h Wrmbal, E i texto se transfiere a , -. b ~ , m p t a & r acomo8 .bloqpe de h ib$?m~w P M P D * ~ Un w @ o ~ p -k f e , e l papel de. =@dada de la.-~ynpu:kd~~a.. Ha y tres tipos b 8 ~ h ~ d i 1~ daw, 4. d .. , d e , i m m a s d&qwac&m: de mawb, de matriz.de puntos y laser. La , +$npmorade rnargada,pntie*neu n ' d h a cqm 1 - .carmkres colocadas en la o .- w . de @ circunferm&..A~ ;Tnpr;Mir ,mcacarA~brC l a meda gira a la posici6n
se
!m
m

.-

' &.
*

cinta ~qagriticq

disco magnhtiw

L.

zippiada y-dmpukuh imn, al que =-aplica itna corriente, la oprime - contra la cWa:Le de matrhlde puntos &tiene un conjunto de puntos n lo:largo del de+lmpM6m,Por ejempIo, una impresora de matriz de S X 7 puntos que imprime 80 caracteres por lnea tiene varias lineas horizontales y cada una consta de 5 X 80 = 4(30 puntos. Cada punto pude impon & ; depndiertdo de los mm&r&especificos que es& impresos en la liea. hhptewra hser utiliza'un tanibor fotogrbfico rotatorio que se emplea para-imprimir las-imgenes de caracteres. Despuk, el patrn se 'transfiere sobre el papel i p l que en una mquina copiadora. &as cintas tnagn&cq,w utilizan principalmente para almacenar archivos he datos: por ejemplo, el registro de l a n6mina de una compania. El accew es secuencigd y consta de registros que pueden accesarse uno despuks de otro, confonne Ia cinta. m u m 8 a 1 0 largo de un mecanismo esfaciomio de lectura-emiturd. Es und de Id rn6todoa :ms baratos y lentos para . almacenar y' tiene k ventaja de que las ~intas pueden quitarse cuando no se usan: 'Las discos magn&tic& t i & siiperficies 'rotatorias de alta velocidad, !con u b cubierta de material ma@tico. El a c h se consigue al mover un - mecanismo ae lecturassc@ura sobre una pis'h en la superficie magnetizada. Sobre todo, los d i se tiM,jzan para el almacenamiento de grandes cantidad* de programas y datqe. Las cintas y discos se anaIizan mrs adelante en la wcibri 12-1, juntb mn su como memoria auxiliar. Otros dispositivos de entrada y 'salida que se ennientran en sistemas de computadora son los gmikadores digitah, los lectores de caracteres ptima y mapdticos, los canvertidones analgicos-digitales y equipo diverso de adpuisici6n de datas. Na?odas las e n t r a b provienen de pemnas y no todas das salidas estn dirigidas a eiias. Las computadoras se utilizan para controlar varios p m s en tiempo real, como provisidn de partes de mquinas, procediientas de ensamblado en Wea y p m s quimieo~ e Xnduatriales. Para tales aplicaciones, d& proporcionarse un m h d o para captar las condkiofies de estado del proceso y enviar Males de control al procesa , que se coptroIe. La oqy$mcin de entrada-salida una computadora es una W 6 n del tamao, de la computadora',yde los dispitivos conectados a eiia. I a difepciadenfre un sistema cande y peque@ depende en gran parte de la qantidad de b i t e r a que tiene &pqn$k l+twmputadora para comunicarp e con unmdes periMcas y la ca~kidad~de Nfricos conectados al sistema. Como cada perifrico se comporta eri forma d i h a t e de los dems, seria ~mkibitiva entrar en detalles de h a htconexiones necesaFias entre la computadora y 'cada perifkrico. En este capiSu10 be presentan ciertas M c a s comunes ,arb mayora de los p e r ~ ~ ~
S
"

Caractexes alfariumricos ASCW L . & dispgtivtw de entrada y salida que comunican con las personas y la
computadora, por l o general s e relacionan con l a transferencia de informa-

~idn alfanumrica hacia y desde e1 dispitivo y la computadora. El &digo ario eatirrdar para los mractems &ar~um&icos es el ASCiI por sus siglas en ingls (leneriEan Sandsld Codefor Informafion Jnterchnge, C M i o Estannr-,r~i'..ii.h-!~nir!
m .

.-

....

, h s . ~ ) n -ri. ~ . . . . . , .: . -,i io de.i&rmacin (American Standar


Y

SQH
S'IX

ETX
OlOO .

DC2 DC3.

. '
N

1 -

A
II

' Q a
.

,
4

q r

m!
ir=.

EOT

n C 4

01.01
0110 O111 iOoQ

ENQ
ACK

NAK.
SYN
'CAN

S &
'
1

T
'

c S dhw t e U

f
X J
j

v
w

BEL

rn
IW
FS
SUB

101
1010
~11001

LF
FF S I

E;; a

*
GS

i
.

Y
z

,I

SO

.m

Rs

*,y% - < =
!
'.
S

K
L

I \
*'*A
l -

k
1

{
I

+.
, /

-3

M
'

N
O

m n
O

' 1

DEL

'. . l
1

f,?

'1
I

./
I1

DLE DCI

l.

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

..

'
>

'-SP -

Aimentacibn de forma FS Retornodecarro G S Teda de maykuhs oprimida RS T & de m a m s sin oprhIrUS Espacio DEL -. . ..

Sustttuto 4bpe

sep&dor de archivo Separador de grupo ,,: Separador de mgistm


de unidad " ' Separador l y h r

SECCI~N 11-2

Interface de entrada-salida

411

byte

dar Norteamericano para Intercambio de Informacin). Utiliza siete bits para codificar 128 caracteres como se muestra en la tabla 1 1 1 . Los siete bits del cdigo se representan mediante bl a b7, donde b7 es el bit ms significativo. Por ejemplo, la letra A se representa en ASCII como 1000001 (columna 100, rengln 0001). El cdigo ASCII contiene 94 caracteres que pueden imprimirse y 34 caracteres que no se imprimen y que se utilizan para diversas funciones de control. Los caracteres imprimibles consisten en 26 letras maysculas de la A a la Z; 26 letras minsculas; los 10 nmeros del O al 9, y 32 caracteres , *, y $. especiales como % Los 34 caracteres de control se representan en la tabla ACCII con nombres abreviados. Se listan de nuevo debajo de la tabla con sus nombres funcionales. Los caracteres de control se utilizan para direccionar datos y formar el texto impreso en un formato preestablecidu. Existen tres tipos de caracteres de control: afectadores de formato, separadores de informacin y caracteres de control de informacin. Los afectadores de formato son caracteres que controlan la distribucin de la impresin. Incluye los controles de mquina de escribir comn, como retroceso (backspace, BS), tabulacin horizontal (horizontal tabulation, HT)y retorno de carro (cawiage return, CR). Los separadores de informacin se utilizan para separar los datos, en divisiones como prrafos y pginas. Incluyen caracteres como separador de registro (record separator, RS) y separador de archivo @le separator, FS). Los caracteres de control de comunicacin son tiles durante la transmisin de texto entre terminales remotas. Algunos ejemplos de caracteres de control f text, STX) y fin de texto (end o f text, ETX), los son inicio cte texto (start o cuales se utilizan para enmarcar un mensaje de texto cuando se transmite por un medio de comunicacin. El ASCII es un cdigo de 7 bits, pero la mayora de las computadoras manipula una cantidad de 8 bits como una unidad nica llamada byte. Por lo tanto, con mucha frecuencia, los caracteres ACCII se almacenan uno por byte. El bit extra en ocasiones se utiliza para otros propsitos, dependiendo de la aplicacin. Por ejemplo, algunas impresoras reconocen los caracteres AXII de 8 bits cuando el bit ms significativo se desactiva en O. Los 128 caracteres adicionales de 8 bits con el bit m6s significativo activado en 1 se . utilizan para otros smbolos, como el alfabeto griego o una fuente de tipo cursivo. Cuando se utiliza en la comunicacin de datas, puede emplearse el octavo bit para indicar la paridad del carcter del cdigo binarie

11-2

Interface de entrada-salida

La interface de entrada-salida proporciona un mtodo para transferir informacin entre dispositivos de almacenamiento interno y de E/S externas. Los perifricos conectados a una computadora necesitan enlace de comunicacin especial para funcionar como una interface con la unidad de procesamiento central. El propsito del enlace de comunicacin es resolver las diferencias

la computadora central y ,cada perifrico. Las diferencia5 qua existen principales mn. ., .,
r

Q m .
1

. '..

',

1 . TAXI @-.sun dkpilifok ehtmmecnicas y debromagnticos ysu manera de 6peraei@i7es dikmt~te a la de la CPU y la memoria, @e mn dispwitivm.elethdnicos: Rax- lo tantoI8puede querirse una m d 6 n ~ d e . ~ b r e w ~ d e s e f & h + -, - 2 La *iddad de & a d e & x h de datos e los perifdricos, por l o general, es menor que l vel~dad de-tramferemia de la CFU y, en .', -e puede . f i d t a r & m meranlsmo de sincronizaci6n. 3. W &dip:de daW y 10s hmmtod en las pWirQ.icos son diferentes , - .,del fmrh-de la :paIabfaleila &U y en la inemoria. 4 k Las mods de opacin de tos peiWddo&hn diferentes uno de otro y cada ttno~d& estar ^confro~o para i i b 'perturbar La operacin de otros p e f i M m oaktadi a la C m .
+
l.-,

n'

l..

-11

.I
a

..

. irate*

,
n

-1.

,,

2 Para resorver estas diferendas, loi s@hnas de'tomputadara incluyen componentes &e dimitera' e$&dea erifre h 'EPU los peri@ricos para supemisaz y ~ & u ~ ~ n t d ha r~ las trdr&cias Tdemtrada y salida. Estos comp~nwit&~~&:llanian nrlefam, porque :&-'comufcantanto con el canal del presador roxrnarcm kl diqmsit9Vo pBrico.( ' ' . Adedm ~e a d a 2 dispsitivo puede tener su propio controlador que aup e h las apaci~nes del rne&iisrno paizimlar en*& pifrico,

' '

',L.

,
,.+! , ,
,
i :

.- .

Canal de EIS y mdulos de interface .. ~r Un enlace d e ~ r ~ d c a c i 6 n M t ritre p h el 'prceesadory varios perifrico8 s e <muepth m la figura 11-1t E i canal,de E/Si :conha de,h e a s de datos, beas
S

; &.

.-:

'.;l,

..
- 0 .

,
i

,
*

L ,-a! l .
.
J

'.

--., .r,-l,

fii~& li-1 ~'C&h&


n

,-lL!*;

&e +g. de $/S a d ; ~ ~ i b'.. ' v de o gentrada-aalida. , ,


ii
i

Iiah
I

DimCih Control

'

9TI*
e

coinando de US
# S

de direcci6n y lfneas de contrd Se emplean eldisco mgndtieo, la impresora y la krminali&ea& cualquier computadora de p r e i t o general. La cinta ma@th uUsa en algumas computadoras~para e l almacenamiento de zespaldos; Cada dispmitivo p&iw tieaie~asociada-urna unidad de interface. Cada hterfare deoodifca h ~ ~el mntkol , que ae mg i b e del canai de E/$ y las. bterpreta paria e l .perifricoy prop~rciwia sdales pata el conhdor del ,perifrico,. ,TambiBn sincrDniza el flujo de datos y .lsupervim la transfewck entre.d p e d r b y el pmtesador. Cada perifrico tiene su pmPi~.wntm~dor que opera el djs~ositiviodectmmecanico particular. Por ejmpl~, el ~1~ntro1ad.o~ de irn-ra w hace carpdel movimiento de papel, la-tenm~rizaci6n de l a impresi6n y h seleccib de los caracteres que se imprimen. Un controlador puede alojarse en forrna separada o puede integrarse ffsicamente con el perifrico. El canal de E/S del prwesador se conecta a todas las interfaees del perifrico. Para comunicar~e+wn iui. disposiiko particular, el procesador mIwa una d h d 6 n da dispositivo en E s - h s& hionarniento. Cada . Uriea wnectada al canal de WS contiene un decdidkerdor de direecibn que monitorea ias.&eas ,de& m i o m i e n t o . ~ Cuando la interface detecta BU propia direccib, activa B2L. trayectoria entre las ,lneas del canal y e l dispositivo que controla. Todois los perifdricos c u y a s - k i o n e s no corresponden a la direccibn en el canai, son inhabilitados por su interface. Al W m a tiempo que queda &pmible la Ldirefci6n en las h a s de . dimxionamiento, el procesador propordona ,un c6digo de funci6n en ias neas de control. .LaLite&ce ~ h i o n a d a responde al cdigo de funcin y avanza a ejecutarlo. E l c6digo db W a ' e ,denomina un comando de E/S y es, ,en m c i a , una, htrueci6n que .w ejecuta m i a interface y estb conectada a la unidad perifrica. La intwpmtacibn del comando depende del perifriio que d i d o n a el prwesador. Una i n t e r f e puede recibir cuatro tipos de.,comand* ,Se clasificgn como contml, estado, salida de datos y

conundo @ ssitro
.,

1
( : +

,
1~

es

datos de salirfa

entrada de datos, . .Se emite w mmndo & . e 1 para aCtiv+r*,d perifrico e informarle que hacq? Pon rjempla l a unidad de a t a q g n C t i w puede instruirse para que w a m c la un registro, -a que.= rebobine o para que empiece a moverse: hacia adelanh E l :~omamdo de control particular que se emite d p & .del,perifkriw y ,cada psrifQlco :redi< su propia secuencia distin#a,de comandos d. eonhi, dependiendo de su modo de operacin. Se .utiliza un ~ ~ i c r ~ de d esfado o para p h r divwsas condiciones de *do en la jntmfwe y un pevi~Bco.-l?ok ejmpio, m posible que La eomputadqra quiera coqvobar el, etado dd p&rico antes:de que se inicie una transfeeenrk D ~ b x t S e : h , ~ pueden ~ i a , mmir uno o m68 errores que detecta la Interface. Estos m r e s se representan al activar bib en un +tro de estado que el procesador pueda leer en ciertos inktv&s. Un :GBM& de salida I &&S hace que la jntmace mpmcia transfiriendo &@S dei m a l a uno de sus ~ i s t r o s . ~ C o un ~ ejemplo o s con una unidad de cisW La computadora c c m k m a mwer la cinta al emitir

c m

zw

e l p h d o r monitomi el estado de la anta ingdtnk un ~ d o O d stda c Cuandoila dnta s t si k poski6n mrrectr. el pr~cesador en* ua mqmdmde salida de daba ia interface responde a Agll la direcd6m y al comando y+kansfiere ia ialomaci6n de las lineas de datos .del canal. a su W t r o intermedio' fbuffer), ]En seguida, )la interface comunica con e l controlador de la a t a y envfa b. d a b que se van a almacenar. ' e de & n h & - . E l cbthnth de mhdn de &os es lo bpuesto al dk salida de datos. En -este casa Ia Interface redbe datos del pedrico y los :coloca en su registro intermido..El ~xucwadar vedbs i las &tos disponibles mediante un lrorrmaru$ode estados y despus envh un m a n d a de entrada de datos. La inkface coloca dos datos sobre las beas de datos, donde el procesador Ios

un ammdo de mtroL Desp&,

..

1 .A

canal de memoria Mems de+comuniaarse con .su espacio de E/S,:el pmesadoc debe comucon la unidad de+memoria. Comd .d canal de E/S, el canal de memoria contime datos, direeeiorm y Ifnea8 de control de lectura/escritura. Existen m m e r a s que pueden dlizar los canales de la computadora para m u n i e a r s e con la memo* y las B/S:
'
'1
U

HS ve-

. _ .

1 . U U h r dm canales separadas, wo para la memoria y el o b para las Ef3. & U r un canal comn pah memoria y E/C pero tener h e a s de control separadh~ para cada u&; 3. Utiliear un canal comn para memorWy E/S con Uneae de control c o m w e s .
m

r a

.
1

En el prima mdtodo, la c o r n p u l d ~ Ziene ~ conjuntm de canales de datus, de control y de direcciones indpendientes, tu10 para accesar la memoria.y e l ot> para las EfS. Esto se hace eili mputadoras' qiie dr&rui, m m p w d o r de- l3/S separado (ID promsorr IUP) ademds de la , d a d .de procesamS~nb central &lW). ntetnotia'se comunica con la B U y el NOPl por; FM&O de un car(al de memoria. El IOP se comunica tambin min 1 - dipidvw & enataa y silida m e d i t e un canal de E/S separado, msus &edsR&, &-'y beas de &iiYtril. E l p+ib del IOP es pqomionar una aqector$ inidepndbnte.para la transferencia de h h r 0 %

I,

: .

rmsteidn -ea& &positivas externos y 'Ea memoria interna. El prowsador de E / & l a a* masionei3 s e denomina a a d de t i & & . En la seccibn 11-7 -anahmo8 con m a p r detalle lav h u O n del IOP.
'

2
i

..

- HS aisiada,wemus E%S mapeada en memoria

T I '

xi

Abhas &mputado~. u * un canal. comdn para hnsferir hfomaci6n entre la m&oria Q rlre EX9 y la rCPU. h~difer&>iaentre una tramfemncia

de d M 6 n n &pafa palabra de memoria wpara un registro de interface al,haMat una o dos meas posibies de ,leetyra o esmituia. las lneas de control Mwu y E/S whsm se habitaii(durailteuna transferada de E/S. Las lneas de control de lectura de m & y E S U ~ ~ U M memurh ' ~ ~ so habilitan 'durmte ' m transferencia a meididria. Esta corifiguraci6n aisla todas las direcciones de interface de E/S de las direcciones asignadas a memoria y se denomina mtodo de E/S aislada para asignar direcciones en un canal comn. EIS aislada En Ia configuraci6n E/S a&&, la C m tiene ' h h c c i o n e s distintas de entrada .y saW, y cada iina de estas instmccione s e asocia con la direccidn de un registro de interface. Cuando la CPU reciipera y decodifica e1 caigo de operacidn de una instniccidn de entrada-salida, coloca la direccin asociada con la ,instruccin dentro de las Uneas de direccin comunes. Al mismo tiempo, habilita Ia lfnea de control de lectura de E/S @ara entrada) o de qxritura de E/S (para salida). Esto informa a los componentes externos conectad~s al canal comdn que h direcci6n en las i s de direccin es para - un registro de interface y n b para una palabra de memoria. Por otra parte, cuando la CPU recupera una instrucci6n o i d operando de la memoria, coloca la d c i 6 n de memoria en las lfneas de direccidn y habilita la lnea de ccm-tro1 de iectura de memoria o de escritura de memoria. Esto informa a I*. mmpentes externos que la direccibn es para una palabra de memoria y no-para una interface de E/S. El mgtodo E/S aislada separa memoria p la6 drrecciones de E/S para que 10s valores de h direccin de memoria no se afecten con la asignacin de dirmciones de interface, porque cada q, tiene su propio espacio de , direccionamientb. 'La otra 'alternativa e s utilizar el mismo espacio de direcdonimiento para 'memo&' y E/S. Este es d caso de las computadoras que emplean 6610 un conjunto de SeAales de .lec@ra y escritura y no hacen diferencia entre direcciones de memoria y E.)s. Esta configuracih se denop & &e n h. memoria, La computadora trata a un registro de rnpeada & ~a - ,mina EJS m irt~kce como parte del sistema de memoria. Las direcciones asignadas para ntmwria registros de interface no pueden utilizarse para palabras de memoria, 10 cual ereduce el rango de direccioh de memoria disponible. En una organizacih da E/S mapeada en La memoria, no hay instrucciones especificas de entrada o salida. La CPU puede manipular datos de B/S que Siden en'+tras de_interface con la misma instruccih que se iaSiIii para. manipular palabras de memoria. Cada interface se organiza como un eoqjunto de registros qiie responden a peticiones de lechira y escritura en el +tia de diredonamiento normal. D e manera tpica, se reserva w w t o del e6paaio de diredunamiento total para registroe de interface pero, en general, se pueden coimar en cualquier direcci6n mientras no existe t i d i & .uiia pqiabra de m r i a que responda a L a misma d k c & ~ Las c~)rnputado~s~ con E/S mapeada en memoria pueden utilhr iristntccPo~ -de tipo meniork para accesar datos de E/S. Bsto permite a la
,
S

de memoria y una & a m h c i e de E/S se reconoce mediante h e a s de l&um y ewrihra szparadgs. L a CPU-espei:iicab si la direccin en las lineas

a*

r,:

computadora utilizar ias,q~ismas instmccionm para trsuisfererina ae entrada&la o para transferencia &m-oria. L a wmtaja .es que las instrucciones de q g a y a ~ ~ e n a n ) i e a t o , u ~ dpara a s - leer: y escribir en h memoria pueden, utilizarse para introducir y sacar datos de 1 - registros de E/S. En una computadorii tipicai hay mas instnicciones de referencia a memoria que . htru+ones de E/S. Con las E/S mapeadas en memoria todas las instruc, . cioqp.que hacen referencia a mem~ria tambidn e s # hdisponibles para E/S.

,
,

E'emplo de interface WS. J n eje(nplo ,deuna i n t e q h c e de B/S se muestre en forma de diagrama de


bionuF 9k figura 11-2.Consta de dos registros de datos Uamados puertos,

puedo d i EIS
,
,

.
m .

~ i ~ ui1-2 r i ' Ejernpl6 de unidad &e ln&&& de E/S.

Canal de datos
4

"

..

b i d -

'd'e'd

I
d .

'

pwmA

..
1:.

,
:
a

.
. .

. .

Ala CPiJ

.-.

~ E C ~ I ~ N - 1-Interface 1-2 de entradasalida

--L

un registro de control, un registro de estado, acopladores de canal y circuitos de temporizacin de control. La interface se comunica con la CPU mediante el calla1 de datos. Las entradas de seleccin de integrado y de seleccin de regisaro determinan l n a direccin asignada a la interface. Lectura de E/S y escritura de EkS son dos lneas de control que especifican una entrada o salida, respectivamente. Los cuatro registros comunican en forma directa con un dispositivo de E/S conectado a la interface. Los datos de E/S hacia y desde el diposibivo pueden transhime al puerto A o al puerto B. La interface puede operar con un dispositivo de salida, con un dispositivo de entrada o con un dispositivo que requkre tanto entradas como salidas. Si la interface est conectadh a una impresora, s610 sacar datos, y si da servicio a un lector de caracteres, slo introducir datos. Una unidad de disco magntico transfiere datos en ambas direcciones pero no al mismo tiempo, por lo que la interface puede utilizar lneas bidireccionales. Se pasa un comando a l dispositivo de EJS al enviar una palabra al registro apropiado de la interface. En un sistema como este, no se necesita el cdigo de funcin en el canal de B/S, porque el comando se enva al registro de control, la informacin de estado se recibe del registro de estado y los datos se transfieren hacia b s registros de los puertos A y 8.Por lo tanto, la transferencia de datos, el contkol y la informacin de estado se realizan siempre mediante el canal de datos comn. La diferencia entre datos, control o informacin de estado se determina del registro particdar de la interface con el que se comunica la CPU. El registro de control recibe informacin de control de la CPU. Al cargar los bits apropiados dentno del registro de control, la interface y el dispositivo de E/S conectados a ella pueden colocarse en diversos modos de operacin. Por ejemplo; el puerto A puede definirse como un puerto de entrada y el puerto B como un puerto de salida. Pueden darse instrucciones a una unidad de cinta magntica para que rebobine la cinta o para que se arranque con un movimiento hacia adelante. Los bits en el registro de estado se utilizan para condiciones de estado y para registrar errores que pueden ocurrir durante la transferencia de datos. Por ejemplo, un bit de estado puede indicar que el puerto A ha recibido un nuevo conjunto de datos del dispositivo de E/S. Otro bit del registro de estado puede indicar que ha ocurrido un error de paridad durante la transferencia. Los registros de la interface comunican con la CPU por medio del canal de datos bidireccional. El canal de direcciones selecciona la unidad de interface por medio de la entrada de seleccin de integrado y de las dos entradas de seleccin de registros. En forma externa, debe proporcionarse un circuito (por lo general un decodificdor) para detectar la direccin asignada a los registros de la interface. El circuito habilita la entrada de seleccin de integrado (chip select, CS) cuando se, selecciona la interface mediante el canal de direcciones. Las dos entradas de seleccin de registro RS1 y RSO, ppr lo general, se conectan a las dos lneas menos significativas del canal de direcciones. Estas dos entradas seleccionan uno de los cuatro registros en la

418

apfmm m c 6 O r g m i z d b de entrada-salida

interface, se@p se e s p d c a ,en l a tabla que acompaa al diagrama. El. cwtenido del regist~o. wlecckonado se traxlsfkre a la CPU mediante el canal de datos ,cuando se bahilih .lade M a r a de,.EiS. La CPU transfiere infmmaci6n tiinaria al =gis& seleccionado m d h k el cana1 de datos cuando la habsta la entrada E/S &!ma.

11-3. Tmkxencia asbcrona de datos


Las. opaciones i p m s en.un sistema digital se hcmnkin mediante pulsos de reloj pr(?~grcionados.por ~ ~ ~ -n. L o ~ s p u h de 1reloj se apkm a todos lca registros dentro de una unidad y todas las transferePias de datos entre +trog in-os en forma s h d n e a durante el han+ -'de un. pulso de relaje1designan dos unidades, por ejemplo la CPU y h i n k k de EjS, indwdientes una de la otrsi. S i los registros de la bjterface c o m p r h un reloj coma q n los .;registras de la CPU,,= dice que la tr+ & &re .las dos unidsh es sincrona. En la mayoria de los casos, la tmpo~eibn i n m 4 enJc3idairnidad ind-ente de l a otra, que en ese caso utiliza su pmpi~ m i 9 para sus registros intemm. En ese caso, se dice que las dos unidasqn ashcmms una. 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 ttamfereneia de dabs asnc~gna enbe dos unidades independientes requiere que se transmitan &lales de control. entre las unidades que se camunicgn para W c a r eJ momento en el cual se estan transmitiendo datos. pulso & kbilitacidn' Una manera de copepir esto es mediante un pulw de habilitacin ( e s b W i E a ) proporcionado , p r medio de una de-las unidades para indicar a la otra unidad &da tiene que ocurrir la trandamcia. Otro m W o muy gene-do es ac~mpafar cada conjunto de datos ,que se transfiere con una #Mde control que M i c a Ip pnpmcia de &tos en el canal. 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, Este tipo de acuqdo entre dos unidades independimks se conoce como r e m m ' m h t o rnwbo httdshsk;ng). Ei mtodo de pulso,.estrobosc6picoy 4 metudo de reconocimiento de transferencia de datos asineron~s no,se Iimitan a las transfemcias de E/S. D e hecho, 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 .que transmite como Is fuente, y la unidad que recibe cQmo el destino. k r ejemplo, la CPU es la unidad fuente durante una bderenciqdesalidao dee9PZhnayeslaunidadd&im duranteuna tmmk rieneia de entrada o de lwturq. Se acostumbra ~ p e d i c a r la transferencia yncrona m t dos ~ unidel4e~independientes mediante un diapama de temp~rhd6nque m u ~ t r a la rela~i6nde temporhacin que debe existir entre las +les: de qntroj y &s d a s (en lm canales. b, secuencia de control durante una transkmcia as-na depende de si la transferencia la inicia la &dad unidad destino,
l.

<

Control de habfitacihn E l mtodo de control de habilitacin (estroboscpico) de transferencia 'asincrona de datos emplea una lnea de control nica para temprizar cada transferencia. La unidad h t e o la. unidad destino pueden activar el pulso de habilitacibn. L a figura 11-3(a) muestra una transferencia iniciada por la fuente. El canal de dam lleva la informacin binaria de la unidad fuente a la unidad destino. D e manera tlpica, el canal tiene heas miiltiples para transferir un b p o palabra completos. E l estrobosmpio es una h e a hita que informa a la unidad destino cundo est disponible en e l canal una ppiabra de datos vAlida. Como 8e muestra en e l diagrama de temporizacibn de la figura 1 1 3 @ ) , primero la unidad fuente coloca los datos en el canal de daDespubs de mun 'b'teve retraso, para asegurar qui los datos se e s t a b b en un valor regular, h h e r r t e activa el pulso de habilitaci6n. L a infomci6n en el canal de datm y la sehl de habilitacin se quedan en estado activo durante un &di ki - . . . tiempo suficiente para permitir que la unidad destino z e c h los datos. Con frecuencia la unidad destino utiliza un flanco descendente del p u b de ih h'mb habilitacin para transmitir el contenida del canal de datos a sus regiairos JR , i ~ f r , ~ . t internos. La fuente quita los dakm del ranai en un breve periodo previo a la deshabilitaeibn del pulso de habitaei61~ En mlidad, la fuente no tiene que cambiar l a Inforrnacidn en el canal de da-, el W o de que la seiial de habilitacidn est ddab'itada indica que el canal de datos no contiene datos vbtliclos. Habr disponibles nuevos datos vdlidos a610 degpu6 de que se vuelva a habilitar el pulso de control de habiiitacih. La figura 114 nuestra una tcansfetkmcia de datos iniciada 'por la unidad destino. En este caso, la unidad destino activa d pulso de habilitacin, uifotmando a : la fuente que proporcione los datos. La unidad fuente
i r
F .

figura 1 1 4 Pulso de habiltadn iniciadopo* fuente &a

traqskmicia de datos.

h i u b . ; i i i d & iniciado m datino ;ara


, +

bansemcia de datos.
-

B..-L..-

!1 canal de datos. datos deben ser vAlid08 y permanecer ea el canal e l tiempo suficiente que k unidad destino ios acepte. Puede utiiiime otra vez e l flanco kendente del pulso de LabilitaciGn para activar un registro destino. Desl i a unidad destino habilita el pulso. La fuente quita los datos del canal espu& de un intervalo de ,tiempo muchas computadoras, el pulso de habilitacid controla en realihd medbntebpulsos-de reldj en b CPU. La CPU est siempre a cargo de os canales e i h m a a las unidadeslexkmas,c6mo transferir datos. Por &-m&jmPlo,e l pulso de habilibci6n de la f e a 113 debe ~ e una r s e M de . d montrol de escritura de memoria de la CPU a una unidad de memoria. h &%ente, en este caso la CPU, coloca una piabra en el canal y le informa a a unidad de memoria, la cual es el destino, que sta es una operacidn de a w i t u r a .De igual manera, e l pulso de habilitad611de la figura 11-4 puede ier una sefiaI de eontkol de lectura de memoria de la CPU a una unidad de nemoria. E l destino, la CPU, inici h operacibn de lectura para informar a !liga memoria, la m4 es la canal de da& La tramferema de = S i r a la que se acaba de describir. Por l o general, k transferencia de datos entre F a inrrface y un d+positivo @e E/S es controlada por un conjun&,. de lneas de recanocimiento mutuo. d

1 *S

a bu&

econ~cimiento+~K rrP del mktado bbilitacih es la unidad fuente que inicia la no m m a de saber si la unidad ha recibido en
,desventaja de que tramfemcia tiene destino realidad los datos que col& en el canal. D e igual manera, una unidad

la transferencia no puede saber si la unidad fuente ha colocado - & h k los datos en el canal. El mgtodo de reconocimiento mutu~~handshake), .pueIv- este problema al introducir una segunda seiIal de control prop~ona una respuesta a la unidad que inicia la conlml de dos lneai 131 principio bbtm del d b p d o de recondmhto mutuo de dos lneas de transferencia de da- es el siguiente. Una h e a de control estA en la misma dired6n que el flujo de datos en e l m a l , de la fuente al destino. La utiliza la unidad fuente para informar a la unidad destino si hay datos viilidos en d canal. WoWa m e s de, control est en la diceeeihn opuesta. La utiliza la unidad d & h o para irfoqar la fuenSes i puede aceptar datos. La secuencia de control durante la transferencia depende de la unidad que inicia la transferencia. . La fipra 11-5 muestra el pmcedhiento de transferencia de datos cuandolo'inicia la fuente. &E dos h a s de recanocimiento mutuo son &tos mlidos, ue p e r a l a unidad fuente y, &tos ncqtados, generada por la unidad estino.+EI diagrama de twipocizaci6n muestra el+intercambiode seales entre l a d o s .midade&la rwuencia de eventos listada en la parte (c) muestra los cuatro estados posibles que puede tener e1 sistema en cualquier momento. La uriidad fuente inicia la transferencia al colocar los datos en el canal y habilitar su mial de datos vlidos. La unidad destino activa la seal de dalos aceptados des@& de que acepta los datos del canal. En seguida, la unidad fuente deshabiiita su seiial de datos vblidos, la cual invalida las datos en e l canal, despus Ia wiidad destino deshabilita su seal de datos a c q ~ o y s el sistqa a su estado inicial. ia unidad fuente no envh lw datos siguientes hasta decpus que la unidad destino muestra su disponibilidad. para aceptar nuevos datos al dehabilitar su se-1 de datos acqofados.Este esguerq pemite ref%s& arbitrarios de un estado al siguiente y que cada unidad pes@sida apu propia vekidad de transferencia de datos. La v e i ~ d a d a e transferencia est determinada por la unidad d s lenta. La trhsferencia que utiliza lfneas dq reconocimiento mutuo iniciada por la unidad destino mudm en la figura 114. N6tese que el nombre de la sefial generada por la unidad destino s e ha cambiado a prepara& pura &os, con el fin de que refleje su nuevo significado. En este caso, la unidad hente n o 4 : b l l o c a datos en el canal hasta que recibe la &al preparada pira datos de la unidad destino. De ahi ert adelante,,el procedimiento de recow cimiento mutuo sigue el mismo patrdn que en el caso iniciado por la unidad fuente. N 6 t e que la secuencia de eventqs m ambos casos sera iddntica si ' brlsli&erd&05%~&ial &e &m& p*h1dnt9d como el komplemento de datos dmpfdbs. Ik liec* !a nica dif&cia en& la h&cia iniciada por la fuente y ia iriiciada par d dbtiii, @b9 'Ia el-6n de su estado inicial. E l qhema de d ~ & h i n t 6 ' m u t u opropqiona un alto grado de 'flex3bdi&d1:y &fiabilidad $orque' bl &r&o &be de una transferencia de datos' w bdsa & I , i aparticipacidn dctiva de ambas unidad- S i m a unidad & delectuo&, no &, mmP1etafr&'ia ,~msferench' de &tos. E l error puede detectarse' m d h k un m&&is& de ~hPO fmmmwido, que produce una
desha que inicie

~~.

---4

.1!

: L ) R !&ll4:it? ~

L.

-* tdl'
T

'

t#n,:,::,h:r,,rAA

-!.

~.l.lq$~
II

16,-~

l L b 1 4 t q , wk , ~ i j + - . I L / T ~ ~ I ~ : i a GP ,

f , j 3 ~ 2 : , : , 1 t , ~:J v fi-attc ,,d;r td,h,i f8, 5 A -.L ---, ~ ~ , t > , -.~:ir-p ~ , I j ~ t ~ r & ~ ~
3
I , I ~ , .

batosaceptadm

&

r k + q r , , , *S:

v,~:)!

~ r d !d,+iigib

IL.1
i

-iii.-h la 9 --.?#Av ~ p il 4
t .

iiii fiI

> L .
l

~ b p ~ ! f i ihi~q:, , I , ! 1-

.Ir,~tn-~ t - a iri 9 1 1 ~ t . (a)Dlrgnmakbloqm~!iy . * ++-

tdc

i.1 ~dofi't:,Jy,:r-.t. b r 1 . i

- -

'.

,*,i I :
4.-

L
!

L,f~m< ,r

,
1

,
4 . r ~

"

, ,

,l

t +

;id
1

,,la>

e 1 b-,,i

-'

.:IA, , - j a l b m , ( l t , t t - *
'
A

" " 6.

ui3di j l .*=a

r m d l Ir r r ,i 7 Figura 1 1 5
u:,,,:-a,fl:
..+.,.7!h

Tcnsk&a

iniaadapc kmkuiizando remnocimiento muhm.

. c , - t u ~ . n r i , , i :i l

t s a n s b c b de d a b p no se qompleta dentro de un tiempo paedebmhdo. La &l de h p o transcurrido se implanta mediante un reloj interno que inicia un tiempo de conteo cuando la unidad habilita una de sus e l e s d control de recon+knto, Si la seiIal de recormhiento mutuo que proviene del &kho no =ponde dentro de un cierto tiempo, l a unidad ednsidera que ha mrrido un error. La &tal de tiempo transcurrido puede utilizarse para interrumpir e l , p v d o ry, por lo tants, para ejecutar una rutina de que realice una accin de recypacin de econveriente.

Lrn

m '

)LEC &.SIa!

'm

F i

a
J

~ l b S P s f e F e t l & a s ~ d e d a a o s4 E 3

S;

-29

,a

:IFrTd!I
i
-a

'
r

g IiP

3 Wgmm de bloque
I I .

qdl
.
3 1

Canal de data

'
L .

.-

Canal de da' - 5) diagrsma de tem-

1
1

x136irw
Unldaad&
,m I

iRrR

tu

Unldad fuente

CbhrdabaCwaL
Hab&lar&hdl&3,

Acepku datm de c w l . DeshaWtar


Livdhr'datw m osrnd ( 6 Wl).

c) ~eaienci de eventm

Deehabilitat&m d i & .

Figura 114 TrmimrKh iniciada pS* destino u t i M o m z o n d e n i o mutuo.

Transferencia seriJ asinaona


. - .
La m h c i a de datos entre &S unidades puede hacerse en fomia paraJela o serial: En la transmisidn de datos paralela, cada bit en el mensaje tiene $u prkpia trayectoria y todo el merwaje se transmite al mismo tip'o. Esto' d@&i qu uii mensaje de n bi5 debe transmitirse a travk de n trayectorias conductoras separadas. En la transferencia de datos serial cada bit en el mensaje- se envla en secuencia uno a la vez. Este mtodo requiere el uso de un par de conductores o un conductor y una

asinnvma

bit de inicio

,Ir

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

Al usar estas reglas, el receptor puede detectar el bit de inicio mando la Enea pasa de 1 a O. Un reloj en el receptor examina la lnea en los tiempos de bit dnwnientes. El receptor conoce la velocidad de transferencia de los bits y la cantidad de bits de carackm que debe aceptar. Despus de que se trmsmiten los bita de' caracteres, se.enmn un6 o dbs bits de paro. Los bib bit de prim de paro &@n siempre en el estado 1 y marcan el fin del cara* para dar a entender el estado desocupado o de espera. Al final del catacter, la h e a ae conserva en el estado 1 por un perodo de al menw uno o dos tiempo8 correspondientes a un bit, para que el transmiso~ ye l ~ q t o puedan r volverse a sincronizar. El tiempo que la linea permanece en este estado depende de l a cantiad de tiempo requerida por el equipo para volve& a sincronizar. ~igunas terminal- elechmnecAnicas antiguas utxlizan dos bits de paro, pero las temnales ms nuevas utilizan s l o un bit. La k e a permanece en el estado 1 hasta que se transmite otro carcter; i3l & m p de paro awgura que no Ilegarb un carActer nuwo durante uno o das 1 i e . m ~ de ~bit. Como ejemplo, consideremos la transmisin aerial de una terminal cuya velocidad de transfekcb es de 10 caracteres .par segundo. Cada caracter transmitido coqsta de un bit de inicio, Dcho bits de informaci6r1,y dos bits de paro,,para total de 11 bits. 10 caracteres por segundo significan que cada carActer n w i & 0.1s para la transferencia. Como se van a transmitir 11 velocidad en b d i o s bibt se s a k que el .tiempo para un bit ea 9.09 m s . La velocidad m bnudios se define como la velocidad a la cual se transmite informacih serial y es equivalente a la transfemcibS de datos en bits por segundo. Diez caracteres por segundo con un formato'de 11 bits tiene una velocidad de transferencia de 110 ba'ltdiw ta ferminal tiene un teclado +y una impresora. Cada vez que se una teclaAuna terminal mva 11 b i t a en forma serial a lo largo de una lnea. Para imprimir un carcter en la impresora, d e k recibirse un mensaje de 11 Mts a travs de otra lnea. La interface de Ia terminal consta de un trzmmbr y un receptor. El transmisor acepta un caracter de 8 bits de la computadora y p d e a enviar un mensaje serial de 11 bits a travs de la lInea de la im~resora. E1 meptor acepta el mensaje &al de 11 bits de Ia lhea del @lado e introduce 4 &digo de c-+ter de 8 bits dentro de la computadora. B t n disponibles circuitos integrados diseiiados en forma q x c f i c a para proporcionar la interface entre la computadora y terminales interactivos similares. Tal circuito wdmomuia una i&bw@e de comunicacidn a s f m a reaptmdmlssmim mfmno univtml (universal awnchvonoics
S

. E l diagrama 'de bloque de miaintedac de &nunicacin


El

asinc~ma seunirihue% tra 'enl a figura 11-8. Funciona-*emo transmisor y v t o r . La interface se inMallzia 'para .mmodo de tfanshmW partidar mediante un byte de +eonholytese carga dentro de sir reghtro.demtmL E l +tro transmisor

h t e d a w d+e comunfmci6n asfkmna

sei.&imd*regEBCro

'

RS
,

Terhp-

control

Le-de

B/S

m mm1
I

-9

buitwqdeI/S

. 'I

.
RD'
..
1

'-

Registrode

Recibir da-

~
*
1

'

'

'.&Jm4i,w -

o
1,

R@m*
I d

- ..
X@rd'tl-&

r,
. .
a
&ha

w,. (Slegie-de-0
*,

..

de broqte d e h a i n l u h a b p i i de ~~n

islnamu.

acqta.b ~ . @

kamk

un: m@m de

de&w,de h CPU a bvds del anal de datos. &te byte & comiden~ pam trammisibn serial. L a parte

dmtM $e ~ t r @&o o de corrimhto y, cuanda se a-ula un byte de datos completo, se transfiere al registro receptor- La CPU puede deecimar que el registro recepbr lea el byte a trav~del~ana~d~lo;ainpa~Uta.anelsogistm~e~~doseutilVan . ~ s & m W g ~ y p ~ r , c i ~ . e m r e a ' p p .wurrir dwmb la tmwnhih,La Wil pude k el mgistra de estado para ooqprqlqrel @o de h sI s i b de k a n k a y ~ e b m h a si r ha ocurrido algn . . F 4 sbeas,&qLwntrol d-esa:kifjn..dehtegrhdg y .de lectura y d t w a
reoeptora recibe infomci6n

=CPtOf

coiriunican con la CPU.La agrada de decd6n de inkgrado (CS) Be u t i l i z a para sehionar la interface a -vs del canal de direcciones. La sekabn .de mgistro (ES) s e asocia con los contrales de lectura (RD) ydtura Ros, xegistrw son & l o de escritura y dos son d i o de lectura. El registro seletcionado es una porcin del vahr RS g de 1 w estados RD y WR, segn . se lista en la tabla que acompaa al diagrama. La opracibn.de una intwhee de tammhdh ashcrona se inicializa mediante i a CPUi al enviar un byte sil registro de mnhL E 1 procedimiento de inichlhcibn coloca la interface en un modo de operacin wpecfico porque define ciertos parhmetros, como la velwidad en baudios que se va a utiiizar, cuntos bita hay en cda~sadder/ la.decisin de generar una comprabacih de. la paridad y eithtos bits de alto se -den a cada car$&'r:: Das bits en d r&strobde mtadq re usan como banderas. Un bit ae utiliza para indicar 8i 4 registro &ansmisor est vado y otro se emplea para indicar 1 el registro wceptor mta Ileno, ta operacin de la parte :de transmisor de la inkrfaee B la siguiente. La U ? U a lee eL registro, de estado y comprueba la bandera para obsemar si . ~ t vado reeisho tmmimr. S i est vado, la CPW transfiere un carcter al registro transmisor.y la interface desactiva la bandera para marcar h o e l qbtro. El primeic hit en el registro de corrimienh de1 transmisor se activa m O para generar un bit de inicio, Elbcarcter se trsnsfiere en paralelo del registro trawmiwr al iregistro de desplammiento y e agrega la cantidad apppia* de bi# de alto al registm de corrimientod k p u s se marca vaco .el registro Qammimr. &ra,.puede ka~~mitiise el mdcter un bit a la vez , al colmar b d a t o s en el mgistro de codmiento a la velocidad de baudios ' mpecificada. La CPU puede transferir otro carcter al registro transmisor, despuds de comprobar la bandera en el -m@tro de estado. Se dice que l a interface es de registm dbble porquepuede cargarse un nuevo carkkr tan pronto comed anterior comienza la transmisi6n. 1 La opera& de -h -parte mqptora de h interface es similar. ta entrada de m h n de &#os estA en el atado 1 cuando la h e a est inactiva. El confml receptor monitorea la lnea de r e q d b n d i datos en busca de una -1 d para dekctar h ocurrencia de M bit de W o . Una vez que re ha detwtado un bit de-&ici~, l o s bits de &&r que entran se colocan en el de corririoiento en donde se reconen a la velcieidad de baudio , establecida. Despus*de i & i r los bits.de &tos, ' la interface comprueba la paridad y los Pi+g,dealto, En seguida, se t m h m el cardcter, en paralelo, del regis@ de .comhimto al registro de mceplci6n, sin los bits de inicio y de al@ La banda@en el registro de stada se activa para indicar que el q i s t r o Ceceptar est &no. b CPY lee, el ,registrg de estado y comprueba la bander? y, s i pt+ activa, lee los datus d4 registro mxptor. La interface ver$.. cualquiera emm posibles durante la transmisibn " activa bita apropiados en el .registro de estade La CPU puede leer el registro de estado en cualquier momento para comprobar s i han ocurrido erro=. 'f.res emm p o s % ! - que cornpnieba iq inke$a@ durante la transmi-

m).

428
l,..

CA-O

o=

Organizacin de entrada-salida

,
,
,
8

,
M

,
,

.-

,
'

* 1--1

r~

8 ,

sin son el error de paridad, el error de configuracin y el error de superposicin. Un error de paridad ocurre si la cantidad de dgitos 1 en los datos 1 'recibidos no corresponde a la paridad correcta. Un error de posicin ocurre , . t, I , t S > i no se detecta el nmero correcto de bits de alto al final del carcter rsecibido. Un error de superposicin ocurre si la CPU no lee el carcter del ,, i registro receptor antes de que el siguiente quede disponible en el registro de , ,-# , corrimiento. Los errares de e&anearnimto dan c6m6 Multado una p4fdida - , ,de caracteres en el flujo de datos recibido. -17 ~ ~ ' l ~ ~ j ~ ~
S

:l.

*
e ' '
f
11,

J . '

L .

,
.',

8 1 '

*.

e 9

,, ,

llf,:.

-rnr
,
l

Un buffer primero en entrar, primero en salir Prst-in, 3rd-out, FIFO) es una unidad de memoria d e localidades adyacentes que almacena informacin de -, s i a . L< manera que el primer dato que entra es el primero que sale. Un bffer FIFO tiene terminales de entrada y salida separadas. La caracterstica importante -. , , , de este buffer es que puede introducir y sacar datos a dos velocidades ,. I ,! diferentes y que los datos de salida estn siempre en el mismo orden en el - cual se introdujeron al buffer. Cuando se coloca entre dos unidades, el FIFO , I r J l . Y , F. puede aceptar datos de la unidad fuente a una velocidad de transferencia y 1 lq enviar los datos a la unidad destino a otra velocidad. Si la unidad fuente es , ,' 7 ms lenta que la unidad destino, el bffer puede llenarse con datos a una - 4 . Ivelocidad lenta y despus vaciarse a una velocidad ms rpida. Si la fuente , II~,~II . es ms rpida que el destino, el FiFO es til para aquellos casos en donde :.a ' nin los datos fuente arriban en grandes cantidades que llenan el buffer, pero que i ! r: el tiempo entre esos arribos es suficientemente largo para que la unidad , I . t ; destino vacie alguna o toda la informacin del buffer. Por lo tanto, un buffer lb r FiFO puede ser til en algunas aplicaciones cuando se transfieren datos en I ,t.- ,, r -,I forma asncrona. El buffer FIFO apila los datos conforme llegan y los entrega en el mismo orden cuando se necesitan. 1 . . > ' ' v : El diagrama lgico de un buffer FIFO tpico 4 X 4 se muestra en la r ~ q ; 1-~,, , 1 r ,,> ,., , I G figura 11-9. Consta de cuatro registros de 4 bits RI, I = 1, 2, 3,4 y un registro . de control con flip-flops Fi, i = 1, 2, 3, 4, uno para cada registro. El FIFO , lb , rjri I.C~ puede almacenar cuatro palabras de cuatro b i t s cada una. Puede aumentarse la rI .< 1 1 . cantidad de bits por palabra al elevar la cantidad de bits en cada registro y .(,ir , " , ' puede aumentarse la cantidad de palabras al elevar la cantidad de registros. I ,, 1, =+ Un flip-flop Fi en el registro de control que est activo en 1, indica que :n una palabra de datos de 4 bits est almacenada en el registro RI correspon. 1 1 - : frJ diente. Un O en Fi indica que el registro correspondiente no contiene datos 1 . 1 11 1. vlidos. El registro de control dirige el movimiento de datos por los registros. -h.~;*p: . Cada vez que el bit Fi del registro de control est activado (Fi = 1) y el bit .l " Fhl se reactiva ($i+l= 1). se genera un pulso de reloj que hace que el registro A ' r J.; - ! f l ~ R(1 + 1) acepte los datos del registro RI. La misma transicin de reloj activa '. , 4l,, 1 Fi+l en 1 y desactiva Fi en O. Esto provoca que la bandera de control se 2 ' r.lrl;~ mueva una posicin a la derecha junto con los datos. Los datos en el registro I t r c n ~ ii / J, se mueven hacia abajo del FiFO, hacia la salida, mientras existan posiciones
i
, a * ; J

, ,,.

..,.- ' , : Bufhprimero en entrar, primero en salh


'
8

.-.-I'c
1.

,!I

;,

7,

j'

l,

. a

.
n

T . + =

y , -!

,,,:m,

, 6 ) ~ .

d 1

8'

J ~ I,

1 : ,

'
I

Entrada de datas

.
I (

L.,f,

>

.,#T

.
-

R1
7

11

11..

.
L

R2

~3

R4
C

Registro de 4 bits ,

*
t

Registro de 4 bits

.
C

Registro de4Mw
i

'

Registro d e 4 bits -de

Salida datos

! l

Ir

A
1

Reloj .
I1.i)

A
1 0
1
0

Reloj
1 .

A Reloj
1
4

A Reioj
1

11

4 1

I
1

+ L
A-'
8 ,

'- I
c l

t.

'

,
'
I

Insertar
h

I.

'i'
< #

: I

& . T

'.
, 4 # ~ ~

s . '

-S
.

F1--

J
m '8-

1 F m

Borrar
4

Entrada preparada
-11-

'' ''
I

., I

.
L
7

<

7'
I

'I
A

'

! L . . -

..

1 ,

r
A

-LB

.I

4.

Borrado maestro

Figura 11-9 Diagrama de circuito de buffer FIFO 4

' S

I
.('

.,:

vacas adelante de l. Esta operacin de avance se detiene cuando los datos alcanzan el registro RI con el siguiente flip-flop Fi+l activado en 1 o cuando alcanzan el ltimo registro R4. Se utiliza un borrado general maestro para , . , ,. .. . .; inicializar todos los flip-flops del registro de control en 'O. Se insertan datos dentro del buffer siempre y cuando est habilitada la .: C !Iseal entrada preparada. Esto ocurre cuando se desactiva el primer flip-flop . . t., . F1,indicando que e1 registro RI est vaco. Se cargan los datos de las lneas

. .
S :

930

W ONCE Chgarhcibn de entrada-salida

de entrada al habilitar el reloj en R1 mediante la lnea de control insertar. El mismo reloj activa F, lo cual deshabilita el control mhda preparada, lo que indica que e1 FIPO est& ahora ocupado y no puede acepta? mAs datos. El procesa de avancB comienza siempre y cuando eR2 estg vado. Los datos en RI se transfieren dentro de R2 y se desactiva F1. Esto habilita la lnea entrada p r p r a d a , indicanda que las entradas esfdn ahora disponibles para otra parabra de datos. S Ee i m esta lleno; permanece activa y la linea entrada preparada permanece en el estado O. Ntese que las dos lineas de control entrada preparada e insertar constituyen un par de heas de reconocimiento mutuo initiadas por el destino. h datos recorren la pila de registros hasta d extremo de salida. La linea de control siida preparada est6 habilitada cuando se activa el ltimo flip-flop de control F4, indicando que hay datos vlidos en el registro de salida R4. ta unidad destino acepta los datos de salida de R4, y esa misma unidad deshabilita la seal de control borrar. Esta desactiva Fq,haciendo que se deshabiiite la salida preparpda, lo cual indica que los datas en la salida ya rio son vAlidos. Slo despus de que la sefial borrar regresa a O pueden moverse l o s datos de R3 dentro de R4. Si el FIFO est vacfo, no habrdi datos en R3 y F4 permanecer en estado inactivo. N6tese que las dos Imeas de control salida prqarada y borrar constituyen un par de lneas de reconwimiento mutuo iniciadas por la fuente.

rl

H -

11-4 Modas.de transferencia


La irormacibn binaria recibida de un dispositivo externo por lo general se Almacena en la memoria para su pmesa&ento posterior. i a infomacibn transferida de la computadora central a un dispositivo externo se origina en unidad &-memoria. La CYU s61o ejecuta las ihstrucciones E/S y puede aceptar los datos en forma temporal, pero la fuente o destino final es la unidad de memoria. La transferencia de datos entre la computadora central y los dispositivos de E/S puede manejarse en diversos modos. Algunos modos utilizan la CPU como una trayectoria intermedia; otros transfieren los datos directamen& a y de la unidad de memoria. La transferencia de datos de y a perifkrims puede manejarse en uno de tres modos posibles.

l. E/S programada 2. E/S iniciada por intempcin 3. Accesa directo a memoria @MA)
EIS programada

Las operacion~ de E/S programadas son e 1 resultado de instrucciones de ELS escritas en e l programa de la computadora. Cada transferencia de datos se inicia mediante una instmcci6n en el progzama. Por lo general, la transferencia es M i y desde un registro de CPU o aerMco. Se necesitan otras instrucciones para transferir los datos hacia y desde la CPU y la memoria.

Transferir datos bajo e l control del programa requiere que la CPU &ice un monitorea constante de perifricos. Una vez que se inicia una transferencia de datos, es necesario que la CFU monitoree la interface para ver cundo puede volveme a ha= una transferencia. lkpende de las instrucciones programadas y ejecutadas en la CPU, observar en detaIIe todo b que acontece (enla unidad de interface y en el dispositivo de E/S.

iti t e m p d d n

IOP

En el mbtodo de E f S programada, la CPU permanece en un ciclo de programa hasta que la unidad de E/S indica que est preparada para transferencia de datos. Este es un proceso que consume bastante tiempo porque mantiene ocupado el pmcesadox en forma hmxsaria, Puede evitarse al usar una opeidn de interrupcin y comandos espdales para informar a la interface que emita una reial de solicitud de interrupcibn mando estn disponibles los datos del dispodtivo. Mientras tanto, la CPU puede avanzar a ejecutar owo programa. En ese lapso, la interface sigue monitoreando dispositivos. Cuando la interface determina que el dispositivo est preparado para transferencia de datos, genera una solicitud de interrupcin a la computadora. Cuando se detecta la seal de interrupcibn externa, la CPU detiene un momento la tarea que est procesando, transfiere e l control a un programa de servicio para procesar la transferencia de E/S y despuk regresa a la tarea que ejecutaba originalmente. ta transferencia de datos bajo E/S programada es entre la CPU y un periMrico. En e l acceso directo a memoria, (DMA), la interface transfiere datos hacia adentro y hacia afuera de la unidad de memoria por medio del canal de memoria. La CPU inicia la transferencia al proporcionar a la interface la direcci6n inicial y la cantidad de palabras necesarias que se van a transmitir y despuds avanza a ejecutar otras tareas. Cuando se hace la transferencia, el DMA solicita ciclos de memoria mediante el canal de me moria. Cuando e l controlador de memoria concede la solicitud, el DMA transfiere los datos directamente a la memoria. La CPU d o retrasa su operacibn de a c e a memoria para permitir la transferencia directa de E/S a memoria. Como la velocidad de los perifgricos por lo general es menor que la velocidad del procesador, las transferencias a memoria de E/S no son frecuentes en cornparacibn con el acceso a memoria del pmcesador. l a transferencia DMA se analiza con mayor detalle en la seccin 11-6. Muchas computadoras combinan la 16gica de interface con los requisitos para acceso directo a memoria en una unidad y h llaman procesador de E/S IOP. E l WP puede manejar muchos perifricos a travds de un DMA y la opci6n de interrupcin. Con tal sistema, la computadora se divide en tres mdulos separados: la unidad de memaria, la CPU y el IOP. ~ Q S procesadores E/S se presentan en 1a seccin 11-7.
Ejemplo de ES programada En el mdtodo de E/S programada, el dispositiva de E/S no tiene

acceso

directo a la memoria. Una transferencia de un dispositivo de E/S a memoria

432

cAPfnno ONCE oqankaci6n de entrada-sdida

requiere que la CPU ejecute varias instrucciones, incluyendo una instrueci6n de entrada para transferir los datos del dispositivo a la CPU y una uistruc n de almacenamiento para transferir los datos de la CPU a la memoria. Pueden necesitarse otras instrucciones para verificar que estn disponibles los datos del dispositivo y para contar b cantidad de palabras transferidas. U n ejemplo de transferencia de datos de un dispositivo de E/S por medio de una interface a la CPU se muestra en la figura 11-10. E l dispositivo transfiere bytes de datos uno a la vez, conforme estn disponibles. Cuando esti4 disponible un byte de datos, el dispositivo l o colma en e l canal de E/S y habilita su lnea de datos V A M O S . L a interface acepta el byte en su registro de datos y habilita l a lmea de datos aceptados. La interface adiva un bit en el registro de estado que denominaremos bit de "bandera"o bit F. Ahora el dispositivo puede deshabilitar la lnea de datos vblidos, pero no transferiri otro byte hasta que la interface deshabilite la lnea de datos aceptados. Esto se apega al procedimiento de reconocimiento mutuo establecido en la figura 113.

Eeuihua de 3/SL
r

Datm aceptados

F = Bit &-huiera

Figura 11-10 Transferencia de datos de dispositivo E/S a CPU.

E s t -rito un programa para la computadora con el fin de comprobar la bandera en el registro de estado, para determinar si se ha colocado un byte en el registro de datos mediante el dispositivo de E/S. Esto se hace al leer el registro de estado dentro del registro de Ia CPU y comprobar e1 valor del bit de bandera. Si Ia bandera es igual a 1, la CPU lee los datos del registro de dabe. ihpus, la Cmr o la interface de8activan e l bit de bandera a O , dependiendo de c6mo estn disefiados los circuitos de l a interface. Una vez que se desactiva La batuda, l a interface d~habilital a linea de datm acepta& y el dispositivo puede transferh, entones, e l siguhtcs byte de datos. Un diagrama de f l u j o del programa que debe escribirse para la CPU, se muestra en la figura 11-11. Se considera que el dispositivo estii enviando

-6~

11-4

Modos de bansferem5a

433

Ir

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.

una secuencia de bytes que debe abcenarse en la memoria. La transferencia de cada byte requiere de tres instrucciones:
1 , Leer el registro de estado.

2 Comprobar e l estado del bit de bandera y transferir el control al paso 1 si no est activado o a1 paso 3 si l o est. 3. Leer el registro de datos.

434

CAPmmmcs Organizacr6n de entrada-salida

. .

Cada byte se lee en el registro de la C P U y despuh se transfiere a la memoria con una instnrccibn de almacenar. Una tarea c o m h de proaama- qi6n de E/S es transferir un bloque de palabras de un dispositivg ~;E/S y ~ a l m a c e n w f a en s un buffer de memoria. Un programa que almacena caracteres de entrada en el bff~rque utiliza las instnicci&es definidas en el capitulo 6 se lisfa en Ia tabla G21. 131 m4tcdo de,E/S programada es particularmente til en computadoras pequeas de baja velocidad o en sistemas que &Sin dedicados a monitorear un dispositivo en forma continua. La diferencia en la velocidad de transferencia de informacih entre la CPU y el dispositivo de E/S hace ineficiente este tipo de transferencia. Para apreciar por qu4 es ineficiente, consideremos una computadora tipica que puede ejecutar las das instrucciones que leen el registro de estado y camprueban a bandera en un micro-segundo. Consideremos que el dispositivo de entrada transfiere sus datos a una velocidad promedio de 100 bytes por segundo. Esto es equivalente a un byte cada 10000 micro-sepndos. Esto significa que la CPU comprobar la bandera 10,000 veces entre cada transferencia. La CPU est gastando tiempo mientras comprueba la bandera en lugar de hacer alguna otra tarea de procesamiento
t i I .

EIS iniciada por intenrupcibn


Una alternativa para que la CPU no tenga que monitorear en forma constante la bandera, es permitic que la interface informe a la computadora cuando est lisb para transferir datos. Este modo de transferencia utiliza la opcibn de interrupcibn. Mientras la CPU estd corriendo un programa comn no comprueba la bandera. Sin embargo, cuando se activa la bandera, se interrumpe momentneamente el avance de la computadora con el programa actual y se informa que se ha activado i a bandera. La CPU se desva de l o que esta haciendo para atender la transferencia de entrada o salida. Despus que termina la transferencia, la computadora retoma al programa previo para continuar lo que estaba haciendo antes de la interrupcin. La CPU responde a la seal 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. La manera en que el procesador &%e la d k c i n de transferencia a la rutina de servicio varq de una unidad a otra. En principio, existen dos m4todos para lograr esto. Uno se llama i n t m p ' d n con M o r y el oim i n t m p d n sin wctor. En una intermpci6n sin vector, la direcci6n de transferencia de control del programa e asigna a una posici6n fsica en la memoria. l b una intempcibn con vector, la fuente que interrumpe proporciona la informacin de l a transferencia a la computadora. Esta informaci6n se llama el vecfor de intm~pci6n. En algunas computadoras el vector de intemipcibn ES la primera direccin de la rutina de servicio de E/S. En otras computadaras el vector de interrupcin es una direcci6n que

sEC&N

1 1 5

Prioridad de intempdh

435

apunta a una posicin en la memoria en la cual se almacena la direcci6n inicial de la rutina de servicio de E/S. En la secci6n 11-5 se muestra un sistema de intempci6n con vector.

rutitta de

E/S

Consideraciones de pxogramaci6n E I ariiifhis anterior se relaciond con la ckuiteria necesaria para lograr la interface de dispositivos de E/S hacia un sistema de computadora. Una computadora tambidn debe tener rutinas de programaci6n para controlar los perif6ricos y para la transferencia de datos entre el procesador y los perif& ricos. h s rutinas h E/S deben emitir comandos de control para activar el perifdrico y para comprobar el estado del dispositivo, con el fin de determinar cundo estd Esto para transferencia de datos. Una vez que est preparado, la informati611se transfiere dato a datu hasta terminar. En algunos casos, se proporciona entonces un comando de control para ejecutar una funcibn de dispositivo, como detener la cinta o imprimir caracteres. Con frecuencia las traasferencias estn acompafadas de mmprobacibn de errores y otros pasos iitiles. En las transferencias controladas por intempci6nJ los programas de E/S deben enviar comandos al perifrico para interrumpir cuando estb preparado y para dar servicio a la interrupci6n cuando m r r a . En la transferencia DMA,los programas de E/S deben inicializax el canal de DMA para comenzar su operacibn. E i control por programa del equipo de entrada-salida es una empresa compleja. Por esta razdn, 10s fabricantes proporciorian rutinas de E/S para lbs perifricos estandar como parte del sistema de computadora. Por lo general, se incluyen dentro del sistema operativo. L a mayora de los sistemas operativos contienen diversas programas de E/S para soportar la lnea de perifkricos particular que se ofrece para Ia computadora. Las rutinas de E/S est8n disponibles como proce&rmientos de sistemas operativos y el usuario hace referencia a las rutinas establecidas para especificar el tipo de transferencia requerido, sin entrar a detallados programas en lenguaje de miquina.

11-5 Prioridad de interrupci6n


ta transferencia de datos entre i a CFU y un dispositivo de E/S la inicia la CPU. Sin embargo, la CPU no puede comemar la transferencia a menos que e l dispositivo t preparado para comunitarse con la CPU. La disponibilidad del dispositivo puede determinarse de una kfial de intempcibn. L a
CPU responde a la solicitud de intempibn al almacenar la direccin 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. Como se analiz en la secd6tl 8-7, algunos procedares tambin salvan dentro de la pila la paiabra "deestado del procesador (PSW) y cargan una

prioridad de intewupcibn

encuesta

nuwa PSW para la rutina de servicio. Aqu na consideramos la PSW para no complicar el analbis de las interrupciones de E/S. En una aplicaci6n tpica, se conectan varios dispositivos de E/S a la computadora, y cada dispositivo puede originar una solicitud de interrup ci6n. La primera tarea del sistema de interrupcin es identificar la fuente de la interrupcidn. Tambin existe la posibilidad de que varias fuentes soliciten servicio en forma simultnea. En este caso, el sistema debe dkdir tambih a cual dispositivo atender primero. Una priot.idad de i n f m p c i b r r es un sistema que establece una prioridad entre las diversas fuentes para determinar quk condicin ae va atender primero cuando llegan al mismo tiempo dos solicitudes. El sistema tambin puede determinar cuales condiciones se permiten para interrumpir a la computadora mientras se da servicio a otra interrupcin. Se asignan niveles de internipci6n de alta prioridad a solicitudes que, si se posponen o interrumpen, pueden producir consecuencias serias. Los dispositivos con trarw ferencias de alta velocidad como discos magnticos reciben una alta prioridad y los dispositivos lentos como los teclados reciben baja prioridad. Cuando dos dispositivos interrumpen Ia computadora al mismo tiempo, I a computadora atiende al dispositivo con mayor prioridad. Puede establecerse la prioridad de interrupciones simultneas mediante programacin o circuiterla. Se usa un procedimiento de "encuesta" para identificar la fuente de prioridad ms alta por medio de programacibn, En este mhtodo existe una direccin de transferencia de control comn para todas las interrupciones y el programzr cuida que Ias interrupciones comiencen en Ia direccibn de transferencia y registra las fuentes de inkrrupci6n en secuencia. E I orden en la cual se prueba detemina la prioridad de cada internipci6n. Se prueba phmero la fuente de prioridad ms alta y, s i su seal de interrupcin este activada, el control se transfiere a una rutina de servicio para esta fuente De otra manera, prueba la fuente con Ia siguiente prioridad hacia abajo y asf sucesivamente. Por lo tanto, la rutina de servicio inicial para i d a s las interrupciones consiste en un programa que prueba las fuentes de intempci6n en secuencia y transfiere el control a una de varias rutinas de servicio posibles. La rutina de servicio particular alcanzada, pertenece al dispositivo de prioridad mas alta entre todos los dispositivos que interrumpieron a la computadora. La desventaja del mdtoda de programaci6n es que, si hay muchas interrupciones, el tiempo requerido para *gistrarlas puede exceder el tiempo disponible para atender el dispositivo de E/S. En esta situaci6n, puede utilimse una unidad de circuito de prioridad de inkmpci6n para acelerar la operacibn. Una -unidad de prioridad de intemipcidn de circuiterfa funciona como un administrador general en un ambiente de sistema de interrupciones. Acepta solicitudes de interrupcin de muchas fuentes, dekrmina cul de las solicitudes que 1Iegan tiene la prioridad m s alta y emite una solicitud de intempci6n a la computadora con base en esta determinaci6n. Para acelerar la operd6n, cada fuente de intermpci6n tiene su propio vector de interrup-

ci6n para accesar en forma dwcta su propia nitina de servicio. Por l o tanto, no se necesita el registro porque todas las decisiones Ias establece la unidad de circuiM de prioridad de interrupcibn l a funcin de prioridad de eimiitera puede establecerla una sonexin serial o paralela de heas de interrup c h . La conexihn serial tambin se conoce como el d o d o de cadena

circular.

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. El dipasitivo con la prioridad ms al& E coloca en la primera posicibn, seguido.por los dispositivos de prioridad inferior hasta e l dispositivo con la m6s baja prioridad, que se coloca al iiltimo en la cadena. Este m b d o de conexi6n entre tres dispositivos en h CPU se muestra en la figura 11-12. La. Unea de solicitud de htempcidn es comn a todos los dispositivos y forma una conexin de 16gica alambrada. Si cualquier dispositivo tiene su seal de inkrmpci6n en el estado de nivel bajo, la nea de interrupci6n va al estado de nivel bajo y habilita la entrada de interrupci6n en la CPU. Cuando no est pendiente ninguna interrupcibn, la lnea de interrupcin permanece en el estado de nivel alto y la CPU no reconoce interrupciones. E s b es equivalente a una operacin OR lgica negativa. La CPU responde a una solicitud de hternipci6n al habilitar la Iinea de reconocimiento de intermpci6n. E3I dispositivo 1 recibe esta seal en su entrada de prioridad PI). La &l de reconocimiento pasa al siguiente dispositivo por medio de
Figura 11-12 Inteaupfi6n con prioridad por cadena de margaritas.
C a d de datoe.delpmesador
1L

VAD 1
MspIdvo 1 :PI PO

VAAD 2

'

YAD 3
i

.
I3ispitlvo 2

: PI

Po

MBpositlvo 3 PI m

AIsiguienie
dhposftivo

- WWd -

de iritwudon

: INT

CPU
h m w i m h b de fnterrupdbn
U

INTACK

cmhJL.0 ONCE Organkcin

de entrada-wlida

direecidn de wector

h salida de prioridad (PO)s610 d el dispositivo 1 no est solicitando una interrupcin, S el dispositivo 1 tiene una interrupcidn pendiente, bloquea la seal de reconocimiento del siguiente dispositivo al colwar un O en su salida (PO. Entanceb, procede r inserta su propia direccih de vector (VAD) de interrupcin, dentro del cana1 de datos, para que la CPU la utilice durante el ciclo de intemipcibn. Un dispositivo con un O en su entrada PI genera un O en su salida PO para informar al dispositivo con la siguiate prioridad ms baja que ha bloqueado la seal de r&onocimienb. Un dispositivo que solicita una i n b mpci6n y tiene un 1 en su mhada PI acepta b seal de reconocimiento al colocar un O en su salida PO. Si e l dispositivo no tiene interrupciones pendientes, transmite la &al de reconocimiento al siguiente dispositivo al colocar un 1 en su salida PO.Por lo tanto, el dispositivo con P1 = 1 y PO = O es el que tiene la prioridad m& alta y que ~Iicita una interrupcibn y este dispositivo coloca su direccidn de vector (VAD) 'enel canal de datos. E 1 arreglo de cadena de margaritas le da la prioridad mis alta al dispositivo que recibe' la seal de reconocimiente de intempcih de l a CPU. Entre d s lejos esti el dispositivo de h primera posicl6n, es menor su prioridad. La figura 11-13 muestra la 15gica interna que debe incluirse dentro de cada dispositivo cuahdo estA conectado en un equema de cadena de margaritas. El dispositivo activa su &pflop RF cuanao desea interrumpir a la CPU. La salida del ffip-flop RF recorre un inversor de colector abierto, un
Figura 11-13 Una etapa del arreglo de prioridad de cadena de margarita.
VAD

Entrada de prioridad.
PI

'

I
W t u d de dfreEd6ar M
&plitivo

1
Salida de prioridad
i

RF

PO

-R
7

Solicitud de interrupcin a CW

circuito que proporciona la lgica de alambrado para la h e a de interrupci6n comiin. Si PI = O, PO y la lnea de habilitacin a la VAD S Q ~ iguales a O, sin considerar el valor de RF. Si PI = 1 y R F = O, entonces PO = 1 y se deshabilita la direccidn del vedor. Esta mdici6n pasa la seal de reconocim i e n t o al siguiente dispositivo a travs de PO. El dispositivo est activo cuando PI = 1 y RF = 1. Bta condici6n colma un O en PO y habilita la h i 6 n del vector para el canal de datos. Se considera que cada dispositivo tiene su propia d i d 6 n de vecter d i s W . Se desactiva el flip-flop RF despu& de un retrasa suficiente para asegurar que la CPU ha recibido la dfrec-ch de vector.

Idgicn de prioridad

Inkmpci6n de prioridad paralela El m W o de interrupcin de prioridad paralela utiliza un registro cuyos bits se adivan en forma wparada, mediante la seal de interrupcin de cada dispositivo. h prioridad se establece de acuerdo con la posicidn de los bits en el registro. Adems del regis& de interrupcih, el circuito puede incluir un registro de mAscara, cuyo propsib es controlar el estado de cada solicitud de interrupcibn. Puede programarse el registro de mAscara para deshabilitar interrupciones de prioridad menor mientras s e esta atendiendo un dispositivo de prioridad ms alta. Tambin puede proporcionar una opcibn que permita que un dispositivo de prioridad alta interrumpa la CPU mientras se atiende un dispositivo de prioridad menor. La 16gica de prioridad para un siskma de cuatro fuentes de interrupcibn se muestra en la figura 11-14. Consta de un registro de interrupcibn cuyos b i t s individuales se activan mediante condiciones externas y se desactivan mediante instrucciones de programa. E l disco magn6tic0, como es un dispositivo de alta velocidad, recibe la prioridad m6s alta. La impiesora tiene la siguiente prioridad, seguida por una lectora de caracteres y un teclado. El registro de msscara tiene l a misma cantidad de bits que el registro de interrupcibn. Mediante instrucciones de programa, es posibl~activar o desactivar cualquier bit en el registro de &&ara. Cada bit de interrupcidn y su bit de mascara correspondientes, se aplican a una compuerta AND para producir las cuatro entradas hacia un codificador de prioridad. De esta manera, se reconoce una interrupci6n &lo si el programa activ6 en 1 su bit de mascara corregpondiente. El d i c a d o r de prioridad genera dos bits de la direccibn de vector, la cual se transfiere a la CPU. Otra salida del mdificador activa un flip-flop de estado de intwnifi6n @T) cuando ocurre una inteirypcibn que no est enmascarado. B1 programa puede habilitar %odahabilitar el flip-flop de habilitacibn de h k m p c i h (intmpt enable, IEN)para proporcionar un control general subre el si~tema de interrupciones, Las salidas de IST que recibieron la h u 6 n AND con IEN proporcionan una seal de Hiterrupi6n comn para h CPU. La seal de mmnocimiento de i n m p c i d n (INTACK) de la CPU habjlita l o s b u f k dd cana3 en el registro de salida y se coloca una direccidn de vector VAD dmm

440

ONCE

Orgmh66n de entrada-salida

Figura 11-14 Ckuiterfa ae prioridad de intempci6n.

del canal de dAhora explicaremos el circuito M c a d o r de prioridad y despus analiarqno6 la interaccibn entre el controlador de prioridad de interrupcibn y la CPU.

Codificador de prioridad El codiflcador de prioridad es un circuito que -implanta la funci6n de p r b ridad. La 16gica del codiiicador de prioridad es que, si dos o m8s entradas

114

Prioridad de uiWru@~

441

TABLA 11-2 Tabla de verdad de codicador de prioridad


Entradas 10 11 I z 13
x
Salidas

TST

Funciones booleanas
x = I',I{ y = ILI, i;i; ( I S T ) = I, 1,

o
O 0 0

i
O 0 0

x
f 0 0

x
X 1 0

0 1 1

1
.O

1 1 1

+ + +1 , + J,

"' *

lie.gan al mismo tiempo, la entrada que tiene la prioridad mayor tendr preferencia. La tabla de verdad de un dificador de prioridad de cuatro entradas se proporciona en la tabla 11-2.Las letras X en la tabla representan condiciones no signiicativas. L a entrada Io tiene la prioridad mayor; por lo tanto, sin considerar el valor de las otras entradas, cuando esta entrada es 1, la salida genera una salida xy = 00. I1 tiene el siguiente nivel de prioridad. La salida es O1 si Il = 1 siempre y cuando lo = O, sin considerar l o s valode las entradas de prioridad menor. Se genera I a salida para I2 6610 si las en~adas de prioridad mayor son O, y as sucesivamente hacia abajo en el nivel de prioridad. Se activa el estado de interrupcin (1ST) 9610 si una o mAs entradas son iguales a 1. Si todas las entradas son 0, se desactiva XST a O y las otras salidas del codificador no se utilizan, por lo que se marcan em condicimw no significativas. E610 ~e debe a que la direcci6n de vedor no se transfiere a la CPU cuando IST = O . Las funciones booIeanas listadas en la tabla especifican la 16gica interna del codificador. Por lo general, una computadora tend8 ms de cuatro fuentes de interrupcin. Por ejemplo, un codificador de prioridad con ocho entradas generar una salida de tres bits. La salida del ccdificadox de prioridad se utiliza para que forme parte de la direcciSn de vector con cada fuente de mtempci6n. Puede asignacualquier valor a los otros bits de la direcci6rt de wctor. Por ejemplo, la d M 6 n de vector puede formarse al agregarse ceros a las salidas x y y del codificador. Con esta seleccin se le asignan los nmeros b'inarios 0,1, 2, y 3 a los vectotes de interrupcin para los cuatros &positivos de E/S.

Ciclo de intemipci6n El ffipflop IEN de habilitacin de intmupci6n que se muestra en la figura 11-14 puede activarse a desactiva* mediante iastniccimes de programa. Cuando IEN se desactiva, la CPU no considera la solicitud de intermpci6n que proviene del IST. E l bit IEN controiado por programa le pennite al

programador elegir entre usar o no b opcibn de intemipci6n. Si se ha insertado una instniccibn en e l programa para desactivar IEN, significa que el usuario no dque su programa se interrumpa. Una instrucci6n para activar XEN indica que la opci6n de interrupcin se usar mientras corre el programa actual. La mayora de las computadoras incluyen eircuiterla interna que desactiven IEN a O cada vez que el procesador reconoce una intemipcibn. Ptlhfinal de cada ciclo de interrupci6n la CPU comprueba IEN y la seiial de intermpcibn de IST. Si alguna de ellas e s igual a O, el control contina con la siguiente instnicdbn. Si ambas IEN e IST son iguales a 1 , la CPU pasa a un ciclo de intemipci6n. Durante d ciclo de internipci6n la CPU ejecuta la siguiente secuencia de mierooperaciones:

SP tSP - 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. Despus reconoce la intempci6n al habilitar Ia lnea INTACK ia unidad de prioridad de interrupcin responde coIocando un vector de intempci6n nico dentro del canal de datos de la L a CPU transfiere la d k c i 6 n de vedar dentro del PC y desactivan IEN antes de pasar a la siguiente fase de
bsqueda. Duran& 6 siguiente fase de bsqueda, la instrucci6n que se leed de la memorig serh la que est localizada en la direcci6n de vector.

Rutinas de pmgramaci&n Un siskeq de prioridad de interrupciones es una combinaci6n de tcnicas de circyiteria y programacin. Hasta aqu,, hemos analizado los aspectos de la circuitera de un sistema de prioridad de interrupciones. ta computadora
tambi6n debe tener rutinas de programaci6n para atender las solicitudes de inkrcupci6n y para controlar los xegistros de la ciruiitera de interrupcibn. L a figura 12-15 mu-tca el programa que debe residir en la memoria para manejar el sistema de interrupciones. Cada dispositivo tiene su propio programa de servicio que puede alcamrse medite instrucci6n de brinco (JMP) almacenada en la direccibn asignada al vector. E 1 nombre simbblico de cada &m q m t a la direccih inicial del programa de servicios. La pila que se muestra en el diagrama se usa para almacenar la direcci6n de retorna despub de cada interrupcin.

programa de servicio

CMICI~N 115

Prioridad de intempci6n

443

Memoria

-mas

de servicio de E/S

0
1

JMP DISK
J M P m

wrvlcio a d k o rnagntim

JMP RDR
JMP KBD
pmgiama prindpa!

"1 -1

Programa para dar semido


a impresora en lnea

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.simaoensdoen memoria para atender interrupciones.

Para proporciomr un ejemplo espcffico consideremos que el teclado de Uitmupci6n mientras la U?Uejecuta la instnicci6n en la l@&d 7 4 9 del programa princip91. Al final del ciclo de instruccin, la coriiiputdora va a un ciclo de interrupcin. Salva la d k c i & nde retorno 750 en la pila y. despus acepta la diremi611 de v d o r 0000M)ll del canal y la transfiere al PC. La instnicci6n en la localidad 3 se ejecuta despus, produciendo urva trmfemnuia de control a la-i u . h J d e interrupcin KBD. Ahora supongamos que e l disco activa su bit de h b m p c i h cuando la CPU ejecuta la instnteci6n en la direccin 255 en el programa KBD.la direccin S 6 se wlva dentro de l a pila y d control se hansfiere al programa de servicio DISK. ta ltima instruccin en cada rukina*esun retorno de la instruccin de interrupcin. Cuando termina el programa de servicio del disco, la instruccihn de retorno se recupera de la pila y coloca 256 en el PC. Esto retorna el control a la rutina KBD para que continde atendiendo el teclado. Al final del progrwa KBD, la tl*a htruccin recupera la direccin de retorno de la pila y retorna el coqtrol al programa principal en Ia direccin 750. Por lo tanto, u q dispositivo de prioridad mayor puede interrumpir a un dispositivo de prioridad menor. Se considera que el tiempo para dar servicio a una intermpciai de alta priorgad es corto en comparacidn con la velocidad de
activa su bit

444

0 -

Oxgankacin de entrada-salida

transferencia.de1dispositivo de baja prioridad, por lo que no ocurre ninguna prdida de informacin.

Operaciones inicial y final


Cada rutina de servicio de interrupcin debe tener un conjunto de operacio-

nes inicial y final para controlar los registros en e l sistema de cimiterla de


interrupci6n. Recuerde que la habilitacibn de interrupcibn TEN se desactiva al f m l de un ciclo de intempci6n. 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. La secuencia inicial de cada rutina de servicio de inkrrupci6n debe contener instrucciones para controiar la cimitera de intmupcidn de la siguiente mera:
1. Desactivar los bits del registro de mscara de prioridad inferior. 2. Desactivar el bit de estado de interrupcibn IST. 3. Salvar el contenido de los registros del procesador. 4. Activar el bit de habilitaa6n de inkmtpci6n IEN. 5. Proceder con la rutina de servicio.

Los bits del registro de dscara de nivel inferior (incluye el bit de la fuente que interrumpid) se desactivan para evitar que estas condiciones habiten la interrupci6n. Aunque a las fuentes de intempci6n de prioridad menor se les asignan bits de ndmero mayor en el registro de mAscara, la prioridad puede cambiarse si se desea, porque el programa puede utilizar cualquier configuraci6n de bits para el registro de mscara. El bit de estado de internipci6n de& desactivarse para que pueda volverse a activar cuando ocurra una interrupcibn de prioridad mayar. El contenido de los registros de p m d o r se salvan porque puede necesitarlos el programa que se ha interrumpido d q u s de que e l control retorne a &l.Despuks, se activa la habilitacin de intempcibn IEN para permitir que otras interrupciones (de prioridad mayor) y la computadora procedan a atender la solicitud de intempcibn. La secuencia fmal de cada rutina de servicio de interrupcidn debe contener instnicciones para controlar la circuitera de interrupci6n de la siguiente manera:
1 . Activar el bit de habilitacidn de interrupcin IEN. 2 Recuperar el contenido de los registros del pxocesador. 3. Desactivar e l bit en el registro de intwrupci6n que pertenece a la fuente que ha sido atendida. 4. Reactivar los kts de prioridad de nivel menor en el registro de cubierta. 5. Restablecer la direcciBn de retorno dentro del PC y establecer IEN.

Debe activarse el bit en el registro de intempci6n que pertenece a l a fuente de l a intempcibn para que est disponible de nuevo cuando la fuente requiera otra interrupcin. Zns bitc de prioridad menor en el registro de mdscara (incluyendo el bit de la fuente que se est interrumpiendo) se activan para yIver a habilitar sus interrupciones. El retorno al programa interrumpido se consigue al cargar la direccin de retorno en el PC. N6tese que la cimiterla debe disearse para que no ocurran interrupciones mientras se ejecutan los pasos 2 al 5; de otra manera, puede perderse la direcci6n de retomo y la infonnaci6n de los registros de mascara y de1 procesador puede ser ambigua si se reconoce una instruccibn mientras se ejecutan las operaciones en este paso. Por esta raz611,inicialmente se desactiva IEN y mis tarde se reactiva despub de que se transfiere la direccin de retorno h PC. tas operaciones final y inicial que acabamos de listar se denominan operacimres generales de gestin o quehaceres dodsticos. No son parte de1 propio programa de servicio pero son esenciales para procesar interrupcic~ nes. Todas las operaciones generales pueden implantarse mediante prograrnaci61-1. E s t o se hace al insertar las instrucciones adecuadas al principio y al final de cada rutina de servicio. La circuiteria puede hacer en forma a u b matica algunas de las operaciones generaieg de gestidn. La circuitera puede salvar dentro de fa pila el contenido de los registros del procesador antes de transferir d control a la rutina de servicio. Tambin se le pueden asignar otras operaciones iniciales y finales. De esta manera, es posible reducir el tiempo entre la mpci6n de una interrupcidn y la ejecucin de las instrucciones que atienden l a hm'te de interrupcin.

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, con h e n c i a est limitada por la vel-idad de la CPU. Quitar la CPU de la trayectoria y permitir que e l dispositivo perifrico maneje en roma directa los canales de memoria mejw rada Ia velocidad de transferencia. Esta tcnica de transferencia se llama acceso diredo a memoria (Direcf Memoy Access, DMA).Durante una transferencia DMA, la CPU est inactiva y no tiene el control de los canales de memoria. Un controlador DMA funciona sobre los canales para manejar la transferencia en forma directa entre' el dispositivo de E/S y la memora. m La C W puede cokarse en un estado inactivo de diversas maneras. Un a - ' m d t o d o c o m h que se usa con mucha frecuencia en los micxoprocesado~, irl: d e s deshabilitar los canales mediante seares de control e s ~ i a l e s La . figura Am - 11-16 -muestra dos e l e s de mtrol en la CPU que facilitan la transferencia solidtud de canal DMA.E l conbolador DMA utiliza la &bada de solicitud de anal (BR) para a_\ 4 -solicitar a la CPU que entregiie el control de los anales. Cuando esta entrada activa, la CPU termina la ejecucin de la inshuccin actual y coloca el canal de direcciones, el canal de datos, y las lineas de lectura y d t u r a

SECCI~N11-6 Acceso directo

a memoria (DMA)

447

Canal de direcciones
de datos

I
e

Acopladores del canal de datos

Acopladores de canal de direcciones

Seleccin de DMA Seleccin de registro

Registro de direccin

Registro de cuenta de palabras Escribir Solicitud de canal Cesin de canal Interrupcin


Lbgica de WR control

Registro de control

1
de E/S

Figura 11-17 Diagrama de bloques de controlador DMA.

1 intempdbn
4

Solicitud de DMA Reconocimiento de DMA


L

La figura 11-17 muestra el diagrama de bloque de un controlador de

DMA tpico. La unidad se comunica con la CPU mediante el canal de datos y las lneas de control. Los registros en el DMA se seleccionan mediante la
CPU por medio del canal de datos al habilitar las entradas de seleccin de DMA (DS) y de seleccin de registros (RS). Las entradas lectura (RD) y escritura (write, WR) son bidireccionales. Cuando la entrada de cesin de canal (BG) es O, la CPU puede comunicarse con los registros de DMA por medio del canal de datos para leer de o escribir en los registros DMA. Cuando BG = 1, la CPU ha entregado los canales y el DMA puede comunicarse directamente con la memoria al especificar una direcci6n en el canal de direcciones y activar el control RD o WR. DMA se comunica con el perifrico externo mediante lneas de solicitud y reconocimiento al utilizar un procedimiento preestablecido de reconocimiento mutuo. El controlador de DMA tiene tres registros: un registro de direccionamiento, un registro de cuenta de palabras y un registro de control. El registro de direccionamiento contiene una direccin para especificar la localidad deseada en la memoria. Los bits de direccionamiento van a travs de bffers al canal de direcciones. El registro de direccionamiento se incrementa despus que cada palabra se transfiere a la memoria. El registro de cuenta de palabras contiene la cantidad de palabras que se van a transferir. Este registro se decrementa en uno con cada transferencia de palabras y realuia una prueba interna en busca de cero. El registro de control especifica el modo de transferencia. Todos los registros en el DMA aparecen ante la CPU

"

.e

m4
( 1 0 -

irlncs'UM
,

*
nl

NI

o, urop
b lr n ,,

d h f m

448

CAP~WLO ONGE

OrganizAciSn de entrada-salida

como registros de interface de E/S. Por lo tanto, la CPU puede leer o escribir de datos. Primero, la CPU inicializa el DMA. Despus de eso, el DMA empieza - -, , ,-- - ,- y contina la transferencia de datos entre la memoria y la unidad perifrica hasta que se transfiere un bloque completo. El proceso de inicializa-- - - - cidn es esencialmente un programa que consiste en instrucciones de E/S - - --- - . que incluyen la direccin para seleccionar registros DMA particulares. La d C ,#,,-a CPU inicializa el DMA al enviar la siguiente informacin por el canal de _ _ - - - - --* datos: . L, ' E. - -1

r-

dentre de 10s registros DMA bajo el contr~l de programa mediante el canal

r
I

!-

7 ,

1 I

i z T . L
-.

'

]--N

- -

tb..

1 , -

1 .l $ direccin inicial del I ) l t e . d e memoria en donde estn disponibles los datos (ppp lectura) o donde se van a almacenar los datos - - -gr escritura). Ir i l ----! 2. (para La cuenta de palabras, qpe es el nmero de palabras en el bloque de memoria. .., --3. Un control para especificar el modo de transferencia como de lectura : o de escritura. *... -f.' 4. Un control para iniciar la transferencia DMA.
-

113

m ~, A-'

LI1 r

m!

.>
S I

v.

.
,(
(

',,
8

1,

. ,.
S

IA l!

:
# ,.-,

'

1'8.n~ L
l, 1

-,\
8

: - 7
S

, 1'

..I,. ... . ,b a r
,

La direccin inicial se almacena en el registro de direccionamiento. La cuenta de palabras se almacena en el registro de cuenta de palabras y la informacin de control en el registro de control. Una vez que se inicializa el DMA, la CPU detiene la comunicacin con el DMA, s6lo que reciba una seal de internipcin. o que desee comprobar cuntas palabras se han transferido.
.
3,

.i

4pi

..

; e*

Ir(-[
- I I I ~

!S-

.,

p,'

.l
>

Da posicin del controlador DM enke los otrdki ~com~onentes .en un sistema I ! c l . ..# a e computadora se ilustra en la figura 11-18:'La CPU se comunica con el irr18 7 C f g DMA mediante los canales de direccin y de datos como con cualquier r, 1 1 unidad de interface. El DMA tiene su propia direccin, la cual activa las li.rill 13 , lneas DS y RS. La CPU inicializa el DMA por medio del canal de datos. L'L ' .1 ~frl-l, 1-1 Una vez que el DMA recibe el comando de control de inicio, puede comenr , ~ zar la transferencia entre el dispositivo perifrico y la memoria. ,Y - ; - , - U I ~ ~,l I .I; . Cuando el di*spositivo perifrico enva una solicitud al DMA, el contro- *: '7 lms lador de DMA activa la lnea BR, informando a la CPU que ceda los canales. fiiYi'i8 1 18. - a La CPU responde con su lnea BG, informando al DMA que sus canales ' : 1 estn deshabilitados. Despus el DMA pone el valor de su registro de t ~ mm-n ? . d'rreccionamiento dentro del canal de direccin, activa la seal RD o WR y + ciw. - .! 'JI~-:~ enva un reconocimiento DMA al dispositivo perifrico. Ntese que las lneas ,I, - * l - a:' ~: 1 RD y WR en el controlador DMA son bidireccionales. La direccin de la r11, v i ~~i+Jr,i,,. transferencia depende del estado de la lnea BG. Cuando BG = O, RD y WR c ,, . .-le, I ~ ~ I : son lheas de entrada que permiten a la CPU comunicarse con los registros I-''; j l - ~ jc r 7 9 internos del DMA. Cuando BG = 1, RD y W R son lneas d e salida del
Ir,<
N
.,,l.wll

; .

, .,r'1

l d ~ r a n g f e r e n c i a ~ ~ ~

r;

:-'.~!

ii

1 1 ~ ' -

t . t.
.i

-13

a,

,<$

~ ~ ~ ~11-6 1 6Acceso 1 4 directo a memoria (Dh4A)

449
-

: Interrupcin

+ BG

CPU

* BR
RD

Memoria de acceso aleatorio

WR Direccin Datos
ri

RD

WR Direccin Datos

Control de leaura

1 1

ir

1
Seleccin de direccin

Control de escritura

7 Canal de datos

y
i

A Canal de direcci6n

7
RD
+ DS

Y
Rec6nocimiento DMA
4

WR Direccin Datos

-- RS

BR BG

Controlador de acceso directo amemoda Solicitud DMA

Dispositivo penifbrico de E/S

Interrupcin Figura 11-18 Transferencia de DMA en un sistema de computadora.

controlador DMA a la memoria de acceso aleatorio para especificar la operacin de lectura o escritura para los datos. Cuando el dispositivo perifrico recibe un reconocimiento de DMA, coloca una palabra en el canal de datos (para escritura) o recibe una palabra del canal de datos (para lectura). Por lo tanto, el DMA controla las operaciones de lectura o escritura y proporciona la direccin para la memoria. En seguida, la unidad perifrica puede comunicarse con la memoria por medio del canal de datos para una transferencia directa entre las dos unidades mientras la CPU est momentneamente deshabilitada. Por cada palabra que se transfiere, el DMA incrementa su registro de direccionamiento y decrementa su registro de cuenta de palabras. Si la

menta de paIabras no alcanza cero, el DMA comprueba la linea de solicitud que proviene del @rico. Para un dispositivo de alta velocidad, la lnea estarA activa tan pronto como se termine la transferencia previa. Despuk se inicia una segunda transferencia, y el prweso continda hasta que se ha transferido todo el bloque. S i la velocidad dei perifhrico es mas lenta, la h e a de solicitud DMA puede venir un poco mis tarde. En este caso, el DMA deshabilita la h e a de solicihd de canal para que la CPU pueda continuar ejecutando su programa. Cuando el perifrim solicita una transferencia, e l DMA vuelve a solicitar los canales. Si el registn, de cuenta de palabras llega a cero, eI DMA detiene cualquier transfemcia posterior y retira su solicitud de canal, Tambibn informa a la CPU de la terminacin mediante una interrupcibn. Cuando la CPU responge a la intempcidn, lee el contenido del registro de cuenta de palabras. El valor cero de este registro indica que todas las palabras se transfirieron exitosamenk. La CPU puede leer este registro en cualquier momento para comprobar la cantidad de palabras que ya se han transferido. Un controlador DMA puede tener m6s de un canal. En este caso, cada canal time un par de sefales de control para seales de solicitud y reconocimiento que est4n conectadas a dispositivos perifkrims separados. Cada canal tambin puede tener su propio registro de direcciondento y registro de menta de palabras dentro del controlador DMA. Puede establecerse una prioridad entre los canales @ra que los canales con alta prioridad sean atendidos antes que los canales de priaridad menor. l a transferencia DMA es muy til en muchas aplicaciones. Se utiliza para transferencias rApidas de informaei6n entm discos magn&cos y memtF na. Tambih es t i l para actualizar la pantalla en una terminal interactiva. D e manera tpica, una imagen de la pantalla de la t a n h a 1 se conserva en la memoria y puede actualizarse bajo el control del programa. E1 contenido de la memoria puede transferirse a l a pantalla en forma peridica, mediante una transferencia de DMA.

11-7 Procesador de entrada-salida (LOP)


En lugar que cada interface se comunique con la CPU, 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 . Un prr>cesador de enhadasalida (IOP}, puede clasificam como un procesador con capacidad de acceso dirwto a memoria que comunica con dispitivm de E/S. En esta cdiguracin, el sistema de computadora puede dividirse en una unidad de memoria y vaRm procesadores que comprenden la CPU y uno o ms IOP. Cada IOP atiende tareas de entrada y salida, relevando a la CPU de los "quehacexesdo&tieos" que involucran las mnshencias de E/S. Un p-doi que comunica eon berminales remotas por telfono y otros medios de comunicacibn en forma serial se Ilama un procesador de c o m h c i 6 n de datos (DCP).

pmwaniierrto
de WS

E i IOP es sidar a una CPU, excepto que esta diseado para manejar los detalla del p t o de E/S. A diferencia del controlador de DMA, que debe s e r inicializado por completo por la CPU, el IOP puede buscar en memoria y ejecutar sus propias instn-iccionea Las instrucciones T O P estn qecficamente disefiadas para facilitar las transferencias de E/S. Adems, el IOP priede ejecutiir o.kas tareas de pmmmientob como aritmtica, lgica, k a n s f e d de control y traducci6n de cbdigo. El diagrama de bloque de una computadora con dos procesadores se muestra en l a figura 11-19. La unidad de memoria ocupa una posicibn ~entral y puede comunicarse con cada p-dor mediante acceso directo a memoria. L a CPU es responsable del prmesamiento de datos necesarios en k solucin de tareas eomputaciortales. El IOP proporciona una trayectoria para traneferencia de datos con diversos dispositivos pmWic08 y la unidad de memoria. Por b general, la CPU tiene i a tarea de inicializar un programa de E/S. En lo sucesivo el IOP opera en forma independiente de la CPU y contintra transmitiendo datos de dispositivos externos y la
memoria.
.

E l B
Unidad de memorla

enuadasddm WP)

w de

Canal de E/S

Figura 11-19 Diagrama de bloque de una computadara con prmesador de E/%

Los formatos de datos de ios dispositivos pe&rims difieren de ioe formatos de datos de la memoria y la CPU.El IOP debe estructurar palabras de datos de muchas fuentes difemtes. Por ejemplo, puede ser necesario tomar cuatro byks de un dispositivo de entrada y guardarloa en una palabra de 32 bits antes de la transferencia a memoria. I m datos se renen en el IOP a la veiddad del dispositivo y a ia capacidad de bits mienkas la CPU ejecuta s u propio pmgrama. Despus de que los datos 'se renen en una palabra de memoria, se transfieren del IOP directamente dentro de la memoria a). "robar" un c i c l o de memoria de la CPU. D e igual manera, una palabra de salida tFansferida de l a memoria al X O P w ditige del IOP al diqmativo de salida a la velocidad del dispositivo y a sil capacidad de bits.

La comurllcacidn entre el IOP y los dispositivos conectados a l es similar al metodo de'transferencia decmtrol del programa. L a comunicacin con la mhoria es similar al mtcdo de a directo a memoria. i a manera en la c u ~se l comunican la CPU y'el IQP depende del nivel de sofisticaci61-1 incluido 'en el sistema. En computadoras a mala muy grande, cada procesador es independiente de lbs demas p cualquiera puede iniciar una operad6n. En k mayorla de sistmas rompuhclo~b81~, 1a CPU es el amo que dirige mientras el IOP es bn pmesador esclavo. Se asigna a la CPU la tarea de iniciar d a s las operaciones, p r o las instnieciones de E/S se ejecutan en e l IOP. Las instrucciones de CPU proporcionan operaciones para iniciar una transfenmcia de E/S y tambin para probar condiciones de estado de E/S mcesarias para t m c decisiones sobre varias actividades de E/S. A su vez,

comandos

el IOP solicita la efbci6n de la CPU mediante una interrupci6n y responde a la solicitudes de la CPU al colocar una palabra de' atado en una localidad determinada de 1 . memoria, que se examinar4 despus, iin programa de la CPU,Cuando se desea una oizeracidn de E/S, la C W informa al IOP d6nde encontrar el programa de E/$ y despues deja los detalles de la transferencia a1 IOP. Las instrucciones que un IOP lee de la memoria en ocasiones se denominan comandos, para distinguirlos de las instrucciones que lee la CPU. De cualquier manera una instnrccidn y un comando tienen funciones similares. Los comndos son preparados por programadores experimentados y s e almacenan en I a memoria. Las palabras de comando constituyen e l programa para e l IOP. La CPU informa al IOP dBnde encontrar los comandos en la memoria cuhdo es hora de ejecutar el programa E/S.

Comunlcaci6n CPU-IOP L a comunicacl6n entre la CPU y el IOP puede tornar diferentes formas, dependido de la computadora particular considerada. En muchos casos, la
unidad de memoria acta como un centro de mensajes en donde cada procesador deja informacin para el otro. Para apreciar la operacibn de un IOP tpico, mostraremos un ejemplo especifico del mgtodo con e1 que se comunican la CPU y e l TOF. Este es un ejemplo simplificado que omite muchos detalles operativos para un panorama de los conceptos bsims. L a secuencia de operaciones puede realizarse como se muestra en el diagrama de f l u j o de la figura 11-20,La CPU enva una instmcci6n para probar la trayectoria de IOP, E 1 IOF responde al insertar una paIabra de estado en la memoria para que la CPU h compruebe. Los bits de la palabra de estado Mitan la condicin del IOP y d dispditivo de E/S. Por ejemplo una eon-dici6n que sobmarga de IOP, dispositivo oCupado con otra transferencia o dispositivo preparado para una transferencia de E/S. La CPU hace referencia a la palabra de estado en la memofia para decidir quR hacer enseguida. Si todo d t en orden, la CPU enva la instruccibn para comenzar

-W~BB

del IOP

'

p i o h r tray&rla

del IOP

p
~ f w i r p a h b r de a atado a upa localidad de memoria

Si el eetao wtil b m , enviar htmcci6nde inici

b E/S al IOP

el pmgrama IOP

La CW contina

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

la inspeceibn de ios bits en la palabra de estado, la CPU determina si l a operacibn de E/S ha terminado satisfactoriamente s i n errores. El 1OP cuida todas ias transferencias de datos entre varias unidades de E/S y la memoria mientras la CPU prwesa otro programa. El T O P y la CPU compiten por el uso de la memoria, por l o que se h i t a el n b e r o de dispositivos que pueden estar en operacin por el tiempo de acceso a la memoria. En la mayoda de los sistemas no es posible saturar la memoria mediante dispositivos de E/S porque la velocidad de estos es mucho menor que la de la CPU. Sin embargo, aIgunas unidades que son riipidas, como las diseos magnticos, pueden u t i l i z a r una aprkiable cantidad de los ciclos de memmia disponibles. En ese caso, la velocidad de Ia CPU puede deteriorarse porque con frecuencia tendr4 que esperar que el IOP conduzca transferencias de memoria.

se denomina a n a l . Una configuraci6n de sistema de computadoras tpico incluye vanos canales y cada uno de ello5 est conectado a uno o m s dispositivos de E/S. Existen t r e tipos de canales: multiplexor, selector y bloque rnultipIexor. El canal multiplexor puede conechrse a varias dispositivos de velocidad lenta y media y puede operar con varios dispositivos de E/S en forma simultnea. El canal selector est diseado para manejar una operacibn de E/S a la vez y se usa normalmente para controlar un dispositivo de alta velocidad. El canal de bloque multiplexor combina las carackkticas de los canales multiplexor y selector. Proporciona una conexin a varios dispositivos de alta velwidad, pero todas las transferencias de E/S pueden c o n d u h en un bloque de da- completo a diferencia de un canal multiplexor, que slo puede transferir un byte a la vez. La CPU se comunica en fonna directa con los canales por medio de heas de control dedicadas e indirectamente por medio de h a s de almacenamiento reservadas en la memoria. L a figura 11-21 muestra los formatos de palabra asociados con la operacidn del canal. El formato de instrucci6n de E/C tiene tres campos: c6digo de operaci6n, direccidn del canal y diici6n del dispositivo. El sistema de computadora puede tener varios canales y a cada uno se le asigna una direcci6n. De igual manera, cada canal puede estar conectado a varios dispositivos y a cada dispositivo se le asigna una dwcu6n. E l cdigo de operacibn especfica una de ocho instrucciones E/S: iniciar E/S, iniciar envio raipido de Ef S , probar E/S, borrar E/S, detener E/S, detener dispositivo, probar canal y almacenar identificaci6n del canal Los canales direocimados responden a cada una de las instrucciones de E/S y las ejecutan. Tambin establecen uno de cuatro c 6 d i p de condici6n en un registro de pmsador llamado palabra de estado del procesador (PSW). La CPU puede comprobar el c6digo de condicin en k PSW para determinar el resulado de i a operacibn de B/S. El significado de los cuatro cbdigos de

Canal de WS IBM 370 E l procesador de E/S en la computadora IBM 370

SECCI~N11-7 Procesador

de entrada-salida (IOP)

455

condicin es diferente para cada instruccin de E/S. Pero, en general, especifican si el canal o el dispositivo estn ocupados, si son operacionales o no, si hay interrupciones pendientes, si la operacin de E/S comenz exitosamente y si se almacen una palabra de estado en la memoria por medio del canal. El formato de la palabra de estado del canal se muestra en la figura 11-21(b). Siempre est almacenado en la posicin 64 en la memoria. El campo de clave es un mecanismo de proteccin utilizado para evitar el acceso no autorizado por parte de un usuario a la informacin que pertenece a otro usuario o al sistema operativo. El campo de direccin de la palabra de estado proporciona la direccin de la ltima palabra del comando utilizada por el canal. El campo de cuenta proporciona la cuenta residual cuando se termin la transferencia. El campo de cuenta mostrar cero si la transferencia se termin exitosamente. El campo de estado identifica las condiciones en el dispositivo y el canal y cualesquiera errores ocurridos durante la transferencia. La diferencia entre las instrucciones iniciar E/S e iniciar envo rpido de E/S es que la ltima requiere menos tiempo de CPU para su ejecucin, cuando el canal recibe una de estas dos instrucciones, hace referencia a la localidad 72 de la memoria para la direccin de la primera palabra de comando del canal (CCW). El formato de la palabra de comando del canal se muestra en la figura 11-21(c). El campo de direccin de datos especifica la primera direccin de un bffer de memoria y el campo de cuenta proporciona la cantidad de bits que participan en la transferencia. El campo de comando especifica una operacin de E/S y los bits de bandera proporcionan
Figura 11-21 Reiaci6n de formatos de palabra. E/S de ia IBM 370

a) Formato de instrucciones de E/S

Clave

Direccin

Estado

Cuenta

b) Formato de palabra de estado del canal

Cdigo de comando

Direccin de datos

Banderas

Cuenta

(c) Formato de palabra de comando del canal

456

c ~ f n n ONCE o Organizacin de entradaalida

informacin adicional para el canal. El campo de comando corresponde a un cdigo de operacin que ]especifica uno de seis tipos de operaciones E/S:
1. Escribir. Transferir datos de la memoria a un dispositivo de E/S. 2. Leer. Transferir datos de un dispositivo de E/S a la memoria. 3. Leer en reversa. Leer una cinta magntica cuando se mueve en

reversa.
4. Controlar. Se usa para iniciar una operacin que no implica transferencia de datos, como rebobinar una cmta o pasicionar un mecanis, mo de acceso a disco. 5. Detectar. Le informa al canal qie transfiera su palabra de estado de , canal a la localidad de memoria 64. 6. Transfw'r en el canal, Sic utiliza en lugar de una instruccin de brinco. Aquf el campo de direccin de datos especifica la direccin de la siguiente palabra de comando que va a ejecutar el canal. Un ejemplo de un programa de canal se muestra en la tabla 11-3. Consta de tres palabras de comando. La priiiera produce una transferencia dentro de una cinta magntica de 60 bytes desde la memoria comenzando en la direccin 4000. Las siguientes dos palabras de comando ejecutan una funcin similak con una porcin diferente de la memoria y de cuenta de bytes. Las seis banderas en cada palabra de control especifican ciertas interrelaciones entre las palabras de comando. La primera bandera se activa en 1 en la primera palabra de comando para especificar "encadenamiento de datos". Da como resultado la cambinacin de 60 bytes de la primera palabra de tomando con los 20 bytes de su sucesor dentro de un registro de 80 bytes. Los 80 bytes se escriben en cintas sin ninguna separacin o salto, aunque se utilizaron dos secciones de memoria. La segunda bandera se activa en 1 en la segunda palabra de comando para especificar "encadenamiento de comandos". Le informa al canal que la siguiente palabra de comando utilizar el mismo dispositivo de E/S, en este caso, la cinta. El canal le informa a la unidad de cinta que comience a insertar un intervalo de registro en la cinta y avance a leer la siguiente palabra de comando de la memoria. Despus se escriben los 40 kytes de la tercera palabra de comando en una cinta como un registro separado. Cuando todas las banderas son igual a cero, significa terminar las operaciones de E/S para el dispositivo de E/S particular.
TABLA 11-3 Ejemplo de programa de canal de IBM370
-

Comando
P

Direccin Banderas

Cuenta

Escribir en cinta Escdbir en cinta Escribir en cinta

4000 6000 3000

100000
010000 000000

60 20

40

Unidad de memorfa

Palabra de estado tiel canal 64

Figura 11-22 PACi6n de la i n f o d 6 n m la memoria operaciones de E/S de ia 1BM 370.


t

Un mapa de la memoria que muestra toda la informaci6n -ente


para el pcemmiento de E/8 se us& w la figura 11-22. La operacin comimm cuando el propma de la- O U encuentra una instruccin de iniciar de E/S. B1 B/S va despus a la posicio de memoria 72 para obtener una palabra de direacin de y a l . Esta palabra contiene la direaci6n inicial del programa de d de E/S. En seguida, d canal avanza a ejecutar el programa es+ficada mediante 1 w paUras de m a n d o de canal. E l canal construye iana palabra de estado durante la t r a n s h c i a y la almacena en

458

CAP~TULOONCE Organizacin de entrada-salida

la posicin 64. Cuando ocurre una interrupcin, la CPU puede hacer referencia a la posicin de memoria 64 para la palabra de estado.

IOP de Intel8089
El procesador de E/S Intel8089 est contenido en un encapsulado de circuito integrado de 40 bits. Dentro del 8089 hay dos unidades independientes llamadas canales. Cada canal combina las caractersticas generales de una unidad de procesador con las de un controlador de acceso directo a memoria. El 8089 est diseado para funcionar como un IOP en un sistema de microcomputadora en donde el microprocesador 8086 se utiliza como CPU. La CPU 8086 inicia una operacin de E/S al construir un mensaje en la memoria que describe la funcin que se va a ejecutar. El IOP 8089 lee el mensaje de la memoria, realiza la operacin, y notifica a la CPU cuando ha terminado. En contraste con el canal IBM 370, que slo tiene seis comandos de E/S bsicos, el IOP 8089 tiene 50 instrucciones bsicas que pueden operar sobre bits individuales o sobre bytes, o sobre palabras de 16 bits. El IOP puede ejecutar programas de manera similar a la CPU, excepto que el conjunto de instrucciones se escoje en forma especfica para proporcionar un procesamiento eficiente de entrada-salida. El conjunto de instrucciones incluye instrucciones de transferencia de datos generales, operaciones aritmticas y lgicas bsicas, operaciones de transferencia condicional e incondicional y posibilidades de llamar y retornar subrutina. El conjunto tambin incluye instrucciones especiales para iniciar transferencias de DMA y emitir solicitudes de interrupcin a la CPU. Proporciona una transferencia de datos eficiente entre dos componentes conectados al canal de sistema, como E/S a memoria, memoria a memoria o E/S a E/S. Un sistema de microcomputadora que utiliza el par de circuitos integrados 8086/8089 se muestra en la figura 11-23. El 8086 funciona como la CPU y el 8089 como el IOP. Las dos unidades comparten una memoria comn mediante un controlador de canal conectado a un canal de sistema, que Intel denomina "multicanal". El IOP utiliza un canal local para comunicarse con diferentes unidades de interface conectadas a dispositivos de E/S. La CPU comunica con el IOP al habilitar la lnea de atencin al canal. La lnea de seleccin la utiliza la CPU para seleccionar uno de los dos canales en el 8089. El IOP obtiene la atencin de la CPU al enviar una solicitud de interrupcin. La CPU y el IOP se comunican uno con el otro al escribir mensajes mutuos en la memoria del sistema. La CPU prepara el rea de mensaje y la seala el IOP al habilitar la lnea de atencin del canal. El IOP lee el mensaje, ejecuta las funciones de E/S requeridas y ejecuta el programa de canal conveniente. Cuando el canal ha terminado su programa, emite una solicitud de interrupcin a la CPU. El esquema de comunicacin consta de secciones de programa llamadas "bloques", las cuales se almacenan en la memoria como se muestra en la

sECCI~N11-7 Procesador d e entrada-salida (IOP)

459

figura 11-24. Cada bloque contiene informacin de control y parrnetros, al igual que un apuntador de direccin a su bloque sucesor. La direccin del bloque de control se pasa a cada canal IOP durante la inicializacin. La bandera ocupado indica si el IOP est ocupado o preparado para ejecutar una nueva operacin de E/S. La CPU especifica una palabra de comando de canal (CCW) para indicar el tipo de operacin requerida del IOP. La CCW

CPU 8086

1
Controlador de canal
1

Sistema de canal

Unidad de memoria

I
IOP 8089
4

Canal local
1

Interface

Ld

b
Dispositivo de entrada Dispositivo de salida

mm3up4 ?\3 rib -'


miih
U

Figura 11-23 Diagrama de bloque del sistema micrpprocesador Intel8086/8089.

Bloque de control

Bloque de parametros Direccin 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 Posicin de la informacin en memoria para operaciones de E/S en el sistema de rnicrocomputadora Intel8086/8089.

CAP~~W'LO ONCE Organizacin de entrada-salida

1IP
1

t .

en el 8089 no tiene el mismo significado que la palabra de comando en el canal de IBM. Aqu, la CCW se parece ms a una instruccin de E/S que especifica una operacin para el IOP, como iniciar operacin, suspender operacibn, reanudar operacin, y parar programa de E/S. El bloque de parimetros aontiene datos variables que el programa IOP debe utilizar para realizar su tarea. El bloque de tareas contiene el programa real que se va a ejecutar en el Ii3P. La CPU y el IOP trabajan juntos por medio de los bloques de control y de parmetros. La CPU obtiene el uso de la memoria compartida despus de comprobar la bandera de ocupado para asegurarse que el IOP est disponible. Despus, la CPU lleria la informacin en el bloque de parmetros y escribe un comando de "comenzar operacin" en la CCW. Despus de que se han inicializado bloques de comunicacin, la CPU habilita la seal de atencin del canal para informar al IOP que comience su operacin de E/S. Despus, la CPU contina con otro programa. El IOP responde a la seal de atencin del canal al colocar la direccin del bloque de control dentro de su contador de programa. El IOP hace referencia al bloque de control y activa la bandera de ocupado. Entonces checa la operacin en la CCW. Ce transfieren las direcciones PB (bloque de parmetros) y TB (bloque de tareas) dentro de los registros IOP internos. El IOP comienza a ejecutar el programa en el bloque de tareas utilizando la informacin en el bloque de parmetros. Las entradas en el bloque de parmetros depende del dispositivo de E/S. Los parmetros listados en la figura 11-24 son convenientes para transferencia de datos hacia o desde un disco magntico. La memoria de direccin especifica la direccin inicial de un buffer de memoria. La cuenta de bytes proporciona la cantidad de bytes que se van a transferir. La direccin del dispositivo especifica el dispositivo de E/S particular que se va a usar. Los nmeros del canal y sector ubican los datos sobre el disco. Cuando se termina la operacin de E/S, el IOP almacena sus bits de estado en la localidad de la palabra de estado del bloque de parmetros e interrumpe la CPU. La CPU puede hacer referencia a la palabra de estado para comprobar si la transferencia se ha completado satisfactoriamente.

5!i

11-8

Comunicacin serial

Un procesador de comunicacin de datos es un procesador de E/S que distribuye y recoge datos de muchas terminales remotas conectadas mediante el telfono y otras limeas de comunicacin. Es un procesador de E/S especializado diseado para comunicar directamente con redes de comunicacin de datos. Una red de comunicacin puede contener cualquiera de una amplia variedad de dispositivos, como impresoras, dispositivos interactivos de exhibicin visual, censores digitales o una opcin de computacin remota. Con el uso de un procesador de comunicacin de datos, la computadora puede dar servicio a fragmentos de cada demanda de red de manera intercalada y

SECCI~N 11-8 Cmunimci6n serial

461

por lo tanto tener un desempeo aparente de servir a muchos usuarios a la vez, D e esta manera, la computadora puede operar eficientemente en un ambiente de tiempo compartido. La diferencia m s notable entre un procmdor de E/S y un procesadar procssador de de comunicaci6n de datos es la manera en la que el procesador se comunica comunicadn cbn 10s dispositivos de E/S. Un procesador de E/S se comunica con los de datos h i r i i pmifricos a traves de un canal de E/S comn que consta de muchas lneas I de datos y de control. Todos los periMricos comparten e l canal comn y lo m'& utilizan para transferir informacin h a c i a y deede el procesador de E/S. Un procesador de coneunicacidn de datos se comunica con cada terminal por medio de un solo par de cabIes. La informacin de control y de datos se transmite de manera serial con el resulbdo de que la velocidad de transferencia es mu&o mis lenta. L a tarea del procesador de comttnicacin de datos es transmitir y recoger informaci6n diiital hacia y desde cada terminal, determinar si la informacibn es de datos o de control y responder a todas las solicit~desde acuerdo a procedimientos establecidos con anticipaci6n. Es obvio que e l procesador tambin debe comunjcarse con la CPU y Ia memoria de la misma manera que cualquier procesador de EIS. La manera en que esten conectadas ias terminales remotas a un procesador de comunicacin de datos es mediante lneas telefbnicas u otras opcioneg de comunicaci6n privadas o pbIicas. Como las lneas de comunicacidn ataban diseiradas originalmente para la comunicaciSn de canal y las computadoras se cotrtunican en tminos de seales digitales, debe utilizarse alguna forma de conversihn. Los convertidores se .denominan conjuntos de mddem datos, sicopladores adsticos o rnddems (de "modulador-demdulador").Un mdern convierte las seales digitales en tonos de audio que s e transmiten por lneas telefbnicas y tambin convierten tonos de audio de la lnea a seales digitales para el uso de la mdquinzi. Se utilizan varios esquemas de modulricibn al igual que diferentes grados de medios de comunicacibn y velocidades de transmisi6n. Una Lnea de comunicaci6n puede estar conectada a una interface sncrona o asncrona, dependiendo del mgtodo de transmisibn de la terminal remota. Una interface asncrona recibe datos seriales con bits de inicio y paro en cada carkter, como 'se muestra en la figura 11-7. Este tipo de interface es simiIar a la unidad de interface de comunicaci6n ashcrona presentada en la figura 11-8. la transmisi6n srtcrona no utiliza los blts de inicio y paro para delimitar los caracteres y por lo tanto usa el enlace de comunicacibn de manera mas eficiente. Los dispmitivos de alta velocidad utilizan l a transmisi6n slncmna para &tener esta eficiencia. h s mdems utilizados en la transmisi611 sincrona tienen relojes internos que se inicializan a la frecuencia que se estn transmitiendo los bits en la lnea de comunicacin. Para una operacibn adecuada, s e necesita que los relojes en los rndems transmisor y receptor estn sincronizados en todas las ocasiones. S i n embargo, la lfnea de comunicaci6n contiene s610 10s bits de datos a partir de los cuales debe obtenerse la informacidn de reloj. La sincronizaddn de la secuencia la consigue el

trans-a de bloqw

CRC

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

SECCI~N11-8

Comunicacin serial

463

dplex completo

protocolo

indicarle la aparicin de errores. Los ejemplos de transmisin smplex son la programacin de radia y televisin. Un sistema de transmisin semidplex es uno que puede transmitir en ambas direcciones pero slo pueden transmitirse los datos en una direccin a la vez. Se necesitan un par de cables para este modo. Una situacin comn es la de un modem que acta como el transmisor y otro como receptor. Cuando termina la transmisin en una direccin, el papel de los modems se invierte para habilitar la transmisin en sentido opuesto. El tiempo requerido para cambiar una lnea semidplex de una direccin a otra se llama tiempo de vuelta. Una transmisin dplex completa puede enviar y recibir datos en ambas direcciones simultheamente. Esto puede lograrse mediante iin enlace de cuatro cables con un par de h e a s diferentes dedicadas a cada direccin de transmisin. Alternativamente, un circuito de dos lneas puede soportar comunicacin dplex completa si el espectro de frecuencia se subdivide en dos bandas de frecuencia no sobrepuestas para crear canales de recepcin y transmisin separados en el mismo par de lneas fsico. Las lneas de comunicacin, los mdems y otro equipo utilizado en la transmisin de informacin entre dos o ms estaciones se denomina enlace de datos. La transferencia de informacin ordenada en un enlace de datos se consigue mediante un pmfocolo. Un profocolo de control de enlace de datos es un conjunto de reglas que siguen las computadoras y terminales interconectadas para asegurar la transferencia de informacin ordenada. El propb sito de un protocolo de enlace de datos es establecer y terminar una conexin entre dos estaciones, identificar al transmisor y al receptor, asegurarse que todos los mensajes pasen en forma correcta sin errores y manejar todas las funciones de control implcitas en una secuencia de transferencias de datos. Los protocolos se dividen en dos categoras principales, de acuerdo a las tcnicas de ordenamiento de mensajes. Estos son el protocolo orientado a caracteres y el protocolo orientado a bits.

ri m

Protocolo orientado a caracteres


El p~otocolooi-ientado a caracteres se basa en el cdigo binario de un conjunb de caracteres. El cdigo que se usa con mayor frecuencia es el AKII (cdigo estndar norteamericano para intercambio de informacin). Es un cdigo de 7 bits en el que se usa un octavo bit para paridad. El cdigo tiene 128 caracteres, de los cuales 95 son grficos y 33 son de control. Los caracteres grficos incluyen las letras maflsculris y minsculas, los diez ntmeros y una variedad de smbolos especiales. En la tabla 11-1 puede encontrarse una lista de los caracteres ASCII. Los caracteres de control se utilizan para dirigir datos, arreglar la prueba en un formato deseado y para la distribucin de la pgina impresa. Los caracteres que rontrolan la transmisin se llaman caracteres de control de comunica&. Estos caracteres & listan en la tabla 11-4. Cada carcter tiene m cdigo de 7 bits y se hace referencia a l mediante un smbolo de tres

464

cAetruLo ONCE Organizacin 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 bansrnisin Reconwimiento afiiativo Reconacimiento negativo Cmsdasilataminaleatencendida Fin de bloque de datos Cmicter de control ~speciai

~adcter SYU

h a s . El papel de carActc?r en el control de l a transmisidn de da- se explica m fomia breve en la columna de fumih de la tabla. El car6cter S Y N sirve como un agente de sincmnizaci6n entre el transmisor y e l receptor. Cuando se utiliza el cdigo AXII de 7 bits con un bit de paridad impar en la posicidn m8s significativa, el car6cter SYN asignado time el d i g o de 8 bits OOOlOllO que tiene la propiedad que, ante la acwrencia de un corrimiento circuiar, se repite a s mismo &lo despuh de un ciclo de 8 bits completo, Cuando d transmisor empieza a enviar caracte res de 8 bits, enva primero unos cuantos caracteres, y despuhs envh el mensaje real, La serie continua de bits iniciales que acepta ei receptor se comprueba en busca de un carcter SYN. En otras palabras, con cada p h de reloj, el receptor comprueba los tililtimos 8 bits recibidos. Si no coinciden los bits del carActer SYN e l receptor acepta el siguiente bit y rechaza el bit anterior de orden superior y vuelve a comprobar los riltimos 8 bits recibidos en busca de un cardcter SYN. Esto se repite despuds de cada pulso de reloj y despus de cada bit recibido hasta que se reconwe un caracter SYN. Una vez que se detecta un caricter SYN, el receptor ha "armado"un caracter. D e ah en adelante el receptor cuenta cada 8 bits y los acepta como un slo cadcter. Por l o general, el receptor comprueba dos caracteres S Y N consecutivos para que no exista i a duda que e l primero ocurri6 como resuitado de una seal de ruido en la inea. Adems, cuando e l transmisor est desocupado y no tiene ningunos caracteres de mensaje que enviar, emplea una serie continua de caracteres SYN. El. receptor reconoce estos caracteres como una cmdiin para sincronizar la lnea y pasa a su estado inactivo sncrono. En a t e estada, las dos unidades son sinanas en bits y caracteres, aunque no se comunique infomaci6n significativa. L . o s mensajes s e transmiten por el enlace de datos con un formato establecido que consiste en un campo de encabezado, un campo de texto y

SYN

SYN

SOH ncabezado STX

Tato

ETX

BCC

Figura 11-25 Formato de mensaje tpico para protwolo dentado a caracteres.

un campo de compmbacin de error. Un formato de mensaje tpico para un protocolo orientado a caracteres se muestra en la figura 11-25. Los dos caracteres S Y N aseguran la sincmnizaci6n adecuada al inicio del mensaje. &pus de b s caracte~s S Y N est e l encabezado, que comienza con cariicter SOH (inicio de encabezado). El encabezado consiste en uifomaun de direccidn y control. El carcter STX te& el encabezado y significa e l comienzo de la transmisidn del texto. ta parte de texto del mensaje es variable en longitud y puede contener malesquiera caracteres ASCII, excepto los caracteres de control de comunicaci6n. El campo de texto termina con J carActer ETX. E 1 ltimo campo es un caracter de comprobaci6n de bloque (block check character, BCC) utilizado para la comprobacibn de error. Por 10 regular, es una comprobacibn de redundancia Iongitudinal (longifudinal redundancy check, LRC) o una comprobaci6n de redundancia cclica (cyclic redundancy check, CRC). ES1 receptor acepta el mensaje y calcula su propia BCC. Si la BCC transmitida no coincide con l a BCC calculada por e l receptor, el receptor responde con un cadcter de reconocimiento negativo (NAK). Despuk eI mensaje se retransmite y se vuelve a comprobar. Lo normal es que se intente retransmitir varias veces anks de que se conside que h h e a est defectuosa. Cuando la CC transmitida coincide con la que calcula e l receptor, la respuesta es un recanocimiento positivo utilizando eI carActer ACK.

Ejemplo de kansmisibn Para apreciar la funci6n de un procesados de comunicacibn de datos, veamos m d k t e un ejemplo especifico el &todo con d cual se comunican una terminal y el procesador. La comunicaci6n con l a unidad de memoria y h CPU es similar a cualquier procesador de 'B/S. Un mensaje tipico que podrla enva= de una terminal al procesador se lista en la tabIa 11-5. h lobservar este mensaje s e descubre que hay varios caracteres de control que se usan para la formacin del mensaje. Cada carActer, incluyendo los caracteres de control, se transmite en forma serial como un c6digo binario de 8 bits que consta de un c6digo ASCU de 7 bits ms un bit de paridad impar en l a octava posicin ms significativa. Se utilizan los dos caracteres SYN para. sincronizar el receptor y el transmisor. El encabezado comienza con e l carhcter SOH y contina con dos caracteres que especifican la d i i b n de la temimi. En este ejemplo particular, 1. direcci6n es T4, p r o en g e n e d pueden tener cualquier conjunto de dos o mbs caracteres grAficoe. Q caracter STX termina el encabezado y comunica

TABLA 11-5
-

Transmisi6ai ipica 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,0011 O111 OIWIO

No. 1234

K m
LRC

Fin de transmisi6n de texto Carcter de paridad longitudirtal

el comienm de la transmisin de texto. Los datos de texto que nos interesan aqu son "solicitar EI balance la cuenta 1234". Los caracteres individuales para este mensaje no se listan en la tabla porque ocuparan demasiado espacio. Sin embargo, debe recordarse que cada carActer m el mensaje tiene un cdigo de 8 bits y que cada bit se transmite en forma serial. El carcter de control El"X significa la terminacin de h c a r a c m de texto. El siguiente carkter despus de ETX es una comprobacin de redundancia longitudinal (LRC). Cada bit en este cadcter es un bit de paridad calculado de todos los bits en la misma columna en la seccin de cdigo de la tabla. E l p m a d o r de comunicacin de datos recibe este masaje y avanza a a n a k l o . Usa la terminal T4 y almacena el texto asociado con el mensaje.
m i b e los caracteres, el proeesador comprueba la paridad en cada carkter y ta&iQi calcula la paridad longitudinal. La LRC calculada se compara con el carActer LRC recibido. S i los dos coinciden, se envia de r e p m a la terminal un reconocimiento positito. S i no coinciden ae retorna a la terminal un reconbcimiento negativo (NAK) que iniciara una retransmisi6n del mismo bloque. Si el procesador encuentra que el mensaje no tiene errores, lo transfiere dentro de la memoria e inkrrumpe la CPU. Cuando la CPU reconme la interrupcin, a n a h el mensaje y prepara un mensaje de t a t o para responder a l a solicitud. La CPU enva una instniccih al procewdor de municacin de datos para que ende el mensaje a la terminal. En i a tabla 11-6 se lista una =puesta pica del procesador a la krminal. Despus de dos caracteres SYN, e l procesador m o c e el mensaje p * con un c d c t e r ACK. La lnea continua inactiva con un carkter SYN
Mmtrhs

TABLA 116 T W i n M p h de p m d o t a temimi

SYN SYN

ACK
SYN

Primer caricter sincronizado cargcter sincconizado E l procesad01 mmmce ei mensaje -o La lnea inactiva

..
SYN

SOH T
4

hllneaestinacava Iniciodeencabezado L a direccin 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 Carcter de pandad longitudid

en espera de la respuesta. E l procesador amgIa en el formato apropiado el mensaje recibido de la CPU al insertar los caracteres de contro1 n m n m antes y despub del texto. El mensaje tiene e l encabezado SOH y l a djreccibn de la tenninal T4. El mensaje de texto informa a la terminal que el balasice es $100. Se calcula un carActer LEC y se envla a la temiinal. Si la terminal responde con un cargcter NAK, d procesador xetransrnite el mensaje. Mientras el procesador cuida esta terminal, tambin est a p d o procesando otras tenninalea. Camo los se en fomia s e r i a l , ce m i t a cierta cantidad de tiempo para recibir y rewiir un d & r de 8 bita Durante esbe tiempo el pmxsador est r n u l t i p l ~ o todas las o t m lneas de comunicadh y atien$e a cada una por hma. ia wlddad de las k m h a b motas es atmmkwnte h t a en comparacin con la ve-d del proce wdor, Esta propiedad permite mdtiplexar a muchos usuario8 para eonsegiiir una mayor efectividad en un -S de tiempo compartido. Tambin permite que muchos usuarioe operen simuitheament mientras w atiende a cada uno de d o s a velocidades comparables a la respwta humana n o d

E l protorola orientado a c a r a c m = desam1i6 originalmente para comunicarse con teclados, impresora y dispositivos de arhiiirin visual que utilizan

Transparencia de datos

carbcter RLE

&lo caracteres alfanumricos. Conforme se ampli el campo de comunicacin de datos# se h a necesario transmitir informacin biaria que no fuera texto AXII. Esto sucede, por ejemplo cuando dos computadoras remotas envlan programas y datos una a la otra por un canal de comunicaci6n. Un patr6n de bib arbitrario en e l mensaje de1 texto se convierte en un problema en el protocolo orientado a caracteres. Esto se debe a que el receptor interpretar8 de manera errnea cualquier patrn de 8 bits que pertenezca a un cargcter de control de comunicaci6n. Por ejemplo, si los datos binanos en la parte del texto del mensaje tiene el patr6n de 8 bits 100M1011, el receptor interpretar& &te como un car6cter ETX y considerar4 que se ha alcanzado el fin del campo de texto. Cuando la longitud de la parte del texto del mensaje es 'variable y contiene bits que se van a tratar sin ninguna xekrencia a algn cdigo particular, se dice que contienen datos transparentes. Esta caracterstica requiere que la lgica de reconocimiento de caracteres del receptor se apague para que Ios patrones de-datos en el campo de texta no SE interpreten accidentalmente como informacibn de control de cornunicaci6n. La transferencia de datos se consigue en b s protocoIos orientados a caracteres al insertar un cariicter DLE {data link escape, escape de enlace de datos) antes de cada cardeter de control de copunicacin. Por lo tanto, se detecta el comienzo de un encabezado del cari5cter doble D E SOH, y el campo de texto se termula con el cadcter doble DLE E I X . Si murre el patr6n de bits DLE OOOlOOOO en la parte de texto del mensaje, el transmisor inserta otro patrn de bits DLE despus de l. El receptor quita todos los caracteres DL,E y despus comprueba el siguiente paMn de 8 bits. Si es otro patr6n DLE, el receptor lo considera como parte del texfo y contina recibibndolo. D e otra manera, el r e q t o r tona el siguiente patrbn de 8 bits como un caracter de control de comumicacibn. Lograr la transparencia de datos mediante el carsicter DLE no es eficiente y resulta complicada de implantar. Por lo tanto, se han desarroIIado otros protorolo3-para hacer d s eficiente la transrnisibn de datos transpawtes. Un protocalo utilizado por Digital Equipment 'Corporatian emplea un campo de cuenta de bytes que proporciona l a cantidad de bytes en el mensaje que sive. Despus el receptor debe contar la cantidad de bytes recibido6 para Uegar al final del campo de texto. El protocalo que se ha usado coxr mayor fwmertda para resolver el problema de transparencia (y otros prdblemas asociados con el protocolo orientado a caracteres) es el protocolo dentado a bi'b. rr?lF; -

Protocolo orientado a bits E1 protorolo orientado a bits no utiliza caracteres en su campo de control y es independiente de cualquier o particular, P d t e la transmisi6n de un flujo de bib serial de cualquier longitud sin implicar lmites de caraderes. LDS mensajes m organhn en un fonnato especial llamado cuadro. Adems

SECCI~N 11-8 Comunicacin serial

469

bandera de ocho bits

insercin de cero

del campo de informacin, un cuadro contiene los campos de direccin, control y comprobacin de error. Los lmites del cuadro los determina un nmero especial de 8 bits llamado bandera. El SDLC (synchronous data link control, control de enlace de datos sncrono) utilizado por IBM. El HDLC (high-leve1 data link control, control de enlace de datos de alto nivel) adoptado por la International Standards organizadon, y el ADCCP (admnced data damun2catio~contml p~ocedure,procedimiento avanzado de control de comunicacin de datos) adoptado por el American National Standards Institute son ejemplos de protocolos orientados a bits. Cualquier enlace de comunicacin de datos implica al menos dos estaciones participantes. La estacin que tiene la responsabilidad para el enlace de datos y que emite los comandos para controlar el enlace se llama la estacin primaria. La otra es una estacin secundaria. Los protocolos orientados a bits consideran la presencia de una estacin primaria y una o ms estaciones secundarias. Todas las comunicaciones en el enlace de datos son de la estacin primaria a una o ms de las estaciones secundarias o de la estacin secundaria a la primaria. El formato del cuadro para el protocolo orientado a bits se muestra en la figura 11-26. Un cuadro comienza con una bandera de 8 bits 01111110 a la que le sigue una secuencia de direccin .y control. El campo de informacin no se limita en formato o contenido y puede tener cualquier longitud. El campo de comprobacin del cuadro es una secuencia CRC (yclic redundancy check, comprobacin de redundancia cclica) que se usa para detectar errores en la transmisin. La bandera de terminacin le indica a la estacin receptora que los 16 bits que recibi constituyen los bits CRC. Al final del cuadro puede seguir otro cuadro, otra bandera o una secuencia de nmeros 1 consecutivos. Cuando dos cuadros estn uno tras el otro, la bandera que interviene es simultneamente la bandera final del primer cuadro y la bandera inicial del siguiente. Si no se intercambia informacin, el transmisor enva una serie de banderas para conservar la h e a en estado activo. Se dice que la lnea est en estado inactivo cuando ocurren 15 o ms nmeros 1 consecutivos. Se envan algunos cuadros con ciertos mensajes de control sin un campo de informacin. Un cuadro debe tener un mnimo de 32 bits er.tre dos banderas para alojar la direccin, los campos de comprobacin del cuadro, la direccin y el control. La longitud mxima depende de la condicin del canal de comunicacin y su capacidad para transmitir mensajes largos sin error. Para evitar que ocurra una bandera a la mitad de un cuadro, el protocolo orientado a bits utiliza un mtodo llamado insercin de O. Este
Figura 11-26 Formato de marco para protocolo orientado a bits.
Bandera 01111110 Direccin 8bits Control 8bits informacincualquier cantidad de bits Comprobaci6n Bandera decuadro O I ~ l I 1 1 0
16 bik

470

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 nmeros 1 continuos. El receptor siempre quita un O despus de una sucesin de cinco nmeros 1. Por lo tanto el patrn de bits O111111 se transmite como O l l l l l M y el receptor lo restablece a su valor original al quitar el O que le sigue al quinto nilunero 1. Como c o ~ e n c i a j,a d s se transmite un paMn 01111110 entre las banderas inicial y final. Despub de la bandera esa el campo de direccih que utiliza h estacin primaria para designar la direccin de la estaci6n secundaria. Cuando una estad611 s e a m h i a transmite un cuadro, la direccin le dice a la estacibn primaria cual eshcin secundaria originb el cuadro. Un campo de direccin de 8 bits puede especificar hasta 256 direcciones. Algunos protmlos arientados a bits permiten que se use un campo de direccidn ampiiado. Para hacer esto, se desactiva m O el bit menos sigruficativo de un byte de dwccin si le sigue otro byte de direacibn. Se usa un nmero 1 en el bit menos significativo de un byte para reconocer d ltimo byte de direccibn Despu& del campo de direcci6n esta el campo de control, E l campo de control viene en ires formatos diferentes, como se muestra en la figura 11-27. El formato de transferencia de infarmaci6n se utiliza para h transmisi6n de datos ordinarios. Cada cuadro transmitido en este formato contiene cuentas de envio y recibo. Una estacibn que transmite cuadros en secuencia cuenta y numera cada cuadro, Esta cuenta la proporciona la cuenta de envo N, Una wtaci6n que recibe cuadros 8eeuenciados cuenta cada marco sin error que recibe. Esta cuenta la proporciona la menta de recibo N, La cuenta N; avanza cuando se comprueba un cuadro y se encuentra que no contiene
Figura 11-27 Formato de ampo de control en proPorolo orientado a bits.

N . Enviar cuenta N,Kedhlr menta

P/F

E
-binario

tinal
/

errors. El receptor mnfinna que se han aceptado los mareos de informacibn numerada al retornar s u cuenta N, a la estaci6n que transmite. La estaci6n primaria utiliza el bit P/F para encuatar a una estad611 secundaria que solicite que inicie la transmisi6n. La estaci6n secundaria la utiliza para indicar el cuadro transmitido final. Por lo tanto, el campo P/F ae Iiama P (poll, encuesta) cuando transmite la estacihn primaria, pero se denomina F (final) cuando transmite una estaci6n secundaria. Cada cuadro que enva la estacin primaria a la estacibn secundaria tiene un bit de P inactiv~en O. Cuando la estacibn primaria tennina y est preparada para que responda a la estacibn secundaria, el bit P se activa en 1, despus Ia estad& secundaria responde con una cantidad de cuadros en la cual el bit F se desactiva en O. Cuando la estaci6n secundaria enva e l ltimo cuadro, activa el bit F en l. Por lo tanto, se u t i l i z a el bit P/F para determinar &do ha terminado la transmisi6n de datos de una estaci6n. ' El f b a t o supervisor del campo de control se reconoce porque los dos primeros bits son 1 y O. Los dos bits siguientes indican d tipo de comando. A esto le sigue un bit P/F y una recepcibn de menta de cuadro de secuencia. Los cuadros del formato supervisor no contienen un campo de informaci6n. Se usan para ayudar en la transferencia de infomaci6n porque confirman la aceptacibn de lcs cuadros anteriores que Uevan infonnaci6n, comunican condiciones preparado u ocupado y reportan errores en la numeracibn de cuadros. el formato sin numerar porque los dos primeros bits son Se 11. L . m cinco bits de c6digo disponibles en este formato puede especificar hasta 32 comandos y respuestas. L a estacibn primaria utiliza el campo de control para +car un comando para una estacibn secundaria. La estaci6n secundaria utiliza el campu de control para transmitir una respuesta a la estaei6n primaria. Las cuadros de formato sin numerar se emplean para iniciaIizar funciones de enlace, reportar errores de procedimiento, colmar las estaciones en modo desconectado y otras operaciones de control de enlace de datos.

11-1.

1 1 2

Las diredones asignadas a cuatro registros de h interface de E/S de l a figura 11-2 son iguales al equivalente bmario de 12,13,14 y 15. Mwstre el circuito externo que debe mneetapseentre la direcci6n de E/S de 8 bits de la CPU y las enkadas C$,RS1 y RSO de la interface. Sleis unidadea de interface del t i p ~ Q se R mumtra en la figura 11-2 m m c h d a s a una CPU que utilia una direccin de E/S de 8 bita Cada una de las seis entradas dedeceih de inte@ao (CS) est conectada a una h de di& diferente. Por lo m , la lnea de M n de orden superior es& wnectada,a la entrad4 CS de la primera unidad de y la sexh llneade diFemdnesi m& a la entradaCSde la sexta unidadde interface.

a , , ,,

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

--"

Problemas

473

tCdnt& bits hay en el registro de oorrimiento transmisor de la figura 118 cuando la ,interfaceesta conectada a upia terminal que neeesita un bit de alto? Liste los bib en el registro de paridad niando se trasmite h letra W utilizando ASCII con paridad par. Cuntos caracteres por segundo pueden ixansmirse sobre una lnea de 1200 baudios en cada uno de los siguientes modos?(Considereun &diga de caracteres de ocho bib). a. Transmisidn s&al dincrona, b . Transmisibn serial aslncrona con dos bits de alto. c. Trammisi6n &al asinmons con un bit de alto. Se inserta i n h c i 6 n denkm de un bffer FiFO a una velmidad de m bytes por segundo. La informacin se borra a una velocidad de n bytes por qundo. L a mxima capacidad de bdffer es k by@. a Cunto tiempo se necesita para llenar un buffer vado cuando m > n? b. ~Cudnta tiempo se necesita para que se vace un bffer lleno cuando m < n? c Seneeesifa el brlifkr FIFO s i m = n? L a s bits en el registro de control de la FZtY)que se muestra en la figura 11-9 son F,F$JQ = 0011. Proporcione la secuencia de operaaones internas cuando se borra un dato de la FiFO y se inserta despuh un nuevo dato. ~Culw son los vakres de entrada preparada, salida preparada y los bits de control del F1 a1 F4 en la figura 11-9cuando:

Ell y 5 f f e rest vado? b. $3 bCiffer est lleno? ' c El bilffer contiene dos datos?
a,

Muestre un diagrama de bloques similar a la figura 11-10 para la transferencia de datoa de la CP a la interface y despuds a un dipositivo de E/S. Determine un procedimiento para especifiw y limpiar el bit de
bandera.

Usando la conguraci6n establecida en el problema 11-16, obtenga un diagama de.fkujo(similara la de la figura 11-11) parad programa de CPU para sacar datos. Cul es Ia ventaja bhsica de utilizar transferencia de datos iniciada por InterrupEihsobre la transferencia bajo eI wntrol del programa sin interrup
aones? En la mayora de las computadoras se reconoce una internipcibn &lo despuh de la ejecuci6n de la instnieeih. Considere la posibilidad de noxr la internipci6~1 en cualquier momento durante la ejecuci6n de la instnieci6n. Analice la dificultad que puede surgir. Qu& sucede en i a interrupcibn de prioridad de lazo de margaritas que se muestra en la figura 11-12cuanda el dispositivo 1 soiicita una interrupcin, despus que e1 dispositivo 2 ha enviado una solicitud de interrupei6n a la CPU, pero antes de que la CPU responda con el reconocimiento de interrupci6n7

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

-A
-

11-21.

-m

Referencias

475

11-33. Liste un procedimiento de linea y la meentia de caracteres posibles para la comunicaci6n entre un proeesador de comunicacibn de datos y una terminal remota. El procesador pregunta si la terminal es operativa. L a terminal responde sl o no, Si la respuesta es si, el procesador envfa un bloque de texto. 1134. Un erace de comunicacin de datos emplea el ptmolo controlado por caracteres con t r a n s p a d a de datos, utilizando el ear&ckr D L B . E l mensaje de texto que enva el trasmisor entre SiX y FIX es como sigue:

DLE S T X DLE DLE ETX DLE DLE ETX DLE ETX

cul es el valor binario de los datos del texto transparente?


Cul es la cantidad mnima de biis que debe tener un cuadro en el protocolo orientado a bits? 11-36, Muestre c6mo funciona la insercibn de ceros,en e l protocolo orientado a bits, cuando se trasmite un cero seguido poc los diiz bits que representan e l equivalente binario de 1023.
11-35.

1. Gorsline, G.W., Computer Orgatrhtion: Hnrdwre/Soptaare, 2 a . ed. Englewood Clifb, NJ: Prentice Hall, 1986. 2. Hays, J. F., Compter Arckit~hre nnd Organiuith, 2a. d. Nueva York: McGraw-W, 1 9 8 8 . 3. HiII, F . J., y G.R.Peterson, DigItaI Systm: hlnrdware Orgatiktion and Design, 3a.d. Nueva York: JohnWiley, 1 9 8 7 . 4. Hwang, K,, y F.A. Briggs, ComputerArchitecturemd Paralki P m i n g . Nueva York McGraw-m, 1984. 5. Lippiatt, A. C., y G . L Wright, The A ~ h i k t u r e oJ Smnll Computer Sptms, 2a. d. Englewood Cliffs, Nj: M t i c e Hall, 1985. 6 . Pattwson, D.A. y J. L. Hemessy, Compufer Arckitechre: A Quantifatizre Appoach, San Mateo, CA:Morgan Kaufmann PubIishers, 1970. 7. PoUard, L. H . , Compukr Vesign md Ardiitactuw, Englewood Uiffs, N: Prmtice

H a l l , 1 9 9 0 .
8. R a f i q m m n , M . , y R.Chandra, W e r n Computer Archikhcte, S t . Paul, MN: West

Publishing, 1988. 9 . Toy, W , y B. Zee, Compter H a r d w a r e m r e Arckit~hre. Englewood Cliffs, Prentice Hall, 1986. 1 0 . Wakerly, J. F . ,M i c m p u t e r ~rchikture nnd Progrumming. Nueva Ymk JohnWiley,
. 1981. 1 1 . Ward, S .A., y E H Halstead, Jr., CottPpufafion Stmctures, Cambridge, MA:MIT Pms,

1 9 9 0 .

EN ESTE c~PfTuI.0
32-1

12-2
12-3
124

12-5 12-6

12-7

Jerarqulade la memoria Memoria principal Memoria auxiliar Memoria amciativa Memoria cachd Memoria virtual Chcuitera de administracidn de la memoria

12-1 Jerarqua de la memoria


L a unidad de memoria es un componente esencial en cualquier computadora digital, porque se necesita para almacenar programas y datos. Una computadora muy pequea con una aplicacibn limitada podrla cumplir mn la tarea que se pretende, sin necesidad de capacidad de almacenamiento adicional. La mayorh de bs compu&doras de propd~ita p e r a l correran con mayor eficiencia si estuvieran equipadas con almacenamiento adicional, aparte de la capacidad de l a memoria principal. Casi no hay suficiente espacio en una unidad de memoria para alojar todm los programas que se usan en una 'icomputadora tIpica. Adems, la mayorla de h usuarios de computadora :acumulan y siguen acumulando grandes cantidades de paquetes de progra:macibn de pmesamiento de datos. Y el procesador no necesita toda la I 'informacin almacenada a1 mismo tiempo. Por lo tanto, es m s econ6mico i u t i k r dispositivos de almacenamiento de bajo costo, que sirvan como un respaldo para almacenar la informacin que en ese momento no utiliza la ~ C P U La . midad de memoria que ae comunica directamente con la CPU se !h a m m u h principal. tos dispositivos que proporcionan almacenamiento memotia auxiliur de respaldo se llaman memmh auxilhr. Los dispositivos de memoria awiliar

''-

r ( s i l -#m

memoria cach

-r,1r,:,t~4~,r,r,r
III~/T!

- -

que se u~~ con ms fkcuerda en los sistemas de computadora son los ~ w o9 s cintas ~ g x 6 t i C a ~ CO . twan para almacenar progra&as del sistema, pmdes imhivos de-datos y otra hfomci6n de respaldo. 5610 los programas y datos que necesita en ese momento el procesador residen en la p@cipaL F$a; L cid-S jpfomcin se almacena en la memoria de. &&hefe a irhemoda principal cuando se necesita. b capa~bdadtotal de memoria da una computadora puede considerar& cornoLqna jera::::::::&& de Cdmponentes. 81 sistema de jerarqua de memoria consiste en todos los sistemas de almacenamiento que se emplean en un sistema de computadora; desde la memoria auxiliar, que es lenta pero de gran capacidad, hasta la memoria principal, que es relativamente ms rpida o, tal vez, una memoria cache ms rpida y pequea, y resulta accesible para la 16@~3 de procedimiento de alta velocidad. La figura 12-1 ilustra los componentes de una jerarqua tpica de memoria. En la parte baja de la jerarqua estn las cintas magnticas, que son relativamente lentas y que se usan para almacenar archivos removibles. Despus, estn los discos magnticos que se utilizan como almacenamiento de respaldos. La memoria principal ocupa una posid6n central al poder comunicarse directamente con la CPU y con Iw dkpositivos de memoria auxiliar, mediante un procesador de E/C. Cuando la CPU necesita los programas que no residen en la memoria principal, se transportan de la memoria auxiliar. Los programas que no necesita en ese momento la memoria principal, se transfieren dentro de la memoria auitil'iar, para proporcionar espacio a los programas y datos que se usan en ese momento. En ocasiones, se utiliza una memoria especial de muy alta velocidad, llamada cach, para aumentar la capacidad de procesamiento al poner disponible para la G$&qf ppgraqlpp g , m p w l e s a una velocidad rdpida.

-I

--

j i ~

.te- I I ~ , , , . , y !I~,I,,~J , 1.~1-l t o , ~ . ! . , o .~~rnc:;;


1

A ~ J wwn12-1m11p,a r q u e d--., .memoria en un sistema de oomputadora.


J , M J . ~ ~ ~ nu , >
l b t 7 4 1 q

o r n

'>IJJIIT~-

S ,R

-,b
-4

La memoria ca& se ~ F I M en los sistemas de computadora para eompensar la dikm& =de velocidad qntipe el tiwnpo de acceso a la memoria principal y h Qica de p r w d o r . Por h general, la lb+ de la CPU es $iBs dpida que e l tiempo de acceso de la memoria principal, con lo que resulta que 4 velocidad de pmcesasniento e t & h i t a & principalmente, por la vdwidad de la gnwnoria principal. U n a W c a que se utiIiza para compensar b dffemcia entre las vdcxidades- de operaci611, es emplear una pequea cach, exbudamente ~Apida, entre la CFU y la memoria principal, cuyo tiemp de a m suma a un tiempo de ciclo de reloj de lgica de p m d o r . Se usa la tache para almacenar segmentos de programas que se ejecutan en,ese momenb en lar CPU y para guardar datos temporales que se necesitan con h e n c b en los clculos preaenteo, Al poner disponibles' los progamas y los datos a gran vdddad, es posible incrementar la velocidad de h i ~ n a m i w i t o de la compubdora. MientTa~el pwesador de WS administra h transferencias entre las memorias principal y auxiliar, la o r g a n h c i h de sachd se interesa en la trwfexmcia de hfmuudbn entre la memoria y la CPU.Por l o tanto, cada una relaciona con un nivel diferente en el &tema de jerarquas de memoria. La para tener dos o t m jerarqufas de memorias es el aspecto econ6mico. ConFome .auXnenb la capacidad de l a memoria, disminuye el cato para d m e e n a r infomciba .biiria y se alarga d tiempo de acceao a l a memoria. La memoxia a& .tieneuna gran capacidad de almacenamiento y es relativamente barata, pero Gene baja velwidad de acen comparaci6n con la memoria principal. La n a m o k cachk es muy pequeifa, relativamente cara y time una velocidad de a nuy alta. Por lo tanto, conforme a w e n t a l a v e l a d de acceso a memoria, de igual manera se incrementa el eosto. El pmpsito g p m d de u una jerarqua de meme ria es obtener la velocidad de acceso promedio m s alta posible, en tanto se minimiza el costo total de todo el sistema de memoria. Las memorias auxiliar y mch4 se para .8ifqmtes prop6sitos. La cachd contiene aquellas partes de programas y datos que se usan con mayor huwiSia, Jniwtras que la memoria am&r contiene aquellas partes que no utiliza actuahente,h CPU. Ademiis, la Crm time amem directo tanto a la memoria cache como a la pcincipal, pero no a la memoria auxiliar. La kansfemc:lade lis memoria auxiliar a la -pBncipal, por lo general se realiza median& el aaeew ,&m@a memoria de pandes bloques de daba-La r d n de tiempo tfpica entre 4 memo& ca&4 y la memoria principal es de alrededor de 7 a 1 . Por ejemph, una, memo+ cacb6 tpica tiene un 6rmpo de accew de 100 ns, mientras que d a p o de aeeeso de la memoria pude ser de 700 ns. H l tiempo de -a p h m d o de 1 s w o r i a awiliar, por lo general es 14 veces el de la memoria pxhcipal. El -o de bloque de la &O& apx$ar,'uaria de 256 a 2048 paiabraq en tanto que el de blque de ca& regulannqte es da 1 a 1 6 palabras. Mu* shtemas opativas ean ck-mdps para habilitar a la CPU -m&,ad con el fin de que prwq v h o s pmgrnaas independientes en forma concu-

wr

489

CAP~TL~LO ~E Organizaciri de la memoria

mwltiprogrdmacidn

rrente. Este concepto, denominado multiprogrami6n, se refiere a la existencia de dos o m&s programas en diferentes jerarquas de memoria, al mismo tiempo. De esta manera, es posible tener ocupadas todas las partes de la computadora, al trabajar en varios sistemas en secuencia. Por ejemplo, supongamos que se ejecuta m programa en la CPU y que se necesita una transferencia E/S. La CPU inicia e1 procedimiento B/S para que comience a ejecutar la transferencia. Esto deja la CPW libre para ejecutar otro programa. En un sistema de tnultiprogramarcin, cuando un programa espera una transferencia de entrada o salida, hay otro programa preparado para utilizar la CPU. Con la multiprogramaci6n surge la necesidad de correr programas parciales, para variar la cantidad de memoria que utiliza cierto programa y para mover los programas por la jerarquia de programas. En ocasiones, los programas de computadora son demasiado grandes para alojarse en el espacio total disponible de la memoria principal. Adems, el sistema de computadara utilka muchos programas y no todos los programas pueden residir en la memoria principal en todo momento. Normalmente, un programa reside en la memoria auxiliar, junto con sus datos. Cuando se va a ejecutar un programa o un segmento de programa, se transfiere a la memoria principal para que lo ejecate la CPU. Por lo tanto, podra pensarse que la memoria auxiliar contiene toda la informacin almacenada en el sistema de la computadora. Es una tarea del sistema operativo mantener en la memoria .principal la ,parte de esta informacin que est activa en ese momento. La parte del sistema de la computadora que supervisa el flujo de informacin entre la memoria auxiliar y la memoria principal se denomina sistema de aclministracin de memoria. La circuitera para un sistema de administracin de memoria se presenta en la seccin 12-7.

12-2

Memoria principal

memoria de acceso aleatorio

La memoria p~incipal es la unidad de almacenamiento central en un sistema de computadora. Es una memoria rpida y relativamente grande y se utiliza para almacenar programas y datos durante la operacin de la computadora. La tecnologa fundamental que se utiliza para la memoria principal se basa en los circuitos integrados semiconductores. Se dispone de la RAM en circuitos integrados en dos modos de operacin posibles, estticos y dinmicos. La RAM esttica consiste esencialmente en flip-flops internos que almacenan informacin binaria. La informacin almacenada es vlida mientras la unidad est encendida. La RAM dinmica almacena la informacin binaria en forma de cargas elctricas que se aplican a capacitores. Unos transistores MOS son los capacitores en el C.I. La carga almacenada y los capacitores tienden a perderse con el tiempo y los capacitores deben cargarse en forma peridica al "refrescar" la memoria dinmica. El refresco se realiza al hacer circular las palabras durante un ciclo cada pocos microsegundos para resta-

memoria de slo lectum (RQII)

blecer la carga que se pielde. i . a BAM dinrnica ofrece consumo de energa pducido y mayor capacidad de a l m a d e n 5 0 en un & l o C.I. de memoria. La RAM esttica es m s fdcil de usar y tiene ciclos de lectura y escritura mas coztos. Gran parte de la menioria principal, en una computadora de propsito general, esa formada de circuitos integrados de RAM,. pero una parti? de la memoria estii formada por la ROM, Originalmente, se utilizaba RAM para hacer referencias a una memafia de acceso aleatorio, pero ahora se utiliza para mpreswrtar una memoria de lecturaleaeritura.y diferenciarla de una memoria de s61o lectura, aunque una ROM es tambin de acceso aleatorio. Se u t k la PAM para almacenar la mayor parte de los procesos y datos que estn sujetos a cambio. S e utiliza la RQM para almacenar programas que residen en forma permanente en la computadora y para tablas de constantes que no cambian de valor una vez que se termina la pmgramaei6n de la computadora. Entre o t a s cosas, la parte ROM de la memoria se necesita para almacenar un programa inicial llamado cargador de inkh1i;iacibn (htsfrap &). EI cargador de inicializacin es un programa cuya funcin es iniciar la operacin de l a programacibn de la computadora cuando se enciende la unidad. Como la RAM es volbtil, su contenido se destruye niando se demnech la corriente. El contenido de l a ROM na afecta despues que se apaga y enciende la unidad. E l arranque de una computadora consiste en encender la corriente y comenzar la ejecucin de un programa inicial. Por lo tanto, cuando se enciende la corriente, la circuikda de la computadora establece el contador de programa en la primera direccin del cargador de inicializacin. El programa de inicializaci6n carga una parte del sistema operativo del disco a la memoria principal y despus se transfiere el control al sistema operativo, el m 1prepara h computadora para su uso general. h C.I. de RAM y ROM estan disponibles en diferentes tamafios. Si la memoria que necesita h computadora es mayor que la capacidad que un C.L, es necesario combinar varios para formar el tamao de memoria requerido. Para mostrar esta inkrconextt~n, pongamos un ejempIo de una memoria de 1024 X 8 construida con C.T. de RAM 123 x 8 y C.I. de ROM 512 x 8.

canal bidireccional

C.I. de RAM y de ROM Un C.]. RAM es m8s adecuado para la comunicacin con la CPU si tiene una o mits entradas de control que lo seleccionen d o cuando se neaesita. Otra .~aracteristica comn es un .canal (o bus) de datos bidireccional que p~mite la transferencia de datos de la memoria a la CPU, durante una operacin de lectura, o de la CPU a la memoria, durante una operacibn de escritura. Puede construirse un canal bidireccional con acopladores de tres estados. Puede colocam la salida del amplador de tres estados en uno de tres stados p i b l a . Una seal equivalente al 1 Lgico, una seiial equivalente al O 16g1co o un estado de alta impedatcia. El 1 y el O 1se;lcos son

dfgitale~normale. E 1 estado de alta impedancia acta como un circuito a & , la que signifm que la salida no roaduce una y no tiene irnprtaneia l*ea. E l diagrama de bloque de un C.I. RAM se muestra en la figura 12-2. La capaddad de la memoria es de 128 palabras de 8 bits (un byte) por palabra. Ekto q u i e r e una direcci6n de 7 bits y un canal de d a b bidirecc h a l de 8 bits. Las entradas de lectura y escritura especifican h operach de memoria y las dos entradas de control & seleccibn de integrados (CS) son para h a b i l i t a s d C.I. & l o cuando e l miewprmdor lo selecciona. La d i ~ ~ d de a una d o m s entradas de control para seleccionar el C.T. facilita la d d i f i c a b b n de hs lneas de direccih, cuando se usan miiltiples C.I. en la hiicrocomputadora. En ocasionesI se combinan las entradas de k&na y d t u r a en m shea llamada R/W. Cuando se sekciona e lC I . , los dos estados binarios en Bta Enea especifican las dos operaciones de lectura o e d t u r a . L a tabla de funcin que se lista en la figura 12-2 (b) especifica la operacihn de la RAM La unidad est en opera~in &lo cuando CC1 = 1 y CS2 = O. La barra encima de la segunda variable de seleccin indica que esta entrada est habilitada cuando es igual a O . Si las entradas de seleccibn de integrado no estn habilitadas, o si atAn habilitadas pero las entradas de lectura o escritura no lo estn, la memoria se inhibe y su canal dedatos R encuentra en un estado de alta impedancia. Cuando CS1 = 1 y CS2 = 0,
figura 12-2 Integrado de RAM Hpico.

C S I ~ R D WR(

Furridn de

memoria

Btadodecanal de data
Alta i m p h d a Al" m i-

lnhlblsidn

Datos de mtrada a RAM D4twidemiidadeRtW Aitahphda

b) Tabla de fundgnes

SECCI~N 12-2

Memoria principal

483

puede colocarse la memoria en modo de escritura o lectura. Cuando se habilita la entrada WR,la memoria almacena un byte del canal de datos dentro de una localidad ecpecificada por las lneas de entrada de dwccidn. Cuando se habilita la entrada RD, se coloca el contenido del byte seleccionado dentro del canal de datos. Las seales RD y W R controlan la operacin de la memoria, as como los acopladores de canal asociados con el canal de datos bidireccional. Un C . I .de ROM se organiza en lo externo de manera similar. Sin embargo, como una ROM slo puede leerse, el canal de datos slo puede estar en modo de salida. El diagrama de bloque de un C.I. de ROM se muestra en la figura 12-3. Para un C.I. del mismo tamao, es posible tener mAs bits de ROM que de RAM, porque las celdas binarias internas en el ROM ocupan menos espacio que en RAM. Por esta razn, el diagrama especifica un ROM de 512 bytes, en tanto que el RAM slo tiene 128 bytes. Las nueve lneas de direccin en el C.I. de ROM especifican cualquiera de los 512 bytes almacenadosen l. Las dos entradas de seleccin de integrado deben ser CS1 = 1 y CS2 = O, para que opere la unidad. De otra manera, el canal de datos se encuentra en un estado de alta impedancia. No hay necesidad de un control de lectura o escritura, porque la unidad slo puede leer. Por lo tanto, cuando se habilita el C.I. mediante las dos entradas de seleccin, el bit seleccionado por las lneas de direccin aparece en el canal de datos.

Mapa de direccin de memoria


El diseador de un sistema de computadora debe calcular la cantidad de memoria requerida para la aplicacin particular y asignarla a RAM o a ROM. La interconexin entre la memoria y el procesador se establece despus, al conocer el tamao de la memoria que se necesita y el tipo de RAM y ROM disponibles. El direccionarniento de la memoria puede establecerse mediante una tabla que especifique la direcci6n de memoria asignada a cada C.I. La tabla, llamada mapa de direcciones de memoria, es una representacin grfica del espacio de direccin asignado a cada C.I. en el sistema. Para mostrar un ejemplo particular, consideremos que un sistema de computadora necesita 512 bytes de RAM y 512 bytes de ROM. Los C.I. de RAM y ROM que se van a usar se especifican en las figuras 12-2 y 12-3. El mapa de direcciones de memoria para esta configuracin se muestra en la tabla 12-1. La columna de componente especifica si se usa un C.I. de RAM o ROM. La coIumna de direccin hexadecimal asigna un rango de direcciones hexadecimales equivalentes para cada C.I. Las Ineas del canal de direcciones, se listan en la tercera columna. Aunque hay 16 lneas en el canal de direcciones, la tabla muestra slo 10 lneas porque las otras 6 no se usan en este ejemplo y se considera que son 0. Las pequeas debajo de las lneas del canal de direcciones, representan aquellas lneas que deben conectarse a las entradas de direccin en cada C.I. Los C.I. d e RAM tienen 128 bytes y necesitan 7 lneas de direccionamiento. El C.I. de ROM tiene 512 bytes y

484

cApInita

Orpkacin de la memoria

S e w i 6 nde integrado 1

%leodikide integmdo 2 4

CS2
512.X 8

CSI

.h+bn

de 9 MD

ROM
AD9

L C h a l de data de 8 blts

Figura 129 C 1. de ROM tpico.

n d t a 9 keas de direccimarnienb. Las x s e asignan siempre a las h e a s de canal de orden inferior: Jas lfneae del 1 al 7 para la RAM y las lineas del 1 al 9 la ROM. No es necesario hacer una diferencia entre los cuatro C.I. de &4M para asignar a cada uno c l k e c c i ~ diferentes. En este ejemplo particular ewogimos las beas de canal 8 y 9 para que representen cuatro combinaciones b W a s diferentes. N&se que puede elegirse para este pro@sito cualquier otro pax de ineas de canal sin utilizar. La tabla muestra claramente que las 9 h e a s del canal de orden inferior constituyen un espacio de memoria para RAM = 2 ' = 512 bytes. La diferencia entre una direccin RAM y ROM se establece con otra Ihea del canal. Aqu seleccionamos la lnea 1 0 para este propsito. Cuando la h e a 10 es O, la CPU selecciona una RAM y niando sta k e a es 1 , aelewiom la ROM. La direccin hexadecimal equivalente para cada C.I. se obtiene de la infomaci6n baja la asignaci6n del cana1 de direcciones. las lneas del canal de direcciones ae subdividen en grupas de cuatro bits cada una, para que cada grupo pueda representarse mediante un dgito hexadpcimal. El primer dgito hexadecimal qresenta las lineas de la 13 a la 16 y es siempre O. E l siguiente digito hexadecimd rep-ta las heas 9 a 12, pero las lneas 11 y 12 son siempre O. El racigo de direcciones Madeciffiales para cada comprinente se detemina de las x asociadas con &l. Estas x representan un nmero binario que puede vadar de valor desde .todos O a todos 1.

Conexi6n de la memoria a la CPU b s C.I. de RAM y ROM estn cowtados a la CPU por medio de los canales de datos y de d i d 6 n . Las h e a s de orden inferior en el canal de direccibn seleccionan el byte dentro de los C.I. y otras lneas en el canal de direcciones seleccionan un C.I. particular por medio de sus entradas de selecci6n de integrado. La conexidn de los C.I. de memoria a l a CPU se muestra en la figura 12-4, Esta codiguraci6n proporciona una capacidad de memoria de 512 byte de RAM y 512 bytes de ROM. Implanta el mapa de memoria de la tabla 12-1.Cada RAM recibe los siete bits de orden inferior para seleccionar uno de 128 bytes posibls El C.I. RAM particular seleccionado se determina

P .

.-

Figura 12-4 Conexibn de memoria a la Cm,

TABLA E-1 Mapa de direccin de memoria para micrammputadora


Canai de diredonas

Direccibn

C o m t e

hexadPdmal

10 9

8 7 6 5
O x x x
l O 1 x x x x x x x x x x

4 3 2 1

RAM 1
RAM 2
RAM 3 M M 4

O 0
O 0 O 1 O 1 1 x

x x x x
x x x x x x x x x x x x x x x x

008WMFF

01W17F
01WIFF 02HM3FF

x
x x

ROM

de las heas S y 9 del canal de direcciones. Esto se hace mediante un dec&icador 2 X 4, cuyas salidas van a las entradas CS1 en cada C.I. M M . Por l o tanto, cuando las heas de dimcionamiento 8 y 9 son iguales a 00, se selecciona e l primer C.I. de RAM. Cuando son 01 se selecciona el segundo y as1 sucesivamente. las salidas RD y W R del microprocesador se aplican a las entradas de cada C.1. RAM. La selecci6n entre RAM y ROM se hace por medio de la h e a 10 del canal. Se seleccionan las RAM cuando e l bit e n esta h e a es O y las ROM cuando es 1. L a otra entrada de seleccibn de integrado en la BOM esta conectada a la h e a de control R D para que se habilite el C.I. de R O B A glo durante una operaci6n de lectura. Las b e a s 1 al 9 del canal de direcciones se aplican a la dwcci6n de entrada de ROM sin pasar por el decodificador. Esto as& las direcciones O a 511 a RAM y de 512 a 1023 a ROM. E I canal de datos del ROM s610 tiene capacidad de salida,
mientras que e l canal de datos conectado a las RAM puede transferir informaci6n en ambas direcciones. El ejemplo que se acaba de dar proporciona una indicaci6n de la complejidad de intemnexi6n que puede existir entre los C.I. de memoria y la CPU.E d w 'm85 C.I. se conecten, se necesitan m s decodificadores externos para seleccionar entre los C.I. El diador debe establecer un mapa de memoria que asigne direcciones a los diferentes C.L, a partir de las cuales se determinan las conexiones requeridas.

l2-3 Memoxia auxiliar


Los d i s i t i v o s de memoria auxiliar que se usan con mayor frecuencia en sistemas de computadora son los discos y cintas magn&tiros.Otros romponentes utilimdos, pero no con mucha frecuencia, son los tambores magn&tiros, la memoria de burbuja rnagnetica y lus diseos pticos. Para comprender por compieto el mecanismo fico de los dispositivos de memoria auxiliar s e deben conocer los sistemas magrdticos, electrnicos y electromecnicos. Aunque las propiedades fsicas de estos dispositivos de almacenamiento pueden

SEaIdN 12-3

Memoria auxiliar

487

ser muy complejas, sus propiadades Lgicas pueden caracterizarse y compararse mediante unos pwos parmetrtw. Las caracteristicas importantes de cuaiquier dispositivo son su modo y tiempo de acceso, veIo2idad de transferencia, capacidad y costo. El tiempo promedio requerido para llegar a una localidad de alma* narniento en la memoria y obtener su contenido se denomina tiempo de acceso. En los d$ositivos electromec4nicos con partes mviks, como las cintas y los d i i s , el tiempo de acceso consiste en un tiempo de bdsqueda, requerido para posicionar la cabeza de lechrraeseritura sobre un lugar y un tiempo de transfmcia para trasladar datos hacia o desde e l dispositivo. Como eI tiempo de bsqueda, por lo general, es mas largo que el tiempo de transferencia, el almacenamiento auxiliar se organiza en registros o bloques. Un registro es una cantidad especifica de caramres o palabras. Siempre s e hace la lwtuca o ewxitura de registros complek La velocidad de hansfe m c i a es la cantidad de caracteres o palabras por ~ g u n d oque puede transferir el dispositivo, despus que se ha colocado m el inicio del registro. Las tambores y discos m a g n t i c o s son muy similares en su operacin. Ambos constan de superficies rotatorias de alta velwidad cubiertas con un medio magnktico de grabacibn. La superficie rotatoda del tambor es un cilindro y la del disco un plato d o n d o plano. La superficie de grabaci6n giw .a velocidad uniforme y no se &ende o apaga durante las operaciones de a . Los bfts se graban como puntos magn&hs sobre la superficie, conforme pasan por un mecmhmo estacionario llamado cabeza de escritura. Los bits almacenados se detectan mediante un eambi~ en el campo m a g d &o producido por un punto grabado en la suprficle, conforme pasa por una cabeza de ledura. I;a cantidad de superficie para grabar en un disco es magarequeen un tambar de igual tam& fisico, Por l o tanto, puede almac e n a mayor ~ infomiaci6n en un d i w que en un bmbor equivalente, Por esta raz6nJ los discos han sustituido a los tambores m las computadoras ms modernas.

Discos magri6ticos

Un disco rnagn&tiao es un plato circular construido de metal

o pUstico cubierto con material magnetizado. Con frecuencia se usan a m b s lados del disco y pueden apilarse varios d i en un eje con cabezas de lectura/tritura disponibles para cada superficie. Todos lm discos giran juntos a alta velocidad y no se detienen para propsitos de acceso. Los bits se almacenan en la suwcie magnetizada m p u n h a lo largo de &culos concnhieos llamados pistas. Por lo general, Ias pistas se dividen en wciones llamadas 6iectores. En la mayora de ios sistemas, la cantidad mInima de i n h a c i b n que puede transferirse es un sector. La subdivisi6n de una superficie de disco en pistas y sectores se muestra en la f i p a 12-5. Algunas unidades utilizan una cabeza nica de lectura/dhrra para cada superficie de di=. En esh tipo de unidad, los bits de dUecci6n de

.a*.

C4hl
1

r m &' .
-8.

' . ~ L " L Y

ba!-d

&*!P

ara

T i s i r ; ib*,

m &l

G a ~ 6 d
,.
' 7
!pn-*

> U.

.~,:fft,:

3dAl I-,*

,ili pista los utiza un ensambG mec&rucopara mover h cabeza a la posici6n : y ~..,i de pista especificada antes de la lectura o escritura. En otros sistemas de ndi-e d i , & proporcionan cabezas de Iechira/escritura separadas para cada pista en cada superficie. Los bits de h i 6 n pueden seleccionar despuds una pish particular en forma electrnica, por medio de un circuito decodificador. Este tipo de unidad es ms cara y slo w encuenba m sistemas de compu&doras muy grandes. Se utiYh canales de temporizacibn permanentes en 10s discos para sincmizar los bits y reconocer los sectores. Un sistema de disco se d i i c i * M mediante bits de dhmcin que especifican el nmero de disco, la s u p ficie del di-, el nilmero del sector y el canal dentro del sector. Despus, se colocan las cabezas de lectura/escritura en e1 canal especificado. E 1 sistema tiene que esperar hasta que e 1 disco rotatorio llega al sector especificado, debajo de la cabeza de lectura/escritura. b transferencia de infomaci6n es muy rpida, una vez que se ha alcanzado el inicio de un sector. Los discos pueden tener cabezas mltiples y transferencia de bits simultnea de varios canales al misrno tiempo. Una pista en cierto sector cerca de la circunferencia es mayor que una pista cerca del centra del d k o . Si se graban los bits con igual densidad, algunas pistas contendch m k bits grabados que otm. Para hacer de igual longitud todos los registros en un mtor, aigunos dimos utilizan una densidad de grabacidn variable, con mayor densidad en las pistas cerca del centro que en las pistas cerca de la circunferencia. Esto quilibra Ia cantidad de bits en todas las pistas cie4eierto sector. . Los discos que estn conectados en forma permanente al ensamble de unidad v que no puede quitar el usuaria ocasional se llaman dixos duros.
H

-k&%qm

-b MO, m--

de la memoria

memoriir

dim+$onabb
par cmterrido

unalestrategia para dexionar una ~umcisr de diredanes, leer e l contenid~ de 4 memoria en Gada dimci6k-i y comparar l a infonnaci6n que se lee con el &to que se busca, hasta que coincidan. ta cantidad de accesos a meyno* &pende de la po""6n del conjunto de datw y de la eficiencia del algomitmo de b w e d a . Se han desaml4do muchos algoritmos de bqueda para b mtialad de accesos mientras bumn un conjunto de datos en una memoxia de acceso secuenciala o aieabrio. El tiempo querido pana encontrar. un -junto almacenado en la memoria puede reducirse mucho si pueden espaifmrse los datus almacenados, para su acceso, mediante el contenido de los datos mismos, en lugar de mediante una direccidn. Una unidad de memoria sicaesada por su contenido se depomina memoria &tim o 7 a i h diremhzbie por contenido {Conten5 Adrewabie Memory, CAM). Este tipo de memoria se acceaa w forma simylGnea, y en paraleloI,coa base en el contenido de los datos, m s que en kn o .poG&n v i f i a d a . Cuando aa & una palabra en una memo& asociasiv& no se proporciona una dh46n L a memoria puede encontrar una p k i b n va& sin usar para almacenar la palabra. Cuando se va a .leex una palabra de una m ~ ~ ~ a-tiw, r i a se e + F m el contenido de la paiabla o parte de da, i a memoria-1 i d a s las palabras que coinciden con el contenido especificado y las marca para ledura. W i d s a es@ m p h d n , la memoria asdativa &lo es conveniente para b c e r bbqudas paralela5 mediante asociaciQn de datas. Adems, pueden hac e m e ~ e d a wna s ~plabra.mmpbm un campo e s p e c h de L # palabra. Una memo& a d t i v a es ms cara que una memoria de acceso hbiSp.pquecada d d a debe Wner rnpidadde dmammmhto y &mitos 16gbs p h c a d d d k su conhido un argumento externo. Por esta r&n, en las memonias amktivas se usan aplicaden las que e l tiempo de bsisqueda es muy importante y d& s e r corto.

Oqgmbacibhu de la cireuikria E l &ade b I q w de una memoria aswiativa se muestra en la figura 12-6.W t a de ,unl o de m m o k y l a l6gica para m palabras, con n bits por palabra. Ri registm de argumentos A y d registro de claves K tienen cada uno n bits, uno por cada bit de una palabra. El registro de coincidencia M time m bits, uno para cada palabra de memoria. Cada palabra en la memoria s e compara en ,~mleln:wn el wgis&o de arg&nmtos. Las palabras que c6WdFen ton los bits del registro de argumentos activan el bit correspndknte m d +SWO de,.aoiricidmda. k p & s del proceso de buscar ~ i d e m c i a s l& , bib acti~adog en el registm de coincidencia, indican que
aon igeibsirs pahbrw correspondientes. Se hce la lectura mediante un ~ ~ s e e u w i cai menoria d para aquelias palabras euym bits correspondient m en el q$sW de mhiderrcia m han activada. 'El &stm de chvea -&na una miscara para elegir un campo o dave p * en la palabra de argumento. 5e mhpara tcdo el argumento

Una unida&de disco con discos removibles se lima de disco flexible. Los discos que se atizan con una unidad de disco fledble son pequeos discos que se pueden- quitar, hechas de plstico eon una cubierta de material ma&n&tico de grabacihn. Por lo,general se usan,dos tamaos, con diimetros de 5.25 y 3.5 puedas. Los discos de 3.5 pulgadas son m& pequeflos y pueden almacenar m6s datos que los de 5 , s pulgadas. Los discos flexibles se usan ampliamente en las computadoras, personales, como medio para distribuir programacin a los usuarios.
Cinta magntica

Un transporte de cinta magn&ica consiste en componentes elctricos, mech


nicss y eIectrnicos para' proporcionar las partes y el mecanismo de control para una unidad de cinta magnCtica. La cinta misma es una tira de plfistico cubierh con un medio magn4tb de grabacibn. Las bita se graban sobre la cinta como puntos magndtieos, a lo largo de varias pistas. Por lo general, se graban en forma simultnea 7 o 9 bits para formar un carActer junto con un bit de paridad. En cada pista esti$ montada una cabeza de lectura/escritura para que puedan grabarse y leerse los datos como una secuencia de caractere8. Las unidades de cinta magnetita pueden detenerse, prenderse para que avancen o se muevan en reversa, o pueden rebobina*. Sin embargo, no pueden .inico detenerse con la suficiente rapidez entre los caracteres individuales. Por esta razn, la informacin se graba en blcques que se denminan qistros. Se insertan entre los regisporciones de cinta sin grabar, en las cuales se puede detener la cinta. La cinta comienza a moverse cuando est en una de esas porciones y mantiene su veIocidad constante durante el tiempo que a l c m el siguiente registro. Cada registro en la cinta tiene un patr6n de bik de identificacin al comienzo y al final. Al leer e l patrn de bits al principio, el control de cinta identifica el nmero de registro. Al leer el patrn de bits al final del ,registro, el control reconoce d comienzo de una porcibn sin grabar. Una unidad de cinta se direcciona al especificar el. nhero de q i s t r o y la cantidad de caractem en H. Los . registros pueden m de longitud fija o variabh

12-4

Memoria asociativa

Mucbs apIicacione8 de p r o c e ~ e n t ude datos requieren la bsqueda de conjuntas ,de datos en una tabla almacenada en l a memoria. U n programa ensadlador busea la tabla de direccin de smbolos para extraer el equivalenk binario del simhiu. hede buscarse un ndmero de cuenta en un archivo, para deteminar el nombre del propietario y d estado de la cuenta. La manera establecida de buscar en una tabla es almacenar todos los datos donde puedan dlreccianarse en m e n c i a , El prwedhiento de bsqueda es

c o i n d *
Entdalc ArregIoy -de memoria asociativa
m palabras

n bits por palabra

faliga Figura 2 2 4 Diagrama de b h u e de memoria asechava,

con cada palabra de memoria si el registro de claves contiene s610 dfgitos 1. De otra manera, se comparan A 1 0 aquellos bits en el argumento que tienen dgitw 1 en l a posicin cqmpondiwte del.re&tro de claves. Por lo tanto, l a clave proporciona una rn4scara o una pieza de informad6n de identificacin que e6pcXca c6mo 8e hace la referencia 4 memoria. Para mostrar un ejemplo numfico, supongamos que el registro de argwentos A y el registro de claves K tienen la eonfiguraci6n de bits que se muestra enseguida. S610 s e comparan los tres bits de la extrema izquierda de A con palabras de memoria, porque K tiene digitos , i en estas posiciones.

&&,-

A
u - .

K
Palabra 1 Palabra 2

1 0 1 111100 111 m 100 1lllOD 101 OOOOO1

sin coincidencia coincidencia

La palabra 2 coincide con el campo de argumento s i n enmascarar porque son iguales los tres bits de la extrema izquie-dq del argumento y la palabra. La relacibn entre d arregI8 de memoria y los registros externos, en una memoria asdativa, se muestra en la figura 12-7.Se marcan Ias celdas en el arreglo mediianti3 la letra C con dos suk~dices. El primer subdice pmprcima el n h r o de palabra y el s e k d o especifica ia posicin de bit en la palhra. Por l o tanto, la celda Cyes la celda para el bit j en la palabra i. Un bit Al en el registro de a q p n e n b s e compara con todos los bits en la

492

DOCE: & g ~ & de la memoria

A"

1
~~1

I
Ki

14 1
p l

Ir

m
p l
Bit 1

1 ; .

4 P C " ' 1
M,

Palabrai

P 1 I4 1
p l
Bit

mnhn

4 1
M m Bit e

Figura 12-7 Memoria asdativa de m palabras, n celdas por palabra.

columna j del arreglo, siempre y cuando ki = 1. Esto se hace para todas las columnas j = 1 ,2 , n. Si ocurre una coincidencia entre todos los bits de argumento sin erunascarar y los bits en Ia palabra i ,se activa en 1 el bit Mi correspondiente en el registro de coincidencia. Si no coinciden uno o mAs de los bits de argumento sin enmascarar, M Ise desactiva a O . La organizaci6n interna de una celda Cii tpica se muestra en la figura 12-8. Cohsta de un elemento FTil de almacenamiento, un flip-flop, y los circuiw para leer, escribir y hacer coincidir la celda. E i bit de entrada se transfiere a la celda de almacenamientb durante una operaci6n de escritura. El bit almacenado s e lee durante una operacihn de lectura. La lgica de coincidencia compara el contenido de la celda de almacenamiento con el correspondiente bit de argumento sin enmascarar y proporciona una saiida para Ia 16gica de decisi6n que activa el bit en Mi.

...,

Ldgica de coincidencia
Puede derivarse la lgica de coincidencia para cada palabra, del algoritmo de comparacin para dos n h e m s binados. Primero, nq consideramos los bits de clave y comparam& el argumento en A con lm bits almacenados en las teldas de las palabras. La palabra i es igual al argumento en A s i Aj = Fq para j = 1, 2, .., n. Dos bits son iguales si ambos son 1 o O. La igualdad de dos bits phede expresarse en foma ldgica mediante la funcin booleana:

Entrada

Al

Escritura

i
Fn

dec6incldendam

meica

Salida Figura i2-6 Una celda de memoria asdativa,

donde x, = 1, s i el par de bits en la posicihn j son iguales; de otra manera,


xj

o.

Paya que una palabra i &a igual al argumento en A debemos tener todas las variables xi iguales a 1. Esta es la condici6n para activar el. bit de coincidencia correspondiente Mi en 1. L a funci6n booleana para esta condici6n e s :

--

y constituye #a opraci6n AND para todos los pares de bits que coinciden en hna palabra. Ahora in,cldmos d bit de gbve K, en l a lgica de comparacin, El requisito es que si = O, los bits correspondientes de Al y Fq no necesitan comparacin. Slo cuando KI = 1, deben compararse. &te requisito se pnsigue al aplicar la ~hinri@nOR a c& termino con K> por l o tuito:

Cuando

4 = 1, tenemos q' y xj + O = qi. Cuando 4 = O> entonces K;


+

=1

tkhino (xj Kjl) estad en el estado 1 s i su par de bits m s e comparan. k t o es necesario porque a cada trmino se le aplica una h c i h AhJD ,con .todo8 los otros tmtiris para que una salida de 1 no tenga efecto. La comparacin de los bits tiene e f e c t o slo cuando =l.
Y X p l = 1. Un

494

caPPrura m

&

de la memoria

La 16gica de coincidencia para la palabra i en la memoria e a t i v a puede expresarse ahora ~ediante la siguiente funcin booleana:

Cada trmino serd igual a 1 s i su correspondiente Kj = O. Si KI = 1, e l trmino ser4 O o 1, dependiendo del valor de xp OcurrirA una coincidencia y Mi sera igual a 1 , si todos los trminos son iguales a 1. Si sustituimos h. definicibn original de xi, la funcibn boolmna anterior puede expmase cbmo sigue:

es un srnboio de producto que representa l a operaci6n AND de todos los Mnninos n. Necesitamos n de tales funciones, una para cada palabra i = 3, 2 , 3, m.

donde

E l circuito para hacer coincidir una ;alabra se muestra en la figura 12-9. Cada celda kquiere dos compuertas AND y una OR Se necesitan inversores para Aj y Ki, uno para cada columna y se usan para todos los bits en la columna. La salida de todas Ls compuertas OR en las celdas de la misma
Eiigliri 12-9

...,

L6gica de W e r i F i a para una paiabca de memoria d a t i v a .

palabra, van a la entrada de una compuerta AND c o m h para generar la sefial de coincidencia para Mh Mi ser& un 1 lbgico si m r r e una coincidencia y O si no ocurre. Mbtese que si el rsgisho de &ve contiene slo cerosl la salida Mi ser un 1, sin considerar el valor de A o de Ia palabra. Debe evitarse que esto ocurra durante l a opsracidn normal.

Operacihn de lectura
Si ms de una palabra de memoria coincide con el campo de argumento sin enmascarar, todas las paiabms cyie mincidm tenddn 1 en la posicibn correspondiente del registro de coincidencia. @S necesario revisar l o s bits del registro de coincidencia, uno a la vez.) Las que coinciden se leen en secuencia al aplicar una &al de k h r a a cada lnea de palabra cuyo bit Mies un 1. En la mayora de Iris ,aplicaciones, la memoria asociativa almacena una tabla sin dos da- idnticos bajo una cierta clave. En este caso, s61o una palabra puede coincidir con el campo de argumento sin enmascarar. Al conectar la salida Mi directamente a la h e a de lectura, en la misma posicibn de palabra (m lugar del registro M), el contenido de la palabra que coincide se presentarA en forma autometica en las lneas de salida y no ser6 necesaria una sefid de comando de lectura especial. AdemAs, si excluimos las palabras que kntieneri cero, una salida de todos cero indicar& que no ocurri6 una coincidencia y que el dato buscado no ~ t disponible 8 en memoria.

Operaci6n de escritura Una memoria asociativa debe contar con la posibilidad de escribir para almacenar la informacin que se va a buscar. Escribir en una memoria asociativa puede tornar diferentes formas, dependiendo de la aplicacidn. Si se carga la memoria con nueva informadbn una sola vez, antes de una operaci6n de bhqueda, despus puede escribirse al direccionar cada localidad en secuencia. Esto har6 del dispositivo una memoria de acceso aleatorio para escribir y una memoria de canfenido dhmhable para k r . La ventaja aqu, es que puede decodificarse la direccin para entrada como en una memoria de acceso aleatorio. Por l o tanto, en lugar de tener m lneas de d i i i 6 1 1 , una para cada palabra en la memoria, puede reducirse la cantidad de lheas de direcci6n mediante el dwodificador a d lneas, en donde m = r! S i tienen que borrarse paIabras no deseadas e insertarse nuevas palabras una a la vezl se necesita un registro especial para diferenciar ias palabras activas e inactivas. Este registro, en aIgunas ocasiones llamado fegiskm d~ identifimidn, kndrla tantos bits comopalabras en la memoria. Para cada palabra activa almacenada en la memoria, el bit correspondiente en el registro de identificacin se activa en 1. Se borra una palabra de h memoria al borrar su bit de identificacibn a O. las palabras se almacenan en la memoria al revisar e l registro de etiqueta hasta que se encuentra el primer bit 0. Esto proporciona la primera palabra inactiva disponible y una posici6n

496

C & W L O

organizacin de la memoria

para escribir una nueva palabra. Despuh que se almacena una nueva palabra en la memoria, se activa su hit de identificacibn a 1. Cuando se borra una palabra no deseada de la memoria, pueden desactivarse todos a O si este valor se usa para especificar una localidad vaca. Adems, las palabras que tienen un bit de identifiacih cero deben estar enmascaradas (junto con los bits KJ con la palabra de argumento, para que &lo se comparen hs palabras activas.

12-5

Memoria cach

a analisis de una gran cantidad de programas tipicos ha mostrado que las


Io~alfdad de fefereda

referencias a memoria en cierto intervalo de tiempo, tienden a c~nfinarse dentro de unas cuantas reas localizadas en la memoria. Este fenmeno se conoce coma la propiedad de locali&d de r$erencin. La razn de esta propiedad puede entenderse considerando que un programa tpico de mmputadora fluye en forma de Iinea recta con ciclos de programa y solicitudes de subnitina que se encuentran con frecuencia. Cuando se ejecuta un ciclo de programa, la CPU hace referencia repetidamente al conjunto de instrucciones en memoria que constituyen el ciclo. Cada vez que se dicita cierta subrutina, este coyunto de instrucciones se recupera de la memoria. Por lo tanto, los c i d o s y las subrutinas tienden a localizar la referencia a memoria para recuperar instnicciones. En un grado menor, las referencias de memoria a datos tambibn tienden a estar ubicadas. Los prmedimimtm de bsqueda en tabla hacen referencia, con frecuencia, a Ia porcin en la memoria donde ~ t almacenada la tabla, Los procedimientos repetitivos hacen referencia a localidades de la memoria comunes y bs ~+(xs de nmeros ein confinada3 dentro de una parte 1 1 de la memoria. El resultado de todas estas observaciones a la propiedad de localidad de referencia, la cual establece que durante un corto intervalo de tiempo, las direcciones que p e r a un programa tipico, con h e n cia hacen referencia a unas pocas &as de memoria localizadas, en tanto el w t o de la memoria 9e accesa con relativamente paca f m & . Si las partes activas del programa y datos se colocan en una memoria pequefia y rdpida, puede reducirse el tiempo promedio de acceso a memoria y, por I o tanfs, se reduce el tiempo total de ejmci6n del programa. Dicha memoria rpida y pequea se denomina memoria ea&. Est colocada entre la CPU y la memoria principal, como se ilustra en la figura 12-1. El tiempo de acceso a la memoria cacht5 es menor que e l tiempo de aeeeso a la memoria principaI en un factor de 5 a 10. La cachb es el componente miis rApido en l a jerarqua de memoria y se aproxima a l a velocidad de los componentes de la CPU. La id- fundamental de la organizaci6n de cach6 es que al conservar las bkucciones y datos que se accesan con mayor frecuencia en la memoria cach, que es raipida, e l kiempo de acceso a memoria promedio s e acercad d tiempo de acceso al cach. Aunque la ca& es slo una pequea parte

razdn de acierfo
U

mapeo

del tamao de i a memoria principal, una gran parte de las solicitudes de memoria se encontrar4 en la memoria rpida cach, por la propiedad de localidad de referencia de los programas. 1 La operacibn bdsica de cachb es la siguiente. Cuando la CPU m i t a accesar memoria, se revisa la cach. Si se encuentra la palabra en cach, s e lee de la memoria rpida. Si la palabra direccionada de la CPU m se encuentra en cach, se accesa ia memoria principal para leer la palabra. Despuks, se transfiere un bloque de palabras que contiene la que se acaba de accesar, de la memoria principal a la memoria cach. El tamao del bloque puede variar de una palabra (la que se acaba de accaar) a cerca de 16 palabras adyacentes a la que se acces6. En esta maneraJae transfieren algunos datos cachk para que las futuras referencias a memoria m e n h e n la palabra querida en la memoria dpida m&& El desempefio de la memoria cacht con Fmencia se mide en trminos de una cantidad llamada r d n de acierto. Cuando la CPU hace referencia a memoria y encuentra la palabra en el ca*, s e dice que produce un acierto. Si no se encuentra la palabra en el cachd, est en la memoria principal y se cuenta como una falla. La razn de la cantidad de aciertos dividida entre la cantidad total de referencias de la CPU a h memoria (aciertos m s fallas) es la radn de acierto. Experimentalmente, la raz6n de aciertos se mide mejor a! correr programas representativos en la computadora y medir ia cantidad de aciertos y fallas durante un cierto intervdo de Eiempo. Se ha reportado razones de acierto de 0 . 9 y mayo-. Esta faz6n de acierto demuestra la validez de la propiedad de localidad de referencia, El tiempo promedio de acceso a memoria de un sistema de computadora puede mejorarse mucho al w cach. Si la razbn de acierto es bastante alta para que Ia mayor parte del tiempo la CPU accese l a cach6 en lugar de i a memoria principal, e1 tiempo de acceso promedio se acerca mas al tiempo de acceso de la memoria r6pida cach, Por ejemplo, una computadora con un tiempo de acceso a cach de 100 ns, un tiempo de acceso a memoria principal de 1OOO ns y una raz6n de acierto de 0.9 produce un tiempo de a c promedio de 200 n s . Esto es una mejora considerable sobre yna conputadora similar sin una memoria cachJ cuyo t i de acceso es 1 O O O ns. La caracterstica bsica de la memoria cach6 e su tiempo de acceso rpido. Por lo tanto, no debe gastarse tiempo o debe dedicarse muy poco a i a bJsqueda de palabras en cach. A la transformacin de los datos de l a memoria principal a la memoria cach se le denomina proceso de mpeo. Tres tipos de procedimientos de mapeo son de inteds pr6etic0, cuando se considera la organizacin de la memoria cachk

1 . Mapeo asociativo 2 Mapeo directo 3. Mapeo de conjunto asociativo Para ayudar al anlisis de estos tres procedimientw de mapeo, utilizaremos un ejemplo especfico de una organizaci6n de memoria como la que se

muetta en l a figura ii-10. L . m&bria prhcipal puede almacenar 32K palabras de 12 bits cada una. La cachk puede h a c e n a r 512 de estas palabras .& cuaiquier momento dado. Para cada palabra ahcenada en ca&, hay una copia duplicada en la memoria @+al. La CPU comunica con ambas memorias#Primero q y i a ,una direccibn de 15 bits. al cachk. Si hay un acierto, la CPU acepta los d a b de 12 bits del cacM. Si hay una falla, la CPU lee l h .. . , , p!abra,di, $ $neg,0@~~$9ci13 .d_epu&s_!a palabra se transfiere al cachg.
m

' I . 1 . q

'P.

, h,qc; 9t4.

ecJf

,. ,!,;'30A* .I . :* -- .L., ,11!t '1.: Mapeo asocraPivo La organizacibn de cach6 ms rpida y flexible utiliza una memoria a m i a F-

tiva. Esta .-or@nizacibn se muestra.en la figura 12-11. IA memoria asociativa


Figura 12-11 Ca&& de mapeo asociativo (tdos los nmem en oftai).

Memoria

491)

almacena la diseeci6n y el contenido (datos) de la palabra de memoria. Esto


permite a cualquier localidad en cach6 aImaemr cualquier palabra de la memoria pMcipd. El diagrama muestra tra palabras almacenadas en c a e . E i valor de d W 6 n de 15 bib se mwtra como un niimero octal de Qnco & @ t o s y su palabra de 12 bits coniespondiente ce muestra como un nmero octal de cuatro %tos. UM d M & nde CPU de 15 bits se colma en el registro de argumento y s e busca la memoria awcia,tiva para una direcch que coincida. Si se encuentra la d k c d n , los datos de 12 bits correspondientes s e leen y envbn a la CPU. S i no ocurre coincidencia, se aeeesa la memoria principal en busca de la palabra. El par dkdndatos se transfiere despus a la memoria de cach -tiva. Si la cach4 a t llena, el par d i i 4 a t o s d& desphmrse para hacer lugar a un par que se necesite p que no esid en ese momento en cach. h decisi6n acerca de cul par se va a sustituir la dekmha el +ritmo de sustituci6n que elige el -dos para la ea&&, Un p#ento simple es sustituir las d d a s de la memoria de cach en arden circular, cuando se solicita una nueva pelabra de la memoria principal. Esto constituye una poli& de sustitucin primero en entrar, prima en salir p).

Mapeo directo t a s memorias asociativas son caras en mmparaci6n con las memorias de acceso aleatorio debido a la lbgica agregada que se asocia con cada celda.
La posibilidad de usar una memoria de acceso aleatorio para cachk se investiga en la figura 12-12. La direcci6n de CPU de 15 bits se divide en dos campos. tos nueve bits menos significativos constituyen el campo de ndice y los seis bits restantes forman el campo de identifiaci6n. La figura muestra que la memoria principal necesita una direccin que incluye los bits de identificaci6n y de ndice. La cantidad de bits en el campo de ndice es igual a la cantidad de bits de direccin requeridos para accesar la memoria cach4.
& & Fiiura 12-12 eladones de d i r e c a d e n t o enbe las memorias prindpal y a
6 bits

campo rle
identi$caeibtr

9 bits

%o

CMdWM nocE Organkaci6k-a de la

memoria

En 4 ,casogeneral, hay 2k palabras en la memoria cachk y 2* palabras en la &emoda principal. La direcci6n de memoria de n b i t s se divide en dos campos: k bits para el campo de ndice y n - k bits para e l campo de idenfifica@i6n. h organizacidn de cache de mapeo'diredo utiliza la direccibn de n bib para atcesar b memoria principal y el ndice de k bits para accesar
el cadhb. La organizaci6n interna de las palabras en la memoria cach&se muestra en la figura 12-13(b). 'Cada palabra en el cacM consis.te en la palabra de datm y su gdentificaci6n amiada. Cuando se trae por primera vez una nueva palabra dentro de ea&&, los bits de identifisaci se almacena11a un lado de los bits de datos. Cuando la CPU @era una solicitud de memoria, se usa el campo de ndice para que la d i w i 8 n accese cach6. El campo de identificacibn de la direcci6n de CPU se compara .conla identificacihn en la palabra que se lee del cacht Si coinciden las dos etiquetas, existe uuii acierto F b l a paiabm de dabe d e d a esti4 en. d ea&&. Si no coincide, existe uiia falla y la palabra querida se lee de la memoria prncipal. Despuds se almacena en e l cachb junto con la nueva Identificacibn, sustituyendo un valor previo. La desventaja del mapeo di& es que' la r a d n de acierto puede disminuir considerablemente si se accesan con frecuencia ,doso m4s palabras cuyas direcciones tienen el mismo indice pero identificaciones diferentes. Sin embargo, se minimiza esta posibilidad por e l hkho de quk tales palabras estAn

wioi r lwp 'rctir


idp

Figura 12-13 Organizacibn de cach6 de m

a p diwto.

"'M
de memolla Datos de memoM

w b n ,.~dm~de indice Datm

0011

a) Memoria principal

S E C E I 124 ~

Memoria c a &

501

relativamente distantes,m ' e lrango de direccin (muplos de las 512 posiciones en este ejemplo). Para ver c h o -era la organbacihn d~ mapeo directo, consideremos e l ejemplo numrico que se muestra en la figura 12-13. La palabra en la direccfn c m e~dmaeenada en ese momento en cachd (indice = 000, idmtificacibn = 00, datos = 1220). Supongamos ahora que la CPU desea a la( paiabra en b d i i 6 n 02000. La d i r d n de ndice es 000, por l o que se usa: para accasar el rachd. Se Comparan las dos identificaciones. ta : etiqueta de cach es 00 pero la etiqueta de direcci6n es l2, l o que no produce una coincidencia. .Por kvtanto, se accesa la memoria principal y l a palabra de datos 5670 se transfiece a la CPU.La palabra de ,cach& en la direccibn de ndice 000-se sustituye despus con una identificacin de 02 y datos de 5670. E l sfe111p10 de mapeo directo que se acaba de describir utiliza un tari.rao de blqqm de unst~palabra, En la figura 12-14 se muestra l a misma organizaci6n pero utilizando un tamao de bloque de ocho palabras. E 1 c a n p de M o r * sk divde ahora en dos paitea, El q p o de blyue y e l campo de palabpa. En m each de 512 palabras hay 4 bloques de ocho palabras aada uno, porque 4 a<: 8 = 542. E 1 ndmero de bloques se especifica con un campo de 63bik y la palabra dentro del bloque s e especifica con un campo de 3 bits. El campo de identificacidn almacenado dentro del cachk es comn a las ocho palabras del mismo bloque. Cada vez que ocurre una fallsi, debe transktirae un btoque ,completo de ocho palabras de la memoria principal a la memoria aach& Aunque esto requiere tiempo extra, es muy probable que la razn de acierto mejore con urr bloque de mayor tamallo, debido a la W r a I e z a .secuencia1 de los poga&s de mmpu@oCa.
Figura l2-14 Cach6 de mapeo directo cnn tamao de bloque de 8 palabras.

Bloque 63

CAFQTKO m Q p h c i n de la memoria

Mapeo de conjunto ~ociativo Se mencionb antes que la desventaja del mapeo d k t o es que dos palabras con el mismo ndice en sus d i i i o n e s , pero con &ferente5 valores de identificacin, no pueden residir al mismo tiempo en la memoria cach. Un tercer tipo de organizacibn de cach, llamado mapeo de conjunto asociativo, es una mejora sobre la organizacidn de mapeo dwcto, en la que cada palabra de cachd puede almacenar dos o ms palabras de memoria bajo la
misma direccidn de identificadn. Cada palabra de datos se a k e n a junto aon su idenMcaci6n y se dice que el n h e m de conjuntos identificacidn-dat o s ,en una palabra de ea*, fonna un conjunto.Un ejemplo de organizaci6n de cach4 de conjunto asociativo para un tamafio de conjunto de dos ce muestra en la figura 12-15. Cada direccin de ndice hace referencia a dos pababras de datos y sus identificaciones asociadas. Cada etiqueta requiere seis bib y cada palabra de datas tiene 12 bits, por lo que la longitud de la palabra es 2 (6 + 12) = 36 bits. Una direcci6n de hdice de nueve bits puede alojar 512 palabras. Por lo tanto, el tamao de la memoria cachb es 512 X 36. Puede alojar 1024 palabras de memoria principal porque cada palabra de cach contiene dos palabras de datos. En general, un cach6 de conjunta asociativo de tamafio k alojara k palabras de la memoria principal en cada palabra de cach. Los nmeros oetales que se iistan en la figura 12-15 hacen referencia a los que contiene la memoria principal que se ilustra en la figura 12-13(a). L a s patbras almacenadas en las direcciones 01000 y 02000 de la memoria principal se almacenan en Ia memoria cachb en la direccidn de ndice MX). De igual manera, las palabras en las direcciones 02777 y 00777 se almacenan en cachd en la direcci6n de indice 777. Cuando la. CPU genera una solicitud de memoria, el valor de ndice de la diceccibn se usa para accesar la cach4.

Figura 12-15 Cach de mapeo de mnjunto asociativo de dos direcciones.

1 2 5 Memoria ea&

503

Despus, se compara Acampo de idmtificacidn de la direccin de la CPU con ambas identificaciones en la cach para deknninar s i ocurre una coincidencia. La comparaci6n lgica se hace mediante una bsqueda asociativa de las etiquetas en el conjunto, similar a una bsqueda de memoria asociativa: de ah el nombre de conjunto asocbtivo. La raz6n de acierto mejorar6 conforme aumenta el tamailo de conjunto porque pueden residir en el ea&& ms palabras con el mismo hdice pero con etiquetas diferentes. Sin embargo, un aumento en el tamafio del conjunto aumenta la cantidad de bits en las palabras de cach y requiere una 16gica de comparaci6n mas compleja. Cuando ocum una falla en una c a e de conjunto asociativo y el conjunto est completo, es necesario sustituir uno de los conjuntos identificacindatos con un nuevo valor. lios algoritmos de sustitucin que se usan con mayor frecuencia son: sustituci6n aleatoria, primero en entrar, primero en salir (IWO) y el uso reciente mnimo (lmt recmfly used, LRU). Con la poltica de sustitucihn aleatoria, el control elige un conjunto identifieacibndato para sustituirlo al azar. El procedimiento FXFO &cima para sustituci6n el conjunto que ha estado ms tiempo en el conjunto. El algoritmo LRU selecciona para sustituci6n el conjunto que la CPU us hace ms tiempo. Tanto FZH)como LRU pueden implantarse al sumar unos cuantos bits extra m cada palabra de cach.

Escritura en la cach Un aspecto importante de la organizacibn de cach se relaciona con las solidtudes de escritura a memoria. Cuando h CPU encuentra una palabra
durante una operacih de lectura, la memoria principal no participa en la transferencia. Sin embargo, si la operaci6n es de escritura, hay dos maneras en las que puede prweder d sistema. E l procedimiento ms sencillo y de uso ms comn es actualizar la memoria principal con cada operacidn de exrihrra en memoria, y la memoria cacM = achialia en paralelo si contiene le palabra en la direceidn q e c i f ~ a d aEsto . se denomina eI rmdtodo de esmmtsrra simulfntn. Este m& todo tiene la ventaja( de que la memoria principal siempre contiene los mismos datos que el cachk. Esta caracterstica es imporbnte en sistemas con msfereneias de a c m directo a memoria. Asegura que los datos que reciben en la memo* principal son vAlidas en todas las ocasiones en que un dispositivo de E/S que se comunica,con D A d a los datos actualiados de manera mds reciente. E l segundo procedimiento se ]denominamdtdo de m ' f u r n al retorno. En =te mtodo s610 se actualiza la operaci6n de cachg mediante una operaci6n de mcritura. La localidad ae marca despus mediante una bandera para quef ms tarde, cuando l a palabra se quite de cach4 s e copie a la memoria principal. L i razn de este d h d o de escritu~a al retorno es que durante d tiempo que m palabra reside en el cachd, puede actuslizarse varias veces, Sin embargo, mientras la palabra W e z c a en el m&, no importa que

escritura iinnrltdnea

e w ' t u r a al retomo

504

de~ la memoria ~

la copia en la memoria principal-no est actualizada,,porque las solicitudes de esa palabfa se atienden desde mcRA $610 -&ando se quita la palabra de ea&& se necesita volver a d b i r una copia correcta en la memoria principal. Los multad& maliticw indican que h cantidad de escrituras en memoria en un programa tpico varian de 10 a 30 por ciento de las referencias totales a- memoria.

Inicializacih del ca&&

bit vdfido

Otro aspecto por considerar de la organizaci6n de cacM es el problema de la inicializacibn. La memoria cach&se inicializa cuando se enciende la computadora 'o cuando se carga la memoria psincipal con un conjmb de instrucRQne8 cornphto de l a memoria a u x i l i i hspuds de la inicializaribn sie considera que la cachk estA vaca, pero de hecho contiene algunos datos no vlidos. Se acostumbra incluir con cada palabra en el cach4 un'bit vlido para indicar s i la pa1;mbra rontiene datos vAlidos o no. Se inicializa tache al borrar todos los b * v8lidos a O. El bit valido de una palabra de cach6 paficular s e activa en 1 la primera vez que se carga esta palabra de la mermorisl pritlcipal y permanece alrtivado, a menos que la cachg tenga que inicializarse de nuevo. La htroducci6n del bit vlido significa que una palabra e n cach4 no se sustituye con otra palabra, a menos que e l bit vzilido se active en 1 y orrurra una no coincidencia de identif~caciones. Si el bit vAlido liega a ser 0, la nueva palabra sustituye m forma automtica l o s datos no viilidos. Por lo tanto, la condich de uiicializadbn tierie el defecto de forzar las fallas de1 eachk hasta que se llene con datae vAlPdas.

Memoria virtual

En un sistema de jerarqula de memoria, los programas y datos se almacenan


prhem en la memoria auxiliar. Despuh, se traen a la memoria principal partes de un pragtma a de datos, conforme los necesita la CPU. IA memoria virtual es un concepto que se usa en algunos sistemas de computadoras grandes y que permite al usuario construir programas como si estuviera disponible un gran espacio de memoria, igual a la totalidad de la memoria auxiliar. Cada direccidn a la que hace referencia la CPU recorre un mapeo de direczibn de la supuesta direccibn virtual a una d i i c i n fsica en la memoria principal. Se usa la memoria v.irtual para dar a los programadores la ilusin de que tienen a su disposicibn una memoria muy grande, aunque la computadora h g a en realidad una memoria relativamente pequea. Un
sistema de memoria virtual proporciona un mecanismo para trasladar direcciones generadas por programas a localidades correctas en la memoria principal. B t o a hace en forma dinmica, mientras la CPU ejecuta programas. La circuitera maneja en f o h a automAkica la hducci6n o el mapeo mediante una tabla de mapeo.

espado de diwccibn

espacio de memoria

Espacio de direccionamiento y espacio de memoria. A una direcci6n que usa un programador se la llamar&direccidn uirhurt y al conjunto de tales direcciones, espaczb virtual. A una diremi611 en la memoria principal s e la llama localidad o direcndn p i c a . El conjunto de tales localidades se llama espacio de memoria. Por l o tanto, e 1 espacio de direccionamiento es el conjunto de direcciones generado por los programas, conforme hacen referencia a instrucciones y datos; el espacio de memoria consiste en las localidades reales de Ia memoria principal que se pueden accesar directamente para procesamiento. En la mayora de las computadoras los espacios de direccionamiento y de memoria son idnticas. Se permite que el espacio de direccionamiento sea mayor que e l espacio de memoria en computadoras de memoria virtual. Como ejemplo; consideremos una computadora con una capacidad de memoria principal de 32 K palabras (K = 1024). Se necesitan quince bits para Supongaespecificar una direccibn fidca en la memoria porque 32K = 215. mos que la computadora tiene memoria auxiliar disponible para almacenar 220= 1024K palabras. Por lo tanto, la m e m o r i a auxiliar tiene capacidad para almacenar informacibn equivalente a la capacidad de 32 memorias principal e s . Al representar el espacio de direccionamiento por N y e l espacio de memoria por M, tenernos para este ejemplo N = 1024K y M = 32K. En un sistema de computadora de multiprogramaci6nI se transfieren las programas y datos a y de la memoria auxiliar y de la memoria principal con base en las demandas que impone la CPU. Supongamos que e l programa 1 se ejecuta en ese momento en Ia C m . El programa 1 y una parte de sus datos asociados se mueven de la memoria auxiliar a la memoria principal como se muestra en la figura 12-16. Las partes de programas y datos no necesitan estar en localidades contiguas en la memoria, porque la informaci6n se mueve hacia adentro y hacia afuera y pueden quedar espacios vacos en partes no adyacentes en la memoria. En un sistema de memoria virtual, se les dice a los programadores que tienen a su disposicin todo el espacio de direccionamiento. AdernBs, el campo de direccibn del cdigo de instruccin tiene una cantidad suficiente de bits para especificar todas las direcciones virtuales. En nuestro ejemplo, el campo de direcci6n de un c6digo de inshccibn consistirA en 20 bits, pero las direcciones de mernoria fsicas deben especificarse con s61o 15 bits. Por lo tanto, la CPU har referencia a instrucciones y datos con direcciones de 2 0 bits, pero la informacibn en esta direccih debe tomarse de la memoria fsica, porque el acceso al almacenamiento auxiliar para palabras individuales sera prohibitivamente largo. (Recuerde que para transferencias eficientes, el almacenamiento auxiliar mueve todo un registro a la memoria principal.) Entonces se necesita una tabla como la que se muestra en ia figura 12-17, para mapear una dira~ci6n virtual de 20 bits a una direcci6n fsica de 15 bits. E 1 mapeo ec una ~ a c i b n dinmica, lo que significa que cada direccin se traduce inmediatamente, conforme la CPU hace referencia a una palabra. --

M6

cmwm ~

~rga&a&n E de la memoria

&$agio de memoria

M = 32k = 2's EsmdedlFecdbn

M = 1024K=200

Figura 12-16 Re!acih entre espacios de direccih y de memoria en un sistPma de memoda vimial.

La tabla de mapeo puede ahacenarae en una memoria varada, como la figura 12-17 o en la memoria prirreipal. En el primer caso, se necesita una unidad de memoria adicional y un tiempo de acceso a memoria extra. En e l segundo caso, la bbla toma espacio de la memoria principai y se n-itan dos accesos a memoria con el programa corriendo a media velocidad. Una tercera alternativa es utilizar una memoria asociativa a m o se explic antes.
se muestra en Figura 12-17 Tabla de.mernoria para mapear una direccibn virtual.

Tabla de

Memoria principal

Mapeo de direcciin usando paginas ta hplantaciha (detabla del mapeo de direcciones se simplifica si la informacin en d espacio de direcci6n y en el espacio de memoria se divide cada una en grupos de tamaiio fijo. La memoria %ira se separa en grupos de
p&inas v bbaues

madm de pd&a

igual tamafio llamados bloquesr que puedes variar de 64 a 4096 palabras cada uno. E 1 trmino pgim se refiere a grupos de espacias de dwcei6n del mismo tarnafio. Por ejemplo, s i una pagina o bloque consta de 1K paiabras, entonces, usando e l ejemplo anterior, el espacio de divisi611se divide en 1024 pA@as y la memoria principal en 32 bloques. Aunque una pagina y un bloque se dividen en grupos de 1K palabras, una p w a hace referencia a la organizacin de espacio de dicercionarmiento, mientras que un bloque hace referencia a la organizacibn de espacio de memoria. h s programas tambih se consideran divididos en dos pginas. Se mueven partes del programa de la memoria auxiliar a la memoria principal en registros iguales al tamafio de una p6gina. En ocasiones se utiliza el tdmino "Cuadro de pbgina" para denotar un bloque. Consideremos una computadora con un espacio de d i c i b n de 8K y un espacio de memoria de 4K Si dividimos cada uno en grupos de 1K palabras, obtenemos ocho paginas y cuatro bloques, como se muestra en h figura 12-18. En cualquier momento dado, pueden residir en la memoria principal hasta cuatro pginas de espacio de diredonamiento en cualquiera de los cuatro bloques. E 1 mapeo del espacio de d@cionarniento al espacio de memoria se facilita si cada direccidn virtual se considera representada mediante dos nilmeros: una diremi611 de nilimero de piigina y una lnea dentro de la p8gina. En una computadora con 2 p palabras por piigina, los bits p se usan para especificar una direcci6n de lhea y los bits de orden superior restantes
Figura 12-16 Separacin de -patios de direccibny de memoria en grupos de 1K palabras.

508

DOCE organizacin de l a memoria

de la direccidn -virtual especifican el nmero de pAginas. En el ejemplo de l a f' a 1248,yna direccibn virtual tiene 13 bits. COMOcada pdgina consta de 1024-palabras,los bits de orden superior de una dimi611 virtual eepecXcarn una de las who p4ginas y 1 - 10 bits de orden inferior proporcionarfin la, diremi611de lnea dentro de la p-a. Mtese que la direecibn de h e a en.el espacio de direccionamiento y en el espacio de memoria es la misma; el nico m a p que se n d t a es de u 1 1 nmero de p6gina a un

y=

niimero de blque. La organizacibn de la tabla de mapeo de memoria en un sistema paginado se muestra e i la ~ figura 12-19,La tabla de pginas de memoria .comiste en ocho palabras, una para cada phgina. ta direccibn en la tabla de paginas r e p m t a el niunera de pggina g el contenido de la palabra proporciona el nmem de bloque que almacena tal p@a en la memoria principal. L a tabia muestra que las pdginas nmero 1, 2 , S y 6 esth disponibles ahora en l a mqoria principai.en los blogues 3, 0, 1, y 2, respectivamente. Un bit de presencia en cada b l i d a d indica si la pagina se ha transferido de la memoria a d i a r a la memoria principal. Un O en el bit de pmmcia indica que esta pagina no est dis~onibleen la memoria principal. La CPU hace referencia a una palabra en la memoria con una d-ih v w a l de 13 bits. Las tres bits de orden superior de la d h x i h n virtual especifican un nmero de pagina y tambi6n una direcci6n para la
Figufa i2-19 Tabia de memoria en un sistema paginado.

Tabia de

, Bit de
pmrsFia
001
l

1L

pmpal

Bloque O
Blque I
sique 2

Registro de d f d n de nwmoria principal

Bloque 3

MBR

Tabla de Hgina de memoria

126 Memoria virtual

509

tabla de pAgina de memoria. E l contenido de la palabra en la tabla de pgina de memoria en la misma direcdbn de nmero de p@a se lee al registro intermedio (buffer) de la tabla de memoria. S ie l bit de presencia es un 1, entonces el nitmero de bloque se transfiere a los 2 b i t s de orden superior del registro de direcci6n de la memoria principal. El niimero de h e a de l a direccidn virtud se transfiere dentro de las bits de orden inferior del registro de direccidn de memoria. Una seal de lectura a la niemoxia principal transfiere el contenido de la palabra al registro intermedio (buffer) de la memoria principal preparado para que lo use la CPU. Si el bit de presencia en la palabra leida de la tabla de pagina es O, esto significa que el contenido de la palabra a que hace referencia la direccin virtual no reside en la memoria principal, Entonces se genera una solicitud al sistema operativo para recuperar la pagina querida de la memoria awiliar y colocarla en la memoria principal antes de reanudar fa computacihn.

Tabla de pgina de memoria asociativa Una tabla de pagina de memoria de acceso

aieatorio no es eficiente en rehcibn al uso de almacenamiento. En el ejemplo de la figura 12-19, observamos que s e necesitan ocho palabras de memoria, una para cada pdgina, pero al menos cuatro palabras siempre se marcarn vacias porque la memoria principal no puede alojar m8s de cuatro bloques. En general, un sistema con n pginas y m bloques requerira una tabla de pginas de memoria de n localidades de las cuales hasta m bloques estaran marcadas con nmeros de bloque y todas las d d s estaran vacas. Como un segundo ejemplo num&ico, consideremos un espacio de direccionamiento de 1024K palabras y un espacio de memoria de 32K paiabras. Si cada pA@ o blque contiene IK palabras, la cantidad de psginas es 1024 y la cantidad de bloques 32. La capacidad de la tabla de pginas de memoria debe ser de 1024 palabras y d o 32 localidades pueden tener un bit de pmsencia igual a 1. En cualquier momento dado, al menas 992 posiciones estarn vacas y sin usar. Una manera ms eficiente de organizar la tabla de peginas sera construirla m una cantidad de palabras igual a la cantidad de bloques en la memoria principal. De esta manera, se reduce el tamaiio de la memoria y cada posici6n se ut&a por completo. Este m b d o puede implantarse m e diante una memoria asociativa en donde cada palabra en la memoria contenga un nmero de pgina junto con su nmero de bloque correspondiente. Hi campo de p2igina en cada palabra se compara con el nmero de p d g h en la memoria virhial. Si &une una coincidencia, se lee la palabra de la memoria y se extrae su ndmero de bloque correspondiente. Volvamos a considerar el caso de ocho pAguias y cuatro bloques como en el ejemplo de la figura 12-19, Sustituimos la tabla de pagina de memoria de acceso aleatorio con una memoria asociativa de cuatro palabras como la que se muestra en la figura 12-20. Cada entrada en el conjunto de memoria aswiativa consiste en dos campos, b s primeros tres bits especifican un

510

Orgarhein de la memoria

PAgina No. 4

Figura 12-20 Una tabla de pgina de memoria &tiva.

campo para almacenar e l nmero de pginas. L m itimos dcs bits mnstihiyen un campo para aimaeenar el,nmera de bloque La direccin virtual se colma en ei registro de argumentos. h bits de nmero de en el registro de argumentos se compara con todos los nmeros de pginas en e l campo de pgina de la memoria a d t i v a . Si se encuenha el nthero de p , se lee de la m e m o r i a la palab~ade S bits. E l n h e m de blque correspondiente, que est m la misma palabra, s e bamfiem al registro de dhxi6n de la memoria phcipai. Si no una coincidencia, se genera una solicitud al sistema operativo para traer la pAgina requerida de la memoria a d i a r .

ph , +@@a

Sustitucibn de pgina Un sistema de memoria virtual es una combinacin de tcnicas de circuitera y de programaci6n. El sistema de programaci6n de administraci6n de memoria maneja &as las operaciones de programadh para e l uso &ciente del espacio de memoria. Debe decidir: 1) c u a b pginas en la memoria principal deben quitarse para abrir espacio a una nueva pdgina, 2) cundo E va a transferir una nueva pagina de la memoria auxiliar a la memoria principal y 3) d6nde se va a colocar la phgina en la memoria principal EI mecanismo de mapeo por circuiterfa y junto con la programaci6n de administracin de memoria constituyen la arquitectura de una memoria virtual. Cuando un programa comienza su ejecucin, se transfieren una o ms pginas a la memoria principal y la tabla de p+ se activa para indicar su posicibn. El pprograma se ejecuta de la memoria principal hasta que intenta hacer referencia a una p A @ que todavia est en la memoria awriliar. Esta condicin se llama &fa de pdgina. Cuando ocurre una falta de pAgina, se

SECCI~N 12-7 Chuitera

de administracin de la memoria

susp-

FIFO

*l

2 n ;
'

' .

- t

)-,lIl:.

- . ;
, . '
' '

'.

LRU

I
1

-.,

.'1( '

la ejecucibn del programa actual hasta que se trae la (pgina requerida a la memoria principal. Como la carga de una pgina de la memoria auxiliar a la memoria principal es bsicamente una operacin de E/S, el sistema operativo asigna esta tarea al procesador de E/S. Mientras tanto, se transfiere el control al siguiente programa en la memoria que espera que lo ha asigna& y la procese la CPW. Respub, cuando d bloque de memoria transferencia ha concluido, el programa principal reanuda su operacin. Cuando ocurre una falta de pgina en un sistema de memoria virtual, significa que la pgina a la que hace referencia la CPU no est en la memoria principal. En seguida, se transfiere una nueva pgina de la memoria auxiliar a la memoria principal. Si la memoria principal est llena, sera necesario quitar una pgina de un bloque de memoria para abrir espacio para la nueva pgina. La poltica para elegir las pginas que se van a quitar la determina el algoritmo de sustitucin que se usa. El propsito de una poltica de sustitucin es intentar quitar la pgina que tiene menos probabilidades de que se haga referencia en el futuro inmediato. Dos de los algoritmos de sustitucin de uso ms comn son el primero en entrar, primero en salir (FIFO) y el uso reciente mnimo (LRU). El algoritmo FIFO selecciona para su sustitucin la pgina que ha estado ms tiempo en la memoria. Cada vez que se carga una pgina en la memoria, se empuja dentro de la pila FIFO su nmero de identificacin. FIFO estar completo cuando la memoria ya no tenga bloques vacos. Cuando deba cargarse una nueva pgina, se quita la pgina que hace ms tiempo que se carg. Se determina con facilidad la pgina que se va a quitar porque su nmero de identificacin est en la parte superior de la pila FIFO. La poltica de sustitucin FIFO tiene la ventaja de ser fcil de implantar. Tiene la desventaja de que, bajo ciertas circunstancias, se quitan y cargan pginas de la memoria con demasiada frecuencia. . 1' : J I La poltica LRU es ms difcil de implantar pero tiene mayor atractivo porque se considera que la pgina que se us hace ms tiempo es mejor candidato para su remocin que la pgina que se carg hace menos tiempo como en la FIFO. El algoritmo LRU puede implantarse al asociar un contador con cada pgina que est en la memoria principal. Cuando se hace referencia a una pgina, se inicializa su contador asociado a cero. A intervalos fijos de tiempo, los contadores asociadas can todas las pginas que en ese momento estn en la memoria se incrementan a 1. La pgina que se us hace ms ,tiempo es aquella con la cuenta ms alta. Con frecuencia los contadores se denominan registros de edad, pQrque su cuenta indica su edad, esto es, hace cuanto tiempo se ha hecho referencia a las p%g&as asociadas.

r : iJ ,A 4 , 12-7 Circuitera de administracin de la memoria


n,

>

.o

'3

En u 4 1 ambie~~te de multipr~gramaci6n en el que residen muchos programas en la memoria, se hace necesario mover daros y programas por la memoria,
1

WCE Orgmkcih

de fa memoria

para variar la cantidad de &a que utiliza cierto programa y para evitar que un programa mcdifique otros programas. La8 demandas de memoria de computadora que ha acarreado la multiprogramacibn han creado la necesidad de un s i s t e m a de administracin de memoria. Un sistema de administracin de memoria es un conjunto de procedimientos de circuitera y programaci6n para administrar los diferentes programas que residen en memo&, La programaci6n de administracibn de memoria es parte de un sistema operativo general disponibIe en muchas computadoras. Vamos a hablar aqu de la unidad de c i m M a asmiada con el sistema de administraci6n de memoria. Los componentes 'Msicosde una unidad de adminbtraci6n de memoria 1 11 - r,
' .
1

'

1 . Una opcin para reubicacidn de almacenamiento dinmico que mapea las referencias a memoria lbgica dentro de direcciones de memoria ffsica. 2. Una provisin para que diferentes usuarios compartan programas comunes almacenados en la memoria. 3. ta prokcd6n de la infomaci6n en contra del acceso no autorizado entre. usuarios y evitar que los usuarios cambien las funciones del
sistema operativo,

TA circuiterla de reubicacin de almacenamiento dindmico es un praceso de mapeo simiIar al sistema de paghacih descrito en Ia secci6n 12-6. El tamao de pBgina fijo que se usa en un sistema de memoria virtual produce ciertas dificultades en relaci6n con e l tamao de los programas y la estructura ldgica de dos. l% ms conveniente dividir lm programas y datos en partes lgicas denominadas segmentos. Un segmento es un conjunto de instruccionsa relacionadas de manera lgica o elementos de datos asociados con un cierto nombre. h segmentos puede generarlos e l programador o el sistema operativo. Aiguntw ejemplos de segmentos son una subrutina, un arreglo de datos, una tabla de shbolw o un programa de usuario. Compartir programas comunes es parte integral de un sistema de multiprogramauin. Por ejemplo, varios usuarios que desean compilar sus programas Fortran deba poder compartir una sola copia del compihdor, en lugar de que cada uno tenga una copia separada en la memoria. Otros .progxamas del sistema que residen en la memoria tambin los comparten todos los usuarim en un sistema de multiprogramaci6n sin tener que p m ducir copias mtiltiples. 1 E 1 tercer aspecto en la muItiprogramaci6n es proteger la interaccibn no deseada de un programa con otro. Un ejemplo de interaccin no deseada es la bpia no aubrk&a por un usuario del programa de otro usuario. Otro aspecto de la protecci6n se relaciona con evitar que el usuario ocasional 4ecllte W o n e s del sistema operativo y por l o tanto interrumpa la secuencia ordenada de las operaciones e n instalaci6n de computadoraa La

SECCION 12-7 Cimitera de a M ~ t r a c i 6 n de la memoria

513

privacidad de ciertos programas debe mantenerse alejada de cierto personal

no autorizado, para evitar abusos e n las actividades confidenciales de una


organizacin. La direccidn generada por un programa segmentado se llama direccin 16gica. Esto es similar a unri direccibn virtual, excepto que el espacio de la direccin lgica estd asociado con segmentos de longitud variable mas que con pAginas de longitud fija. La dirixcibn lbgica puede ser ms grande que l a direccibn de memoria fsica como en la memoria virtual, pero tambign puede ser' igual, y en ocasiones hasta ms pequelia que la longitud de la direccibn de memoria fsica. Ademds de reposiconar la infomiaci6n, cada segmento tiene una idormacibn de pmteccibn asociada a d.Los programas cmpartidos se colocan en un segmento nico en cada espacio de direccibn 1Qgica de usuario para que pueda comparlirse una sola copia. L a funcibn de la unidad de administracihn de memoria es mapear las direcciones 16gicas en direcciones fsicas similares al concepto de mapeo de memoria virtual.

Mapeo de pgina segmentada Ya se menciond que la propiedad de espacio lgico es la que utiliza segmentos de longitud variables. Se permite que la longitud de cada segmento crezca y disminuya de acuerdo con las necesidades dei programa que se ejecuta. Una manera de especificar la longitud de un segmento es asociarla con una cantidad de pginas del mismo tamao. Para ver c6mo se hace esto, consideremos la direccin l6gisa que se mustra en la figura 12-21. La direccin 16gica se divide en' tres campos. El campo de segmento especifica un nmero de segmento. El campo de pdgina especifica la pgina dentro del segmento y el c o de palabra proporciona la palabra especifica dentro de la pd@na. Un campo dq p $ @ de k bits puede especificar hasta 2K pginas. Puede asociarse un n6rnez-0 de xgmento con una sola pgina o hasta con 2k pginas. Por b tanto, 18 longitud de un segmento variarla de acuerdo con la cantidad de p i @ a ~ que se le asignan. E l mapeo de la dimci6n I6gica dentro de una direccidn fsica se hace mediante dos tablas, cdmo se muestra en la figura 2 2 1 [ a ) .E l n6mem de segmento de la dmcibn lgica ~ i f i c la a direccibn para la tabla de segmento. ta entrada en la tabla de &gmento>es una direccin de apuntador para una base de tabla de pigina. La base de tabla de pagina se agrega al nmero de pagina proporcionado en la di-ibn 16gica. La suma produce una direccin de apuntador a una entrada en la tabla de pgina. EI valor que se encuentra en la tabla de phgina proporciona el nhnem, de -bloque en la memoria fisica, La concatenaci6n del campo de bloque con el campo de palabra produce la direccin fsica mapeada f i i . Las dos tablas de m a p b pueden almacenarse en 'dos memarias pequeas separadas o en la memoria principal. En cualquier caso, una referencia a la memoria por parte de la CPU requerir4 tres accesos a memoria: uno de la tabla de segmento, uno de la tabla de paigina y el tercero de la memoria

314

WTllAP m w & a d 6 n de la memoria

DiFeCcibn fsica
a) Mapeo de d ' i i b n 16gica a fkka

b) Buffer
Figura 12-21 Mapeo en una unidad de admhiitracin de memoria de pgina qmentada,

principal. Esto podrla hacer lento el sistema de manera muy significativa cuando se compara con un sistema convencional que &lo requiere una referencia a memoria. Para evitar esta insuficiencia en la velocidad, se utiliza una memoria rfipida as~ciativa para contener las entradas de tabla a las que

SECCI~N 12-7 Circuiberla de a M t r a c i 6 n de la memoria

515

se ha hecho referencia en forma mAs miente. Este tipo de memoria s e denomina en ocasiones bu& de p'edicckh de truslaeitln (traslation lookaside buffer, TLB). La primera vez que se hace referencia a cierto bloque, se uitrcduce su valor junto con el segmento y nmero de pdginas correspon-

dientes dentro de la memoria asociativa, como se muestra en la figura 12-21(b). Por lo tanto, primero se intenta el proceso de mapeo mediante bsqueda ascieiativa con el qmento y el nmero de pginas dados. Si tiene xiko, el retraso de mapeo es d o el de la memoria asociativa. Si no ocurre coincidencia, e l mapeo de la tabla ms lenta de l a figura 12-21(a) se utiliza y el multado transforma en la memoria asdativa para referencias hturas.

Ejemplo num6rico Un ejemplo numkrico puede aclarar la operacin de la unidad de adminisQaci6n de memoria. Consideremos la direcci6n lbgica de 20 bits especificada en la figura 12-22(a). EI nmero de xgmento de 4 bib especifica uno de 16
segmentos posibles. El nmero de pggina de 8 bits pude especificar hasta 256 pAginas, y el campo de palabra de 8 bits implica un tarnaiio de pgina

de 256 palabras. Esta configuracibn permite que cada segmento tenga cualquier cantidad de p6ginas hasta 256. E l segmento m s pequefio posible tendrZi una o 256 palabras. E l segmento mAs grande posible tendri5 256 paginas, para un total de 256 X 256 = 64K palabras. La memoria ffsica que s e muestra en la figura 12-22@) consta de 220 palabras de 32 bits cada una. La direccibn de 20 bits se divide en dos
&un 12-22 Un ejemplo de di4
8 '

lgicas y fiaica.
8

. Segamo
a) Formato de

1
t

Pagina

Palabra

~~iglca: 16 v

m de 256 p4ginaa

cada uno,cada pginatiene 2% paiabraa

b) Pormto de d i

fsica; 4 M bloques de 256 p a h h lada uno, cada palabra tiene 32 bits

camps: un nmero de bloque de 12 bits y un nmero de palabras de ocho bits. Por l o tanto, la memoria fiica se divide en 4096 bloques de 256 palabras cada uno. Una pfigina en una direccin 16gica tiene un bloque correspondiente en la nlemoria fsica. Nbtese que las direcciones lbgica y fisica tienen 2 0 bits, En ausencia de una unidad de administracin de memoria, la direccibn de 20 bits de la CPU puede usarse para acceder a h memoria fisica

Hl~direct&
Consideremos un programa cargado en la memoria que quiere cinco p i e a s . El sistema operativo puede asignar a este programa el segmento 6 y las piiginas O a la 4, como se muestra en la figura 12-23(a). E l rango de direcci6n lbgica total para e l programa es del hexad~imal6M300 a &MFR Cuando se carga el programa en la memoria fsica, se distribuye entre cinco blques en la memoria fisica en los cuales el sistema operativo encuentra espacios vaclos. La correspondencia ente cada bloque de memoria y el nCimero 16gico de paginas se irrtrduce despus en una tabla como se muestra en la figura 12-23(b). La infomaci6n de esta tabla se introduce en el segmento y las tablas de pagina, como se muestra en la figura 12-24(a).
'

p Asignad&

de di-

1 4 -

b) Pagina de m

t o versus asignacibn de bloque de memorla

Figura 12-23 Ejemplo de asignacih de d i d 6 n de memoria fsica y I6gica.

Ahora consideremw la direcci6n 16gica especfica proporcionada en la figura 12-24. La direccidn de 20 bits se lista como un ndmero hexadecimal de cinco digitos. Hace referencia al nmero de palabras 7 E de la pdgina 2 en el segmento 6. La base del segmento 6 en la tabla de pAgina est en la direccin 35. E l segmento 6 tiene asociadas cinco pAginas, como se muestra en la tabla de pgina en la dkcci6n 35 a la 39. I a pgina 2 del segmento 6 estA en la direccin 35 4- 2 = 37. En la tabla de piigina se encuentra que el bloque de memoria fsica es 019. La palabra 7E en el bloque 1 9 proporciona la direcci6n fsica de 20 bits 0197E. N6tese que la pagina O del segmento 6 mapea dentro del bloque 12 y la pagina 1 mapea dentro del bloque O. La

12-7 chui&de
I r

administracin de l am - ~

51f

_,

'

~ 16gia4 (en h a t na d d )

(6

802

7E

Blogue O

Bloque 12

-Palabra de 32 biis~r

ir

b) Memorls m l a t i v a VLB)

Figura 12-24 Ejemplo d em p e o de memoria Mgia a &iFP [tdm las a m qtn ~ ~.m
hexadecimd).

memoria asociativa en la figura 12-24@) muestra que se ha hecho referencia antes a las pginas 2 y 4 del segmento 6 y por lo tanto sus n h e r o s de bloque correspondientes estn almacenados en la memoria asociativa. De este ejemplo debe resultar evidente que el sistema de administracin de memoria puede asignar cualquier cantidad de pdginas a cada segmento. Cada pagina 16gica puede mapearse dentro de cualquier bloque en la memoria fisica. 'las p8gins pueden moverse a diferentes bloques en la memoria, dependiendo de los requisitos de espacio en la memoria. L a nica actualizacibn que se necesita es el cambio de nmero de bloque en la tabla de pigina. Los segmentos pueden crecer o encogerse en forma inde pendiente, sin afectarse uno al otro. Diferentes segmentos pueden usar el mismo bloque de memoria si se nececita compartir un programa con muchos usuarios. Por ejemplo, puede asignarse al bloque ndmero 12 en la memoria fisica una segunda d i i i 6 n 16gica FOOOO al FWFF. Esto especifica un n h e r o de segmento 15 y pgina 0,lo cual mapea el bloque 12, como se muestra en la figura 12-24(a).

Protecci6n de memoria Fuede asignarse proteccibn de memoria a la d i i c i 6 n fsica o a la direccin lbgica. La protecci6n de memoria a travs de la direccibn fisica puede hacerse al asignar a cada bloque en la memoria varios bits de proteccin que indican el tipo de acceso que se permite a su bloque correspondiente. Cada
vez que se mueve una pdgina de un bloque a otro sera necesario actualizar los bits de p W c i b n de bloque. Un lugar mucho mejor para aplicar protecci6n es en el espacio de direccibn lbgica en lugar del ecpacio de direcci6n fisica. Esto puede hacerse al incluir infomci6n de protecci6n dentro de la tabla de segmento o en el circuito del registro de segmento de administracibn de memoria. E 1 contenido de cada entrada en la tabla de segmento o en un registro de segmento se llama un descriptor. Un descriptor tpico contendra, adems del campo de d k i 6 n base, uno o dos campos adicionales para protecci6r-t. Un formato tipico para un d d p t o r de segmenta se muestra en la figura 12-25. El campo de direccihn base proporciona la base de la direccibn de tabla de psigina en una organizacin de pgina segrnentada o la direccibn base de bloque en una organizacibn de registro de segmento. Esta es la d h x i 6 n que se usa en el mapeo de una direccibn lgica a fisica. La longitud del campo proporciona el tamao del segmento al especificar la cantidad mxima de paginas asignadas al segmento. Se compara la longitud de campo
Figura 12-25 Formato de un d ~ i i p b w de segmento tpim.

contra el nitmem de paginas en la direccibn 16gica. Ocurre una violacin de tamaio si el nmero de pginas es mayor que el limite de longitud del segmento. Por lo tanto, un programa y sus datos no pueden accesar la memoria que e1 sistema operativo no les asigna. El campo de protecci6n es un descriptor de segmento que especifica los derechos de acceso disponibles al segmento particular. En una organizacin segmentada en pginas, cada entrada en la tabla de pgina puede tener su propio campo de pmteccibn para descrhir los derechos de acceso de cada psgina. La informaci6n de protecci6n se establece dentro del descriptor mediante el programa de control maestro del sistema operativo. Algunos de los derechos de acceso de inters que se utilizan para proteger los programas que residen en la memoria son:

l. Privilegios de lectura y ~ r i t u r a completos. 2. S610 lectura (protecci6n de escritura). 3. S610 ejecucibn (pmteccibn de programa). Q. S610 de sistema (proteccidn de sistema operativo).
Se proporcionan a un programa privilegios de lectura y escritura completos cuando estd ejecutando sus propias instrucciones. La proteccibn de escritura es til para compartir programas de sistema como programas de utilera y otras rutinas de biblioteca. Estos programas de sistema se a h c e nan en un ares de memoria en donde pueden compartir los muchos usuarios. Todos los programas pueden leerlos, pero no se permite escribir en ellos. Esto las protege de que los cambien por otros programas. L a condicin de &lo ejecuci6n evita que los programas se copien. Llmita la referencia a un -mento &lo durante la fase de biisqueda de instruccihn pero no durante la faae de ejecuci6n. Por lo tanto, permite al usuario ejecutar las instrucciones del segmento de programa, pero evita que se lean las instrucciones como datos para copiar su contenido. Algunas partes del sistema operativo residirdn en la memoria en cierto momento. Estos programas de sistema deben protegerse hacindolos inaccesibles a usuarios no autorizados. La condicin de proteccibn del sistema operativo se coloca en los dscriptores de todos los programas de sistemas operativos para evitar que el usuario ocasional accese l o s segmentos del sistema operativo.

. cuntos C.I. de M M 128 X 8 se necesitan para proporcionar una 12-1. a capacidad de memoria de 2098 b y b ? b . CuntasUneas del dde dkccione deben utilizarse para accesar 2048 bytes de rnqmorial ~Cu6ntas de estas ineas serAn comunes a todos los CS.?

520

w c Organizaci6n ~ de

la memoria

c, CuntasIiiraeas e & de codificarse para la celecei6n de intepdo? Especifiqueel bmailo de los dedifiadores. U n a computadora utiliza C.I. de RAM con capacidad de 1024 X 1 . a. Cuntos C.I. se necesitan y c6mo deben conectarse sus llneas de dldonamiento para proporcionar una capacidad de memoria de 1024

by&? b . Cuntos CJ.se necesitan para proporcionar una capacidad de memo12-3.


ria de 16K bytes? Explique en palabras c6mo se van a conectar al canal de direcciones. Un C.I. de ROM de 1024 X 8 bib tiene cuatro enhadas de seleccibn y opera can una alimentacfbn de corriente de 5 voIts. Cuntas terminales se n-itan para el encapsulado C.L? Dibuje un diagrama de bloque y titule todas las terminales de entrada y salida en el ROM. Extienda el sistema de memoria de la figura 12-4 a 40% bytes de RAM y 4096 bytes de ROM.Liste el mapa de direcci6n de memoria e indique qub tamaiio de decodiicador se necesita. Una computadora emplea C.I. de AM de 256 x 8 y C.I. de ROM de 1024 x 8. El sistema de computadora necesita 2K bytes de RAM, 4K bytes de ROM y cuatro unidades de interface, cada una con cuatro registros. Se utiliza una configuraci6n de E/S mapeada en memoria. i m dos bits de orden superior del canal de direcciones se asignan M) para RAM, 01 para ROM y 10 para registros de interface. a. ~Cudntos C.I. EMM y RQM se necesitan? b . Dibuje un mapa de direcciones de memoria para el sistema. C. Roprcione el rango de d i & & en b d - l para RAM, ROM e interface. Una computadora de 8 bits tiene un canal de direcciones de 16 bits. Se usan las primeras 15 llneas de la direccibripara seleccionar un banco de 32K bytes de memoria. El bit de arden superior de la d i 6 6 1 1 se usa para seleccionar un registro que recibe el contenido del m a l de datos. Explique c6mo puede usarse esta configuracibn para extender la capacidad de memoria del sistema a 8 bancos de 32K bytes cada uno, para un total de 256K byte de memoria. Un sistema de disco magnetico tiene los siguientes parAmetros:

U-5.

12-6.

12-7.

T ,

= tiempo promdio para posicionar la c a b rnagnetica sobre una

pista.

12-8.

R = velocidad de rofaQ6nde disca en revoluciones por d o . N, = cantidad de bits por pista. N, = cantidad de bits por sector. Calcule e1 tiempo promedio T,que se necesitara para leer un sector. Cual es la velcicidad de transferencia de una cinta rnagnetica dc 8 pistas cuya velocidad es 120 pulgadas por segundo y cuya densidad es 1600 Mts por

pulgada? 12-9. Obknga la funci6n complcmcnto para la lgica de coincidencia de una palabra en una memoria asociativa. En otras palabras, muatre que Mi' es la

suma de funciones O R exclusivas. Dibuje el diagrama 16gico para M', y m i n e l a con un inversor para obtener.MP 12-10. Obtenga la funci6n boaleana para l a lwca de coiricidencia de una palabra en una memoria asociativa que toma en wnsideraeibn un bit de identificaci6n que indica s i la palabra est activa o no. 12-11. ~ Q u d lgica adicional se requiere wcproporcionar un resultado de no coincidencia para una paiabra en una asociativa, cuando todos los bits de &ve son O? 12-12. a. Dibuje e l diagrama l6gic0 de aodas las d a s de uria paiabra en una memoria asociativa. inciuya la l6gica de lectura y escritura de la figura 12-8y la 16giq de coincidencia de la figura 129. b . . Dibuje el diagrama 16gieo de todas las celdas a l o largo de una columna c a l (columna J') en una memoria asociativa. Incluya una h e a de salida corndti a todos los bits en la misma columna. e. A partir de las diagramas en a y b demuestre que, si la salida Mi est conectada a la lnea de lectura de la misma palabra, despus l a paIabra que coincide se leera, siempre y cuando d i o una paIabra coincida w n e l argumento de enmascaramienta.

12-13. b i con palabras y mediante un diagrama de bloque e6mo pueden leme mililtiples paiabras que coinciden fuera de la memoria de una memoria
asociativa.

Derive la 16gica de una celda y de una palabra completa para una memoria asociativa que tiene un indicador de salida cuando e l argumento sin enmascarar es mayor que (pero no igual a) la palabra en la memoria d a t i v a . 12-18 Una memoria caehk asociativa de dos sentidos utiliza bloques de cuatro palabras. ia caeM puede acomodar un total de 2048 palabras de la memoria principal. E l tamao de la memoria principI as de 128K X 32. a, Formule toda la informaci6n pertinente necesaria para construir la memoria cach. b . Dequ8 tamafio es la memoria cach? 12-16. E l tiempo de acreso a una memoria cach es de 100 ns y el de la memoria principl es de 1000 m. Se estima que el de las solicitudes de memoria son para lectura y el 20%restante es para escritura. La raz6nde acierto para accesos de lectura ea de slo 0.9. Se utiliza un procedimiento de escritura simultnea. a. Cul es el tiempo de acceso promedio del sistema comiderando d o ciclos de lectura de memoria? b. Cul ese1 tiempode a e m promedio del sistema para bs solicituda de lectura y d t u r a ? c, Cul es l a raz6n de acierto considerando los ciclos de escritura?
12-14,

12-17. Una m ~ o r i a c a & de conjunto a d t i v o de cuatro sentidos tiene cuaba palabras en cada conjunto. Un p d i m i e n t o de sustitucin basado en el algoritmo de uso recientemiimo se hplantb mediante contadoresde 2bits amciadas con cada palabra en el conjunto. Por lo tanto, se graba u nvalor en el rango O a 3 para -da palabra. Cuando mun a&&, el contador

522

Organizacin de la memoria
asociado con la palabra a la que se hizo referencia se activa en O. Aquellos contadorescon valores,originaimentemenores que aquel al que se ha hecho referenaa se incrementan en 1 y aodQs los dems permanecen sin cambio.Si ocurre una falla, la palabra coq un valor de contador 3 se quita, se pone la nueva palabra en su lugar y su contador se estable en O. Los otros tres contadoresse incrementan en 1. Demuestre que este procedimiento funciona para la siguiente secuencia de referenciasde palabra: A, B, C, D ,B, E , DI A, C, E ,C, E (cumience con A, 0, C, D ,romo las cuatro palabras iniciales, y que la palabra A sea la de menor uso reciente).

12-18.

Una computadora digital tiene rura unidad de memoria de 6 4 . X 1 6 y una memoria cach de lK palabrac. L a cach usa e l rnapeo directo con un tamao Be bloque de cuatro palabras. a. ~CuBntocbits hay en los campcs de identibcibn, Indice, bloque y palabra del formato de direccih? b. ~Cuaintosbits hay en cada palabra del cach6 y c6mo se dividen en funciones? Incluya un bit vdlido. c. Cuntos bloques puede alojar el cachb?
Un espacio de didonamiento se especifica mediante 24 bits y el espacio de memoria correspondiente lo especifican 1 6bits.
a. ~Cu&ntzts palabras hay en el espacio de didonamiento? b. Cubntas palabras hay en el espacio de memoria? c. Si una pgina consta de 2K palabras, cu&ntas piginas y bloques hay en , el sistema?

12-19.

12-20.

Una memoria virtual tiene un tamafia de pgina de 1K palabras. Hay 8 pginas y 4 bloques. 1 a tabla d e pgina de la memoria asociativa contiene las siguientesentradas:
~ag~ia
BIO~U~

Elabore una lista de todas las direcciones virtuales ( en decimal) que produc i i n una Hrdida de p&im s i las usa la CMI.

12-a3, Un sistema de memoria virtual ticnene un espacio de dirnridn de 8K palabras, un espacio dc mmnaria dc 4K palabras y tamaos de p6gina y bloque de 1K
palabras (vbsc la figura 12-18). Qcurxen 10s siguientes cambiosde referencia de pgina durante cierto intervalo de t i e m p ~ ( & l o w listan los cambios de pAgina; s i se hace referencia de nuevo a la misma pgina, no se lista dos
veces).

Referencias

523

Determine las cuatro paginas que residen en la memoria principal despus de cada cambio de referencia de pagina si el algoribno de sustitucin utilizado es: a) FEO; b) 3)U. 12-22. Detemhe la dos direcciones lgicas a partir de la figura 12-24(a) que accesadn la memoria Ksica en la direccibn hexadecimal Ol2AF. l espacio de direeei61116gicaen un sistema de computadora consta de 128 12-23. E segmentos.Cada segmento puede tener hasta 32 phginas de 4K palabras en cada uno. i a memoria fsica consta de 4K bloques de 4K palabras en cada uno. Formule los formatos de direcci6n igica y fsica. 12-24. Proporcione el ndmem biiario de la direcci6n Mgica formulada en el problema 12-23 para el segmento 36 y el nmero de palabra 2000 en la

pagina 15.

1. Baer, J. L . , Computer S y s t m Archikcture. Potomac, MD:Computer Ccience Press, IW. 2. Dasgupta, S . , C m p u k r Architecture: A Mdem Synthesis, Vol. 1 Nuwa York: John Wiley, 1989. 3. Gibson, G. A., Computer Syslemq Cmc& g . d h i p .Englewd Cliffs, Prentice Hall, 1991. 4 . Hamacher, V.C, 2 .G. Vranesic y S. G. Zaky, Computer Orgatttratiorr,3a. ed. N u e v a York: McGraw-Hill, 1990. 5. Hwang, K . ,y F.A. Briggs, Computer Architecture arnd Paralle1 Proceccitig. Nueva York McGraw-Hill, 1984. 6. Kain, R., Computer Architecture: Sopurare and Hardmre, Vol. 1 . EngIewmd Cliffs, NJ: Prmtiee Hall, 1989. 7. Langholz, G., J. Franeioni, y A. Kandel, EIentents oJCompukr Orpiurtion. Englewood Cliffs, EJI: Prencite Hall. 1989. 8. Murray, W .D . ,Computer and Digital System Architecture. Englewood Clifh, NJ: Rentice Hall, 1990. 9. Fatie m n , D .A,, y J. L.Hennesgy, Computer Architcfure: A QuatitativeAppmch. San M a b , CA:Morgan Kaufmann Publishers, 1990. 10. Pollard, L.H . , Cmnputer h i g n and Architecture.E n g l e w d Cliffs, NJ: Prentice Hall,
1990.

1 1 . Sione, H.S. (ed.). Introduct&n fo Camputer ArchitecFure, 2a. ed, Chieago: SciResearch w t e s , 1 9 8 0 .

EN ESTE C O
13-1
13-2

13-3
134
13-5

Czra&rlsticas de mdtipmmadores Estructuras de interconexi6n Arbitraje entre procesadores Comunicaci6n y sincronizacibn entre procesadores Coherencia de cach4

13-1 Caracteristicas de multiprocesadores


Un sistema multiprocesador es una interconexibn de dos o mas CPU con equipo de memoria y entrada-salida. E l &nino "pmesador", en multipm cesador, puede significar una unidad de p&ento central (CPU)o un procesador de entrada-salida (IOP). Sin embargo, un sistema con una sola CPU y uno o m8s IOP por 1 0 general no se incluye en la definicin de un sistema multiprocesador, a menos que los IOP tengan opciones computacianales comparables a una CPU. Como se define con mayor frecuencia, un
multiprocesador implica la existencia de mfiltiples CPU, aunque por lo general tambin habrh uno o m& IOP. Como se mencion6 en la secci6n 9-1,los mulliprocesadores se clasifican como sistemas de flujo de instruccie nes mltiple, flujo de datos mltiple (mulliple ittsfruction s h m , multiple data stream, M M D ) . Existen varias semejanzas entre sistemas multiprocesadores y multicomputadoras, porque ambos soportan operaciones concurrentes. Sin embargo, existen una importante diferencia entre un sistema con computadoras mltiples y un sistema con procesadores mltiples. Las computadoras se inierconectan unas con otras mediante lneas de comunicaci6n para formar una red de computadoras. La red consiste en varias computadoras autnt~ mas que pueden comunicarse o no una con otras. Un sistema multipmesador l o controla un sistema operativo que proporciona interaccin entre los
sistema
I

micmprocesador

nsi 1

4b

procesadores y t d o s lbs componentes del sistema cooperan en la soluci6n de un prblema. Aunqiie algunas computadaras de gran tamafio incluyen dos o d s CPU en su sistema p e r a l , e1 surgimiento del microprocesador es l o que ha pducido la mayar mtivac8n para las sistemas multiprocesadores. EI hecho de que los microprocesadores m p a n muy poco espacio fsico y son muy baratos acarrea la posibilidad de interconectar una gran cantidad de microp~~~esadores dentro de un sistema. La tecnologia de circuitos integrados a muy gran escala (VISI) ha reducida d costo de los componentes de computadora a un nivel tan bajo que el concepto de aplicar procesadores mltiples para cubrir necesidades de desempeo del sistema se ha convertido en una atractiva posibilidad de diseo. El m u l t i p ~ a m ' i e n t omejora la confiabilidad de1 sistema, por b que una falla o error en una parte tiene un efecto Imitado en el resto del sistema. Si una falla hace que un procesador deje de funcionar, puede asignarse un segundo procesados para ejecutar las funciones del procesador inhabilitado. El sistema completo puede continuar su funcionamiento de manera correcta, b l vez ron cierta perdida de eficiencia. El beneficio que se deriva de una o~gankcibn de multiprocesadores es un desempefio mejorado de sistema. El sistema deriva. su alta desempeo del hedio de que los clculos pueden avanzar en parale10 en una de dos maneras.
m

L Puede hacerse que mltiples trabajos independientes operen en paralelo.


2. Un solo trabajo puede dividirse en tareas paralelas mltiples.

Una funcidn general puede dividirse en varias tareas que cada p m e sador puede man$ar en forma individual. Fueden asignarse tareas del s i s e ma a procesadores de prop6sito especd cuyo diilo esti optimizado para ej-tar ciertos tipos de procesamiento en forma eficiente. Un ejemplo es un sistema de computadom en el cuaI un prmesador ejecuta los clculos para el control .de un prwe 3 industrial, mientras otro monitorea y controla 10s d$erentes parmetros, como la temperatura y la velocidad de flujo. Otro ejemplo es una mrnputadora en la cual un p m d o r ejecuta dlculos matemhticos de punto flotante a alta velwidad y otm cuida tareas rutinarias de pmesamiento de datos. EI multiprocesamiento puede mejorar el desempefio al descomponer qn programa en tareas paralelas ejecutables. Esto puede lograrse en una de dos maneras. E i usuario puede ,declarar en fonna explicita que ciertas tareas del programa se ejecuten en paralelo. Esto debe hacerse antes de cargar el programa, al especificar los segmentos paralel- ejmtableg. L a mayora de los fabricantes de multiprocesadores proporcionan un sistema operativo con comandos de iengvaje de programacin convmien~ para especificar el procesamiento paralelo. La otra manera, mas eficiente, es proporcionar un compilador con programa para multipmsador que pueda detectar en

forma automdtica el paralelismo en un programa de usuario. El compilador comprueba la dependencia de data$ en un programa. Si un progxama depende de datos generados en otra parte, la parte que emite los datos que se necesitan debe ejecutarse primero. Sin embargo, dos partes de un programa que no u t i l i n datos generados uno por el otro, pueden correr en forma concurrente. El compilador de paralelizaa6n comprueba todo el programa para detectar cualesquiera dependencias de datos posibles. Despuds, los que no tienen dependencia de datos ae consideran para la pmgramacibn concurrente en varios procesadures. Las multip~ocesadores se clasifican por la manera en que se organiza trrultipocesador de su memoria. Un sistema rnultiprocesador con memoria compartida comn nwmot.Ia ~ompadida se clasifica como' multiproce~dorde mmnria compartida. E s t o no evita que cada procesador tenga su propia memoria local. De hecho, la mayora de los procesadores de memoria compartida proporcionan una memoria cachk con cada CPU. Adernss, hay una memoria comn global que pueden accesar todas las CPU.Por lo tanto, la informacihn puede compartirse entre las CPU al colocarla en la memoria global comn. Otro modelo de microprocesador a el sistema de memoria distribuida. memoria distribuida Cada elemento del procesador en un sistema de memoria distribuida tiene su propia memoria local privada. Los procesadores se enlazan mediante un esquema de conmutaci6n diseado para dirigir idformacin de un procesadm a otro, a travks de un esquema de paso de m e n s a j e s .tos procesadores proporcionan programas y datos a atros procesadores en paquete. Un paquete consta de una d-ireccidn, el contenido de datos y algtin c6digo de deWi6n de error. tos paquetes se pmpdrcionan a un procesador especifico o toman el primer procesador disponible del sistema de comunicacibn usado. h sistemas de memoria distribuida s o n ms eficientes cuando la interaccih entre las tareas es minima, m i e n t r a s que los sistemas acoplados con precisidn pueden tsIerar un mayor grado de interaccibn entre tareas.

13-2 Estructuras de interconexin


Las componentec que forman un sistema multiprocesztdor son las CPU, los IOP conectados a dispositivos de entrada-salida y una unidad de memoria que puede dividirse en varios m6dulos separados. La interconexin entre los componentes puede tener diferentes configuraciones fsicas, dependiendo de la cantidad de trayectorias de transferencia disponibles entre los procesad* res y la memoria, en un sistema de memoria compartida o entre los elementos de prowsamiento, en un sistema de memoda 'distribuida. Existen varias formas fsicas disponibles para establecer una red de interconexi6n. Algunos de estos esquemas se presentan en esta seccin:

1 . Canal comn de tiempo compartido.


2. Memoria de' multipuertos.

3. Conmutador de barra de cruz. 4 Red de conmutacin de etapas maltiples. 5. Sistema de hipembo.

Canal comlin de tiempo compartido Un sistema multipromsador de canal c o m h consta de varios procesadores
conectados mediante una trayectoria mmdn a una unidad de memorias. Un canal mmdn de tiempo compartido para cinco procesadores s e muestra en la figura 13-1. En cualquier momenta dado s610 un procesador puede comunicarse con la memoria o ron otro procesador. Las operaciones de tfansferencia las controla el procesadpr que controia el canal en ese momento. Cualquier otro procesador que deea iniciar una transferencia debe detenninar primero el estado de disponibilidad del canal y, slo despuk de que el canal quda disponible, puede el procesador d k c i o n a r la unidad destino , para iniciar la transferencia. Se emite un comando para informar a la unidad destino cul operaci6n se va a ejecutar, La unidad que recibe reconsu direccibn en e l canal y responde a las seales de control de la unidad que las enva, despues de lo mal ke inicia la transferencia. El sistema puede mostrar conflictos de transferencia, dado que todo los procesadores comparten un canal comn. Estos conflictos d b resolverse al incorporar un controlador de canal que ectabl-a prioridades entre las umidades solicitantes. Un sistema de canal comn nico est limitado a una transferencia a la vez. Esto significa que cuando otro procesad~r s e est comunicando con la memoria, todos los otros procesadores estn ocupados con operaciones internas o deben estar inactivos en espera del canal. Como consecuencia, la velcicidad de transferencia total dentro del sistema est limitada a la velocidad de la trayectoria nica. Con frecuencia, los procesadores en e l sistema pueden mantenerse ocupados por medio de l a implantaci6n de dos o ms
Figura 13-1 Organizacin de cana1 comn de tiempo compartido.

Unidad de memoria

#U

CPU 2

CPU 3

IOP 1

IOP 2

Canal I d

Canallocal

Figura 13-2 Esiructura de cana1 de sistema para multiprocesadore,

canales independientes, para permitir transferencias de cana1 simultheas y mitiples. Sin embargo, mtcd incrementa el costo y la complejidad del sistema. Una irnplantacibn mAs econ6mica de una estructura de doble canal se muestra en la figura 13-2 Aqu tenemos varios canales locales, cada uno conectado a su propia memoria local y a uno o mbs procesadores. Cada canal local puede estar conectado a una CPU, un IOF o una combiici6n de prrrcesadoies. Un controlador de canal de sistema entaza cada canal loca a un canal de sistema comn. Los dispositivos de E/S conectados al IOP locai, a1 igual que a Ia memoria local, estn disponibles para el procesador local. La memoria conectada al canal de sistema comn la comparten todos los procesadores. Si un IOP e s t conectado en forma directa al canal de sistema, l o s dispositivos de E/S conecbdos a 8, pued'en quedar disponhl~para todos los procesadores. Slo un procesadgr puede comunicarse con la mememoria c # m p ~ d i d # moria compartida y otros recursos comunes a travs del canal de sistema, en cualquier momento dado. Los otros procesadores se mantienen ucupados comunicndose con su memoria lmal y sus dispositivos de E/S. Parte de la memoria local puede disearse como una memoria cach conectada a h CPU (vkase la secci6n 12-6). De esta manera, puede hacerse que el tiempo de acceso promedio de la memoria local s e aproxime al tiempo de ciclo de la CFU a la que est conectada.

Memoria multipuerto Un sistema de memoria multipuerto em&a canales separados entre cada mddulo de memoria y cada CPU. Esto se muestra en la figura 133 para cuatro CPU y cuatro mduIas de memoria. Cada canal de procesador e s a yiqcb$o a rada mbdyio de,memoria. Un canal! de pmcesador consta de la dhwbn,, l q datos y las b s control requeridas para comunicarse con 1 s memoria. Se dice-, que el rnbdlo de memoria * e cuatro puertos y cada puerto uriw de b s cawleri. E i m6dulo debe tener 16gica de control interna para determinar cual puerto tendr acceso a memoria en cierto momento. Los confkbs. de acceso a memoria se resuelven al asignar prioridades fijas ,a cada p u b de memoria. La prioridad para acceso a memoria

asociada con cada procesador puede establecerla la posicibn fsica del puerto que ocupa su 1 en cada mdulo. Por lo tanto, la CPU 1 tendrii prioridad s o * la CPU 2, la O U ' 2 & & A prioridad sobre h a U 3 y la CPU 4 tendr I a @ a d meno,
Figura 13-3 OrganW6n de memoria de multipuertos.

L a ventaja de la organizaci6n de memoria de multipuertos es la alta

velocidad de transferencia que puede conseguirse debido a las trayectorias mltiples entre los procesadores y la memoria. La desventaja es que requiere una J6gica de control de memoria cara y una gran cantidad de cables y
conectores. Como consecuencia, esta estructura de intermnexibn, por 10 general es apropiada para sistemas con un n h e r o reducido de pmesadorrs.

Conmutador de bama de cruz L a organizacidn de conmutador de barra de cruz consta de varios puntos de cruz que se colocan en intersecciones entre los canales de procesador y las trayectorias del mdulo de membria. La figura 13-4 muestra una interconexin de conmutador de barra de cruz entre cuatro CPU y cuatro m6dulos de memoria. El pequdo cuadro en cada punto de cruz es un conmutador que determina la trayectoria de un procesador a un mdulo de memoria.
Figura 134 Conmutador de barra de auz
M&iuias de memoria

i
>
7

'

Datos, dIreccibn y rontroldelaCP1

Datos
P

Mbdulo

Muiiiplexo~~ y lgica de
arbitmje bbilitar

a
>

1 1
J

Datos, direocibn y control dela CP 2

Datas, u ny ' mtM1dela CF 3

:1

Figura 13-5 Diagrama de blaque de conmutador de barra de auz.

Cada punto de conmutador tiene 16gica de control para inicializar la trayectoria de transferencia entre un p b o r y la memoria. Examina la direccin que est colocada en el canai para determinar s i se est direccimando

su maula particular. Tambin resuelve solidtudes mlltiples de acceso al mimo mdulo de memoria, con base en una prioridad predeterrninada. L a figura 13-5 muestra e l d i e o funcional de un conmutador de barra de cruz conectado a un m6dulo de memoria. El circuito consiste en multiplexores que wleceionan los datos, la direcci6n y un control de una CPU para la comunicaci6n con el mdulo de memoria. Los niveles de prioridad se establecen mediante la I6gica de arbitraje, para seleccionar una CPU cuands dos a m s de elias intentan accesar la misma memoria. Los multiplesrores s e controlan con el c6digo binano que genera un codificador de prioridad dentro de la 16gica de arbitraje. Una organizaa6n de conmutador de barra de cruz soporta las transfmcias simultheas de todos lm m6dukis de memoria parque hay una trayectoria =parada asociada can cada rnMuio. S i embargo, la circuiha necesaria para implantar el conmutador puede resultar bastante grande y compleja.

Red de conmutacin de etapas mltiples


conmutador de
intercambio

El componente bhsico de una red de etapas mciltiples es un conmutador de intercambio de dos entradas, dos salidas. Como se .muestra en la figura 13-6, el conmutador 2 X 2 tiene dos entradas, A y B y dos salidas, O y 1. Hay dos seales de control (que no se muestran) asociadas con el conmutador

B conectada a l Figura 134 Operaci6n dk un conmutador de intemmbio 2


X 2.

que est+I.ew la interconqi6n entre las terminales de entrada y salida. El conmutador tiene la capacidad & conectar b entrada A a cualquiera de las
Figura 1 3 7 A r h i binario mconmutador 2 x 2. '

A 0 0 0
1001

2 010
1 0 11

salidas. la terminal B del conmutador se comporta de manera similar. E l conmutador tambih tiene la capacidad para proporcionar arbitraje entre solicitudes en conflicto, $i h s entradas A y B solicitan h miam terminal de salida, s61o se conectar&una de ellas; la otra se bloquear. Al usar el conmutador 2 X 2 como un bloque de constnicci6n, es posible desarrollar una red de etapas mdtiples que controle la com&icacibn entre varias fuentes y destinas. Para ver c6mo se hace esto, consideremos el rbol binario que se muestra en la figura 13-7. Los dos procesadores P1y P2 se conectan mediante conmutadores a ocho mddulos de memoria marcados en binario del 000 a 111. La t r a v r i a de una fuente a un destino la determinan Jos bits binarios del nmero destino. El primer bit del nmero destino determina la salida del conmutador en el primer nivel. El segundo bit especifica la salida del conmutador en el -do nivei. Y el kmr bit especifica la salida del conmutador en el tercer nivel. Por ejemplo, para conectar P1 a la memoria 101, es necesario formar una trayectoria de P1 a Ia salida 1 en el conmutador de p b nivel, a la salida O en el conmutador de segundo nivel y a la salida 1 en el conmutador de tercer nivel. Est claro que PZy P2pueden conectarse a cualquiera de las who memorias. Sin embargo, ciertos patrones de solicitud no pueden satisfacerse en forma simultAnea. Por
Figura 13-8 Red de conrnutaci6nomega 8 X 8.

SEW~N B 2 Estructuras de uitereonexin

535

'

red omega

ejemplo, si P, est conectado a uno de los destinos 000 a 011, Pl puede conectarse a s610 uno de los destinos 100 al 111. Se han propuesto muchas topologias diferentes para las redes de conmutacin de etapas mGItipIes, con el fin de controlar la comunicaci6n procesador-memoria en un sistema de multiprocesador de memoria compartida o para controh la comunicacin entre los elementos de procesamiento en un sistema de memoria distribuida. Una de esas topologas es la red de conmutacin omega que se muestra en la figura 13-8. En esta configuraci611, hay exactamente una trayectoria de cada fuente a aalquier destina paxticular. Sin embargo, algunos patrones de s o l i c i t u d no pueden conectarse en f o m sirnultbnea. Por ejemplo, cualesquiera dos fuentes no pueden conectarse en forma simultnea a los destino8 000 y 001. La fuente inicia una solicitud particular en la red de conmutacibn a1 enviar un patrn de tres bits que representa el nmero destino. Conforme e l patrn binario recorre la red, cada nivel examina un bit diferente para determinar la posicibn del conmutador 2 X 2. El nivei 1 revisa el bit mAs significativo, el nivel 2 revisa el bit inte~rnedio y el nivel 3 revisa el bit menos significativo. Cuando la solicitud llega a cualquier entrada del conmutadar 2 X 2, s e dkciona a la salida superior s i el. bit especificado es O o a la salida inferior si el bit es 1. En un sistema multiprocesador de memoria compartida, la fuente es un pmesador y e l destino es un m6dulo de memoria. La primera pasada por Ia red estable la trayectoria. Se utizan pasadas sucesivas para transferir la direcci6n dentro de la meaigria y despus transferir los datos en cualquier direccin, dependiendo de si l a solicitud es una lectura o una escritura. En un sistema multiprocesador de memoria distribuida, la fuente y e1 destino son elementos de procesamiento. Despus de que se estabIece la trayectoria, el procesador fuente transfiere un mensaje al procesador destino.

Interconexi6n de hipercubo La estructura de procesadar de hipercubo o cubo n bhario e5 un sistema de memoria distribuida compuesto de N = 2 ' procesado^^ interconectados en un cubo binarb de n dimensiones. Cada pxocesador forma un nodo del cubo.
Aunque se acostumbra decir que cada nodo tiene un procesador, de hecho, no 6610 contiene una CPU, sino tambikn memoria local e interfaces de E/S. Cada procesador tiene trayectorias de comunicaci6n directa a n procesadores vecinos. Estas trayectorias corresponden a los lados del cubo. Existen 2'

dwccioves binarias de n bits distintas que pueden asignarse a los procesadores. Cada direcci6n de procesadar es difemte de cada una de sus n vecinas en exactamente una pmici6n de bit. La figura 139 muestra la estructura de hipexcubo para n = 1, 2, 3. Una estructura de un cubo tiene n = 1 y 2" = 2. Contiene dos procesadores interconectados mediante una trayectoria nica. Una estructura de dos cubos tiene n = 2 y 2 " = 4. Contiene cuatro nodos inknmnectados en un cuadro.

Un cubo

I ) o s cubos

Tres cubas

Figura 13-9 Estructuras de hipernibo .para n = 1,2,3.

Una estructura de

ires cubos tiene ocho nodos interconectados como un cubo. Una estructwa de n cubos tiene 2' nodos y un procesador residiendo en cada nodo. A cada nodo se le asigna una direccin binaria, de manera que las direcciones de dos vecinos sean diferenb en exactamente una posici6n de bit. Por ejemplo, tos tres v d m del nodo con Ia direccin 100 en una estructura de &es cubos son 000, 110 y 101, Cada uno de estos ntimexos binarios es diferente de l a dimi611 1 0 0 en un valor de bit. Enrutar mensajes a travs de una estructura de n cubos puede requerir de uno a n enlaces de un nodo fuente a un nodo destino. Por ejemplo, en una estructura de tres cubos, el nodo 000 puede comunicarse directamente mn el nodo 001. Debe cruzar iil menos dos edaces para comunicarse con 011 (de MX) a 0 0 1a 0 1 1 a de 1300 a O10 a 011). Es necesario recorrer al menos tres enlaces para comunicarse del nodo 000 al nodo 111. Puede desamiiarse

un procedimiento de direccionamiento al calcular ia OR exclusiva de la direcci6n del nodo fuente con la direccin del nodo d&tino. E 1 valor binario resultante tendr un bit que correspondo a los ejes en los cuales son diferentes los dos nodos. Despuks el mensaje se enva por algunos de los ejes. Por ejemplo, en una estructura de tres cubos, un mensaje en 010 que va a 001 produce una 08 exclusiva de las dos direccione iguales a 011. El mensaje puede enviarse por el segundo eje a 00D despus recorrer el tercer eje a 001. Un representante de la arquitectura de hipercubo es el complejo de computadoras Intd m.Consta de 128(n = 7)microcomputadoras conectadas mediante canales de comunicacibn. Cada nodo consta de una CPU, un procesador de punto flotante, memoria local y unidades de interface de comunicacin serial. Los nodos individuales operan en forma independiente sobre los datos almacenados en la memoria local, de acuerdo con los programas residentes. Los datos y los programas s cada nodo provienen de un sistema de paso de mensajes, de otros nodos o del administrador del cubo.

SECCI~N 136

Arbitraje entre procesadores

537

Se cisarmllan y m p @ n b p w g r w de aplicacioiaw en el administrador del cubo y despuCs se cargan en los nodos individdes. Los cAlculos se distribuyen por el sistema y se ejecutan en forma concurrente.

13-3 Arbitraje entre procesadores


tos sistemas de computadora contienen varios canales en diferentes niveles para facilitar la transferencia de informacibn entre los componentes. La CPU
contiene varios canales internos para transferir informaci6n entre registros de procesador y la ALU. Un cana1 de memoria est formado por lneas para transferir datos, direccin e informacin de lectura/escritura. Se usa un canal

canal de sistema

de B/S para transferir ulfomci6n hacia y desde dispositivos de entrada y salida, Un canal que conecta los componentec principah en un sistema de multiproesador, como las CPU, 10s IOP y la memoria, se denomina un canal de sistema. LQS circuitos flsicos de un canal de sistema estn contenidos en varias tarjetas de circuito impreso idhticas. Cada tajeta en el sistema pertenece a un m6dulo en particular. Una tarjeta consta de circuitos conectados en paralelo por medio de mnectores. Cada terminal de cada conector estA conectada mediante un alambre a la terminal correspondiente de todos los otros conatores en otras tajetas. Por lo tanto, cualquier tajeta puede conectarse en una ranura en el plano p~sterior(backplane) que forma el canal del sistema. Los procesadores m un sistema multipraeesador de memoria compartida solicitan acceso a h nwmoria comdn o a otros recursos comunes por medio del canal del sistema. Si ningn otro prowsador utiliza en ese m e mento el canal, puede concederse el acceso de inmediato al p m a d o r que l o solicita. Sin embargo, el procesador que solicita debe esperar si otro p-ador utiliza en ese momento el canal del sistema. Adems, otros procesadores pueden solicitar el canal del sistema al mismo tiempo. Entonces debe realzarse un arbitraje para resolver esta peticibn mltipIe de los recursos compartidos. La 16gica de arbitraje serla parte del controlador del canal del sistema c a h d o entre el canal local y el canal del sistema, s e @ se muestra en Ia figura 13-2.

Canal del sistema Un canal de sistema tipico consta de aproximadamente cien lneas de s & a h &tas Uneac se diyiden e n tres grupos funcionalles: datos, direcciommhto y control. Adems, existen linear. de distribuch de corriente que proporcionan l a ahmtaci6n para 1 - c o m p o Por ~ ejemple, e l sistema muiticaml estndar 7% tiene 16 lineas de d a b , 24 h a s de diredcionamiento, 22 heas de control y U i s de amentaci6r1,para un total de 86 h s . Las lineas de dakos proporcionan una trayectoria para la transferencia de datos entre los procesadores y una memoria comn. l a cantidad de lneas

canal sfncnitio

canal adnrrono

de datos por lo general es un mltiplo de 8, y los mds comunes son 16 y 32. Las lneas de direccionamiento se utilizan para identificar una direccihn de memoria o cualquier otra fuente o destino, como un puerto de entrada o salida. La cantidad de heas de direccionamiento determina la mhxima capacidad de memoria posible en el sistema. Por ejemplo, una direcci6n de 24 h e a s puede a {hasta224(16 megas) palabras de memoria. Las heas de datos y de direccionamiento se temihan con acopladores de tres estados (vase la figura 4-5). Los acopladores de direccionamiento son unidirm50nales del pmesador a l a memoria. Las h e a s de da- son bidireccionales (vase la figura 12-31, lo que permite la trabferencia de datos en cualquier direcci6n. Las transferencias de datos por el canal del sistema pueden ser sncronas o asincronas. E i un canal sincmno, los datos se transfieren, durante una porcibn de tiempo conocida con anticipacidn, por las unidades fuente y destino. Se consigue la sincronizaci6n al rnanejar ambas unidad- a partir de un reloj comn. Un procedimiento alternativo es tener relojes separados de la misma frecuencia aproximada en cada unidad. Se transmiten seales de sincrrinizacin en forma peri6dica para mantener el mismo paso en todas los rdlojes del sistema. En un canal asincrono, a los datos que se transfieren les acompaan seales de control de reconocimiento mutuo (v4aase la figura 11-9) para indicar cundo transfieren 10s datos de la fuente y los recibe e l destino. Las h e a s de control proporcionan d a l e s para controlar Ias transk mcias de infomci6n entre las 'unidades. tas seiiales de temporizacin indican Ia validez de la iramaci6n de datos y direccin Las seales de comandos especifican operaciones que se van a ejecutar. Las l h s de control tpicas incluyen seales de transferencia como lectura y eescritura de memoria, reconocimiento de una transferencia, solicitudes de interrupci6n, seiiales de control del canal como solicitud y cesin y seales para pmedimientos de arbitraje. ta-tabla 13-1 lista las 86 l s disponibles en el multicanal lEEE estndar 796. Incluye 16 i de datos y 24 lneas de direccionamiento. Todas las seales en el multicanal estAn activas o se habiiitan en el estado de nivel bajo. Las sei3aIes de controI de transferencia de datos Incluyen lectura y escritura de memoria al igual que lectura y escritura de B/S. En consecuencia, las lneas de direccionamiento pueden usarse para direccionar espacios de E/S y memoria separados. La m&oria o las E/S responden con una 1 de reconocimiento de transferencia cuando terrnina la transferencia. Cada pracesador conectado al mdticanal tiene hasta ocho salidas de solicitud de interrupi6n y m lhea de entrada de reconocimiento de inkrrtlpci6n. Por lo general; se apllcan a un controlador de prioridad de interrupciones similar al que se desclrh en la figura 11-21. Las seales miscelneas de control proporcionan posibilidades de temparizaci6n e inicialikaci6n. En particular, la de rana1 asegurado es esencial para aplicaciones de multiprocesador. Esta &al activada por procesador sirve para evitar que otros procesadores

sECa0N

Arbitraje entre procesadores

539

TABLA 134 *ics

del multhnal IEEE &&dar 796


Nombre de selIal

Datos y +eccik + S de datos fiIineas) ' Lneas de dMon-imiento (24 ineas) Transferencia de datos Leetuta de memoria Emitura en memoria' Lectura de E/S Escritura de E f S Reconqcirnientb. de transferemia Control de intenupci6n Soicitud de Imterrugwih (8 lineas) Reconocimiento de intenvpdbn C o n W rnisoeUneo Reloj maestro Inidalizacidn del sisterq Habilitacibn dei byte aIto Inhibici6n de memoria (2 lineas) Seguro de canal Arbitraje de canal %licitud de anal' Solicittxd de canal f i n . Canal mapado Reloj de canal Pno~idad de en@& al canal Prioridad & aafida del canal Corriente y tierra (20 lneas)
+

RATAeDATAlS ADRSO-ADRS23

MRDC
MWTC IORC
IOWC TACK

INTD-INW iNTA
CUK

1NIT

BHEN
INHl-WH2

LOCK
BREQ CBRQ BUSY

BCLK
BPW,

BPRO

conkrole~!~ el canal mientras ejecuta una instnicci6n de probar y activar. Se necesita esta funsitjn para una sincmnibcibn de procesador adecuada (vbase Ia swci6n 13-4). Las seis seilales de arbitraje de cana1 se utilizan para arbitraje entre procesadores. Estas senles se explicarAn mAs adelante despuks de a n a h r . los procedimientos de arbitraje serial y paralelo.

Procedimiento de arbibaje serial Las pmcedimientos de arbjtraje a renden todas hs solicitudes del procesador con base en prioridades estabIecidas. Puede establecerse una tcnica de
resoluci611 de prioridades de canal por circuiteria mediante una conexin serial oparaIela de las unidades que solkihn'el control del canal deI sistema. La tcnica de solricin de prioridad serial se obtiene a partir de una conexi6n de cadena de margaritas de los circuitos de arbitraje del canal similar a la

lgica de prioridad de interrupciones presentada en la seccibn 11-5. Se asigna prioridad a b o procesadores conectados al canal del sistema de acuerdo con su posicibn a l o largo de la lnea de control de prioridad. Se aoigna la prioridad ms alta al dispositivo mAs cercano a l a lnea de prioridad. Cuando mfiltiples dispositivos soliutan en forma concurrente el uso del canal, se m c e d e el a al canal al dispositivo con t prioridad m s alta. La figura 13-10 muetra la conexi6n en cadena de margaritas de cuatro Arbitras. Se considera que cada procesador tiene su propia lbgica de arbitro de canal con lneas de salida de prioridad y de entrada prioridad. la salida de prioridad (PO)de cada drbilro est conktada a la entrada de prioridad (Po del siguiente rbitro de prioridad inferior. la Pi de la unidad de prtondad ms alta se mantiene en un valor 1 lgico. Za unidad de prioridad ms alta en el sistema siempre recibid el acaso al canal del sistema cuando l o solicite. I_a salida PO para un Arbitro particular es igual a 1 s i su entrada PI es igual a 1 y el p-dor asociado con la lgica de srbitro no solicita el control del caiiaL As se pasa l a prioridad a la siguiente unidad en h cadena. Si el procesador solicika el control sobre el canal y d Arbitro correspondiente encuentra que su entrada PI es igual a 1 , activa su saiida PO en O. Los Iirbitros de prioridad menor reciben un O en PI y p w a n un O eii PO.Debido a eso, el procesador cuyo Arbitro tiene una PI = I y PO = O es e l que recibe el control del canal del sistema. Un procesador puede estar a la mitad de una operacitjn de canal cuando un procesador de prioridad mayor solicita el canal. E 1 procesador de prioridad menor debe terminar su operaci6n de canal antes de entregar e l control del canal. La lnea de canal ocupado que se muestra en la figura 13-10 proporciona un mecanismo para una transferencia de control ordenada. La lnea de canal acupado proviene de circuitos de colector abierto en cada unidad y proporciona una conexin OR 16;ica de lliieas internas. Cuando un rbitro miIx e l control del canal (porque su Pl = 1 y PO = O), examina la Enea de canal ocupado. Si la h~ea esd inactiva, s i p i f i a que ningn otro prmaador est usando el canal. El Arbitro activa la lnea de canal ocupado y su pnxeadox toma el control del canal. Sin embargo, s i el 6rbitro encuentra que la lnea de
Fiiura 11-10 Arbitraje serial (cadena de margaritas).

GLrd
0

PI

PO

Arbitro l

- - canal
Canal
PI W Arbitra 2

Prioridad

mas baja
Alsiguiente rbitro

PI

PO

Arbllro 3

PI PO Arbitm 4
h d e mpado d

canal mpado est activa, significa que otro p ~ d o usa r en ese momento d 1 . El CrbitrP sigue examinando h linea de d mpado mienhas el p-dgx de phridad menor que pierde el control del canal termina su operadh. Cyando la Unea de canal wpado retoma a su estado inactivo, el &itro. de prioridad.mayor habilita la l ocupado y su proce~dor correspondiente puede entonces conducir las bmskmcias de canai requeridas.

Lbgica de arbitraje paralelo 'La tcnica de arbitraje de canal paralelo utiliza u r ~ cdficador de prioridad
un decodificador c m o se muestra en la figura 13-11.Cada rbitro de canal en el esquema paraleio time una h e a de solicitud de canal y una h e a de entrada de rec~nacimiento de canal. Cada hrbitro habilita a la inea de solicihid cuando su procesador soiicita el acceso al canal del sistema. E 1 pmesador toma el control del canal si se habilita su inea de entrada de reconocimiento. La lhea de canal ocupado proporciona una transferencia de control ordenada, como en el caso de la cadena $e margaritas. La figura 13-11 muestra las lineaa de solicitud de-cuatro Arbitros que van a un codificador de prioridad 4 X 2. La d i d a del codfiicador genera
externa y

Figura 13-11 Arbitrje praklo.

un cdigo de 2 bits que representa la unidad de prioridad 'ms alta entre las que solicitan el canal. L tabla de verdad del edificador de prioridad puede encontrarse en la tabIa 11-2 (vase la seccin 11-5). E l cddigo de dos bits de la salida del cudificador maneja un demdificador 2 x 4 que habilita la linea de reconocimiento a p r ~ i a d a para conceder el aeeeso al canal a Ia unidad de prioridad m& alta. Ahora podemos explicar la funci6n de las seales de arbitraje de canal que se listan en tabla 13-1. ta entrada de pnondad del canal (bus priwity-in, BPRN) y la salida de prioridad dei canal @mpridrity-out, BPRO) se usan para una conexi6n en cadena de margaritas de los circuitos de arbitraje de canal. La seiial de canal ocupado (bus busy signal, BUSY) es una salida de eoledor ab'irto que se usa para dar instrucciones a todos los drbitros cuando el canal esta ocupado conduciendo una transferencia. La solicitud de canal com6n (common bus request, CBRQ) es tambin una salida de colectbr abierta que sirve para dar instrucciones al arbitro si hay otros &bitros de prioridad menor que solicitan el uso del canal del sistema. Las sefiales utilizadas para construir un procedimiento de arbitraje paraldo soft la solicitud de canal (BREQ) y entrada de prioridad d e l canal (BPRN), que corresponden a las seales de solicitud y reconocimiento de la figura 13-11.Se utiliza e l reloj de canal (BCLK) para sincronizar todas Ias transacciones de canal.

cuota de tiempo

encuestar

AIgoritmos de arbitraje dingmico Los dos procedimientos de arbitraje de canal que se acaban de describir, utilizan un algoritmo de prioridad estatiea porque la prioridad de cada dispositivo esta fija por la manera en que est conectado al canal. En contraste, un algoritmo de prioridad dindmica proporciona a1 sistema la posibilidad de cambiar la prioridad de los dispositivos mientras opera el sistema. Ahora discutiremos unos cuantos procedimientos de arbitraje que utilizan algoritmm de prioridad dinmica. El algoritmo de nrofa d tiempo asigna una porci6n de tiempo de longiQd fija del tiempo del canal que se ofrece en forma secuencia1 a cada procesador formando un ciclo que los incluye a todos. El eervicio que se proporciona a cada componmte del sistema con este esquema, es inde pendiente de su posicibn a l o largo del canal. No se da preferencia a ningn dispositivo particular porque a cada uno se le asigna la misma cantidad de tiempo para comunicarse con e l canal. En un sistema de canal que utiliza encuHfri, h d a 1 de mibn de canal se sustituye con un conjunto de lneas llamadas lneas de encuesta que estn conectadas a todas las unidades. El controlador de canal uflua estas heas para definir una direccin para cada dispositivo conectado al canal. E l controlador de canal recorre en secuencia las direcciones en una manera preestablecida. Cuando un procesador que requiere el acceso reconoce su diremi&, activa la Iinea de canal ocupado y despua accesa el canal. Despuds

SEccrbN 1 M Comunicacin y shanizaCi6n entre prrieesadoxes

543

de varias ciclos de canal, el pmeso, de encuesta conthSia al eiegir un procesador diferente. Por lo general, e s programable la secuencia de encuesta y, como resultado, puede alterarse la prioridad de seleccidn bajo e l 'euntrol del programa. El algoritmo de uso reciente mnimo (least m n t i y uced, LRU) proporLRU ciona la prioridad mAs alta al dispositivo que no ha usado el canal durante el intervalo ms largo. Las prioridades se ajustan despub de varios ciclos de canal, de acuerd~ con el algoritmo LRU, Con este procedimiento, no se favorece a ningn pmesador spbre otro, porque las prioridades se cambian en fonna dinitmica para proporcionar a cada dispositivo una oportunidad de accesar el canal. En el esquema primero en mtrar, primuo m atenderse, las solicitudes se atienden en .el orden recibido. Para implantar este algoritmo, el controlador de canal establece una lista de espera arreglada de acuerdo con el tiempo en el que llegan las so1icitudes de canal. Cada procesrtdor debe esperar su turno para usar el canal con base en primero en entrar, primero en salir (FIFO). cadena de magan'tas El procedimiento de mdena de margarifas rotatoria es una extensidn mtateria dinamita del algoritmo de cadena de margaritas. En este esquema, no hay un controlador central de canal y la l i e a de prioridad e s u conectada de la salida de prioridad del l h o dispositivo de regreso a la entrada de prioridad del primer dispositivo en un ciclo cerrado. Esto es similgr a las m e xiones que se muestran en h f i i r a 13-10, excepto que la salida PO del Arbitra 4 est conectada a la entrada PJ del A~bitro1. Cualquier dispositivo que tiene acceso al canal sirve como controlador de canal para el siguiente arbitraje. Cada prioridad de Arbitro para un cierto ciclo de canal estd determinada por su posici6n a l o largo de la lfnea de prioridad de canal dei arbitro,cuyo procesador controla en ese momento el canal. Una vez que un rbitro entrega un canal tiene la prioridad ms baja.

13-4 Comunicaci6n y sincronizacin entre procesadores


Los diversos procesadores en un sistema multiprocesador deben recibir una opcin para comunicarse uno con el otro. Puede establecerse una trayectoria de comunXcaci6n mediante canales comunes de entrada-salida. l% un sistema de mul tiprocesador de memoria compartida, el procedimiento m~c'cornn es tener una parte de la memoria disponible para todos los pmesadores. E l uso principal de la memoria comn es actuar como un centro de mensajes similar a un buzhm, en el.cual cada procesador puede dejar mensajes para 10s otros procesadores y recoger los mensajes dirigdos a 8. El prmesador que enva estructura una solicitud, un mensaje o un procedimiento y lo coloca en el buz611de memoria. Los bits de estado que

reslden en la memoria comn se utilizan, por lo general, para indicar la condici6n del buzn, si tiene informacibn significativa y a cual pxocesador estA dirigida.,El procesador que recibe puede comprobar de manera peridi-

para d ~ si hay mensajes ~ vdlidm r para 121. El tiempo de respuesta REEI este prmedimimto pude s e r muy largo, porque un procesador reiconmerd una solicitud &la cuando hace una encuesta de mensajes. Un procedimiento mfts eficiente para el p m d o r que enva es avisar al proca ei buzbn

cesado~ que mibe en forma dimediante urna seal de inkrrupci6n. Esto puede conseguirse por medio de una interrupci6n entre procesadores iniciada por programa con una Uistrumibn en el programa de un pmcesador, el , cual, cuando se ejecuts produce una comdici6n de hterrupci6n externa en un segundo promsador. Esto avisa al proceaador in-pido de que el procesador que interrumpe insefkb un nuevo mensaje. AdemAs de la memoria compartida, un sistema multiprocesador puede tener otros recursos compartidw, Por ejemplo, una unidad de almacenamiento de disco mgn6tico wnechda a un IQP puede estar disponible para todas las. SPU.Esto pmporciona una opcin para compartir programas de sistema aimacenados en el disco. Puede establecerse una trayectoria de comunicaci6n enhe dos CPU por medw de tn enlace entre dos IOP asociados con dos CPU diferentes. Este tipo de enlace permite que cada CPU trate a la otra como un &positivo de E/S para que el mensaje pueda transferirse por medio de 19 trayectoria E/S. &a evitar un uso conflictivo e los reeurws compartidos por varios procesadores d e h preverse h asignacibn de los recursos a los procesadores. Esta se asigna al sistema operativo- Existen tres organizaciones que deben usarse en el diseo de sistemas operativos para multiprocesadores: configuraci6n amoggclavo, sistema operativo separado y sistema operativo &&tribuido. En un modo am-lavq, un p m d o r , denominado el amo, ejecuta siempre las funciones del sistema operativo. tos procesadores restantes, llamados essiqvosJ no ejecutan funciones del sistema operativo. Si un proa+ sador esclavo necesita un servicio del sistema operativo, debe solicitarlo al interrumpir al mamtro y esperar hasta que pueda intemimpirse el programa
~ctyai.

En una organizacin de sistema operativo separado, cada procesadar puede ejecuta las rutinas de sistema opsrativo que necesita, Esta organizacibn & m8s conveniente para sistemas de memoria distribuida en los cuales cada procesador puede tener su propia c q i a de todo el sistema operativo. En la organkci6n de sistema operativo distribuido, las rutinas de sistema operativo se distribuyen mediante los pmadores disponibles. S i n embargo, cada funci5n de sigtema operativo particular se asigna a un solo procesados a 4 vez. &te tipo de orgadzacidn se denomina tarnbsn sistema o~tivo fi~tanbe,porque las rutinas flotan de un pxocesador a otro y la ejqucin de las nitinas pwde asignarse a difemntes procesadores en diverws momentos. En un sistema de multiprocesadar de memoria distribuida, se distribuye la memoria entp los p m d o r e s y no hay memoria compartida para pasar infomci6n. La eomunicccin entre los pmeaadoms es mediante el

SEM~N 1311 Comunicacin y s h n h c h entre

545

paso de mensajes a trav& de canales de E/S. La comunicaci6n la inicia un prmesador que solicita un prodimiento que reside en la memoria del psador con el que se deea comunicar. Cuando el procesador que envh y el procesador que recibe se nombran uno al otro como fuente y destino, se establece un canal de com~caci6n. Despub se envia un mensaje con un encabwdo y varios objetos de datos usados para comunicarse entre nodos. Puede haber. varias trayectorias posibles disponibles para enviar el mensaje entre cualesquiera dos nodos. E 3 1 sistema operativo en cada nodo contiene idonnaci6n de direcciwmmiento que indica las trayectorias alternativas que se pueden. usar para enviar un mensaje a otros nodos. Lit eficlench de comunicacidn de la red de prwaadores depende del protocolo de direccionamiento de comunicaci6n, la velocidad del pmcesador, la velocidad de enlace de datos y la topologia de la red,

Sincronizaci6n entre procesadores El conjunto de Whccimes de un multiprocesador contiene instrucciones bdsicas que se utilizan para implantar la camunicaci6n y la sincronizacibn entre procesos que cooperan. La comunicaei6n se refiere al intercambio de datos entre procesos diferentes. Por ejemplo, los pariimetros que se pasan a un procedmiento en un pmcesador distinto constituyen una comunicacin entre procesadores, La sincronizaci6n se refiere al caso especial en el cual los datos que se usan para comunicar entre procesadores son infonnaci6n de control. Se necesita la sincronizaci6n para imponer la secuencia de pro=os c o m t a para asegurar el acceso mutuamente exclusivo a datos compartidos que se pueden escribir. Los sistemas multipmcesador por lo general incluyen varios mecanismos para manejar la sincronizaci6n de los recursos. La circuitera implanta en forma directa primitivas de nivel bajo. Estas primitivas son los mecanismos'bLsicos que imponen l a exclusin mutua para mecanismos ms comple jos implantados en programa. Se han desarrollado varios mecanismos de circuiteria para la exdusi6n mutua. Uno de l o s metodos miis populares es el uso de un semforo binario.

ExclusI6n mutua con semforo


Un sistema rnuitiprocesador que funciona en forma adecuada debe proporcionar un mecanX6rno que garantice el acceso ordenado a la memoria y otros recursos compartidos. Es necesario evitar que dos o ms procesadores cambien simult6neamente l o s datos. Este mecanismo se denomina exclusidn mutua. Debe proporcionarse exclusin mutua en un sistema multiprocesador paxa permitir que un procesador excluya o asegure e l acceso a un recurso compartids por parte de otros procecadores cuando esta en su smcibn 'h-ftim. Una seccibn critica es una secuencia de programa que, una vez comenzada, debe terminar su ejmci6n antes que otro procesador accese el mismo recursa compartido,

I l . I I

I
I

I
I

mecanismo de s e p r o
I

Una variable binaria llamada sembfm se utiliza con frecuencia para indicar si un procesador ejecuta o no una secci6n crtica. Un semaforo es una bandera controlada por el programa que esG almacenada en una imalidad de memoria que pueden accesar todas los procesadores. Cuando el semgforo es igual a 1, significa que un procesador ejecuta un programa crtico, por lo que la memoria compartida no est disponibles para los otros procesadores. Cuando el sem4foro es igual a O, Ia memoria compartida est4 disponible para cualquier procesador que lo solicite. Los procesadores que comparten el mismo segmento de memoria aceptan no utilizar el segmento de mwioria a menos que e l m6fom sea igual a O, 10 que indica que esa memoria est disponible. Tambin aceptan activar el semforo en 1, cuando ejecutan una seccin crtica y desactivarlo a O cuando terminan. Probar y activar el d f o r o es, por s i misma, una operadon critica y debe efectuarse como una operacihn ifnica indivisible. Si no, dos o ms procesadores pueden probar e1 semforo al mismo tiempo y despuh cada uno activarlo, lo que permitirla que ambos entraran a una secci6n crtica al mismo tiempo. Esta acci6n permitirla la ejecuci6n simultnea de secciones criticas, lo que producirla una iniciakaci6n errnea de l o s parmetros de control y la pCrdida de alguna informaci6n esencial. mtede iniciazarse un semforo mediante una instruccibn de probar y activar junto con un mecanismo de seguro por la circuitera. Un seguro por la circuiteria es una seiial generada por el procesador que sirve para evitar que otros procesadores utilicen el canal del sistema mientras la seal est activa. L a instrucci6n probar y activar prueba y activa un semforo y activa el mecanismo de seguro durante el tiempo que se ejecuta la instrucci6n. Esto evita que otros procesadores cambien el semiiforo entre el tiempo que el procesador lo prueba y el tiempo en que lo activa. Consideremos que el sem&foroes un bit en la posicibn menos significativa de una palabra de memoria cuya direcci6n se representa mediante SEM. Sea el mnem6nico TSL el nombre de la "operacibn probar y activar mientras est asegurado. La instrucci6n

TSL

SEM

se ejecutarA en dos ciclos de memoria (el primero para leer y el segundo para escribir) sin interferencia, de la m e r a siguiente:

R tM[SEM] MISEMI t1

Robar semiiforo Activar &fom

Se prueba el semforo al transferir su valor a un registro de procesador R y

despus se activa en 1, E l valor en R determina que hacer despugs. S i el pxocador encuentra que R = 1, sabe que el semforo estaba activado originalmente, (el hecho de que se vuelva a activar no cambia el valor dd semforo). Wsto significa que o t r o procesador ejecuta otra secci6n crtica, por lo que el procesndor que prob6 el d f o m no accesa la memoria compar-

tida. Si R = 0, eso significa que la memoria comn (o e l recurso compartido que representa el semdforo) est6 disponible. E i semforo se activa en 1 para evitar que atros procesadores accesen la memoria. Ahora el p-dor puede ejecutar b seccibn crtica. La dltima instmciSn en el programa debe desactivar la localidad SEM a 0, paca entregar e l k u r s o compartido a otros procesadores. Nbtese que la seal de seguro debe estar activa durante la ejecucidn de la instrucci6n probar y activar. No tiene que estar activa una vez que se activa el semforo. Por 10 tanto, el mecanismo de seguro evita que otros procesadores accesen la memoria mientras se activa d semforo. El semforo mismo, mando esta activado, evita que otros procesadores accesen la memoria compartida mientras ejecuta una secci6n crtica.

13-5 Coherencia de cach


LA operacibn de memoria each se explica en la seccin 12-6.L a ventaja principal del cachg es su capacidad para reducir el tiempo de acceso promedio en los uniprmesadores. Cuando el procesador encuentra una palabra en cachd durante una operaci6n de lectura, i a memoria principal no participa en la kransferencia. Si la operaci6n es de escritura, existen dos procedimientos comunes para actualizar la memoria. En la poltica escritura simultbm, se actualizan las memorias tache y principal con cada operacidn de escritura. En la poltica escritura al refomo s61o se actualiza cachC y se marca la localidad para que pueda copiarse despus en la memoria principal. En un sistema multiprocesador de memoria compartida, todos los procesadores comparten una memoria comn, Adems, cada procesador puede tener una memoria local, parte de la cual o toda puede ser cachk. La radn obligatoria de tener cach separadas para cada procesador es reducir el tiempo de acceso promedio en cada uno de ellos, La misma infonnaci6n puede residir en varias copias en algunos cachd y en la memoria principal. Para asegurar h capacidad del sistema de ejecutar operaciones de memoria en forma correcta las copias mltiples deben de ser idnticas. Este requisito impone un problema de cokenck7 de cach. Un esquema de memoria es w h n t e si el valor que se retorna en la iristnicci6n de carga es siempre el valor proporcionado por la ltima instruccibn de almacenamiento con la misma direccin. Sin una soluci6n apropiada al problema de coherencia de cachk, puede utilizarse memoria cachk en multipmcesadores orientados a canal con dos o ms prwesadores.
Condiciones para incoherencia Los problemas de coherencia de cachk existen en los multiprbcesadores con
cach privadas por la necesidad de compartir dktos que se pueden escribir. Los datos de slo lectura pueden contestame de manera segura sin mecaniti

Memoria principal

Figura 13-12 Configuracin de cach6 despuCs de una carga X.

mos de irnpasicibn de coherencia de cache. Para mostrar el problema, consideremos l a configuracibn de tres procesadores con cach4 privadas que se muwtra en la figura 13-12. En algn m~mentodurante la ejecucin, un elemento X de la memoria principal se carga en l o st r e s procesadores, Pl, Pz y P3. Como consecuencia, tambien se copia en las cachd privadas de los tres procesadores. Por simplicidad, consideramos que X tiene el valor 52. Al cargar X en los tres procesadores da como resultado copias consistentes en las ca&4 y en la memoria principal. Si uno de los procesadores ejecuta un almacenamiento a X, las copias de X en las cach w vuelven inconsistentes. Una carga por alguno de los otros procesadores no regresarii el valor mAs reciente. Dependiendo de la politica de actualizaci6n de memoria utilizada en el cach, la memoria principal puede tambin ser idconsistente en mlaci6n con el cach4. Esto se muestra en la figura 13-13.Un almacenamiento a X (del valor 120) dentro del cach del prmsador P1 actualiza la memoria al nuevo valor en una politica de n escritura simulthnea. Una politica de escritura simultAnea mantiene la consiskncia entre la memoria y el cachC de origen, pero los otros dos tache son inco~16istentesporque todava contienen d valor anterior. En una politica de escritura al retorno, la memoria principal no se actualiza en e l momento del almacenamiento. Las copias en las otras dos cach y en la memoria principal son inconsistentes. Eventualmente, se achraliza la memoria cuando los datos modificadas en e l cachg se copian a ella. Otra configuraci6n que puede producir problemas de consistencia es una actividad de acceso directo a memoria (DMA) junto con un 101) conectado al canal del sistema. En e l caso de entrada, d DMA puede modificar las localidades en la memoria principal que tambin residan en ca&& sin actualizar cach#. Durante una salida DMA, las localidades de memoria pueden leerse antes de que se actualicen del cacM cuando se usa una poltica de escritura al retorno. Puede superarse la incoherencia de memoria basada

Canal

a) con pollca de caclt de

slrnulthea

Canal

Figura 13-13 Confi uracidn de cach6 des u& e ento ~ X d i a n t e el pru>cesadiiiPi,w r . & y - n . ~ ~ ~ 4 & ~
,imar( m
,

bd
I

i#wd:'w&*.'tWb
8

flldldlnrim
I

'

e q E/S, al hacer que e l IOP participe en la solucin coherente del cach4 que & adopta en el sistew .8 ' .
' 4

de coherencia de cach Soluciones al Se han propuesto varios esquemas para resolver el problema de c o h e ~ c i a de cachb en muItiprocesadores de memoria compartida. Aqu analizamos algunos de estos esquemas brevemente Vae las referencias 3 y 10 para un anlisis ms detallado, Un esguema simple es no permitir cach privadas para cada pmesador y tener una memoria ca& compartida asociada con la memoria principal.

Cada acceso de datos se hace a la cacM compartida. Este mtodo no respeta el principio de cercana de la CPU al tache y aumenta e l tiempo de acceso a memoria promedio. Bn efecto, este esquema resuelve el problema witndolo.

coittrolador wiificndbrde

Por consideraciones de desempefio es deseable conectar una cach6 privada a cada procesados. Un esquema que se ha usado permite que sblo se almacenen en cachd datos no compartidos y de sblo lectura. Tales datos se Uaman apropUldos pava ea&. Los datos wmpardidos que se pueden escribir no son adecuados para cach. E i compilador. debe sehlar los datos como adecuados o no para cachh y la circuitera del sistema asegura que 4 1 0 se almacenen en las cachk datas adecuados. Los datos no adecuados permanecen en la memoria principal. Este m6todo restringe el tipo de datos almace nados en cachfi e introduce una sobrecarga de programacibn extra que puede degradar e l desempeio. Un esquema que permite que existan datos que se pueden escribir en, al menos, una cach es un mtodo que emplea una tabla global centralizada en su compilador. El estado de los bloques de memoria se almacena en Ia tabla global central. Cada bloque se identifica como de slo lectura (RO) o de lectura y escritura (RW). Todas las tache pueden tener copias de los bloques identificados como RO. S610 una cachk pude tener una copia de un bloque RW. Por lo tanto, si se actualiian las datos en cadi6 con un bloque RW, no se afecta a las otras cach porque no tienen una copia de este bloque. El problema de coherencia de cach6 puede resolverse mediante una c9mbimaci6n de programacidn y circuitera o 9610 mediante esquemas de circuiterla. h dos rnfdos mencionados antes, utilizan procedimientos basados en programaci6n que requieren la capacidad de sealar infomaci5n para deshabilitar el almacenamiento en cach de los datos compartidos que se pueden escribir. Las soluciones s610 de circuiterla las manqa aubdticamente la circuitefh y tienen h ventaja de una mayor velocidad y transparencia del programa. En L solucibn de circuitera, e1 controlador de cachg est disefiado especialmente para permitirle rnonitorear todas las solicitudes de canal por parte de la CPU y los IOP. Todas las cachd conectadas al canal monitomn constantemente la red en busca de posibles operaciones de escritura. Dependiendo del mtodo usado, deben depues actualizar o invalidar sus propias copias de =he cuando s e deteda una coincidencia. El controlador de canal que monitorea esta accin se denomina controlador ver@ador S () de wchk. Esta es basicamente una unidad de circuito diseiiada para mantener un mecanismoFde verificaci6n de canal robre todas las tache conectadas a 41. Se han propuesto varios esquemas para resolver el problema de coher e de tache medinte m protocolo verificador de cach6. El mtodo mZis simple es adoptar una poltica de ~ r i t u r a simulhea y usar el procedimiento siguiente. Tdos los controladores veriffcadores vigilan el c m 1 en busca de operacion- de almacenamiento. Cuando se actualiza una palabra en cachg al escribirla, la localidad correspondiente en l a memoria principal E

actualiza tarnbih Los controladores verificadores locales en todas las otras cach comprueban su memoria para deteminar s i tienen una copia de la palabra sobre la que s e ha d t o . S i existe una copia remota en un cacM, se mxca la laralidad como hv4lida. Debido a que todas las cach4 verifican todas las escrituras de canal, cadh vez que se eccribe una paiabra, e l efecto neto es actualizarla en la cach6 o r i w y en la memoria principal y quitarla de las otras cach4. Si ,ena l g h momento f u b un procesador accesa el dato inviilido de su cach, la respuesta es equivalente a una falIa de cachk, y e l dato actualizado se transfiere de la memoria principal. D e esta m e r a , se evitan las versiones inconsistentes.

Analice la d i f e r d a entre los multiprocesadorescon memoria distribuida y los de memoriacompartida del punto de vista de organizacinde circuitera y M c a s de programacin. 13-2. Cul es el prop6sito del controlador de canal de sistema que se muestra en la figura 13-2'1 Explique como puede disehrse el sistema para distinguir entre las refermcias a memaria local y las referencias a memoria compartida

13-1.

eomcui.

13-3.

Cuntospuntos de conmutador hay en unmi red de conmutador de barra de cniz que wnectan p pmmadores a m mdulos de memoria?

La red de conmutacidn omega 8 X 8 de la figura 138 tiene tres etapas con cuaim conmutadores en cada etapa, para un total de 12 conmutadores. ~Cuhtas etapas y mutadores por etapa se necesitan en una red de comutaci6n omega TI X tr? a linea entre el conmutador en el primer renglbn, 13-5, Supongamos que se rompe l segunda columna y d conmutador en el segundo renglbn, tercera columna en la red de conmutau6n omega de la figura 13-8.Cules trayectorias se descon~iui? 13-6, C o h y a un diagrama para una red de conmutaci6n omega 4 X 4. Muestre las especificaciones de conmutador requeridas para conectar la enbada 3 a la salida 1. i una red de interconexin 13-7. Se usan tres tipos de conmutadores para d de etapas rnWipJm un conmutador de hbcambio con dw entradas y dos salidas como en la figura 13.6, un conmutador de arbitraje con dos entradas y una salida y uneonmutado~ de distribucincon una entrada y dos didas. aM u e s t r e &o operan los eonmuhdores de arbiiraje y distribuci61~ b . Utilizando conmutadores de arbitraje e intercambio, comtniya una red 8 x 4 con UM trayectoria n i o entre cualquier fuente y cualquier destino. c . Utiihndo conmutadoma de distribucin e intercambii, consiruya una red 4 X 8 con una trayectoria nica entre cualquier fuente y cualquier dcstino.
134.

Dibuje un diagrama que mue6tre la eshuctura de una red de hipercubo de cuatro dimensiones, Liste todas las txay-rias disponibles del nodo 7 al nodo 9 que utiaen la n@au cantidad de nodos intermedios. 13-9~ Dibuje I IJ L diagrama 16gim utihndo compuerbs y fiip-flopsque muestren el circuito & etapa de rbitro de ,canal en el esquema de arbitraje de cadena de margaritas de la figura 13-10. U-10, Al principio, el canal controlado por k 16giea de arbitraje paralelo que se muestra m la 'figura 13-11 asta inactivo. Despub, los dispositivos 2 y 3 . solicitan el canal al mismo tiempo. Especifique los valor- binarios de entrada y salida en e l aodificador y dekodificador y determine cual rbitro
de canal se reconoce.

l3-8.

13-11. Mueshe e6mo puede modificarse la lgica de arbitraje e la figura 13-10 para proporcionar un procedimiento de arbitraje de cadena de margaritas circular. Explique c6mo se determina la prioridad una vez que se deshabilita la lnea de canal. 13-12 Considere una bpologfa de canal en la cuai dos procesadores se comunican a travs de un amplador en la memoria compartida. Cuando un procesador desea comunicarse con el otro, pone la infomacibn en el acoplador de memoria y activa una bandera. Peri6dkammte,.el otra procesador eomprue ba las banderas p a determinar si tiene informacin por recibir. Quepuede hacerse para asegurar la sinmnizacibn apropiada y minimizar e l tiempo entre el envio y la recepci6n de la inforrnaci6n? a) exclu13-13. k r i b a la siguiente terminologa asociada con rnultip-dores: sin mutua; b) d 6 n crtica; c) seguro de cimritela; d) semforo; e) instrucd6n probar y activar. 13-14. Quees coherencia de cach y por qu es importante en sistemas de muItiprocesadore de memoria compartda?Cmo puede resolverse el problema con un controlador verificador & cach?

1 . Dasgupta, S . , Computer Arehitmture: A M o d m S y n t h i s , Vol. 2 Nueva York John Wifey, 1989. 2. Megama, A. L, Paralkl pForiessing ArChitecture Md VLSI f i r d m . Englewd C i i f s ,NJ: P~entice Hall, 1989. 3. Dubois M.C., Scheurich, E A. Biiggs, "Cynchronization,Coherente and Event Ordering h . M u l t i p ~ r s "IEEE . C~mpte~, Vol. 2 1 ,No.2 (Febrero1 9 8 8 ) , pp 9-21.

5. Gorsiine, G.W,Computer Organiurrio~: HardzwireffopWIlre, 2a. d . E n g l e w d Cliffs,

NJ:Prentice Hall, i 9 % . 6. Hays,L F./Conrpukr Architechrre Otprbtim, 2a. e d . Nueva York McGraw-Hi, 1988.

Referencias

553

7. Hwang, K , , y F. A. B * , Camputer Archtecture and Parallel Pro~essing. Nueva York M&raw-Hili, 1984. 8. Kain, R . ,Cmptlkr Architechrre: % * r e and Hardware, Vol. 2 Engiewood'C~iffs, N: Prentice Haii, 1989. 9. Langhoh, G . ,J. Franaoni,y A. Kmdel, Elem@nfs OfCoquter OrganUntimi.bglewood Cliffs, N:Prentice Hall, 1989. 1 0 . Stenstrom. P . , "A survey of Cache Coherenee Schemes for Multipc#sorsf'. 1EEE C-t, Vol. 23, No. 6 (Junio lW], pp. 12-24. 1 1 . Stone, H .S,Higk-Pe@minnce Cmputer Architecttire. 2a. ed. Reading ELA: AddisanWesley, 1990. 1 2 . Tabak, D . , M u l t i p r w w m . EngIewd Cliffs, NJ:Prentiee Hall, 1990.

i e

,,nim-* id r * - 4 P P w r t ) l i i f
b't

M.

A
AC (Acumulador}, 134

algonbm de suma:
complemento a 2 con signo, 84, 361-62 magllitud mll signo, 3574) niinieewi decimales, 3 8 7 ,S 9 7 punto flotante, 382-84 aiiieadn del dividendo, 386 almaamar, 156 dh impedancia 106 ALU {Arithmetic L.ogic Unit, ver unidad d W c a lbgica), 124-26, S!XO

+*b M

acarreo, 21, 81 acarreo de entrada, 114 acarreo final 81 accesa directo a la memoria, 4452% controlador, 4 4 4 4
tmnsiermch, 448-50

aooplador de tres estados, 106 divamiento selectivo, 118 aevar, 24 activar el bit, 267 acumulador Registro, 13639
d k o dei, 173-75

apuntador de la pila, 262 apuntador, a03


AR ( A d d m Regiier, ver -gis-

m 5-6

de

a~umuiador,134 eigebra b o o k , 7 1 1
dgoritmo arimeo, 356 aigoribm de M, 26649 algmilmo de cimiterla, 356-57

direcch) arbitraje, ! S 7 arbitraje de canal, 539-43 arbiiraje dinmico, 542 arbitraje entre m , rbol b i d , 534

537

aigorib, 3 % algoritmos de arbitraje, 542 algoribnos de la divisi6n: magnitud can signo, 372-75 * o con n?stakI&iento,377 mido de aimparacidn, 371 mbtodo sin restablmvnienb, 377 nmeros decimales, 3991100 punta flotante, 386-87 dgoribnos de la multipli6n: algoritmo de Booth, 3 & 9 complementa a 2 con sigrio, implanta0611por programacibn
(mhre), m magnitud con signo, 36365 niimerr>s decbmk, W-94 punto flotante, 384-86

arimca de La computadora, 355 wiirdti~a ddmai, 394-400

divisibn, 3 9 9 4 0 muitiplii6n, 397-99 suma y resta, 395 arquitectura de la mmputadora, 4 arquikhwa paralola a r i M m , 32g30 arquitectura paralela para instmcciones, 33136 arquibpchua paralela para punta flotante, 32830 aquiiechira paraiela, 322-27 arihnelica, 328-30 en RISC, 33741 inshdbn, 33136 arquitectura, 4 arreglo de p m d o r e s , 349 arreglo de p m d o m conectado,

algwitrnos de la resta: c o m p h t o a 2 m signo, 94,36142 magnihid ain signo, 35741 nIunerrrp d h a l e s , 391-98 nhwmi sin signo, 81 punto flotante, 38244 algoriimcs de reemplazamiento, W 1 1

34950
intemnectado, 349-50 SIMD, 350S1 l o multiplidor, 369-7l Asen, TB9,194,409-11 autod-b, 27 autohmmento, 278

d s h n o , 538

d, 954 CAR (Control A d b s Regi~ter,ver


bandera de entrada, 14u bandera de salida, 161 bandera, 160, 469 baee de un n&nemI 72 8CD (ver decimal mdicado en b i o ) ,
bmrio, 1 bit de a l b i 425 bit de estado cero, 291 bit de estada de drefiujo, 8 1 M t de estado dei signo, 291 bit de inicio, 424 bit de paridad, 92 bit del atado de acarreaI 291 bit vlido, 504 bit, 1 bits de bandera, 291 bits de estado, 250, 291 blaque, 5W borra& .sfnmrn# 61 ,bo,rrarel bit, 287 borrar, 24,120 b u k de prediccin, 515 registro de control de d i d o n e s )
d d e r DLE (Data Link Escape, m p e de enlace de datos), 468 wcier SYN, 464 de m n h l de municaci6n,

k k e w RISC L 3WJliI

77-8,

~~

*te,

.63

u, 43,481-82
c a d a de mqpritise mtatoria, 5ba cadena de ntargariiw, 437, 540 CA?d(Contrrnt Addmsable Memory: ver m m d direcxionable por

campo de wwntarios, 189 m p a de d'irefain, 2 3 9 w p o de la 9qu&, 499 campo de modo, 2777; 2% canal, 104, S37 m i ~ ~ f p de, nI W de k a c~mputadoraMBica. 13-39 entrada/tAida, 412-33 mema* 48e3 canal a~indmim, 538 carral corndn, l W , 1 3 7 - 4 0 , ~ sanal de dabe 44749 d de d i e b n , 44749 canal de 1/O, 951 -1 de memoria, 414, 4-85 canal de timp compartido, 527-29 canal de tres esiadm, 1 W canal del sidana, 529,53739 canal dobk 52960 dIBM, w-57 canal l d t s P 3 0

464 del registra, 59 carga diferida, 335, 339-40 carga paralela, 57 cargador de la i n i ~ ~ 6 481 n , cid0 de instniociones, 148,331-33 ddo de instrudones de la computadera, 148 ciclo de inietrupcin, 163-65,4414 cido de memoria, 147 cido de reloj, 145,325 &te magntica, 409,489 cinta, 409,489 ciicuikrla de la computadora, 1 drniiterla, 23,183 .aimiit~ antmetie~, 112-15 h i t o combmatorio, 19 adiisis, 20 diseo del, 20 circuito de coctriminto combinatorio, 125 circuito integrado, 4345 &niiio M ~ o D ,117 drniib secumcial cronometrado, 23 Eimiito s e e r i d , 29 diselio del, 34-38 circuitos integrados digihles, 43 cIsc (Compiex btructim Set q~ombter, ver computadota can CMCS, 4 5 d a d o r de pdoridad, Wl codificador, 49 &digo ~ u m r i c o 7492,409 , oddigo autrrc~mplementank,Pi ' d i g o de caracteres, 78 &digo de condiCiSn, 291 cddigo de detecci6n de emir, 92 d i g o de exrrw-3, 91-2 &ligo de Eray, 90 &digo de insurriones, 131, 140 &ligo de aperacibn, 132, 270 &digo hexadecimai, 141, 187 obdigo ponderado, 91 ci6digm billar&, 77, 89 alfanum8h, 78 ASCU,78 BCD, 77-76 de ~ X O ~ S O3, , 91-92 deteccin de error, 92 Gray, 8940 abdigos decimales, 90 c o h c i a de c&, 54750 comando de control, 413 comando de estado, 413

, 413, 452

comparador de magnitud, 358 ownpiledor, 2QO q w i p e 3!B-!3 mpJemento a 2 con signo, 83 mbrefl*, a corhpl~to del bit 287 ~ ~8elPbiv0, 119 t o wnplementq 11, 78-81 m t am , 81 mmpuertaAN0,M compuerta de acoplamiento, 54,106 -puerta h a ,

d i & del, 3Ma cwitrni de carga, 53,137 control de memoria, 225-26, 244 mbl por cimitera, 14% 22a
cwrimiento mitmiico, 121-22,288,369 aobrenuio, 1 2 2 cm-dmhto cimjar,209 wnimienb lgico de memoria &tribuida, 121, 288 dmiento, m 2 2 a, 3, CRC (Cydic RPdundarq Chedr. ver veriacih de redundancia ddica), 462 euadroaep8gina,5W cuadros adyacentes. 13

-puerta NAm, 5 6 , 9 , 1 7 compuerta MOR 56, 9,17

compuerta 05 5 6 mpwrtae 16gic%s de control, 1 7 U oompuarl&SI o g i w ,4 EQmperh4 4r computadora bsica, 131 4 comn, 137-33 ciclo de instru@=iones, 148, la, 267
cpnk~l, 144-48

diagrama de flujo, 1 6 7 di& de la, 168-76


enbada/miii 1 -

* ,

148 ~ ~ o n e144343,18445 e , intemipci6n, 162-65

decimal codicado en b M o , 77, M 1 declaracionms de hnsfemncia del registro, I M a r i d h s , 108-9 mnhi condicional, 102
corrimieiito?l a

e-, 137-168

resumen tabular, 169 aimpuiadora con conjunto reducido de instnia, m a r q u i w a paralela, 336-40 E Q T ~ S 302~ , insbywlmes, 274-75, 30607 computadora 4e wnjunto mmpiejo de inshiCFi0nes (CISC), MM2 computadora digitai, 1 comunicacih aslnarina, 525-27 comunid6ai de &tos, 461 e~municaein enire procesadoms, 543 c~munkaci6n A a I , 460 corlu5sISri e d, 4 4 6 condici6n sin importancia, 17
wnditiom de transferencia, 293 d c t o de r e c u w , 334 conflictos en Iio q u i k t u r a paralela, ~XI mnjunto de datos, 461
~onmutadcy de arbitraje, S51 ~pnmutadorde barras d a s , 53133 ~onmutador de intercambio, 533 ommutador distribuido, 551 m u l t a de la tabla, 197 contqdor Kmario, 5961 con Earga paraieia, 6142 del d34-38 contad01

M i p t o r del , 51&19 d d p @ r , 51&19 d e t d 6 n de cero, 292 ~ de i error, ~ 198 . d'igrill~ de bloques, 19 *ama de a p d o tiempo, 32526 diagrama de estado, KM4 diagrama de flujo para la computadora bhiea, 1 8 diagrama, de hporizadbn, 27,418 diagrama lgico, 7 digid 1 dkccin de memoria, 63,138 d i n de W o , 157 4d&n de vwtores, 438 d i directa, 134-35, 278 dimcibai efecava, 134,278 d k c i 6 n Wca, 513 d M 4 r r piapeo, 507 d W 6 n hbblica, 189 d M 6 n virtual, 506 d k c i h , 63,138 dkionarniento indexado, 279 direceinam&to indirecio, M,246,

I b g k , IIM7 daodifimdor, 95-46 d-t; 115 dependencia de l a datos,

localiizaeidn, 1%

contador del progtama, 13KW contada d a l , 364 crmiador, 5961

d i flexible, 489 di& magnlsticD, 809.489

278 t j i d o n a p k t t o relativo, 278

disoo, 409,489
disea de m i m i , 170-74,24445 divno la computadora bsia, 1 W 6 diseo e la computadora, 4, 168-76 d i s p o s i t i v o ,4118

familias de c i ~ i t lgica, a 44 familias lgicar digitak, 44


fase de btkqueda y carga, 14849, 166, 239 b de decodificaci6n, 148, 239 fase de ejecud6n, 148,241

dividendo, 372 divisor, 372 DMA @irrct Memoxy A , mke acceso d i a la memoria) doble precisibn, 20T DR (Pata Register, registro de da-) dfiplex (doble) completa, 463

FIFO (Fimt-In First-Out, &se primero en


entrar, primero en salir), 428511

fiip iop#
amwsclavo, 28

borrado ashmono, 28 C.J., 27


disparado por flanco, 26 funrin de entrada, 30 tabla de d t a c i h , 28 tipos de, 2%2 flip flap ~ k v o28 , flip fiop D ,25

EKDIC (Extended BCD Interchange Codel. 92 ECL (Erni&~ou~led Logic, Ibgia de emisor acoplado), 45 ecuaci6n de entrada, 30 EEPROM (Eleckically Erasable PROM), 67 ejecucih de un solo ciclo, 337 en &a, 408 encuesta, 4 3 6 ,! x 2 enlam de datos, 463 enlace de parmeiro, 213

d l a d o r , 191, 195-200 entrada de carga 13739


enhda d i i i c a , 24-25 pntrada seriai, S6 entradddida, 160-63,407

lIip flop disparado por flanco, 26 flip flap SR, 24 flip flop T . 26 flops, 348 flujo de datos, 321 flujo de instrucciones, 321 finmata de las insbuccirinea, 270,344 formato de 4 6 5 FOMlUN ( W h u l a TRANslatar), 188-89. fumi6n h i e a n a , 7 krnci6n de conhol, 102 funcibn Impar, 7, 93

me,

canal, 415 451


dispositivos, 47-09 inshcches, 16162 inierface, 411-13
progxadbn, 214 transferencia, 418-25 entradas de seiedn, 50 borrado selectivo, 119 en~amniento de memoria, 346 WROM (haaabk PROM), 67 equivaleda, 6 d t u r a a la memoria, 604,108 d h u a a travs, 503
M h i r a al retorno, eKrikua, M ,1 W L

generador de paridad, W9S

habilitar entrada, 47 HDLC (FEgh-leve4 Data Link ConW, conh1 de enlace de datos de alto nivel), 4 6 9 hipemibo, 53536

503

espacio de direccbnamiento, 505 wpasio de memoria, 505 estado p-te, 2431


etiqueta, 189, 238 d u s i n mutua, 545

polarizado, 380 exponrnk 88, 37a expresih booleaM, 8


*te

entrada salida) I/O &lada, 414 I/O iniciada por inkrru@n, 434 I/O m a m o en memoria, 41516 110 programada, 93034 I C htegrated Cdt, circuito integrado) impresora, 408 Finario, 111-12 inmmentador, 111-12 incmnenbo, 6 1 , 110, 115

I/O(input-Output, &se

M 6 n de m ' 469 insimc&n de ~ e r o direcciones, 274


insbwin de dm direcciones, 273
Instmccib de tres d i d o n e s , 273 inslrudbn de una direccibn, 274

insku&6n Move, Zn ihstruccioneb arikdcas, a85-87 insbYnciones de control'del programa,

L C (Load Control, t x k control de carga)


lectura de la memoria) 65, 108 k r a , o46,lM hguaje de mquina, 184% lenguaje de trmfemcia del registro, 1 W emhlas WICO~, 103

lazo del programa, 200

m 1
instrucciones e corrimiito, 395-97 instrueeiwies de I/O, 161 h i r u & m de ia mmputadora, 14041,185 inrihccimei de la pila, 27475 ins-dedpdacihdeblbc,;186.8i9 inetrucciom de manipuIsci&n de da&,
284.89

lenguaje ensamblador, 169-192 h g u a j a de progrmadn, 186

i n a w m de referemia a la memoda) 154-59


inrih u i m e s

de referencia a los pesistms,

15%3

instrdones de transferencia de control,


instmccheei de transferencia de datos,

m, 335-36
2 8 3 8 5

h t e l # 5 9 IQP,458 interblqueo por circuiterla, 3 3 3 inkcunain de l a -dores, 52736 interface de comunicacin en serie, 160
interface de I/O, 411-14 inberfaceI 412,416 inkmpcin del programa, 16365,217, 297 interrupcin externa, 299 interrupih interna, 299 hberrupeich por p rama, 2 in-pcih U< inbemipfibn IW,299,43542

insh-ud~n& igicas, 281939 ins&udones, 14142, 185 integraEi6n a g r a n -da, 44 inkgabbn a mediana -la, 44 inkgrzda a ppquea -la, 44

entrar, primero en d i ) l l m i k de h pa, 266 llamada a la subruha, 158, 2 1 1 , 295 llamada a subnitina, 211 lwalidad de rrkmck, 4% lgica de arbitraje paralela, 54143 Iogica de. coinddena'a, 492 -1 de &r acopbdo, 4 5 lgica e entrada, 24-49 i g k de prioridad, 4 3 9 16gics de trahsterenba, 231 1Sgk transistor-tramistor, 44-85 LRC (Longitudinal Redundancy Check),
462

m (laist7h FmtOut, *iiltimo en

LRU G a s t Recently U d ,&se merm


dentemente usado), 511, 543 LRU (uso d e n t e * )
LSI (brg&
Integration), 44

t o a

prioridad de, 4 % tipos .de,2%3m vectoriaI, 434 X O P (laput-output Prmsmr, aease procesadar de entrada salida) IR ( r d o n Register, *se registro de
i n s M )

palabra de moria), magnitud, W magnitud m s e , 83 martejo de la memwia, 511-15 manipulde c a r a c h s , 215 mantisa, 8 8 . 3 7 8 mapa de dkccione8 de memoria, 483-84, 486 mapm asociativo de conjunto, m m a p asociativo, 498 mapa directo, 4 9 9 rnapeo, 229, al, 497 matriz de la memoria, 34446 meanismo de =guro, 546
(Memory Wod, &se
memoria:

fK j ~1, p

erarqta de la memoria, 477 flip-flop, 25

a h t i v a , 489-95 auxiliar, 48649

m, asd

CJ,al-82
a & , 49MM de aieatorio, 64,# de lectura solamente, 65,483 dipeeEionable por contenido, 490

Karnaugh, mapa de, 12

r c ,m, w

tiempo de w, 497 virtual, 504 memoria asociativa, 4 8 9


d t u r a a travs, 503 d h l ~d a -0,503 organizacin de circuitera, 490-95
m m o r i a& , 4764memoria de aczew aieatorio, 6 4 5 , m&da de slo lectura, #Yp 481 programacin de, 6 7 tabla de verdad, 66 i i p de, 6 7 memoria d d o n a b l e p r a l e n i d o , 4 9 memoria ditY~hida, 527
memoria en-da,

modo inmediato, 134, 277 modo rrgistro, 277 modos de dkmcionarniento, 2 h


a u ~ ~ e n t ZTB o , M, 13435, 278

memoria audiar, 477,-

3 4 6

memwia rnulkuerto. 530

memoria

&,m

memoria virhial, 504 *-MptaClora, 5% -6n, 226 hbinariir,293-44 forma BimWlia, 238-42
brmabs,

implfato, 277 inddo, indirecto por registm, 277 idreato, 13435,278 inndlaio, 134-277 mgisi~o base, 280 registro, 277 relativo, m mdwi de transferencia, 430-31 d u l o de la memoria, 530 monitof, 4 8 m o n i t o r de video, 408 MOJ (Metal-Oxide Cemimnductor, &se metalddo), 44.45 MSI (MediumScale Integration), 44 hultiplexor, m 2 , 104 multiplimcibn matricial, 344

mi-acih AND, 116-17 s h h l o especiai, 116 4 6 1 1 de &tura, 109 mimqeracibn de lectura, 108 dmwperaci6n de mta, 109-11

miampxeci6n de suma, 1W10 mimmpracin OR, lV-18 simbolo espciai, 115-16 micrmperacin, 99,1W9,236.260-61 a r i W a I 1W-10 commiento, I D 2 3 writura, 108 lectura, 108
A

multiplicador, 953 multiplicando, 363 muloprwwdor, 525 arbitraje, 53743 cwmnimi6n, 593 inhmmxin, 527-36 simmhddm, w 7 m u l a p w d o r de memoria compartida,
527

mriltiprogramacibn, 480 MUX (* rnultiplmr)

16@, 115-17 hderencia del registro, 109 d~~~)peracioneg aritdticas, l-10

nriaooper~ de mmhiento, 120 implanbcih en circuitera, 122-23 mhmperacione @cap, 115-17 implairtiicih en cimiiterla, 117 lista de, 11617

m i c m p d o r , 526 mhprpgrama simblico, 240


b i i o , 24M.4

control de, 2 4 3 4

ejemplo:
m , -m i

SlmMlim, ZYWu

2464.8

dinmica, 226 MiMD (Muitiple Inslmcon Stffam, Mdtiple Data 1 -, 321,' 525 mifiuendo, 360
madera, 461

n a b e binario, 535 NQR dwivo, 5 4 nomialiaacibn, 89, m 7 9 nota* infja, 267 notacin piaca inversa, 2#69 ' expteiones ariimti~as,26949 mrhEi$n Fiara, 267 n h e m binarics, 2 , 72 n h e m Qon signo, 83 n m m decimales, 72,8647 nhmon 72-74 &cado en forma b i 75 conversih S binario 74 niimeros & , R-76 codificado en forma binaria, 74-75 c o n d n a binario, 74 nilmema ain s & m , 81
resta de, 8142

moda de supenimr, 298 modo Impldcito, 277

m o d o ~ p r r e g i s ~ , m

operacidn de enmascarar, 119-20 o p m i o r m de corrimiento, 206 optadones de la pila, 269


operasio~ies 16gioe6,

operadmyu vecboaiah, 393


ecluslvo, 6, 117 DRG (origen, p ~ e u d o i n s ~ 6 n190, ), 2 3 9 organW6n de canal, m 5 8 organbd6n de la mquiadora. 3 orgmhcibn de la memoria, 477 organizacih de la pila, 26144

OR

de programa almacenado, 133 orgdmcim general de Ios registros,


orgmhci6ii
-- -

tPmtabo de mensaje, 467,468 orientado a bib, 468.471 orientado a wacks, W praorientado a bita, & % % proorientado a faracteres, 4 6 . 3

pwmmcibn de la computadora, 2,1# PIlOM @-ble md4y 66 proporcin de acelerdn, 325-26 pnikdn de la memoria, 518 prok&n, S18 prode comunicacibn de dabas, 463 * ? l o # 465-68

protwaio, 46? prueba y activamiento, W pe&, 416 pwrto de X/O, 436 p u h de control de habilikibn, 418 punto bi-no, 82 punb fijo, 82 m t a c i b n binaria, M r e p m m t d h decimal, 86-87 punto Rotante, 8, 37781 normalizaabn, 88, 378, 382 operaciones aritmticas, 38247

Pgginao -fa de control, 226, 257-59 palabra de memoriaf 6 3 ,1 M palabra del -estado del programa, 297 palabra, paquete, 527 p a r h t m s de la subniha, 211 paeo del mensaje, 527 PC (Brograrn Counk, contador del programa) perif&im, 408 peticin de canal, 495-46 petiQdn de intemipci6n, 447 pila de memoria826466 pila de registro, 26244 pib, 261 pie&, 488 primero en entrar, primero en salir,
428-3a prioridad de intmupciwia, 9 3 5 4 cadena de margaritas, 43738 en paralelo, 439-40 nitinas de programaci6n, 4 4 2 4 procesador aritmtim, 355 profesador de entrada/ealida, 850-% o t paralelo, 319 proopsarniento vectoriaI, 342 m en arquitectura paralela, 319 praducto de sumas, 15 produao interno, 344 producto p a d 363,365 prodiicbo, 363

ralz, 72 RAM, 63,48041 -0 de intermpabn, 439 mmwhknto mutuo, 41% 42-23 m p e r a c i n desde la pa, 263 red de computadoras, 525

=d-wredes de mnmutacih multietap, 53235 reemplazo de pgina, 510


regish h 280
regktro con carga paralela, 54 regisir0 de control de dkdonamienb,

p p m a de inknipdbn, Zl7-19 p-ama de la subrutina, 210 programa de multipc~cin, Z4-W programa de srewkio, 442 pmgema fuente, 1%'

m, 229 regbb de c o m i m i ~ t o bidireccii 5 w&tm de corrimiento, 55 q i s t f o de cuenta de palabras, 447 regi8im de datas, 137-39 regiihu de dkdonamienbo, 137-39 registro de direoei~narniento~ 271 negislro de esiado, 632 q i s h de instrucciones, 137 mghtro dein pci611,U
, i , de l i x h a , . 2 3 3

programa simb6lii, 185 1 183 PW(aoham), Z8 183,435,442

Wo b i e h ,1 1 9 4

registro intermedio @&r) del de la trohgfer+h. 336

registro de < *

4 4 0
~ V O

registm, 59, 101 r e g i s h de la wmputadwa b & q 136, 168

regr i e

d e la mputadora, 136
~

mhj, a, 27,102 Mimiento M i ,319 repwha;ein de data,


~ u o3 7 ,2 p

&&mica, ~ &

512

repraenbcih k i m a i , 86 tesiduo parcial, 372 resta deehd, 392-W


re~hdm BCD, 392.94

kstadm, 11Gl1 retorno de la subrutina, 211, 295% mbmo desde 1a subruna, 296 rirsc W k e d lbtniction Cet Computer,
&&puladora cim donjunio reducido de ihstcu+ones), 3oM14 arquifWuh paraleIa, 33742 insWoftw, 27475, 1 0 r o b de ciclo, 4 4 6 m65, w, 24% 483 RPN W P o l i s h Notaon, x&ae

sistema d i i g i t a l ,1 sistema numrico, ?Z &tema opxdivo, 4 7 9 , 519, !i44 sobreflujo de la divisi6n, 374 &flujo de la suma, 358 flujo, 856,122 software de I/O, 434, 44142 soporte del mmpiIador, 338 SP (Stack PoinW, viIwse apuntador de la piu SS1 (SmalIsfale integratiun), 44 stlbptina, 209, 296-97 ~ubmbreflujo, 379-80 subebendo, 3
suma de productos, 15

nitina d i @%vicio, 218 tutina, 228

ruteo del meiisaje, 536

suma de irminos mnimos (miniMiminos), 12 sumador BCD, 389-92 sumador binario en paralelo, 110-11 sumador binario, 11041 sumador completo, 21-23, 110 sumador decirmi, 389-92 sumador en paralelo, 358-99 surnador m t a d o r , 111 sumador y circuito 16gic0, 139, 176

sumador, 110
sumando, 360 supenrnnputadora, 347 salvar en la pa, 2 6 1 4 S a E ,469
Emi6n*595

a , 488

~ecuaciaeidtl & direccionamiento, 228 w e n c i a d w 227,24649

m=penbo, 324-25, 512 rci por circuiterla,

546

ec8firil, lM-06 se1dbn de integrado, 482 sdecta~' .dedatw, S1 lmAfa10,5& semlconducior de meial-6xid0, 45 mid*lex, 4 @

%h,

tabla taracteristia, 24-26 tabla de estado, 31-32 tabla de dtaci6n, 28,35 tabla de pginas de la memoria, 507-14 bbla de pginas, 509

tabla de sfmbolm de ditabla de simboloe, 193 tabll de verdad, 5, 7, 11

193

tambor,487
tambor magn&iw, 49 tarea, 325 tasa de acierto, W
klado, 408

semisumador, 21 seal Mnaria, 4 &iaI de awrtrd, 145147 seRa1. de t i , 145-147 seal digital, 4 , 23 BefiilL 4
dguknt estado, 24,3132

d m h h flcos, 24-25 SIMD @M& istruction S , Multiple Data Stream), 3 2 1 , 349-50 simpla, 462 s w f i c a S 6 n pbr mapa, 11-19 h a o n h c i h (entre procesadores. 595
s i m r d z u c i h , 545

SED (Singie htruction Stream, Sin* Data S , ) 321 sistema de memoria compartida, W-29

tempodmdn y cantml, 144 teorema de DeMorgan, M 1 Mrmima mnimos, 12 tiempo de el 4%' tiempo de acOvari6n, 27 tiempo de retenddn, 27 tiempo de segtnentacibn, 542 tiempo t*iriscurrido, 422 t i p de datas, 71, 286' TL3 (Tmnslatim Lmk-aside Buffer, uase bdfer de predicci6n), 515 irampa, 299 transterrncia, 156, 293 tradermda asIncrona, 414 423 transfemda d i c i o n a l , 231, 293

r t

trawhemia en bloque, 462 en tifaga, 4rE6 t r a n s f e d a entre registras, 101


transhmcia

kmskmwia de Fanal, 106 ran&ren& de h memoria, 108 i r ~ de1 fegis-, ~ a 1 M

unidad de conhl, 14448,ZM

unidad de pmeandento centrai, 255 unidad funcional mOltipk, 321, 327

pd&

54

tranafemia Mardeda, 336, W 1

m (Trdtor-Trnnsib Loglc, *se lb$ica transispw-~isbr),4445 mY #

bnsmisi&l s i m n a , 4 1 tranaparenda de daW 467

&m 424

v e W en bsiudios, 425 w n t a n a s de tradape de pegisko, 303-05 4cdh de dundancia dcca, 462 v d k b r de paridad, S 9 5 vematil'idad del -junto de h ~ o n e s 143.44 , W (Very-brg&cde hbegraiion), 44, 526

UART, 425
iiltimo en entrar, primero en d r , 281 unidad a r i b n k d&aL 387-94 unidad m i W c o I6gic. 124, 25840 unidad de coniml microprogramada,
226-27

100 OOC :uaiantes y resronales han aprendido los principios del diseio de iistemas digital,, j de la arqu..--tura de compuradoras con los textos de M. Morris M--. ercera edicibn de ArquHwtura de Computadoras, contina esta tradicin de amplia divulgacidn. La claridad de la presentacibn, el cuidadoso desarrollo de los principios bhsicos y la progresibn h-mi- +hcnicasavanzadas no decepcionaren a tos lecro. que esperan altos estandares de c 3 o r parte de Mano.
vies oe

:on una actualizacibn temhtica miriuciosa, la tercera etiicion conriene un 85% de material iuevo o revisado, incluso nuevos problemas en la mayor parte de los captulos. Los primero siete capltulos abarcan el material necesario para la comprensin de la organizacion y et diseo de computadoras, al igual que la programacibn de una computadora modelo, utilizando los componentes bhsiccls 1.0s seis tltimos captulos presentan la organizaciuri arquitectura de las unidades f u ~ c i i les inde dientes de la computadora digital, con nfasis en tos temas avanzados.

Caracterirt~cas de k tercera edici

Un nuevo capitulo sobre procesamieriiu ue vecror y ae conou


"

nuevo capilulo sobre Multiprocesadores

Dos nuevas secciones sobre arquitecturas RlSC


Problemas nuevos en casi todos los capitulos.
itios libros de M. Morris Mano editados tior Prsnticm Ha

miceo d@W,-segunda edicidn (1991) igenieria Coinputacionat ( 1988) Sgica digital y diseno de computador

You might also like