You are on page 1of 401

Estructura de

computadores y
perifricos
Estructura de
computadores y
perifricos
Rafael J. Martnez Dur,
Jos A. Boluda Grau,
Juan J. Prez Solano
Departamento de Informtica
Universitat de Valencia

Alfaomega A
yLr Ra-Ma
l Estmtnra de Computsdons y PerifMcos
O Rafael J. M h e z Dnr., Jos6 A. Boluda Gmu, Juan J. P6rw Solana

ISBN 847897-447-4. cdici6n urigind pubticada por RA-MA Editonil.


MADRID.Espil*. Dmcbos rc~cwPdosO RA-MA Editorial
MARCAS C0MERCMLE.S: RA-MA ha intenlado a lo largo de cite libro distinguir
las marcas rcpistrsdrpde loa tminos dcscri~tivos,simiendo el estilo de mavdscuks
que utiliza eifabncmte. sin intencin de iftingu lamarca y 8610 en benficio del
l propietario de la misma

Om 1 ALFAOMEGA GPUPO EDITOR, S.A. de C.V.


PitBgom 1139. Col. Del Valle, WlaO Mxico. D.F.

l Miembro de la Cdmara Nacional de la Induatna Editond Mexicana


Registro No. 2317

ISBN 970-15.0690-1

8 ZOOl ALFOMEGA S.A.


lhmv. 24 No. 40.44
Bogot, D.C.- Colombia
Email:
ISBN: 958482-3022
~Osiansridoa
Estaobraes propiedadintelectual de su autor y los derecbosde publicacidnenlengua
cspaula han sido legalmente transferidos al editor. Rohibida su tuproduccin par-
cial o total por cualquier medio sin W s a por eserito del propietnrio& los dne-
chos del copyright.

N<WLIMPORTANTE
La infomiaci6n coatenidaen esta obra tiene un 5exclusivamente didcticoY, wr lo
tanto. no est amisu, w aorovcchamicato anivcl umfesional o industrial. G i u d i -
caciolvs t6cGcis y p r o g r k incluidos. bm sidodiboradoa con &ran cuidado por
el autor Y nvroducidoii baio estrictas nomas de control. ALFAOMEOA GRUPO
E D ~ S.A. R de C.V. no jurdicamente responsable por: m o r e s u omisiones;
dafloa y perjuicios que pe pudieran atribuir al usa de h informacidncomprendida en
wte libw ni por la UtiliZBEi6n indebidn que pudiaa dfbsle.

Edici6n autorizada para venta en Mxico y todo el continente americano

-
Impmo en Colombia Rined In Colombh
.
PROLOGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi

.
CAPTULO 1 INTRODUCCI~NA LA ESTRUCTURA
DE COMPUTADORES . . . . . . . . . . . 1
1.1 Conceptos preliminares . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Arquitectura clsica de un computador: Modelo Von Neumann . 4
1.2.1 Unidad central de proceso . . . . . . . . . . . . . . . . 6
1.2.2 Memoria . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Entradalsalida . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4 Sistemas de interconexin: Buses . . . . . . . . . . . . 13
1.2.5 Perifricos . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Ejecucin de una instruccin . . . . . . . . . . . . . . . . . . . 15
1.3.1 El sistema operativo . . . . . . . . . . . . . . . . . . . 16
1.3.2 Lenguajes de alto nivel, ensamblador y cdigo mquina 16
1.3.3 Flujo de datos . . . . . . . . . . . . . . . . . . . . . . . 19
1.4 Tecnologa de computadores . . . . . . . . . . . . . . . . . . . 20
1.4.1 Tecnologas de circuitos integrados . . . . . . . . . . . 21
1.4.2 Circuitos de memoria . . . . . . . . . . . . . . . . . . . 24
1.5 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
.
CAPfTUL0 2 UNIDAD DE CONTROL: EJECUCION
DE INSTRUCCIONES . . . . . . . . . . . . 31
2.1 introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Repertorio de instrucciones . . . . . . . . . . . . . . . . . . . . 32
2.3 Modos de direccionamiento. . . . . . . . . . . . . . . . . . . . 37
2.4 Formato de instrucciones . . . . . . . . . . . . . . . . . . . . . 45
2.5 Arquitectura de un computador elemental . . . . . . . . . . . . 50
2.5.1 Esquema del computador elemental . . . . . . . . . . . 50
2.5.2 Operaciones wn registros . . . . . . . . . . . . . . . . 56
2.5.3 Instrucciones . . . . . . . . . . . . . . . . . . . . . . . 58
2.6 Ejecucin de las instrucciones . . . . . . . . . . . . . . . . . . 60
2.6.1 Cron~gramade ejecucin de la instruccin ADD #4 5 6 . 61
2.6.2 Ejecucin de la instrucci6n SW #456 . . . . . . . . . . 66
2.6.3 Ejecucin de la instrucci6n JMZ #4 5 6 . . . . . . . . . 67
2.7 Submtinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.8 Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.9 Diseo de la Unidad de Control . . . . . . . . . . . . . . . . . . 75
2.9.1 Unidad de control cableada . . . . . . . . . . . . . . . . 76
2.9.2 Unidad de control microprogramada . . . . . . . . . . . 77
2.10 Evolucin de los procesadores . . . . . . . . . . . . . . . . . . 83
2.10.1 Aumento de las prestaciones . . . . . . . . . . . . . . . 83
2.10.2 Evolucin de la arquitecturaintel iX86 ......... 85
2.10.3 Computadores RISC y CISC . . . . . . . . . . . . . . . 86
2.11 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.12 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.13 BibliograMa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

.
CAP~TULO3 UNIDAD A R I ~ T I C O
LGICA ... 95
3.1 Introducci6n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.2 Estructura y operaciones de la ALU . . . . . . . . . . . . . . . 97
3.3 Operaciones de desplazamiento . . . . . . . . . . . . . . . . . . 101
3.4 Operaciones lgicas . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5 Operaciones de cambio y extensin de signo . . . . . . . . . . . 104
3.6 Suma y resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.6.1 Sumador elemental binario . . . . . . . . . . . . . . . . 106
3.6.2 Sumadores wn acarreo adelantado . . . . . . . . . . . . 107
ORA-MA MCE
vii

3.6.3 Resta de nmeros enteros . . . . . . . . . . . . . . . . . 109


3.6.4 Sumadores en BCD . . . . . . . . . . . . . . . . . . . .110
3.7 Multiplicacin y divisin de nmeros enteros . . . . . . . . . . 111
3.7.1 Multiplicacin de nmeros enteros sin signo . . . . . . . 112
3.7.2 Multiplicacin de nmeros enteros en complemento a 2:
Algoritmo de Booth . . . . . . . . . . . . . . . . . . . 117
3.7.3 Divisin de nmeros enteros sin signo . . . . . . . . . . 119
3.8 Representacin de nmeros en coma flotante . . . . . . . . . . . 122
3.8.1 El estndar de precisin simple de IEEE . . . . . . . . . 122
3.8.2 Operaciones en coma flotante . . . . . . . . . . . . . . 124
3.9 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
3.10 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . .128

.DE MEMORIA . . . . . . .
CAP~TULO4 JERARQUA
4.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4.2 El principio de localidad . . . . . . . . . . . . . . . . . . . . . 132
4.3 Memoriacache . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.3.1 Mapeado directo . . . . . . . . . . . . . . . . . . . . .137
4.3.2 Mapeado asociativo por conjuntos . . . . . . . . . . . . 140
4.3.3 Mapeado totalmente asociativo . . . . . . . . . . . . . . 141
4.3.4 Algoritmos de reemplazo . . . . . . . . . . . . . . . . . 142
4.3.5 Manejo de los fallos en los accesos a la cache . . . . . . 142
4.3.6 Rendimiento de la cache . . . . . . . . . . . . . . . . . 144
4.3.7 Diseo del sistema de memoria . . . . . . . . . . . . . 146
4.4 Memoria virtual . . . . . . . . . . . . . . . . . . . . . . . . . .148
4.4.1 Mecanismo de traduccin de direcciones . . . . . . . . 149
4.4.2 Acceso a memoria . . . . . . . . . . . . . . . . . . . .152
4.4.3 Diseo del sistema de memoria virtual . . . . . . . . . . 153
4.4.4 Memoria segmentada . . . . . . . . . . . . . . . . . . . 154
4.5 Segmentacin paginada . . . . . . . . . . . . . . . . . . . . . . 156
4.6 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.7 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.8 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
ORA-MA fND1CE ix

7.3.1 La interfaz RS-232C . . . . . . . . . . . . . . . . . . . 218


7.3.2 El Bus Serie Universal (USB) . . . . . . . . . . . . . . 220
7.4 Interfaces paralelas . . . . . . . . . . . . . . . . . . . . . . . .226
7.4.1 La interfaz Centronics . . . . . . . . . . . . . . . . . . 226
7.4.2 El estndar IEEE 1284 . . . . . . . . . . . . . . . . . .228
7.4.3 Small Computer Systems Interface (SCSI) . . . . . . . . 228
7.5 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7.6 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236
7.7 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . .236

.
CAPTULO8 DISPOSITIVOS DE ENTRADA
DEDATOS . . . . . . . . . . . . . . . . 239
8.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.2 Interruptores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
8.2.1 El problema de los rebotes . . . . . . . . . . . . . . . . 241
8.3 Teclados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
8.4 Ratones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.5 Displays griificos interactivos . . . . . . . . . . . . . . . . . . . 250
8.5.1 Lpiz ptico . . . . . . . . . . . . . . . . . . . . . . .250
8.5.2 Pantallas sensibles al tacto . . . . . . . . . . . . . . . . 251
8.5.3 Tablem digitalizadoras . . . . . . . . . . . . . . . . . . 252
8.6 Digitalizadoresde imgenes (escners) . . . . . . . . . . . . . . 253
8.6.1 Funcionamiento . . . . . . . . . . . . . . . . . . . . . 254
8.6.2 Calidad del digitalizador . . . . . . . . . . . . . . . . . 255
8.7 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
8.8 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
8.9 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

.
CAPTULO9 DISPOSITIVOS DE COPIA IMPRESA 261
9.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
9.2 Clasificacin de las impresoras . . . . . . . . . . . . . . . . . .263
9.3 impresoras de matriz de puntos . . . . . . . . . . . . . . . . . . 264
9.4 Impresoras de transferencia directa . . . . . . . . . . . . . . . . 266
9.5 Impresoras lser . . . . . . . . . . . . . . . . . . . . . . . . . . 267
9.5.1 Operacin . . . . . . . . . . . . . . . . . . . . . . . . . 267
9.5.2 Impresora lser en color ................. 269
9.5.3 Lenguajes de descripcin de pdginas . . . . . . . . . . . 270
x eSTRUCTUR.4 DE COMPTADORBS Y P B ~ C O S ORA-MA

9.6 impresoras de inyeccin de tinta . . . . . . . . . . . . . . . . . 272


9.7 ......................
impresoras de burbujas 274
9.8 ......
El color en las impresoras de inyeccin y de burbujas 274
9.9 Trazadores ............................. 276
9.10 Otros tipos de impresoras . . . . . . . . . . . . . . . . . . . . . 277
9.10.1 impresoras de tinta slida . . . . . . . . . . . . . . . . 277
9.10.2 impresora6 de subiimacin & tinte (he-sublimation) 277 .
9.10.3 impresoras de color trmicas (ThcrmoAutocmme) . . . 278
9.10.4 impresoras de cera trmicas (Thennal War) . . . . . . . 278
9.1 1 Conexi6n con las impresoras . . . . . . . . . . . . . . . . . . . 278
9.12 Conclusiones ........................... 279
9.13 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
9.14 Bibliografa .......................... 281

.
CAPTULO 10 TERMINALES DE V ~ E O. . . . . . . . 283
10.1 introduccin: Transductores pticos . . . . . . . . . . . . . . . 283
10.2 Pantallas de rayos cat6dicos . . . . . . . . . . . . . . . . . . . 285
10.2.1 Seal de vdeo PAL . . . . . . . . . . . . . . . . . . . .289
10.3 Terminales de video rnster . . . . . . . . . . . . . . . . . . . . 290
10.4 Controladores de pantalla . . . . . . . . . . . . . . . . . . . . . 291
10.4.1 Controladores de pantalla aifanumrica . . . . . . . . . 291
10.4.2 Controladores de pantalla grfica . . . . . . . . . . . . . 297
10.5 Otraspantallas . . . . . . . . . . . . . . . . . . . . . . . . . . 299
10.5.1 Pantallas de cristal lquido . . . . . . . . . . . . . . . . 300
10.5.2 Pantallas & transistores de pelcula fina . . . . . . . . . 301
10.5.3 Pantallas de plasma . . . . . . . . . . . . . . . . . . . . 301
10.6 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
10.7 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . .304

.
CAPTULO 11 ALMACENAMIENTO MASIVO .... 305
11.1 introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
11.2 Grabacin magntica ....................... 306
11.3 C6digos de grabacin magntica . . . . . . . . . . . . . . . . . 309
11.4 Discos magnticos . . . . . . . . . . . . . . . . . . . . . . . . 313
11 A.1 Discos flexibles . . . . . . . . . . . . . . . . . . . . . .315
11.4.2 Discos duros . . . . . . . . . . . . . . . . . . . . . . . 317
ORA-MA ICE xi

11.4.3 Organizacin de los discos magnkticos . . . . . . . . . 318


11.5 Cintas magnkticas . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.6 Discoptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
11.6.1 CD-ROM (Compact Disc Read Only Memory) . . . . . 328
11.6.2 DVD (Digital Versatile Disc) . . . . . . . . . . . . . . .331
11.7 Disco magneto-ptico . . . . . . . . . . . . . . . . . . . . . . . 333
1 1.8 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . .334
11.9 Cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
11.10 Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

12.1 Introduccin . . . . . . . . . . . . . . . .
12.2 Segmentacin . . . . . . . . . . . . . . .
12.3 Clasificacin de las arquitecturas avanzadas
12.3.1 Clasificacin de Flynn . . . . . .
12.3.2 Clasificacin de Zargham . . . .
12.4 Multiprocesadores y Multicomputadores .
12.4.1 Redes de interconexin . . . . . .
12.4.2 Multiprocesadores . . . . . . . .
12.4.3 Multicomputadores . . . . . . . .
12.5 El rendimiento . . . . . . . . . . . . . .
12.5.1 Sistemas con un solo procesador .
12.5.2 Mquinas paralelas . . . . . . . .
12.6 Cuestiones . . . . . . . . . . . . . . . . .
12.7 Bibliografa . . . . . . . . . . . . . . . .
NDICE DE TABLAS

2.1 Ventajas y desventajas de los modos de direccionamiento . . . . 45


2.2 Evolucin de los procesadores de Intel . . . . . . . . . . . . . . 85
3.1 Lista de indicadores de la ALU . . . . . . . . . . . . . . . . . . 99
3.2 Ejemplo de multiplicacin secuencia1 . . . . . . . . . . . . . . 115
4.1 3Eempos de acceso y precio por Mbyle (1999) . . . . . . . . . . 134
4.2 Pardmetros que describen una cache . . . . . . . . . . . . . . . 137
5.1 Tabla comparativa de dispositivos de Entrada/Salida . . . . . . 168
6.1 TamaAo y posicin de los datos en el bus VME . . . . . . . . . . 211
7.1 Seales del estndar RS-232C . . . . . . . . . . . . . . . . . .219
7.2 Proiocolofull-duplex . . . . . . . . . . . . . . . . . . . . . . .221
7.3 Seales que componen el estddar Centronics . . . . . . . . . . 227
7.4 Modos de transfemncia de datos del Estndar IEEE-1284 . . . . 229
7.5 3Epos de conectores del estdndar ZEEE-1284 . . . . . . . . . . . 230
10.1 Tabla comparativa de laspantallas grdficas estdndar . . . . . . 298
11.1 Cdigo GCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
11.2 Cdigo RLLzS7 . . . . . . . . . . . . . . . . . . . . . . . . . . 312
1 1.3 Clasificacin de los discos por densidades . . . . . . . . . . . . 316
NDICE DE FIGURAS

Estructura bsica de un computador . . . . . . . . . . . . 5


Estructura de la CPU y su conexi6n con la memoria . . . 7
Ciclos de la mquina Von Neumann . . . . . . . . . . . . . . . 9
Esqwma de una memoria de acceso aleatorio . . . . . . . . . . 11
Esquema de una interfaz de Entrada/Salida . . . . . . . . . . . 13
Seales en el bus de un computador . . . . . . . . . . . . . . . 14
Cdigo mquina y lenguaje ensamblador equivalente a la ins-
truccinprintf . . . . . . . . . . . . . . . . . . . . . . . . . 18
Brisqueda de la instruccin LXI D . . . . . . . . . . . . . . . . 19
Ejecucin de la instruccin LXI D (carga en HL de la direc-
cin TABLA) . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1 E s q m bsico de la arquitectum k n N e w m . . . . . . . . 32


2.2 Direccionamiento inmediato . . . . . . . . . . . . . . . . . . . 39
2.3 Direccionamiento directo . . . . . . . . . . . . . . . . . . . . . 40
2.4 Direccionamiento mediante registro . . . . . . . . . . . . . . . 41
2.5 Direccionarniento relativo a registro . . . . . . . . . . . . . . . 42
2.6 Direccionamiento indirecto . . . . . . . . . . . . . . . . . . . . 44
2.7 Subcampos en el campo de direccin . . . . . . . . . . . . . . . 48
2.8 Campo de mscara de condicidn en las instrucciones da salto . 49
2.9 Estructura de un computador elemental Von Neumann . . . . . 51
2.10 Barqferencia elemental mediante un bus . . . . . . . . . . . . . 57
2.1 1 Formato de la instruccidn ADD #456 . . . . . . . . . . . . . . . 62
2.12 Cmnogmma de la imtrucci6n ADD # 4 5 6 . . . . . . . . . . . . 64
x n ESTRUCWRA DE COMPUTADORES Y F%R&UCOS mRA-MA

2.13 Cronograma de la instruccidn SW #4 5 6 . . . . . . . . . . . . 67


2.14 Cronogramade la instruccin JMZ # 4 5 6 . . . . . . . . . . . . 68
2.15 Uamadn a subrutina . . . . . . . . . . . . . . . . . . . . . . . 71
2.16 Esquema de computador elemental . . . . . . . . . . . . . . . . 72
2.17 Formato del repertorio de instrucciones . . . . . . . . . . . . . 73
2.18 UC cableada . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.19 Microprogmma de la i)1sfruccidnADD #456 . . . . . . . . . . . 78
2.20 Agrupaci6n en campos de las seales de control del computador
elemental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.21 UC microprogmmada . . . . . . . . . . . . . . . . . . . . . . . 82
3.1 Sumador elemental de 1 bit . . . . . . . . . . . . . . . . . . . . 97
3.2 A) Sumador combinacional paralelo B) Sumador secuencia1
serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.3 Esquema de una ALU gendrica . . . . . . . . . . . . . . . . . . 100
3.4 Registro universal de 8 bits . . . . . . . . . . . . . . . . . . . . 101
3.5 Desplazamiento ldgico . . . . . . . . . . . . . . . . . . . . . . 102
3.6 Desplazamientocircular . . . . . . . . . . . . . . . . . . . . . 102
3.7 Desplazamiento aritmtico . . . . . . . . . . . . . . . . . . . . 103
3.8 Operadores ldgicos . . . . . . . . . . . . . . . . . . . . . . . . 104
3.9 Inversin de signo en diversosformatos . . . . . . . . . . . . . 105
3.1 0 Extmidn de signo en diversosformatos . . . . . . . . . . . . . 105
3.1 1 Smbolo del sumador elemntal . . . . . . . . . . . . . . . . . . 106
3.1 2 Circuito sumador restador . . . . . . . . . . . . . . . . . . . . 109
3.13 EjemplodesumaenBCD . . . . . . . . . . . . . . . . . . . . . 111
3.14 Multiplicacidn clsica de lpiz y papel . . . . . . . . . . . 112
3.1 5 Matriz de multiplicacidn combinucional . . . . . . . . . . . . . 113
3.16 Multiplicador secuencia1 . . . . . . . . . . . . . . . . . . . . . 114
3.17 Tkrminos producto en una multiplicacidn gendrica de 4x4 bits 116 .
3.18 Multiplicador combinacional bsico y el multiplicador combi-
nacional mejorado . . . . . . . . . . . . . . . . . . . . . . . . 116
3.19 Redistribucin de los productos parciales para la interconexidn
con los drboles de Wallace . . . . . . . . . . . . . 117
3.20 Reduccin mediante unrbol de Wallace para n = 4 . . . . . . 117
3.21 lijemplo del algoritmo de Booth . . . . . . . . . . . . . . . . . 119
3.22 Ejemplo de divisidn con restaurocidn . . . . . . . . . . . . . . . 121
4.1 Ejemplo de mapeado directo en una cache . . . . . . . . . . . . 137
4.2 F u n c i o m ' e m de una cache con mapeado diwcto . . . . . . . 140
4.3 Direccionamiento de una lnea de cache genrica . . . . . . . . 141
4.4 Evolucin de la tasa de fallos enjimcin del t m i l o del bloque 145
4.5 Ejemplos de diseo de sistemas de memoria . . . . . . . . . . . 147
4.6 Mecanismo de traduccin de direcciones en la memoria virtual . 150
4.7 Estructum de2 TLB . . . . . . . . . . . . . . . . . . . . . . . . 153
4.8 Direccionamiento de pdginas en la memoria virtual . . . . . . . 155
4.9 Traduccin de una direccin virtual con segmentacin paginada 157

5.1 fitructum genrica de una intel$m de HS . . . . . . . . . . . .171


5.2 Estructura e interconexi6n del controlador de DMA . . . . . . . 177
6.1 Esquema de la jemrquia de buses . . . . . . . . . . . . . . . . 192
6.2 Transferencia sfncrona . . . . . . . . . . . . . . . . . . . . . .193
6.3 Transferencia asincmna . . . . . . . . . . . . . . . . . . . . . 194
6.4 Transferencia en bloque . . . . . . . . . . . . . . . . . . . . . . 1%
6.5 Tmnsferencia read-modify-write . . . . . . . . . . . . . . . . . 197
6.6 Arbitraje daisy-chain . . . . . . . . . . . . . . . . . . . . . . . 198
6.7 Mediante lneas individuales . . . . . . . . . . . . . . . . . . . 200
6.8 Exploracin secuencid . . . . . . . . . . . . . . . . . . . . . .200
6.9 Daisy-Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.10 Esquema de aplicaci6n del bus PCI . . . . . . . . . . . . . . .204
6.11 Tranrferencia de lecrura en el bus PCI . . . . . . . . . . . . . . 208
6.12 Transferencia de escritura simple en VME . . . . . . . . . . . . 212

7.1 Topologa de una conexidn VSB . . . . . . . . . . . . . . . . . 223


7.2 Formato del tipo de cable utilizado . . . . . . . . . . . . . . . . 224
7.3 Descripcin de la interfaz SCSI .................. 232
7.4 Fases en una transferencia SCSI . . . . . . . . . . . . . . . . .233

Diferentes tipos de interruptores . . . . . . . . . . . . . . . . . 240


El problema de los rebotes . . . . . . . . . . . . . . . . . . . . 241
Circuito con una red RC pam evitar rebotes . . . . . . . . . . . 242
Circuito con un biestable RS que evita los rebotes . . . . . . . . 242
Lecturade laprimerajfla . . . . . . . . . . . . . . . . . . . . 244
Camino aternativo que sigue la corriente . . . . . . . . . 245
Esquema de la conexin de un teclado . . . . . . . . . . . . . . 246
Esquema de un ratn optomecnico . . . . . . . . . . . . . . .249
Tableta digitalizadomcon deteccidn por ultrasonidos . . . . . . 253
9.1 Impresora de margarita . . . . . . . . . . . . . . . . . . . . . .262
9.2 Detalle de una aguja del cabezal de una impresora matricial . . 265
9.3 Impresora de transferencia directa . . . . . . . . . . . . . . . . 266
9.4 Mecanismo de impresidn de una impresora lser . . . . . . . . 269
9.5 Impresora de inyeccidn de tinta . . . . . . . . . . . . . . . . . . 273
10.1 Display de 7 segmentos . . . . . . . . . . . . . . . . . . . . . . 284
10.2 Esquema de una pantalla de rayos catddicos o CRT . . . . . . . 285
10.3 Varios tipos de agrupaciones del fdsfom RRGB en Ios monitores
de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
10.4 Evolucidn de la seal de video PAL . . . . . . . . . . . . . . . . 290
10.5 Ejemplo de direccionamiento en una pantalla alfanumdrica . . . 292
10.6 Patr6n de l2filas x 9 columnas para la letra A . . . . . . . . . 294
10.7 Estructura de contadores alfanumricos de un controlador de
pantalla alfanumrica . . . . . . . . . . . . . . . . . . . . 2%
10.8 Acceso a la paleta de colores en una pantalla grdjca . . . . . . 299
10.9 Estructura de una pantalla de cristal lquido . . . . . . . . . . . 301
11.1 Lectura magndtica . . . . . . . . . . . . . . . . . . . . . . . . 308
11.2 Cddigos de grabacidn magnktica . . . . . . . . . . . . . . . . . 313
11.3 Estructura de un disco . . . . . . . . . . . . . . . . . . . . . . 314
11.4 Divisin del disco . . . . . . . . . . . . . . . . . . . . . . . . . 315
11.5 DiscosjPexibles de 5.25 y 3.5pulgodas . . . . . . . . . . . . . . 316
11.6 Formatos con interleaving y zoming . . . . . . . . . . . . . . .319
11.7 Fonnato IBM 3740 . . . . . . . . . . . . . . . . . . . . . . . . 320
11.8 Cinta con carretes . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.9 Fonnato de bloque . . . . . . . . . . . . . . . . . . . . . . . . 324
11.10 Cartucho de cinta . . . . . . . . . . . . . . . . . . . . . . . .325
11.11 Cabezal de lectura . . . . . . . . . . . . . . . . . . . . . . . . 326
11.12 Cinta DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
11.13 Esquema defwicionamientodel disco dptico . . . . . . . . . . 328
11.14 Escritura de un dispositivo magneto-dptico . . . . . . . . . . . 334
12.1 (A) Esquema de un pmcesador secuencia1 (B) Evolucidn tem-
poral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
12.2 (A)Cauce segmentado de instrucciones (B) Evolucidn temporal 340
12.3 Clasjficacidnde Flynn . . . . . . . . . . . . . . . . . . . . . .344
12.4 Esquemade un Multiprocesadory un Multicomputador . . . . . 345
12.5 Esquema de una mquina dejlujo de datos . . . . . . . . . . . . 346
12.6 Esquema de un procesador natricial . . . . . . . . . . . . . . . 347
12.7 Esquema de un pmcesador vectorial . . . . . . . . . . . . . . . 347
12.8 Matriz sistlica bidimensional . . . . . . . . . . . . . . . . . . 348
12.9 Diagrama de una red neurona1 . . . . . . . . . . . . . . . . . . 349
12.10 Topologias de red estdticas de 1 y 2 enlaces por nodo . . . . . . 351
12.11 Topologias de red estdticas de 3 y ms e n l a c P s p o . . . . 352
12.12 Topologias de red dinmicas . . . . . . . . . . . . . . . . . . . 353
12.13 Multipmcesador aJdbilmente acoplado y b) fuertemente aco-
plado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
El presente texto nace de la experiencia docente de los autores en el rea
de arquitectura y tecnologa de computadores, de los estudios de ingenieda In-
formttica de la Universitat de VaLencia. El libro tiene como principal objetivo la
descripcin de la estructura del computador y su interaccin con los perifricos
mi% comunes. El contenido del libro coincide con las materias btsicas de un
curso de estructura de computadores.

En el presente texto se pretende reazar una descripcin global de un sistema


informttico teniendo en cuenta tanto temas ms tradicionales, por ejemplo la
CPU, la memoria o los buses, como temas menos tratados, por ejemplo los
verifricos de entrada de datos o las tarjetas controladoras de video. La intencin
de las autores ha sido describir los coiputadores y perifricos haciendo hincapi
en la interaccin entre stos, as como de au manera esta interaccin afecta a
A

las prestaciones que percibe el usuario.

En muchas ocasiones cuando se desea realizar un anlisis comparativo de


computadores, este anlisis se queda en una mera comparacin de las presta-
ciones de la unidad central de proceso o CPU. Un estudio ms preciso tiene en
cuenta, adems, la jerarqua de memoria, la entrada-salida y la je&qua de buses
incluidos en el sistema. Sin embargo en pocos casos se realiza un aniisis global
del computador como un sistema infomatico en el que, tan importante como las
unidades funcionales de la CPU o la ieraiqua de memoria, es la interaccin con
los dispositivos perifricos. Para realizar este anlisis es importante tener un
conocimiento tecnolgico de los pedfricos y su interaccin con el computador.
xxii ESTRUCTURA DE COMPVTAWRES Y PERlFl%UCOS BRA-MA

La organizacin del libro comienza con la exposicin de la arquitectura del


computador desde un nivel bsico. En estos primeros captulos se tratan las
unidades elementales del procesador y el lenguaje mquina que ste es capaz de
interpretar. A continuacin se introducen los dems elementos que forman el
computador junto con los perifricos, determinando las posibles interacciones
entre ellos y su impacto sobre el rendimiento global del sistema. Para concluir
se muestran otras posibles arquitecturas de computadores para que el lector se
inicie en el estudio de arquitecturas m& avanzadas y complejas. El texto se ha
organizado en los siguientes 12 captulos:

1. Introducci6n a la estructura de computadores: En este captulo se ex-


ponen los conceptos iniciales bsicos de estructura de computadores y
perifricos. Se describe el proceso de ejecucin de una instniccin para
introducir las unidades funcionales de un computador y la interacci6nen-
tre stas. Aniogamente se realiza una breve descripcin del proceso de
fabricacin de circuitos integrados y de la tecnologa de memorias. Es-
tos conceptos sern tiles para poder justificar cmo la mejor solucin en
trminos de prestaciones no siempre es posible en trminos de coste.

2. Unidad de control: ejecuEi6n de instnieciones. Una vez introducidos


los conceptos bhsicos se comienzan a detallar los elementos que constitu-
yen el procesador. En particular en este captulo se estudia la unidad de
control, definiendo sus funaiones, estructura y mtodos de diseio, junto
con el proceso de definicin y ejecucin del repertorio de instrucciones
del procesador.

3. Unidad aritmtico lgica: Se presenta una introduccin a la aritmtica


digital, mostrando diversas aproximaciones para realizar operaciones bi-
nadas de suma, resta, multipicaci6n y divisin. Se realiza un anlisis
comparativo de las diversas aproximaciones, indicando sus ventajas, des-
ventajas y limitaciones.
4. Jerarqua de memoria. En este captulo se presenta la memoria, que ea
una de las partes elementales del computador, exponiendo cmo se divide
dando lugar a la jerarqua de memoria. Fll objetivo de esta jerarqua es
obtener un rendimiento alto con unos recursos de memoria limitados. De
esta fonna se comienza con la memoria cache exponiendo su estructura,
parmetros caractersticos y las polticas de emplazamiento y sustitucin
de bloques. Para concluir se expone el mecanismo de traduccin de direc-
ciones en tiempo de ejecucin, las tcnicas de segmentacin y paginacin
de la memoria y la memoria virtual.
5. Interconexin entre procesador y perifricos. Este captulo se centra
en la interconexin entre el procesador y los elementos de entrada y sa-
lida. En 61 se explican los mecanismos de transferencia de datos entre el
computador y los controladores de perifkricos, definiendo las fases que
tienen lugar en las operaciones de entrada y salida. Tambin se explican
tcnicas avanzadas de acceso directo a memoria y procesadores de entrada
y salida.
6. Buses. En el captulo se introduce el concepto de bus como elemento de
interconexin de todos los componentes del computador, definiendo sus
propiedades y caractersticas. Tambin se describe la organizacin interna
de los buses, llamada jerarqua de buses, y cmo sta afecta al rendimiento
del sistema. Por ltimo se muestran ejemplos de buses comerciales como
son el PCI y VME.
7. Enlace exterior. El captulo muestra las interfaces ms comunes utiliza-
das para transferir informacin entre el computador y los elementos pe-
rifrico~.Estas interfaces se dividen en dos grandes grupos dependiendo
de si los datos se transfieren de forma serie o paralela. Para cada uno de
estos gmpos se detallan los estndares ms utilizados en los computadores
actuales.
8. Dispositivos de entrada de datos. Los dispositivos de entrada de datos
permiten al computador recibii informacin de los de los usuarios. Es-
tos perifricos no necesitan una velocidad de transferencia muy elevada,
aunque s que requieren una atencin constante por parte del computador.
Dentro de este grupo de dispositivos se encuentran los teclados, ratones,
pantallas grficas interactivas y scanners.
9. Dispositivos de copia impresa. En este captulo se muestran los tipos
de impresoras ms utilizadas, exponiendo sus mecanismos de funciona-
miento y caractersticas principales. Se presta especial atencin a dos
parmetros que definen sus prestaciones y la posibilidad de imprimir en
color. Tambin se detallan los lenguajes de descripcin de pginas utili-
zados para codificar la informacin que se desea imprimir.
10. Terminales de vdeo. El captulo se centra en los terminales de vdeo
utilizados para mostrar informacin al usuario. Dentro de este tipo de
u i v ESTRUCURA DE COMPUTADORES Y P B R F ~ I c o s ORA-MA

perifbricos encontramos diversas tecnologas como los tubos de rayos


cat6dicos. los LCD y los de plasma. Junto con los terminales se da una
descripcin de los controladores de pantalla utilizados como intedaz con
el monitor.
11. Aimncenamiento masivo. Se exponen los dispositivos de almacenamien-
to secundario haciendo referencia a su estructura fsica, la forma con la
que se codifica la informacin y su estructura lgica. Los dispositivos
explicados son las cintas y los discos, utilizando medios magnCticos u
6pticos.
12. Arquihtums a v d . En este ltimo capitulo se introducen algunas
arquitecturas de computadores ms complejas y sofisticadas. En primer
lugar se muestra la segmentacin como primera tCcnica de paralelizacin
de la ejecucin de las instrucciones. A continuacin se presentan las clasi-
ficaciones de computadores ms usuales realizadas en funcin de su flujo
de instrucciones y datos, para concluir mostrando las arquitecturas mul-
ticomputadoras y multiprocesadoras y las tCcnicas de medidas del rendi-
miento.

Junto a los contenidos citados en cada uno de los capitulas se incluye biblio-
@a y cuestiones.

Burjassot, a 27 de noviembre de 2000.

Los Autores.
INTRODUCCI~NA LA ESTRUCTURA
DE COMPUTADORES

1.1 CONCEPTOS PRELIMINARES

Hay una gran variedad de sistemas diferentes susceptibles de recibir el nom-


bre decomputador; desde los simples microcontrolado~sque pueden gobernar
los semforos en un cruce, hasta los enormes supercomputadores
- encargados
- de
realizar ciilculos en simulaciones aeronuticas, pasando por los sistemas de tele-
comunicaciones, sistemas de control y clculo numrico, y los simples sistemas
omticos. Esta variedad se maniesta tanto en la aplicacin final, como en el
tamao, en el coste y en las prestaciones de estas mquinas en principio tan di-
ferentes. A pesar de esta gran variedad de mquinas llamadas computadores, se
aplican sistemticamente ciertos conceptos fundamentales. En este captulo se
introducen los conceptos bsicos y generales de los computadores digitales.

Un computador es un sistema secuencial sncrono complejo que procesa in-


formacin. La informacin dentro del ordenador se trata de forma binaria, uti-
lizando solamente los dgitos o valores lgicos '1' y 'O', al contrario que el
sistema mtrico decimal habitual formado por dgitos del O al 9. Estos valores
lgicos binarios se corresponden con niveles de tensin elctrica, de manera que
un '1' lgico corresponde a un nivel alto de tensin cercano a 5 voltios y un 'O'
lgico corresponde a un nivel bajo de tensin cercano a O voltios. Estos niveles
elctricos pueden ser distintos, dependiendo de la tecnologa de los dispositivos
electrnicos que forman el computador. En la actualidad, y con la intencin
de disminuir el consumo de la lgica CMOS,se est utilizando la lgica de baja
2 ESTRUCWRA DE COMPUTADORES Y PERF&ICOS ORA-MA

tensin, donde un '1' lgico viene definido por un nivel de tensin de 3.3 voltios
y un 'O' lgico por O voltios.

El procesador o ncleo central de un computador est formado por millo-


nes de transistores y componentes electr6nicos de un tamao microscpico. La
duracin de los eventos en el interior de un procesador es del orden de los nano-
segundos, conmutando los transistores con frecuencias del orden de cientos de
MHz.

La informacin binaria se introduce en el computador


* mediante disvositivos
perifkricos que hacen de inteffaz entre el mundo exterior y el computador. En
definitiva van a tmducir la informacin del mundo real a seiiales elctricas. aue.
sern interpretadas como unos o ceros. De la misma manera, los perifxicos
tambin permiten la comunicacin del ordenador hacia el extenor, o bien hacia
seres humanos u otras Wuinas.

Un computador necesita de energa elctrica para que se ponga en marcha


toda la circuitera electrnica ane implementa su funcionalidad. Cuando se in-
terrumpe la alimentacin del cimpuidor se perder toda la informacin que no
est almacenada en un dispositivo de almacenamiento no-voltil.

La dnica forma de analizar un sistema tan complejo es basarse en una or-


ganizacin jdquica. Un sistema jerrquico es un conjunto de sistemas inte-
rrelacionados, cada uno de los cuales se organiza a su vez en una estructura
jerrquica, uno tras otro, hasta que se alcanza el nivel ms bajo de subsistema
elemental. La naturaleza jer&quica de los sistemas complejos es esencial tanto
para su diseo como para su descripcin. El diseiiador necesita solamente tratar
con un nivel del sistema a la vez. En cada nivel el sistema consta de un coniunto
.a

de componentes y la interaccin entre ellos. El comportamiento en cada nivel


depende s610 de una caractexizacin abstracta y simplificada del sistema que hay
en el nivel inferior.

Para describir un sistema jerrquico se pueden utilizar dos aproximaciones:


o bien se empieza por la parte ms baja y se van construyendo los niveles de
jerarqua basndose en el nivel inferior (modelo bottom-scp),o bien se realiza
una descripcin desde el nivel ms alto y se descompone el sistema en m6dulos
de la jerarqua inferior (modelo top-down). Una posible clasificacin de los
niveles estructurales. ordenados de menor a mayor, sera:
1. Nivel de componente. En el nivel ms inferior se trata con las leyes de la
fsica de estado dlido, y la electrnica fsica. Los elementos de este nivel
son difusiones de impurezas de tipo P y de tipo N en silicio, polisilicio
cristalino y difusiones de metal que sirven para construir los transisto-
res. Las tkcnicas de integracin fotogrficas (litografa) permiten integrar
millones de poligonos de tamaos inferiores a la micra en unos pocos
milmetros cuadrados. A partir de este nivel ms bajo de abstraccin se
construyen los transistores que constituyen el siguiente nivel.
2. Nivel electrnico. En este nivel los componentes son transistores, resis-
tencias, condensadores y diodos construidos con las difusiones del nivel
anterior. Esta tecnologa de muy alta escala de integracin o VLSI (Very
Large Scale of Integration) es la que se utiliza en la fabricacin de circui-
tos integrados (CIs). Son de aplicacin las leyes elctricas y electrnicas y
el comportamientodel sistema se describe en trminos de tensin elctrica
y comente. En este nivel se construyen las puertas lgicas a partir de tran-
sistores.
3. Nivel digital. El estado de los sistemas se describe mediante unos y ceros.
Los elementos de este nivel son las puertas lgicas, biestables y otros
mdulos tanto combinacionales como secuenciales. En este nivel es de
aplicacin el lgebra Booleana y las propiedades de la lgica digital. Esta
informacin binaria re~resentara su vez un carcter ASCII. un nmero
en alguna forma de representacin o una instruccin para el computador
(accin).

- -
4. Nivel RTL. El nivel de transferencia de registros RTL (Register
. Transfer
Level) ser el preferido para la descripcin de los computadores en el pre-
.
sente texto. Elementos t~icos -
en este nivel de abstraccin son los registros
y mdulos combinacionales aritmticos. Los registros se encargarn de
almacenar la informacin binaria y se construyen con puertas y elementos
del nivel digital inferior. Los mdulos combinacionales aritmticos sern
los encargados de realizar transformaciones bsicas de los datos.
5. Nivel PMS. Este nivel es el ms alto en la jerarqua de descripcin de
computadores. Las siglas PMS provienen del ingls Processor Memory
.
Switch. Son elementos de este nivel de .ieraraua los buses. memorias.
procesadores y otros mdulos de alto nivel. La descripcin del sistema
se hace utilizando bloques que intercambian informacin por una serie de
enlaces llamados buses.
En este texto se realizar una descriucin iermaica del comuutador utilizan-
do bsicamente el nivel RTL. Algunas Geces ser6 necesario bajar al nivel digital,
pero en ningn caso se descender a los dos niveles ms bajos de la jerarqua.

1.2 ARQUITECTURA CLSICA DE UN COMPUTADOR:


MODELO VON NEUMANN

La conocida como arquitectura Von Neumann tiene sus orgenes en el tra-


bajo del matemtico John Von Neumann desarrollado conjuntamente con John
Mauchly y John P. Eckert y divulgado en 1945 en la Moore School de la Univer-
sidad de Pensilvania, Estados Unidos, en el que se presentaba el EDVAC (Elec-
tronic Discrete Variable Automatic Computer). De este trabajo surgi la arqui-
tectura de programa almacenado en memoria y bsqueda~ejecucinsecuencia]
de instrucciones.

Para empezar a describir la estructura bsica de un computador siguiendo


este modelo, cabe definir las funciones que se espera que pueda realizar una
mquina denominada como tal. En trminos generales un computador tiene que
realizar tres funciones:

e Procesamiento de datos.

e Almacenamiento de datos.

e Transferencia de datos.

El computador debe procesar datos, transformando la informacin recibida.


As mismo debe almacenar datos. tanto resultados de com~utacionesinterme-
dias, como el resultado final de stas. De la misma manera el computador debe
realizar transferencia de datos entre su entorno y l mismo. Para realizar estas
tres funciones es necesario un mecanismo de control que gobierne el flujo de
datos entre los diversos mdulos.

Estas funciones se pueden realizar con arquitecturas de computadores muy


avanzadas, como las que se analizan en el captulo 12, o con la estructura de un
computador bsico que es la que se muestra en la figura 1.1. La arquitectura de
un computador hace referencia a la organizacin de sus elementos en mddulos
con una funcionali&d definida y a la interacci6nentre ellos.

Figura 1.1: Estructura bdsica & un computador

CPU: La Unidad Centtal de Proceso (Control Process Unir)es el corazn


del computador. Controla el flujo de &tos, los procesa, y gobierna el se-
cuenciamiento & las acciones en todo el sistema. Para ello necesita un
osciladorexterno o reloj que sincroniza las operaciones y marca la veloci-
dad de proceso. Este reloj no es ms que una seal peridica cuadrada con
una frecuencia constante. El reloj va marcando la evolucin de la CPU y
mide su velocidad de funcionamiento, por tanto siempre es deseable que
las frecuencias de reloj sean lo ms altas posibles. Desafomuiadamente
la frecuencia de reloj viene limitada por la tecnologa de la CPU y del
computador completo. Si se aumenta la frecuencia de reloj por encima
de la frecuencia mxima de funcionamiento, el sistema no podrh seguir
al reloj y se producirn desfases y desincronizaciones, dejando de funcio-
nar co&t&ente. Un efecto colateral es que la potenciidisipada por las
circuitos de tecnologa CMOS, (la mayora de las CPUs achiales), es pro-
porcional a la frecuencia de funcionakento. Por lo tanto, una frecuencia
excesiva puede provocar un sobrecalentamiento que detenore la CPU.
m Memoris: Es la responsable del almacenamiento de datos. En un mismo
computador hay muchos tipos de memoria que van desde las ms masivas
y baratas (cintas magnbticas), a las ms rdpidas y caras (memoria SRAM
cache). Estas diferencias provocan una distribucin y organizacin por
capas que se denomina jerarqua de memorias. El objetivo es disponer de
la mayor cantidad de memoria posible combinando un coste reducido con
una alta velocidad.
WS: Transfiere datos entre el entorno exterior y el computador. Este blo-
que est formado por los elementos necesarios para realizar la comuni-
cacin del computador con el mundo exterior. En 61 se encuentran los
controladores de perifricos que forman la interfaz entre los perfricos,
la memoria y el procesador.
Sistema de interconexin: Buses: Es el mecanismo que permite el flujo
de datos entre la CPU,la memoria y los m6dulos de E/S. En los buses
se propagan seales elbctricas que son interpretadas como unos y ceros
lgicos.
Perifrim: Los dispositivos perifCricos son los que permiten la entrada
de datos al computador, y la salida de informacin una vez procesada. Un
tipo de estos perif6ricos puede entenderse como grupo transductores en-
tre la informacin fsica externa y la informacin binaria interpretable por
el computador. Un ejemplo son las tarjetas de vdeo, que conjuntamente
con los monitores, transforman informacin bin&a en informacin visual
que percibe el usuario. En sentido contrano se tendran los escners, que
transforman la informacin visual en cdigos binarios que la representan
y el computador puede interpretar. Otro tipo de dispositivos perifericos
swen para almacenar datos o para que se comunique el computador con
otros computadores o mquinas digitales. Ejemplos de dispositivos pe-
rifricos son el teclado, el monitor, el ratn, disco duro y las tarjetas de
red.

En el presente texto se van a analizar los componentes de un computador


clsico o mquina Von Neumann, as como en el captulo 12 se van a introducir
conceptos y tendencias en la estructura de computadores ms avanzados.

1.2.1 Unidad central de proceso


La unidad central de proceso (CPU) controla el funcionamiento de todos
los elementos del computador. El sistema, desde que es alimentado, empieza a
@RAMA O INTRODUCCI~NA LA ESTRUCNRA DE COMPUTADORES 7
C A P ~ L 1.

ejecutar instrucciones y no se detiene hasta que se corta la alimentacin. Las


instrucciones forman programas mediante los cuales se realiza una determinada
accin y estos programas no son slo los del usuario, sino tambin los de gestin
del sistema completo. La CPU es la parte ms importante del procesador, debido
a que se encarga de controlar todas las partes del computador y de realizar los
clculos. La CPU tiene a su vez una estructura interna que se muestra en la
figura 1.2.

.
Memoria

Figura 1.2: Estructura de la CPU y su conexidn con la memoria

Una CPU bsica consta principalmente de las unidades:

Unidad de Control (UC): La unidad de control se encarga de leer de la


memoria las instrucciones que debe ejecutar y de secuenciar el acceso a
los datos y las operaciones a realizar por la unidad de proceso. Los datos
y las instrucciones estn en la misma memoria en el caso de la figura 1.2.
La UC genera las seales de control que establecen el flujo de datos en
toda el computador e interno a la CPU. Se encarga de acceder a memo-
ria habilitando un camino de datos para que las instrucciones y los datos
lleguen a la CPU.
Una instruccin no es ms que una combinacin de unos y ceros. Consta
de un cdigo de operacin binario (que las diferencia entre s) y opcio-
nalmente de los datos necesarios para ejecutar la instruccin (o al menos
indicacin de dnde encontrarlos). Una vez se ha accedido a la instruc-
cin que se va a ejecutar, la UC la almacena en un registro especial (el
registro de instruccin), interpreta su cdigo de operacin y ejecuta la se-
cuencia de acciones adecuada. Es decir, d e c d c a la instruccin. Los
diversos tipos de instrucciones y sus formatos se estudiarn con detalle en
el captulo 2. En consecuencia la ejecucin &una instruccin pasa siem-
pre por las fases de bsqueda de la instruccin, decodiicacin, bsqueda
de los operandos y ejecucin.
En el ejemplo de la figura 1.2 se puede obsewar un programa en memoria
Una vez se ha Iefdo la instruccih (se guarda una copia de sta en el RI
de la CPU), la UC se encarga de generar las seales de control adecuadas
para ejecutarla. La UC se estudiar8 con detalle en el capitulo 2.
Unidad AritIUtiCO-Lgi~a(ALU):La ALU es la parte de la CPU en-
cargada de realizar las transformaciones de los datos. Gobernada por la
UC, la ALU constar de un serie de m6dulos que realizarn operaciones
aritmticas y lgicas. Generalmente la ALU no es ms que circuiten'a
combinacionai con unos pocos registros que almacenan los datos de en-
trada y los de salida o resultados. La UC se encarga & seleccionar la
operacin a realizar habilitando los caminos de datos entre los diversos
operadores de la ALU y entre los registros internos. La ALU se analiza
con detalle en el capitulo 3.
m Registras internos: La ejecucin de las instrucciones puede necesitar al-
macenar resultados parciales. El almacenamiento de estos resultados en
la memoria principal sera lento e impondra un trafico excesivo de datos
en el sistema de interconexin con la memoria, con lo que el rendimiento
bajara Es preferible, por tanto, que estos resultados parciales se aima-
cenen en pequeas celdas de memoria incluidas en la propia CPU. Estas
pequeas celdas son los registros. De la misma manera tambin se ai-
macena en los registros intmos la auiguracin interna de la CPU o
infomaci6n sobre la ltima operacin realizada en la ALU (signo, des-
bordamiento, resultado nulo, etc). Los registros principales de una CPU
genrica son:
1. Contador de programa: Se encarga de almacenar la direccin de la
siguiente instruccin a ejecutar. Normalmente se va incrementando
para ejecutar el programa de manera secuencial. Cuando se modifica
el orden de la eiecucin de instrucciones (un salto a una subrutina o
un bucle) se debe escribir en l el valor de la direccin de la nueva
instruccin a ejecutar. Se conoce tambin por sus siglas en inglks
PC (Progrum Counter).
2. Registrode Instruccin: En este registro se almacena la instruccin
que se ha capturado desde la memoria y que se est ejecutando. Se
conoce tambin por sus siglas en ingls IR (InstructionRegister).
3. Registro de Estado: Est compuesto por una serie de bits que in-
forman del resultado de la ltima operacin realizada en la ALU.
Tpicamente hay un bit que indica si el resultado de la ltima ope-
racin ha sido cero (Z), si el resultado ha sido negativo (N) o si ha
habido desbordamiento o overjow (0). En cualquier caso los bits de
este registro tienen significado por separado, y carecen de significa-
do conjunto como palabra.
4. Registro acumulador: Algunas CPUs realizan operaciones aritm-
ticas slo en un registro especial denominado acumulador, y dispo-
nen adicionalmente de registros de propsito general. Hay mquinas
ms simtricas que permiten realizar todas las operaciones sobre to-
dos los registros de propsito general, y que carecen de este registro
especial.

El ciclo para ejecutar cualquier instruccin se divide en ciclo de bsqueda


y ciclo de instruccin. En el ciclo de bsqueda la unidad de control genera
las seales adecuadas para acceder a la memoria y leer una instruccin. El
ciclo de bsqueda para cualquier instruccin siempre es el mismo. La diferencia
estriba en el ciclo de ejecucin, que ser funcin del cdigo de operacin de cada
instruccin. Una CPU como la mostrada en la figura 1.2 siempre est, o bien
en el ciclo de bsqueda, o bien en el ciclo de ejecucin, tal como se muestra en
la figura 1.3. La CPU est eternamente en uno de ambos ciclo hasta que pierde
la alimentacin o o hasta que se ejecuta alguna instruccin especial de parada
(HALT).

Figura 1.3: Ciclos de la mquina Von Neumann


10 ESTRUCTURA DE COMPUTADOR&S Y PERWhlICOS ORA-MA

1.2.2 Memoria
En la memoria se almacenarn el programa y los datos que, provenientes
de un dispositivo de Entradalsalida o dispositivos de almacenamiento secunda-
rio, va a -ejecuta la CPU. Las instrucciones no son ms que cdigos binarios
interpretados por la unidad de control, y los datos estn tambi6n almacenados
de forma binaria en alguno de los formatos de representacin de la infomiaci6n
binarios existentes. De esta manera el cdigo biario 1100001almacenado en
memoria puede representar una operacin en cdigo mquina, el carcter ASCII
'a', el nmero entero sin signo 97 o el nmero negativo -31 (en complemento a
2) o -33 (en signo magnitud).

Hay diversas formas y tecnologas de almacenamiento de la informacin


binaria, desde el almacenamiento con transistores en los circuitos integrados
de las SRAM, hasta el almacenamiento magnetice de los discos duros de los
computadores. En cualquier caso, el procesode acceso a los programas y datos
- a trav6s de los distintos niveles de la memoria, siendo el ms
se realiza siempre
significativo la memoria principal o muin memory.

Las diversas tecnologas de almacenamiento de la informacin imponen di-


versas caractersticas que se describen con una serie de parmetros. De todos
ellos los ms importantes son el tiempo de acceso, que sera el tiempo necesario
para recuperar un dato almacenado, y el precio por bit. Ambas caractersticas
suelen tener una relacin inversa. De esta manera, dispositivos de memoria
implementados con una gran velocidad de acceso suelen tener un alto coste y
viceversa. Esto hace que los computadores no puedan tener toda la memoria
implementada con el dispositivo ms rpido existente cuando se disean. Un
compromiso prestaciones/coste en necesario. Por lo tanto se suele realizar un
diseiIo jerdrquico de la memoria del sistema, dejando la memoria ms r6pida
(y ms cara) directamente accesible por la CPU, y la memoria ms lenta en las
capas de la jerarqua ms externas. El principio de que sea la memoria ms
rpida la ms cercana al procesador, combinado con el principio de localidad
(que se mostrar6 en la seccin 4.2), y con un flujo de datos eficiente entre las
diversas capas, sirve para disear el sistema de memoria de un computador. En
el captulo 4 se analiza con detalle la jerarqua de memoria.

Otro aspecto interesante a tener en cuenta es la volatilidad de la informacin


almacenada en las memorias. Es necesario que toda la informacin imprescin-
ORA-MA C A P ~ W L Ol. INTRODUCCI~NA LA ESTRUCNRA DE COMPUTADORES 11

dible para que un computador arranque (se configure) correctamente y pueda


responder
. al usuario no se pierda cuando se desconecte la mquina.
. De esta ma-
nera, el computador tendr acceso a una zona de memoria no voltil en la que
se almacenar toda la informacin necesaria para el arranque
. . y la configuracin.
-
Cuando se conecta el computador automticamentese ejecutan unos programas,
almacenados en memoria no voltil, que se encargan - de hacer las comprobacio-
nes iniciales (test), ponen en marcha los servicios de atencin a los dispositivos
perifncos, y la gestin de los recursos de la mquina, activando por ltimo el
interprete de rdenes que utiliza el usuario para ejecutar sus programas.

La memoria principal de los computadores tiene una estructura similar a


la mostrada en la figura 1.4. Se puede considerar como una matriz de celdas
de memoria a las que se puede acceder aleatoriamente, es decir, el tiempo de
acceso no depende de la celda a la que se quiere acceder.
,*S
,' I Matriz de celdas
,- N de memoria

Perii6riws N, ' Datos


L......-.------.--------------------'

Figura 1.4: Esquema de una memoria de acceso aleatorio


La matriz de memoria est organizada en palabras, cada una de las cuales
tiene asignada una direccin que indica su posicin en la matriz. En el ejemplo
de la figura 1.4 hay n lneas de direcciones, lo que da un tamao de La memoria
de 2" direcciones posibles. Slo con modificar la combinacin binaria de las
lneas A. a A,-, se cambia la palabra a la que se quiere acceder. Cada palabra
est formada por una serie de celdas a las que se accede en paralelo. En el caso
de la figura 1.4 la palabra es de 8 celdas. En cada celda se almacena un bit de
informacin, y estos bits son los que definen las instrucciones y los datos. La
memoria de un computador se mide siempre en bytes (palabra de 8 bits), aunque
se pueden disponer de mdulos de memoria de otras longitudes de palabra.
En el captulo 4 se analizariui la jerarqua de memoria y en el capitulo 11 se
presentarn los dispositivos de almacenamiento masivo ms comunes.

Un computador tiene una gran cantidad de dispositivos de entrada y salida.


Desde un teclado hasta un monitor de vfdeo, pasando por un disco duro, todos
son dispositivos que la CPU necesita para obtener datos o para almacenar o
mostrar resultados.

El principal problema de estos dispositivos perifricos es su gran variedad.


Muchos de ellos comunican a un operador humano con el computador y otros
sirven de conexin con otros computadores. De manera adicional, cada dis-
positivo tiene una tecnologfa diferente, unas caractersticas de funcionamiento
distintas, y unas necesidades de atencin por la CPU distintas. Por ello, cada
dispositivo no se conecta directamente con la CPU mediante un bus, sino que
existe una interfaz que define cmo se van a entender el procesador y el contro-
lador del perifrico asociado para intercambiar datos. Los mdulos de WS son
entidades que contienen uno o varios controles de perricos.

Cuando la CPU ejecuta un programa que realiza operaciones con el mundo


exterior a travs de los perifricos, se dice que realiza transferencias u opera-
ciones de Entradalsalida. El objetivo de cada transferencia es llevar los datos
desde el perifrico a una zona concreta de la memoria y viceversa. Para ello la
CPU programar las acciones a realizar en los controladores de WS. Posterior-
mente, cuando el control tenga listos los datos que lee del perifrico, la CPU se
podr encargar de la sincronizacin y de la transferda aldesde memoria. Una
interfaz de entrada salida que controla uno o ms perif6ricos tiene la esmctura
tpica que se muestra en la figura 1.5.

Cada control de perifrico tiene una direccin nica en el sistema. La in-


terfaz de WS decodifica el bus de direcciones para detectar que la CPU se est
dirigiendo a l. El direccionamiento es similar al dbcionamiento de memoria
El bus de datos se utiliza para el paso de datos entre el perifrico y la
memoria. Las lneas especiales de control sirven para coordinar y sincronizarla
transferencia.
Bus de EIS

Figura 1.5: Esquema de una inte#az de Entrada/Salida

Claramente la velocidad de los perifricos, la jerarqua de memoria y el jue-


go de instrucciones de la CPU influirn directamente en el diseo de la interfaz
de Entradalsalida. En el captulo 5 se muestran las diversas estrategias para
organizar el acceso de los perifricos a la memoria, as como para organizar la
gestin de diversos perifricos simultneamente por la CPU.

1.2.4 Sistemas de interconexin: Buses


La conexin entre los diversos componentes de un computador se efecta
fsicamente a travs de los buses. Un bus se define como un enlace de comu-
nicacin compartido que usa mltiples cables para conectar subsistemas. Cada
lnea es capaz de transmitir una tensin elctrica que representa un ' 1' o un 'O'
binario. De esta manera, cuando hay varios dispositivos conectados a un mismo
bus, habr un un dispositivo que podr enviar una seal que ser recogida por
los dems mdulos. Si varios dispositivos transmiten durante el mismo instante
de tiempo, las seales se solaparn produciendo un error o una contencin de
bus, por lo que se tendr que regularizar el acceso al bus.
14 ESTRUCTURA DE COMPUTADORES Y PE&RICOS mRA-MA

Las seales de los buses estn agrupadas siguiendo un criterio de funciona-


lidad, tal como se muestra en la figura 1.6 :

Bus de datos: Son las ineas por las que se transmiten los datos entre
los diversos dispositivos que forman el computador: CPU, memoria y
controladores de Entradalsalida.

Bus de direcciones: Sirve para indicar a la memoria o al resto de dispo-


sitivos la posici6n del dato que se quiere acceder.

Bus de control: Agrupa todas las seales de control que gobiernan el


acceso al bus de datos y direcciones. Sirven para seleccionar el emisor y
el receptor en una transaccin de bus, as como el tipo de sta. Agrupa
seales de lectura, escritura, arbitraje, etc.

Bus de alimentacin: Diversos dispositivos pueden tener alimentaciones


con tensiones distintas, pero todos elios deben estar alimentados.

Bus de direcciones j
4
Bus de datos i

Bus decontml ;
Alimentacin

Fkura 1.6: SeRales en el bus de un computador

-
A mi vez los diversos buses de un computador estn organizados en una
jerarqua que optimiza el acceso a los recursos y la comunicacin entre los pe-
-
rifkricos Y la CPU. En el captulo 6 se estudiarn las generalidades de los buses,
su jerarqua y los protocolos de comunicaci6n y de arbitraje del bus.
@RAMA CAPfTULO l. INTRODUCCI~NA LA ESTRUCTLIRA DE COMPUTADORES 15

1.2.5 Perifricos
Por perifricos se entendern todos aquellos dispositivos que sin ser impres-
cindibles en la estrnctura de un computador, son necesarios para suministrar
datos a la mquina o visualizar los resultados.

Como se ha descrito, el perifrico se conecta mediante un bus especial (el


enlace de WS)a su controlador o al mdulo de WS.Debido a las notables di-
ferencias de prestaciones entre los perifricos y la CPU,los buses de EIS son
diferentes del bus que conecta al procesador con la memoria. En el captulo 7
se analizarn con detalle estas caractersticas.

Los perifricos de entrada de datos son interruptores, teclados, ratones, pan-


tallas grficas interactivas y digitalizadores de imgenes (escners). Estos pe-
rifrico~de entrada de datos se revisarn en el captulo 8.

En la misma lnea, se describen en el captulo 9 los dispositivos perifricos


de copia impresa que incluyen los diferentes tipos de impresora: de matriz de
puntos, electrostticas, de inyeccin de tinta y burbuja, ploners e impresoras
lser.

Otros dispositivos perifricos fundamentales para la interaccin del hombre


con el computador son las terminales de vdeo y las tarjetas grficas. En el
captulo 10 se muestra la tecnologa de las pantallas de rayos catdicos, termi-
nales de vdeo raster, controladores de pantalla, pantallas de cuarzo liquido y de
plasma.

Finalmente, en el captulo 11 se presentan la etapa ms exterior de la jerar-


qua de memoria (los dispositivos de almacenamiento masivo) como perifricos.
Dentro de esta categoria se incluyen las cintas magnticas, los discos duros y
flexibles, y los discos pticos.

Cualquier sistema informtico est realizado en base a unas especificacio-


nes. Los usuarios son los que se benefician del uso del computador. Las tareas
que el usuario desea realizar se van efectuando de manera progresiva mientras
se van ejecutando las instmcciones que forman un programa. No es sencilio
programar un computador sin ningn tipo de ayuda externa, ya que, adems de
realizar el programa de usuario, se debeda programar la gesti6n de los m u r -
sos del computador. Afortunadamente los sistemas informticos disponen de
unos programas que se van a encargar de gestionar los recursos de la mquina y
atender al usuario, facilitando la ejecucin los programas de aplicacin.

1.3.1 El sistema operativo


Hace unos aos un sist6ma operativo podra haberse definido como el sofl-
ware que controla al hardware. Actualmente esta definicin ya no es totalmente
cierta, ya que estas funciones de control estn empezando a ser realizadas por el
microcdigo ojrmware, tal como se introducir en el captulo 2.

Un sistema operativo puede verse como los programas, instalados en soft-


ware o firmware, que hace utilizable el hardware. El hardware proporciona la
capacidad de cmputo y los sistemas operativos ponen dicha capacidad al al-
cance del usuario, administrando el hardware para lograr un buen rendimiento.
Los sistemas overativos son ante todo administradores de recursos, siendo el
hardware del computador el principal recurso que administran: el procesador, la
memoria, los dispositivos de EntradaISalida y todos los perifricos.

Los sistemas operativos realizan muchas funciones, como proporcionar una


interfaz de usuario, permitir que los usuarios compartan entre s el hardware y
datos, evitar que haya conflictos de accesos simultneos a un mismo recurso
y localizar errores, advirtiendo de ellos a los usuarios. En cualquier caso la
funcin del sistema operativo es vital para el correcto funcionamiento de un
computador.

1.3.2 Lenguajes de alto nivel, ensamblador y cdigo mquina


Es interesante, antes de analizar con detalle las partes de un computador, ob-
servar el proceso de ejecucin de una instruccin. En primer lugar cabe aclarar
el concepto de instruccin. Una instruccin de un lenguaje de alto nivel, como
pueda ser el lenguaje C o Pascal, es una construccin cercana al lenguaje huma-
no pero alejada del lenguaje binario que entienden las mquinas. Un ejemplo es
la siguiente instruccin de c6digo C:

printf("Esta instruccin muestra este mensaje por la


salida estndar');

La instruccin anterior es bastante autoexplicativa y simple, pero desenca-


dena una secuencia de muchas acciones que a priori pueden aparecer ocultas.

En primer lugar la instruccin en C printf no se corresponde con una


instruccin en cdigo mquina, que es el nico lenguaje que interpreta el com-
putador. Para que el computador pueda interpretar esa instruccin debe ser tra-
ducida a cdigo mquina. Para ello se realiza la wmpllad6n, en la cual la
instruccin se traduce a la secuencia de unos y ceros que entiende el computa-
dor. Previamente a la obtencin del programa de cdigo maquina o ejecutable
se tiene que realizar un preproceso o enlazado en el que se asignan direcciones
a las etiquetas y se realizan otras tareas.

Las instrucciones en cdigo maquina que irnplementan la instruccin de alto


nivel se almacenan junto con los datos en memoria principal. En este caso la
instruccin printf tiene wmo datos la frase que muestra en pantalla que se
almacenar en una zona especial de memoria dedicada a los datos.

Las instrucciones de cdigo mquina estn codificadas como una serie de


unos y ceros. En la figura 1.7 se muestra la secuencia de instrucciones mquina
que corresponderan a la instruccin pr int f. Cada instruccin (cdigo de ope-
racin + operandos) ocupa 8, 16 o 24 bits, siendo la longitud de palabra de la
memoria de 8 bits. Los cdigos binarios que codifican las instrucciones corres-
ponden a la CPU de INTEL 8085, y han sido fijados con el Cinico propsito de
ilustrar esta seccin. En el capitulo 2 se muestra el formato de las instrucciones
mquina, as wmo los diferentes tipos de instrucciones.
18 ESTRUCTIIRA DE COMPUTADORES Y PFWE~ICOS ORA-MA

Escribir un programa en cdigo mquina es una tarea ardua y nada sencilla.


Se requiere un conocimiento completo de la arquitectura del computador para el
que se est desarrollando el programa. Es ms sencillo escribir un programa en
un lenguaje de alto nivel ms o menos estndar y cuyo juego de instrucciones
apenas cambia de una mquina a otra. Posteriormente, un programa llamado
compilador, especifico para cada mquina, se encargar de traducir las instruc-
ciones de alto nivel a instrucciones mquina.

Contenido Ensamblador

1
ioiclo : W(I H. TABLA
Zona de
ADDL cdigo
MOV l A

...
...
Unidad TABLA
de Control
Zona de
control datos

...
Figura 1.7: Cdigo mdquina y lenguaje ensamblador equivalente a la instruc-
cin p r i n t f

Se puede hacer ms agradable la escritura en cdigo mquina asignndole


un nemnico a cada instruccin y utilizando etiquetas para designar direcciones
de memoria. Esto es lo que se conoce como cdigo ensamblador. Este cdigo
tiene una relacin directa y biunvoca con el c6digo mquina, pero la utiliza-
cin de nemnicos y etiquetas lo hace ms legible que su equivalente mquina.
La figura 1.7 ilustra el cdigo mquina equivalente de la instruccin p r i n t f
que est ejemplificando esta instruccin. Se incluye al lado de cada instruccin
m6quina (slo estn las primeras) el nemnico equivalente en ensamblador que
lo hace mucho mis legible. En la zona de cdigo se incluyen las primeras ins-
trucciones y en la zona de datos se almacena el cdigo ASCII equivalente del
munsaje " E s t a i n . ..
133 Flujo de datos
El proceso de ejecucin de la instrucci6n p r i n t f consistir en ejecutar ca-
& una de las instrucciones del cdigo mquina en las que ha sido traducida.
Para ello, una vez que se ha terminado de ejecutar la ltima instruccin miquina
anterior, se inicia el ciclo de btsqueda de la nueva instruccin. El ciclo de
bsqueda consiste en realizar una copia de la instnicci6n a ejecutar en un regis-
tro interno de la CPU denominado registro de instmcd6n. Esto se consigue
gracias a que la CPU almacena la direccin de la siguiente instruccin a ejecutar
en el registro contador de programa. La CPU fija esta direccin en el bus de
direcciones y genera las seales del ciclo de lectura. Una vez transcurrido el
tiempo de acceso a memoria el &to contenido en esa direccin estar en el bus
de datos y se captura en el registro de instruccin.

Cuando se tiene almacenada la wpia de la instruccin se inicia la secuencia


de acciones especficas para cada instruccin. Para ello se decocca la instmc-
cin y la unidad de control habilita los caminos de datos para que se produzca
el flujo de datos, captunrndo los operandos necesarios para realizar la operacin
determinada en la instruccin. De hecho estos datos fuente para la operacin
pueden estar situados en lugares diversos del computador: en la misma instmc-
cin, en registros internos de la mquina o en memoria principal. La manera en
que se establece el lugar de almacenamiento de los operandos fuente o resultado
constituyen los moda8 de direceionamiento.

CPU I I MEMORIA
! ! Direccibn Contenido Ensarnblador
Unidad
Aritrndtico
igica de Contml

Figura 1.8: Bsqueda de la instruccin LXI D


Como ejemplo se va a considenir el caso del flujo de datos del cdigo que
se ha mostrado en la figura 1.7. La instruccin en c6digo mquina a ejecu-
tar ser la instruccin contenida en la direccin a la que apunta el contador de
programa de 16 bits (PC=0000000011110101). Esta instniccin es O0110001
(LXI D) que carga en el registro D el byte contenido en la direccin apuntada
por el registro HL.A l decodificarse el cdigo de operacin de este primer byte
la unidad de control constata que la instruccin est formada por 2 bytes ms
que son la direccin absoluta que se debe cargar y se acceder6 a ellos. Esta
direccin almacenada en 2 bytes est descrita en ensamblador como la etiqueta
TABLA. De esta manera,utilizando nemnicos y etiquetas se hace ms cmoda
la programacin a bajo nivel del computador. Realizar esta programacin en
c6digo mquina puede llegar a ser inabordable, siendo los compiladores los que
se van a encargar de realizar la transformacin de lenguaje de alto nivel a cdigo
mquina.

En la figura 1.8 se muestra cmo se accede a la direccin de memoria prin-


cipal apuntada por el PC iniciando el ciclo de bsqueda. Dicho dato (lm byte
de la instruccin) se carga en el registro de instruccin, finalizando el ciclo de
bsqueda e inicindoseel ciclo de ejecucin de la instruccin con la decodifica-
cin de la instruccin por la unidad de control. Este ciclo de ejecucin fuerza a
su vez que se carguen los siguientes bytes (que son la direccin de la tabla) en el
registro HL.Esto se muestra en la figura 1.9. Se supone que en esta mquina el
registro funcionar como puntero a tabla utilizando el direccionamiento relativo
a registro base que se expondr en el captulo 2.

La afirmacin de que siempre es deseable resolver una tarea lo ms rpida-


mente posible se traduce en h5rminos inform4ticos en que siempre es deseable
utilizar los circuitos digitales ms rpidos. Esto no es siempre posible, ya que
habitualmente las mayores prestaciones en trminos de velocidad van ligadas
a un mayor coste econmico. Muchas veces la mayor velocidad en la ejecu-
cin de una tarea sistemtica sobre una serie de bits (por ejemplo, una inversin
lgica) viene delimitada por el tipo de circuito digital que se utilice. Realizar
la operacin simulheamente sobre todos los bits es ms r6pido que realizar la
operacin secuencialmente sobre cada bit. En el primer caso se realiza la opera-
U ESTRUCiWiU DE COMPUTADORES Y FWU@WCOS ORA-MA

e Tecnologa: Ei tipo de transistores que utiliza el CI para irnplementar la


circuitera digital definen la tecnologa del CI. De esta manera los CIs
basados en transistores bipolares o BJT (Bipolar Junction li-ansistor)ori-
ginaron diversas familias tecnolgicas, entre ellas la popular 'ITL (Tmn-
sistor Transistoriogic).Esta tecnologa ha tenido como ventajas su facili-
dad para suministrarcorriente y su rapidez, apareciendo como desventajas
su alto consumo y su poca capacidad de integracin en comparacin con
la tecnologa CMOS (Complernentary Metal Oxide Semiconductor). Esta
segunda tecnologa se basa en la utilizacin de transistores de efecto cam-
po, y es la elegida en la actualidad para fabricar la mayora de CPUs. La
gran sencillez de esta lgica y su gran capacidad de integracin ha propi-
ciado su utilizacin de forma masiva en los computadores actuales. Como
desventaja bsica se tiene que su consumo es lineal con la frecuencia y
cuadrtico con la tensin de alimentacin, lo que provoca una gran disi-
pacin de potencia en los procesadores actuales que funcionan con una
frecuencia de reloj de varios cientos de MHz. Esta iimitacin ha propi-
ciado la utilizacin de la tecnologa CMOS con menor tensin de alimen-
tacin (3.3 y 3 voltios), redefiniendose los niveles lgicos, ya que el '1'
lgico coincide con la tensin m& alta del circuito. Otra tecnologa como
la BiCMOS combina en un solo proceso tecnolgico transistores BJT y
CMOS, intentando combinar las ventajas de ambos tipos de tecnologa.
Veloddad: La velocidad de los CIs hace referencia al tiempo de respues-
ta y los retrasos inevitables que aparecen en su funcionamiento. Esto en
el caso de los CIs ms sencillos depende directamente de la tecnologia
utilizada, pero en el caso de CIs ms complejos (en el caso extremo los
procesadores) depende de la arquitectura y organizacin de los mdulos
que lo forman. De esta manera,la frecuencia de funcionamiento no es una
medida viida para procesadores donde hay que tener en cuenta factores
como los ciclos por instruccin o el repertorio de instrucciones, tal como
se justificad en la seccin 12.5. En cualquier caso, la ejecucin de una
tarea se acelerar si se realiza en paralelo sobre la mayor cantidad de infor-
macin posible respecto a la misma tarea realizada de forma secuencial.
El estribh en que la ejecuci6n paralela requerir ms circuitos
que realizarn la misma tarea, lo que provocar que el tamao del circuito
sea mayor.
Escaia de integraci6n: Los CIs CMOS se construyen a partir de un pro-
ceso litogrco, en el que de forma secuencial se van aplicando diver-
ORA-MA WfTUUJ 1. INTR~DuCC~~N
A LA ESTRUCTLIRADE COMPUTADORES 23

sas mscaras que proyectan las siluetas de los polgonos que forman los
transistores sobre un material fotosensible depositado sobre una superfi-
cie circular (oblea) de silicio. El tratamiento qumico de esta oblea y la
aplicacin ordenada de las mascaras provoca la aparicin y crecimiento
de los diversos tipos de difusiones que forman los transistores. El proceso
de impresin de las mscaras sobre la supercie de silicio se realiza con
una ptica muy compleja que reduce los segmentos mnimos hasta Uegar
a las mioras. Este tamao mnimo debe garantizar que las difusiones y
polgonos que forman los transistores van a estar bien definidos y que no
se van a destruir en los mltiples procesos qumicos a los que se somete
la oblea. Obviamente, cuanto mejor y ms preciso sea el proceso tec-
nolgico de creaci6n de las difusiones, los tamaos podrn ser menores,
y por tanto en una misma super6cie de silicio se podi$ incluir ms lgica

m Ismaao: Si se pretenden realizar CIs muy complejos stos incluKgn una


gran cantidad de componentes lgicos y por lo tanto transistores, lo que
se traducir en una supercie mayor de silicio. La impresin de un cir-
cuito en una oblea de silicio tiene unos costes que se pueden considerar
como fijos. Si el circuito es muy grande cabrn pocas copias en la misma
oblea, con lo que el coste de produccin se amortizar6 entre unas pocas
muestras. Sin embargo si el circuito tiene una menor complejidad cada co-
pia ocupar6 poco silicio, con lo que en una oblea de tamafio constante se
poner muchas muestras, 6 que abaratar6 los costes de produccin
- - Adicionaimente es inevitable la existencia de imperfeccio-
por ejemplar.
&es en la oblea, lo cual va a generar ejemplares defectuosos. s i el CI es
pequeo y por tanto en una oblea caben muchas muestras, la influencia
porcentual de los ejemplares defectuosos ser pequefa. Sin embargo si
el CI es grande y caben pocas muestras la misma cantidad absoluta de
ejemplares defectuosos ser ms importante porcentualmente, lo cual en-
carecer m6s aun el precio por CI.Es por tanto interesante observar el
fuerte crecimiento del coste de un CI con la superficie que ocupa (y por
tanto la complejidad que tiene). De esta manera no siempre las soluciones
ms veloces son siempre posibles, ya que requieren de aproximaciones
paralelas con CIs muy complejos, lo que requiere una gran supefficie de
silicio que muchas veces tiene un coste prohibitivo.
24 ESTRU- DE MMrmTADORESY PERIX&RICOS ORA-MA

1.4.2 Circuitos de memoria


El almacenamientode la informacin se realiza en dispositivos de memoria,
capaces de mantener la informacin binaria que se ha escrito con la posibilidad
de recuperarla. En el capftulo 4 se describir de qu manera se debe organizar
la memoria de un ordenador para combinar rapidez y capacidad de almacena-
miento. Los diversos dispositivos & memoria se distribuyen en una jerarqua en
la que estn ms cerca de la CPU los dispositivos m6s rtpidos y en los niveles
ms alejados los ms lentos. Los dispositivos de memoria ms externos estn
encargados de realizar el aimacenamiento masivo, y se revisarn con detalle en
el capitulo 11. En esta seccin se van a introducir los diversos tipos de circuitos
de memoria habitualmente utilizados en un computador.

Los parmetros ms importantes que nos van a permitir medir la bondad de


los diversos circuitos de memoria son:

e Tiempo de acceso o tiempo necesario para recuperar una informacin


previamente almacenada en memoria. Hay que distinguir entre memorias
de acceso aleatorio, donde el tiempo de acceso es el mismo para todos los
datos contenidos en la memoria y no depende de la posicin que ocupa,
y memorias de acceso secuencial. donde el tiempo de acceso a una dato
depender de la posicin que ocupa en la memoria.

e Densidad de informaci6nimpuesta por la tecnologa utilizada. Las diver-


sas tecnologas que permiten almacenar informacin ocupan un espacio
distinto por bit. Es deseable poder almacenar gran cantidad de informa-
cin en el menor espacio posible, teniendo de esta manera memorias de
una gran capacidad.

Volatiiidad de la memoria o prdida de la informacin si no se mantiene


una alimentaci6n constante en el circuito. Es importante que la informa-
cin de configuracin del computador o p r o g r ~ a sinicia& de arranque
permanezcan siempre almacenados, recuperndose de forma automtica
2 conectarse la alimentacin e iniciarse el funcionamiento del computa-
dor.
ORA-MA 1. INTR~JDucu~N ALA ESTRUCilJRA DE COMfUTADORES 25
CAP~LO

RAM esttica asncrona

Una RAM esttica asncrona o SRAM (Static Random Access Memory) es


una memoria voltil, de acceso aleatorio muy rpido en las que se puede alma-
cenar v leer informaci6n en el sistema. Esta caracterstica las hace ideales vara
A

su utilizacin como memoria principal en computadores. Lamentablemente su


-
alto coste hacen vrohibitiva su utilizacin de forma masiva como memoria urin-
&

cipal directamente; direccionable en muchos computadores, quedando relegada


su utilizacin a registros y memoria cache (el nivel ms cercano al procesador
de la jerarqua de memoria, tal como se explicar en el captulo 4).

La celda de almacenamiento SRAM contiene 4 transistores MOS que alma-


cenan un 1 o un O mientras se mantenga la alimentacindel circuito. La escritura
y lectura de la memoria SRAM se hace con niveles de tensi6n generados en el
mismo computador, con lo que no es necesario ningn dispositivo especial para
poder escribir la memoria.

RAM esttica sncrona

Esta RAM utiliza la misma tecnologa que las SRAM asncronas, con lo
que son vol&iles y de un rpido acceso. La diferencia estriba en que existe una
sefial de reloj que sincmniza el proceso de lectura y escritura. Esto puede ser
til cuando se van a realizar accesos a direcciones consecutivas en memoria:
en primer lugar se suministra la direccin base y despus, en cada flanco, la
memoria proporciona el dato (lectura) o se le suministra el dato a escribir. Este
es el tipo de acceso a memoria conocido como rfaga o burst.

Las memorias cache externas de algunos microprocesadores son de este tipo


para facilitar el acceso de datos en modo rfaga y acelerar el proceso de acceso
a bloques de memoria.

RAM dinmica

La RAM dinmica o DRAM (Dynarnic Random Access Memory). Son me-


morias voltiles y de acceso aleatorio al igual que las SRAM. Los elementos de
memoria son capacidades a las que se accede con un solo transistor, en vez de
26 ESTRUCNRA DE COMPUTADORES Y PERIFRIcoS @RAMA

celdas con vanos transistores, con lo que se consigue una muy alta escala de in-
tegracin. El inconveniente principal de esta tecnologa es que las capacidades
se descargan mediante la comente de prdidas de los transistores. Esto obliga a
tener que realizar un refresco peridico de las capacidades si se quiere evitar que
se pierda la informacin. En los ciclos normales de lectura y escxituni habr que
intercalar ciclos de refresco, de manera que ser necesha una lgica adicional
que se encargue de realizar estos ciclos. De manera adicional una desventaja de
este tipo de memorias es su lentitud si se comparan con las SRAM.

La memorias DRAM tienen una estructura en forma de matriz, estando las


dirwcines multiplexadas en filas y columnas. Para acceder a una posicin de
memoria de una DRAM (tanto para leer como para escribir) se debe en primer
lugar depositar la parte alta de la direccin en el bus de direcciones (fila), va-
lidarla para que la DRAM la capture, y posteriormente hacer lo mismo con la
parte baja de la direccin (columna). A pesar de que esta forma de acceso ra-
lentiza ms an el acceso a las memorias DRAM, este tipo de memorias son las
utilizadas como memorias principales de los ordenadom, ya que se consigue
una alta densidad de informacin a bajo coste.

Las memorias DRAM tienen modos de acceso ms rpidos en los que se su-
ministra la parte alta de la direccin y posteriormente se suministra solamente la
parte baja de posiciones de memoria consecutiva. Este modo de acceso se deno-
mina modo pagina y acelera el acceso a las DRAM al no tener que suministrar
para cada acceso la direccin completa.

Anlogamente a las SRAM sncronas se han desmlado, y estn teniendo


una gran introduccin en el mercado de ordenadores personales, las SDRAM
o (Synchmnous Dyn-c Random Access Memory). Estas memorias DRAM
sncrow, al igual que las SRAM sncronas, permiten las transacciones en modo
rfaga.

Memorlas ROM

Las memorias ROM (Read Only Memory)son memorias no voltiles de ac-


ceso aleatono y de slo lectura. Una vez han sido escritas o programadas slo
se puede leer el contenido de las celdas. Se suelen utilizar para almacenar el
cdigo que permite arrancar a los sistemas una vez se suministra la alimenta-
ORA-MA O\PfTUU) 1. INTR~DUCCINALA ESTRUCiWRA DE COMPUTADOES 27

cin o las nitinas del sistema, Las ROM se fabrican para aplicaciones masivas
con mscaras de silicio. Si la aplicaci6n es un prototipo o la produccin va a ser
baja no es viable la inversin en mascaras de silicio para la fabricaci6n de las
ROM. Afortunadamente hay tres tipos de ROM que pueden ser programadas en
el laboratorio, algunas de ellas incluso pueden ser borradas.

w Memoria PROM: Las PROM o (Programmabk Read Only Memories)


son memorias ROM programables elkctricamentemediante un programa-
dor especial que genera picos de tensin altos, generando corrientes que
funden fsicamente unos fusibles grabando el dispositivo de forma perma-
nente. Tienen el inconveniente de que no pueden ser borradas y de que el
proceso de escritura se debe realizar con una tarjeta especial.
w Memoria EPROM: Las EPROM o (Erasable Programmable Read Only
Memries) se programan tambin con un dispositivo de programaci6n es-
pecial conectado a un ordenador. La diferencia con las PROM es que las
EPROM s que se pueden borrar. El borrado se realiza mediante rayos m
Para eilo las EPROM tienen un pequea ventana de c m o transparente
a los UV mediante la cual se realiza la exposicin de la matriz de celdas.
Una vez estn programadas deben cubrirse con una etiqueta para evitar el
borrado accidental de la memoria
w Memoria EEPROM: Las EEPROM o (Electrcally Erasable Program-
mable Read Onty Memories) son memorias progam>bles y borrablis me-
diante un dispositivo especial que se conectar a un ordenador. Este pro-
gramador/borrador de EEPROM~genera picos de tensin para la proba-
macin y borrado de las EEPROM.

Memoria FLASH

Las memorias Flash son memorias de lecturalescntura de acceso aleatorio


no voltiles. Su comportamiento para lectura es exactamente igual al de una
SRAM, pero para escritura es diferente, deben ser primero borradas y despus
escritas. Adems la especial configuraci6n interna de las Flash hace que deban
ser borradas completamente o al menos el sector adecuado para escribir aunque
slo sea un byte. Una memoria Flash tiene internamente un registro de ins-
truccin y una mquina de estados que genera las seales de control internas
necesarias para borrarlescribir en un bloque o toda la memoria.
Estas memorias estn desplazando a las EEPROM y EPROM como almace-
namiento de programas de arranque reprogramables debido a que no necesitan
alimentaciones altas para reprogramarlas, al contrario que las EEPROM. S610
con la aiimentacin de +5V se puede reazar la reprogramaci6n de estas me-
morias, con lo que se pueden incluir en un computador como ROM del sistema,
reprogramndolas sin extraerlas.

1.5 CUESTIONES

1.1 Representar mediante un diagrama de bloques la estructura de un compu-


tador bsico o modelo VonNeumann.

1.2 Qu es el reloj de un computador? Por qu es necesaria esta seAal?


Razonar qu ocurre si esta seal deja de aplicarse. iQupasard si se aumenta
la frecuencia de reloj?

1 3 Explicar brevemente cmo se representa la informaci6n en un computa-


do,: Cmo es posible representar caracteres aEfanunaricos y nmeros si-
multneamente?

1.4 Enumemr losprincipalesregistros internos de la CPU. 2 Cudl es la utilidad


bdsica de cada uno de ellos?

1.5 Qu diferencias hay entre el cdigo de alto nivel como el C, el ensam-


blador y el cbdigo mdquina? Puede ejecutarse programa en cdigo rnquina
en CPUs diferentes? Cul es el proceso que se debe seguir para ejecutar un
mismo programa escrito en C en CPUs diferentes?

1.6 Enumerar las funciones bsicas de los buses de dimcciones, datos, control
y alimentacibn.

1.7 De qu material estn realizados los circuitos integrados? ,jCmo se con-


sigue integrar millones de transistores en circuitos de unos pocos milimetros
cuadrados ?
1.8 Qu es un tmnsductor? Indicar un ejemplo de transductoresde sonido.

1.9 Enumerar las partes en las que se divide una CPU bsica. Cul es la
jmeidn de cada una de ellas?

1.10 Cuando se dispone de un computador que est alimentado, pero que no


est realruuido ningn programa de usuurio, est parado el procesador? ~ Q u 4
est haciendo?

Fundamentos de los Computadom. Estructura, funcionamiento in-


temo, software de sistemas. E de Miguel. Editorial Paraninfo. Madrid,
1999. ISBN 84-283-1790-9.
Estmctura y Tecnologa de Computadores 1. C. Cenadn i! Feliu.
Universidad Nacional de Educacin a Distancia. Madnd, 1994. ISBN:
84-362-2963-0.
Estructura y Tecnologa de Computadores 11.S. Dormido, M. A. Canto
YJ. Mim. A E. Delnado. Universidad Nacional de Educacin a Distancia.
UNIDAD DE CONTROL: EJECUCI~N
DE INSTRUCCIONES

En el captulo 1 se ha introducido la estructura general de un computador. A


partir de esta nocin bsica, el objetivo del presente captulo es describir de una
forma ms detallada todos los elementos que lo constituyen, introduciendo el
esquema de un computador elemental genrico. Este esquema es til para estu-
diar el funcionamiento interno de la CPU a nivel de transferencia de informacin
entre registros. Para iniciar este estudio se introduce el concepto de instruccin
mquina desde el punto de vista de la informacin que debe contener y cmo se
divide en los diversos campos que definen su formato. Tambin se analiza bre-
vemente el funcionamiento de los registros, pieza clave en la construccin del
computador, mostrando cmo se realiza el transvase de la informacin desde
unos registros a otros. Para representar grficamente el secuenciamiento de las
instrucciones se utilizan los cronogramas de ejecucin, en los que se muestra la
secuencia de activacin de las seales de control de todos los elementos internos
de computador.

Posteriormente se profundiza en el estudio de la unidad de control (UC),


incluyendo sus componentes, la forma en que ejecutan las instrucciones en el
procesador y su diseo. Para implementar la UC se tendrn en consideracin
dos mtodos, el primero de ellos utiliza lgica cableada y el segundo utiliza la
tcnica de microprogramacin. Para cada una de las dos alternativas se reali-
zarn ejemplos y se comentarn sus ventajas e inconvenientes.
32 ESTRUCTURA DE COMPUTADORESY PE&RICOS ORA-MA

Por ltimo, se repasa la evolucin de los procesadores comerciales ms po-


-
pulares, viendo sus caractersticas y tendencias de diseo. Como inicio del desa-
m110 del tema se muestra la figura 2.1. donde se puede observar la arquitectura
bisica de un computador Von Neumann. Dicha arquitectura est formada por
los siguientes elementos:

m Registros generales

m Unidad aritmeticolgica

e Unidad de control
e Buses del sistema

e Registros & comunicacin con los buses del sistema

e Buses internos

.--.---.-----------------

-
I
1
I
I PeriiBrlm
! Unldad Unidad ,j
! AntrnBtlw de PeMBrlw
I Lgica
A
control
A
i 1
Unidad
I
de
Entradal
jiijzq I
I
Salida
L - - - - - - - - - - - - - - - - -..
CPU
-----4
;
b Y

Mernorla Principal
periieriw 1
Figura 2.1: Esquema bsico de la arquitectura Von Neunuuvl

2.2 REPERTORIO DE INSTRUCCIONES

Para programar las tareas que se desea que ejecute el procesador, los usua-
nos a menudo construyen programas utilizando lenguajes de alto nivel como
son el C o el Pascal. Estos programas no son directamente interpretables por
el computador, sino que estn a medio camino entre el lenguaje humano y el
@RA-MA CApfi'ULO 2. UNIDAD DECONTROL: WECUCI~NDE WSTRUCCIONES 33

lenguaje de los computadores. Un computador s610 entiende el cdigo binario,


por tanto una descripcin de un programa en lenguaje de alto nivel debe ser tra-
ducido o compilado a este lenguaje de unos y ceros interpretable directamente
por el procesador.

Las instrucciones que interpreta y ejecuta el procesador se denominan ins-


trucciones mpbqnina o instrucciones del computador. La CPU realiza dife-
rentes funciones aue son un reieio de la variedad de las instruccionesaue tiene
definidas. Todo eiconjuntode &trucciones distintas que puede ejecutar la CPU
se denomina repertorio de instruedones. El diseo de un re~ertoriode instmc-
cienes es complejo, ya que define las funciones que realiza la CPU y es el medio
que tiene el programadorde controlarla. En consecuencia deben considerarselas
necesidades del programador a la hora de realizar su diseiio.

En la construccin de computadores comerciales, lo que interesa es que sean


rpidos y econmicos, por lo que habrd que dotarles de un conjunto bien selec-
cionado de instrucciones que permitan al usuario formular cualquier tarea de
procesamiento de datos. Un programa escrito en alto nivel debe traducirse a
lenguaje mquina para ser ejecutado, para ello el repertorio de instrucciones
mquina debe ser suficientemente amplio como para expresar, con una o varias
instrucciones, cualquier instruccin de un lenguaje de alto nivel.

El juego de instrucciones de un computador debe cumplir dos condiciones:

Completitud: Debe poder calcular, en un tiempo finito, cualquier tarea


computable.

Eficacia: Debe permitir una alta velocidad de clculo, sin exigir a cam-
bio una excesiva complejidad de la unidad de control ni de la unidad
aritmtica.

Adems, cada una de las instrucciones mdquina que compone el repertorio


de instrucciones debe cumplir unas caractersticasgenerales que son las siguien-
tes:

1. Las instrucciones realizan una funci6n nica y sencilla, por lo que su de-
codificacin por la CPU es senda.
2. Una misma instruccin emplea siempre un nmero fijo de operandos. Di-
ferentes instrucciones pueden tener diferente nmero de operandos.
3. La codificacin de las instrucciones es sistemtica, puesto que facilita su
decodiicaci6n.
4. Las instruccionesson autocontenidase independientes, es decir, contienen
toda la infamacin necesaria para ejecutarse. Deben expresar: el tipo de
operacin a realizar, el valor o la posicin donde se hailan los operan-
dos, el lugar donde se tiene que depositar el resultado y la ubicacion & la
siguiente instruccin. La CP ejecutar la instruccin siguiente almace
nada en el cdigo del programa si no se indica explcitamente la direccin
de la nueva instmccin a ejecutar.

Dependiendo de la operacin que realice una determinada instruccin, el


procesador para ejecutarla puede necesitar algn tipo de informacin adicional,
que incluye: cuntos operandos n d t a la operacin, dnde estn almacena-
dos o dnde debe almacenar el resultado. Los elementos constitutivos de una
instruccin mquina con los que se indica al procesador toda esta informacin
son:

Cdigo de operaci6n: Especifica mediante un c6digo binario la opera-


cin a realizar. Tambin se conoce por su acrnimo CO o el de las siglas
en ingles apcode.
R e f e d a a operando8 fuente: La instruccin contiene los operandos
de la instruccin o en caso contrario indica dnde se encuentran en me-
moria.
Referenda al operando remitado: Si la instruccin produce algn re-
sultado indica dnde se almacena.

Aunque las instrucciones mquina son cadenas de unos y ceros, para identi-
ficarlas ms fcilmente, se emplear& sus nombres ms comentes (en ingls) a
modo de nemnicos. Los cdigos nemnicos empleados por los ensambladores
permiten a los programadores no trabajar directamente con los cdigos binarios,
lo que facilita la programacin. Una vez realizado el programa ensamblador se
encarga de traducir la secuencia de nemnicos a cdigos binarios interpretables
ORA-MA 2. UNIDAD DE CONTROL: E I E C U C ~ NDE INSTRUCCIONES 35
CAP~WLO

por el computador. Aunque cada procesador implementa un conjunto particu-


lar de instrucciones mftquina, todos los repertorios de instrucciones de distintos
computadores guardan una similitud. A continuacin se detallan los tres princi-
pales grupos de instrucciones que puede presentar un computador.

Instrucciones de transferencia de datos

Las instrucciones de transferencia de datos permiten copiar, en el operando


destino, la informacin almacenada en el operando origen, quedando este ltimo
sin modificar. En las instrucciones de transferencia junto al cdigo de operacin
se debe especificar informacin referente al dato que se ha de transferir. En pri-
mer lugar debe especificar el origen y el destino de la transferencia que pueden
ser una posicin de memoria o un registro. En segundo lugar, debe indicarse la
longitud del dato a transferir. Un ejemplo de este tipo de instrucciones es la ins-
truccin MOVE destino, origen que transfiere el dato desde la posicin origen a
la destino.

Instrucciones aritmticas y lgicas

Este tipo de instrucciones efectan alguna de las cuatro operaciones aritmti-


cas bsicas de suma, resta, multiplicacin y divisin, o operaciones lgicas
bit a bit como son: AND, OR o XOR. Cada instruccin se aplica sobre unos
operandos de un tipo concreto. Estas instrucciones estn siempre disponibles
para nmeros enteros con signo (punto fijo), existiendo a menudo su equiva-
lente para nmeros en punto flotante. Un ejemplo es la instruccin ADD desti-
no,operandol,operando2 que realiza la suma de los dos operandos almacenando
el resultado en la posicin destino.

Instrucciones que modifican la secuencia del programa

Cuando el procesador ejecuta un programa, va leyendo de memoria las ins-


trucciones situadas en las posiciones a las que va apuntando el registro PC de
forma sucesiva. Cuando se termina de ejecutar una instruccin, el PC se incre-
menta y se procede a cargar la instruccin siguiente. Las instrucciones de salto
permiten modificar la secuencia normal de ejecucin del programa. En estas
instrucciones se especifica la diccin de la siguiente instruccin a ejecutar. El
procesador al ejecutarlas copia la nueva direccin en el PC, lo que produce un
salto en el secuenciamiento de las instrucciones del programa. Un ejemplo de
este tipo de instrucciones es JUMP direccin, que carga en el registro PC el
contenido del campo direccin. Existen distintos tipos de bifurcaciones, que se
detallan a continuacin:

1. Bifurcaciones incondicionales. Este tipo de bifurcaciones cambian el


secuenciamiento del programa siempre que se ejecutan, modificando el
valor del registro PC con el valor contenido en su campo de operandos.

2. Bitiuraciones condicionales. En las instrucciones de salto condicional


se hace la bifurcacin (se actualiza el contador de -programa
- con la direc-
cin especificada en el operando) slo si se cumple una condicin dada,
que habitualmente depende
- del resultado de la ejecucin
- de la instruccin
anterior. En caso contrario, se ejecuta la instruccin inmediatamente pos-
terior de la secuencia (se incrementa el contador de programa de la forma
habitual). La condicin se basa en el estado de los bits del registro de
estado, que se actualizan al ejecutarse algunas operaciones. Este registro
se llama registro de estado e indica, por ejemplo, si en la ejecucin de la
ltima operacin se produjo un resultado negativo o un desbordamiento.

3. Bifurcaciones con retorno. Otro tipo de instrucciones que modifican la


secuencia de un programa son las bifurcaciones con retorno. En este gru-
po se distinguen las instrucciones de salto a subnitina y las de retorno
de subnitina. Las primeras producen un salto incondicional a una diec-
cin especificada en el operando, pero con la salvedad de que de forma
automtica el procesador almacena en memoria, en una zona reservada
previamente llamada pila, la direccin siguiente a la instruccin de salto.
La pila es una estructura de datos que se organiza segn la filosofa ltimo
en entrai: primero en salir, de ah el acrnimo LIFO (Las?In, First Out).
Para manipular una pila, la CPU posee uno o varios registros punteros de
la pila llamados SP (Stack Pointer) que apuntan a la direccin de memoria
donde se encuentra la cima de la pila, es decir, el ltimo dato introducido.
El segundo tipo de bifurcaciones con retorno produce un salto incondicio-
nal a una direccin que se lee de la pila.
ORA-MA 0
- 2. UNIDAD DE CONTROL: HTBCUCI~NDEiNSTRUCCIONES 37

Este grupo contiene instruccionesque no pueden ser incluidas en ninguno de


los conjuntos anteriores. El primer ejemplo es la instrucci6n NOP, que no hace
nada y normaimente se utiliza cuando es necesario un tiempo de espera. Otra
instruccin de este grupo es HALT, que para la ejecucin de instrucciones. Por
ltimo, la instruccin INT activa una intemipci6n software y rompe la secuencia
actual de ejecucin de instrucciones. Esta ltima instnicci6n se explicar con
mayor detalle en secciones posteriores.

2.3 MODOS DE DIRECCIONAMIENTO

Las diversas formas con las que se puede hacer referencia, tanto a los ope-
rando~fuentes como a los resultados, originan los modo8de direcdonamiento.
Este pnicedimiento sirve para deteminar la ubicaci6n del operando que depen-
diendo del tipo de instrucci6n puede estar en:
La propia i n s t d 6 n : Parte de los bits que componen una instruccin
sirven para almacenar el valor del operando.
Memoria prindpal: Los datos para realizar la operaci6n estn almacem-
dos en la memoria principai, y parte de los bits de la instmcci6n contienen
la direccin donde se almacena el operado en memoria. A esta diwci6n
se le llama direcci6n efectiva del dato.
Registro8 internos de la CPU:Los datos ya se encuentran en los registros
de almacenamiento interno de la CPU como resultado de la ejecucin de
operaciones anteriores.

Las diversas tcnicas de direccionamiento deben presentar un compromiso


entre el rango de direcciones al cual permiten acceder y la flexibilidad de direc-
cionamiento, as como entre el nfimero de referencias a memoria y la compleji-
dad del ciculo de las direcciones. Los programas utizan normalmente varios
modos de direccionamiento que facilitan:
1. El ahom de espacio. Mientras ms cortas sean las instrucciones, menos
espacio de almacenamiento necesitarn los programas y menos bits se
38 ESTRUCTURA DE COMPUTADORBS Y PIE&RICOS ORA-MA

tendrn que leer de memoria principal para ejecutarlo. En este sentido,


sern convenientes direccionamientos que ocupen poco espacio.

2. La generacin de edigo reubicable. Cuando el sistema operativo carga


un programa en memoria para ser ejecutado, es deseable que el programa
se pueda almacenar en diversas m a s de memoria.

3. El manejo de estructuras de datosl. El manejo de estructuras de datos,


tales como: tablas, matrices, colas o listas, se simplifican con el empleo
de algunos modos de direccionamiento relativos, tal como se mostrar6 en
las siguientes secciones.

A continuacin se analizan con detae los modos de direccionamiento que


uilizan la mayora de computadores acaiales.

Direccionamiento inmediato

La forma ms sencilla de direccionamiento es el direccionamiento inmedia-


to, en el que el operando este presente en la propia instruccin. El uso de este
direccionamiento implica que la instruccin opera con un valor constante, que se
d e h e a la hora de crear el programa. La principal ventaja del direccionamien-
to inmediato es que. una vez cargada la instruccin, no se requiere una nueva
referencia a memoria para obtener el operando, ahorrndose de esta manera un
ciclo de memoria en la ejecucin de la instruccin. La mayor desventaja es que
el rango de valores de un operando inmediato queda limitado por el tamao del
campo empleado por la instruccin para almacenarlo, que en la mayora de los
repertorios de instrucciones es pequeiio comparado con la longitud de palabra.

Hay procesadores que permiten distintos tamaos de operandos inmediatos,


adaptando la instruccin al tamao de dato deseado. Al poder tener instruccio-
nes con formatos de una sola palabra o de varias palabras, no se desperdicia
memoria en los operandos con un valor pequefio. Adems, las instruccionescon
este tipo de modo de direccionamiento son m8s r6pidas de procesar, puesto que
el operando se encuentra ya en el registro de instruccin IR al final de la fase
de bsqueda de instruccin. El caso del formato con dos palabras de memoria,
donde la segunda palabra contiene el operando inmediato, requiere una l e c m
ORA-MA CAP~TUU)2. UMDAD DE CONTROL: EJECUCI~NDE iiiSTRUCCIONES 39

de memoria adicional antes de disponer del operando. La figura 2.2 muestra la


disposicin del operando con este tipo de direccionamiento.

. ------------ --- ----


e

Operando
. --------------------
Reglstmde lnsbuocidn
, Zona de Ctdigo
CO :Operando lnmedlato
COI Operando Inmediato ....................

. .........-..------
'i

t _.li-dn
nks lectura cido blisqueda

Figura 2.2: Direccionamiento inmediato

Direccionamiento directo

Un modo de direccionamiento se denomina diecto cuando la instruccin


contiene la direccin en memoria del operando. El operando puede estar en
cualquier zona de la memoria siempre que se encuentre dentro del rango de po-
siciones direccionables. La principal ventaja es su sencillez, puesto que no ne-
cesita ningn clculo previo para conocer la direccin final de memoria del dato.
La limitacin obvia es que dependiendo del nmero de bits de la instruccin que
se utilicen para representar esta direccin se tendr un rango de posiciones de
memoria ms o menos amplio. Si ste fuera el nico direccionamiento de que
dispone el procesador el CD o cdigo de direccin, debera tener la suficiente
longitud como para direccionar todo el mapa de memoria. Se puede conseguir
mayor capacidad de direccionamiento utilizando formatos de dos palabras, si
bien esto aade una lectura de memoria adicional. En la figura 2.3 se muestra
un esquema con el mtodo de obtencin del operando con el dicionamiento
directo.
!
40 ESTRUCRJM DE COMPUTADORES Y PEMI&UCOS ORA-MA

Operando .-~-----~--~-~~~--~
ni-
Regkbo de Insi~cc6n
, Zona de Cddlgo
CO ; Direod(in op.

Zona de Datos

MEMORIA 1)
P ledura (operando)

Figura 2.3: Direccionamiento directo

Direccionamiento meianteregistro

En este tipo de direccionamiento el operando se encuentra almacenado en


uno de los registros internos de la CPU. En la instruccin existe un campo que
sirve para identificar el registro que contiene el dato. Una ventaja que presenta
este modo de direccionamiento es que no precisa ningnciclo de lectura adicio-
nal para acceder al dato. Adems, la lectura en los registros intemos es mucho
ms rpida que en memoria principal. con lo que se acelera la ejecucin de la
instruccin, y slo es necesario un campo pequeo de direcciones en la instruc-
cin.

Para conseguir la implementacinde programas con buenas prestaciones es


necesario utiiizar este modo de direccionamiento de forma extensiva y eficiente,
ya que eliminan accesos a la memoria. Por ejemplo, las variables que utilice
un programa es bueno mantenerlas en registros y no en memoria principal. La
figura 2.4 mue~traun esquema de cmo se obtendra el operando.

Direccionamientorelativo a registro

En el direccionamiento relativo a registro el dato al cual se desea acceder


reside en memona. La direccin efectiva del dato la calcula el procesador su-
mando una cantidad (iiamada desplazamiento) al valor contenido en un registro.
ORA-MA CAPfiLnO 2. UNIDAD DE CONTROL: E~WUCI~N
DE INSTRUCCIONBS 41

Operando
.--------------------
.--------------------
ZOM de CWigO
Registro de Inslniocibn
CO ! Reiemncia a reg.
CO; Rehtrenda a w.

CPU

R1 Operando Zona de Datos

MEMORIA

Figum 2.4: Direccionamiento mediante registm

En la instrucci6n se debe especificar el desplazamiento y el identificador del re-


gistro (aunque este ltimo a veces viene determinado por el tipo de instruccin).

Este modo de direccionamientofacilita el acceso a un conjunto de posiciones


de memoria especificadas a partir de una direccin consideradacomo referencia
Este modo de direccionamiento permite acceder a todo el espacio de direccio-
namiento del procesador, empleando un nmero de bits en el campo CD muy
inferior al necesario si se utilizase direccionamiento absoluto. En contraposicin
se requiere realizar la operacin de suma del puntero wn el desplazamiento an-
tes de obtener la direccin del operando, lo que supone un retraso adicional sin
embargo pequeo, en comparacin con un ciclo de lectura a memoria. por lo
que en general el tiempo de ejecucin de la instruccin no se ve penalizado.

La mayora de los computadores tambin permiten desplazamientos uega-


tivos en tomo a la direccin de referencia, O en complemento a dos. Existen
varios tipos de direccionamientos relativos a registro en funcin del registro que
se utiza como puntero (PC,pila o registro base), pero todos ellos siguen el
mtodo que se describe en la figura 2.5.

El direccionamiento relativo ni registro contador del programa es un ca-


so particular de direccionamiento relativo a regisstro que emplea como puntero
el registro contador del programa. Ya que el contador de programa se incre-
menta cada vez que se lee una instruccin, la posicin de re.ferencia es la de la
instruccin siguiente.
42 ESTRUCNRA DB COMPUTADORES Y PFT&MCOS @RlcMA

Zona de Cbdlp

Figura 2.5: Direecionamiento nelativo a negistro

Se suele emplear para direccionar i n s t d o n e s cercanas a la instruccin en


curso y para ejecutar saltos relativos. En estos @timos, al ejecutarse la ins-
truccin, la nueva direccin calculada se almacenar en el mismo contador de
Programa.
El direcdonamiento relativo al registro base emplea como puntero un re-
gistro de propsito general o dedicado exclusivamente para este in que se d e
nomina registro base. Dado que los computadores disponen de varios registros
que pueden acniar como base, la instruccin deber contener un identificador
del mismo, adems del desplazamiento, para calcular la direccin efectiva del
dato tal como indica la figura 2.5.

Este direccionamientoes muy convenientecuando se dispone de una zona de


datos (como un conjunto de variables). Cargando en el registro base la primera
posicin de esta zona, se pueden alcanzar los distintos datos slo con conocer
su posicin relativa en la zona de datos.

El direccionamieniorelativo a pila suma el desplazamiento contenido en


la instnicci6n con el valor del registro SP para obtener la direccin del objeto.
En ocasiones ni siquiera existe tal campo de desplazamiento y las instruccio-
nes de dkccionamiento de la pila se refieren implfcitamente al elemento que
se encuentra en la cima, siendo las operaciones de introducir un dato y extraer
un dato las nicas permitidas de manejo de pila. Este direccionamiento pemri-
te instrucciones muy compactas, puesto que la instruccin no requiere ningn
desplazamiento.
ORA-MA CAPfTULO 2. UNIDAD DE CONTROL: EJECUCI~NDE INSTRUCCIONES 43

Direccionamiento indexado

El mecanismo de direccionamiento es exactamente el mismo que el visto


para el relativo a registro base, con la diferencia significativa de que el valor del
registro ndice se suele modificar con frecuencia en la ejecucin de un programa,
mientras que en el caso de direccionamiento relativo al registro base no.

El direccionamiento indexado se utiliza habitualmente como mecanismo efi-


ciente vara recorrer estructuras de datos tipo vector o tabla. Para recorrer este
tipo de estructuras, el procesador realiza incrementos o decrementos del registro
de forma automtica tras cada referencia. Esto se denomina auto-indexado y da
lugar a cuatro variantes de este modo de direccionamiento:

Preautoincremento y Preautodecremento: El registro ndice es incre-


mentado (o decrementado) y seguidamente se obtiene la direccin como
suma del registro ndice ms el desplazamiento.
Postautoincremento y Postautodecremento: F'rimero se calcula la di-
reccin sumando el registro ndice ms el desplazamiento y seguidamente
se incrementa (decrementa) el registro ndice.

Direccionamiento indirecto

El problema del direccionamiento directo es que la longitud que tiene el


campo de direcciones en la instmccin es normalmente menor que el nmero de
bits que utiliza el procesador para especificar las direcciones, por lo que se limita
el rango de direcciones accesible. El direccionamiento indirecto soluciona este
problema, ya que el campo de direcciones contiene la direccin de una palabra
de memoria que no contiene el dato, sino la direccin de memoria donde se
encuentra &te. Un esquema de este modo de direccionamiento se muestra en la
figura 2.6.

La ventaja obvia de esta aproximacin es que ya no existe la limitacin en


el conjunto de direcciones accesible. La desventaja es que la ejecucin de la
instruccin requiere dos referencias a memoria para obtener el operando: una
para obtener su direccin, y otra para obtener su valor.
---..............-..
Zona de W i g o

Zona de Datos

m u r a 2.6: Direccionarniento Nidirecto

Este tipo de direocionamiento esta especialmente indicado en aplicaciones


que utilizan datos situados en posiciones distantes en la memoria, por ejemplo,
la transferencia de parmetros de un programa principal a subnitinas.

El direccionamiento indirecto se puede combinar con todos los tipos de di-


reccionamiento relativos vistos anteriormente. As mismo, se pueden plantear
direccionamientos directos de ms de un nivel, aunque esto no tenga una gran
utilidad, puesto que exige varios accesos a memoria y ocupa varias posiciones
de memoria.

Una variante del direccionamiento indirecto es el dirdonamiento indi-


recto con registro, en el cual el campo & direcciones, en lugar de hacer refe-
rencia a la direcci6n de una palabra de memoria, hace referencia a un registro
que contiene la direcci6n en memoria del operando. Ntese que el direcciona-
miento indirecto con registro emplea una referencia menos a memoria que el
diicionamiento indirecto.

En la tabla 2.1 se muestran, de forma comparativa, las principales ventajas y


desventaias
" de los diversos modos de direccionamiento descritos en el caotulo.
En dicha tabla los corchetes [Dir] deben leerse como contenido de la direccidn
Dir y Dir(0p) como dimccidn del operando.
Modo Algoritmo Prlndpai ventaja Prlnclpal desventaja
lnmedtato Op=A No referencia a mem. Operandos limitados
Mrecto abs. Dir(Op)=A Sencilo Espacio de dir. limitado
Mediante reg. Op=R No referencia a mem. Espacio de dir. limitado
Relativo a reg. Dir(Op)=[Rl+A Flexibilidad Complejidad
lndexado Dir(Op)=[R]+A Flexibilidad Complejidad
Indirecto Dir(Op)=[[A]] Espacio de di?. grande Referencia extra a mem.
Tabla 2.1: Ventajas y desventuja~de los modos de direccionamiento

2.4 FORMATO DE INSTRUCCIONES

Como se ha visto mt&ormente, cuando se crea un programa se almacena


en un conjunto de posiciones en la memoria como una serie de 1's y O's. El
cdigo binario de cada instruccin se debe interpretar para diferenciar entre los
diferentes campos que contiene la instruccin (cdigo de operacin, modo di-
recdonamiento, etc). El formato de la instruccin indica los campos y el tamao
de los mismos para cada instruccin. En el diseo del formato de las instruc-
ciones la primera decisin a considerar es el tamao de las instrucciones. Para
tomar esta decisin se tienen que considerar los siguientes aspectos.

El tamao de la memoria
La organizacin de la memoria

La estructura de buses
La complejidad de la CPU y su velocidad

El diseo del formato define la riqueza y flexibilidad del procesador desde


el punto de vista de su programacin. El compromiso ms obvio est entre el
deseo de disponer de un repertorio de instrucciones mquina potentes y la nece-
sidad de simplificar su decodificacin y ejecuci6n. Con la idea de simplificar su
decodificacin, la instruccin se divide en una serie de campos (cadenas de bits
contiguos), estando referido cada campo a un tipo de informacin especifico.
Los dos campos bsicos en un formato son el cdigo de operacin (CO), que
indica la operacin a realizar, y el campo de d i c i n (CD), que determina la
46 ESTRUCURADE COMPUTADORES Y RICOS (c>RA-MA

direcci6n de un dato, resultado, o instrucci6n a la que hay que bifurcar. El cam-


po de dimxi6n. dependiendo del tipo de direccionamiento, se divide en sub-
campos. Adems de estos dos campos bsicos, se suelen encontrar campos de
extensin del cdigo de operacin, campos de longitud de operandos, campos
de modo de direccionamiento, etc.

Las camtersticas generales que deben reunir los formatos de instrucciones


son:
l. Un computador tiene uno o unos pocos formatos de inst~cci6n.Cuantos
menos formatos se tengan, m6s senciiia ser6 la unidad de control que deba
decodificarlos.
2. Los formatos son sistemtiws. Los campos del mismo tipo tienen la mis-
ma longitud y deben ocupar las mismas posiciones dentro de las instruc-
ciones. De esta manera, se simplifica la decodificacin. El primer campo
suele ser el cdigo de operacin.
3. Para acortar el tamaiio se emplean ampliamente las &nicas de direccio-
namiento irnplfcito. As,exceptuando las instrucciones de bifurcacin, no
existe campo de instruccin siguiente. Se sobreentiende que esti4 en la
direcci6n siguiente. As mismo, no suele existir campo para especificar la
representacin de los operandos, el cdigo de operaci6n implica el tipo de
operandos.
4. Los tamaos de los formatos encajan fcilmente en la palabra del compu-
tador. Lo ms Comentees que el formato ocupe una palabra, pero tambictn
son frecuentes los formatos de lL2, de 1 + lL2, y de 2 palabras.
5. Cuando el computador tiene varios formatos, el cdigo de operacin dife-
rencia entre ellos.
6. Los tamaos de los campos que expresan direcciones, ya sean del banco
de registros o de memoria principal, deben corresponder a los mapas de
direccionamiento del procesador.

Campo de cdigo de operacin

Este campo especifica la operacin que realiza cada instruccin. Hay tantos
cdigos de operacin distintos como instrucciones diferentes posea el computa-
ORA-MA cAPTU.0 2. UNIDADDE CONTROL: EJBCUCI~N
DE E V S U C O 47

dor. El nmero de instrucciones que constituyen el repertorio & un computador


vendr6 limitado por la longitud de este campo. Todas las instrucciones contie-
nen el campo de c6digo de operacin, a diferencia &l campo de direcci6n que
es opcional. El cdigo de operacin implica normalmente el tipo de operando.
Por ello se emplean cdigos & operacin distintos para diferenciar una misma
operacin con distintos tipos de datos. Cuando las instrucciones pueden tener
ms de un formato, el cdigo de operaci6n, que siempre es el primer campo del
formato, debe indicar el formato de la instruccin actual. De esta manefa, la
unidad de control puede saber a partir de la primera palabra leida si ha de hacer
ms accesos a memoria o no para completar la instrucci6n en curso.

Si el tamao del campo de cdigo de operacin es fijo para todos los posibles
formatos de instrucciones &un procesador, y este campo tiene a bits, se podrn
tener Za cdigos diferentes cada uno de elios asociado a una instrucci6n dife-
rente. Dado que la frecuencia de utilizacin de las instcuccioncs difiere mucho
de unas a otras, para optimizar el espacio ocupado por los programas, se pue-
de emplear una codificaci6n que utilice menos bits para las instrucciones ms
frecuentes. Pero la utilizacin & esta tcnica complica mucho el diseo de la
unidad & control. Algunos procesadores emplean como solucin la extensin
del campo del cdigo de operacin. Esta tecnica consiste en el uso de un campo
de cdigo de operacin fijo y reducido, con el que se codifican las operacio-
nes ms utilizadas. Para la codificacin del resto de instrucciones se usa, junto
con un c6digo de operaci6n especial que no se corresponde con ningn cdigo
perteneciente a instrucciones anteriores, un campo de extensin del cdigo de
operacin que permite identificar las instrucciones restantes.

Campo de direccin

Las instrucciones pueden contener varios campos de direccin para identifi-


car las posiciones de memoria o los registros internos donde se encuentran sus
operandos, as como la posicin del resultado. Cada instruccin puede tener un
nmero diferente de operandos. Hay instrucciones sin operando, como HALT
o NOP, o con un solo operando, como las instrucciones de salto incondicional
o de llamada a submtina. Las instrucciones de dos operandos son las que reali-
zan operaciones aritmtico lgicas didicas, que guardan el resultado en uno de
los operandos origen, perdindose su contenido anterior. De tres operandos son
tambin las instrucciones que realizan operaciones aritmtico lgicas didicas,
pero que almacenan el resultado en un lugar distinto de cualquiera de los dos
- El nmero de campos de direccin que deben tener los for-
operandos origen.
matas para minimizar la memoria reqierida es dificil de evaluar, ya que depende
de muchos factores: la arquitectura considerada, el tipo de algoritmo a ejecutar,
la forma de programacin, etc.

Los campos de d i i c i n pueden dividirse a su vez en subcampos tal como


se muestra en la figura 2.7. El motivo de esta divisin es que para determinar la
direccin del operando, es posible utilizar varias tcnicas o modos de direccio-
namiento, pero cada una de ellas tiene distintas necesidades de codificacin.

M& de Campo de registra Desplazamiento. inrnedlaio, Direccin abxdm


dlreucimamienio
MD CR D

Figura 2.7: Subcampos en el campo de direccidn

Los subcampos ms significativos contenidos en el campo de direcciones


son:

e Modo de direceionamiento (MD):


Es un campo donde se c d i c a el
modo de direccionamiento a emplear para localizar ese dato.

e Campo de registra (CR): Especifica un registro de la CPU.

e Campo de dlleedn (D): Dependiendo del modo de direccionamiento


empleado, contiene la direccin absoluta, el desplazamiento relativo, el
operando inmediato, etc.

Los tamaos de los campos que expresan direcciones absolutas, ya sean de


-
los registros - de direccio-
internos o de la memoria, deben abarcar todo el mapa
nes. Sin embargo, los campos de desplazamiento no tienen esta necesidad.
ORA-MA CAF'fTUL0 2. UNDDAD DE CONTROL: E ~ C U C I ~ N DINSTRUCCIONBS
E 49

Campo de condici6n

En las instrucciones de salto condicional se ha de codificar la condicin ne-


cesaria para que se produzca el salto, para ello se emplea un campo especfico
para indicar esta condicin. A continuacin se mostrarn dos mtodos para co-
dificar la condicin.

1. El campo de condici6n consiste en una mscara binaria de condicin. La


m8scara. tal como se muestra en la figura 2.8, contiene un bit por cada uno
de los bits del registro de estado que pueden utilizarse en la condicin.
Tambien puede contener un bit para cada indicador complementado. Se
fijaran a 1 los bits de la mscara correspondientes a los bits del registro de
estado que se debern examinar, dejando a O los dems. La CPU utiliza la
mscara para realizar ciertas operaciones lgicas con los valores actuales
del registro de estado. As, si el resultado de la operacin lgica es cierto
se producir el salto, en caso contrario se seguir la secuencia ordinaria
de ejecucin de instrucciones.
Campo de mscara de condki6n

Regigtro de estado

Figura 2.8: Campo de mscara de condicidn en las instrucciones de salto

2. Otra alternativa consiste en la codificacin d h t a de la condicin de salto


en el oampo de condicin. En este mtodo se emplea un cdigo binario
distinto para cada una de las condiciones contempladas por las instnic-
ciones de salto. La unidad de control necesita realizar una decodificacin
previa para determinar los bits de estado implicados en cada condicin.
50 ESTRUCTCJRA DE COMPUTADORESY PEREikIC0S ORA-MA

2.5 ARQUITECTURA DE UN COMPUTADOR


ELEMENTAL

Como base para la definicin y explicacin de los conceptos del presente


-
captulo, se va a definir un computador elemental genrico,
- basado en la arqui-
tectura Von Neumann. Aunque es un ejemplo con una arquitectura muy elemen-
tal, incluye las unidades funcionales que todo computador debe poseer, por lo
que servik para sentar las bases que -tan el eitudio de arq&ecturi mtis
complejas y de mayores prestaciones.

2.5.1 Esquema del computador elemental


En una primera divisin el computador elemental se compone de procesa-
dor (CPU) y memoria. Los elementos & entrada salida y los perifricos no se
incluyen, con el n de simplificar el funcionamiento general. Dentro de la CPU
se encuentra la Unidad de Control (UC), la Unidad Aritmtico-Lgica (ALU)y
los registros internos. Tanto los mdulos internos de la CPU como los externos,
para poder intercambiar informacin entre ellos necesitan estar interconectados
por medio de buses. Estos buses son simplemente hilos metlicos que conducen
las seales elctricas desde un elemento hasta otro. El estudio detallado de los
buses se realizara en el capitulo 6. La figura 2.9 muestra el esquema completo
del computador.

A continuacin se revisarn cada uno de los elementos que componen el


computador elemental ejemplo, definiendolas especificaciones funcionales y las
sefiales necesarias para su control. Todas estas seales son activadas de fonna
secuencial por la UC para reazar la lectura y ejecucin de las instniccionesque
forman el programa y que se encuentran almacenadas en la memoria.

Registros internos

En el captulo 1 se introdujo el concepto de registro interno. Estas celdas de


memoria internas a la CPU guardan datos provenientes de la memoria, resulta-
do3 parciales de las operaciones o informacin sobre el estado actual de la CPU.
Cr da procesador tiene un nmero detenninado de registros internos. Un aspecto
ORA-MA CAPhVU) 2. UNIDADDE CONTROL: EIECUCI~NDE INSTRUCQONES 51

Builhltw

Memoria =-CS
-WR
pmolpal .-RD

Figura 2.9: Esiructum de un computador elemental Von Neumann

importante a tener en cuenta es el tamao de los registros internos de datos, que


indica cul es el nmero mximo de bits que puede tener un operando, y con
cuntos bits la CPU puede realizar operaciones en paralelo. A este valor se le
llama Longitud de palabra del procesador. Los registros internos ms usuales
son:
m Registro de Instnieei6n: Es el registro donde se almacena la instruccin
a ejecutar una vez que la CPU la ha ledo de memoria. Este registro suele
estar dividido en campos, cada uno de los cuales tiene un nmero de bits
variable con cada arquitectura. Los campos que formas el registro vie-
nen dados por el formato de las instrucciones del procesador, y dividen el
registro en los campos del c6digo de operacin (CO), direcciones de ope-
rando~(CD). etc. En la CPU ejemplo se considera que este registro tiene
16 bits, por lo que para completar la lectura de una instruccin se deben
leer de memoria dos palabras de 8 bits. Los primeros 4 bits son el campo
de cdigo de operacin y con ellos se indica de qu6 insmiccin se trata.
A conti~uaci~hay 12 bits para el campo de operando. Este operando se
especifica siemm mediante direccionamientodirecto, en el cual el camuo
dila insmcci&contiene la dwci6n de memoria donde se encuentra-el
operando.
52 ESTRUCTWA DE COMPUTADORES Y PERI&.RlCOS ORA-MA

Para poder almacenar las instrucciones que se leen de la memoria, el IR


utiliza dos seales. La primera, llamada (IR-Cl), carga los 8 bits ms
bajos del registro (JR[7:0]). La segunda, llamada (JR-CZ), carga los 8
bits ms altos (IR[15:8]). Para habilitar la salida al bus de direcciones del
contenido del campo CD (IR[4: 151) se utiiza la seaal (m-E).
Registros de propsito general: Son registros internos a la CPU que
sirven para almacenar datos o resultados intermedios. En el procesador
ejemplo se dispone de un nico registro, llamado acumulador (AC) , que
almacena el resultado de la ltima operaci6n realizada en la ALU.Este
mgistro posee dos seales, una de carga (AC-C) y otra de habilitacin de
la salida de datos al bus interno (AC-E). En otros procesadores el nmero
de registros de este tipo suele ser muy supexior, permitiendo guardar en la
propia CPU datos que se quieren modificar o utilizar de forma frecuente.
Registro de estado: Almacena en cadauno de sus bits de wndici6n(tam-
bin llamadosflags), informaci6n sobre los resultados de operaciones an-
teriores. En la CPU del computador ejemplo se incluyen los siguientes
indicadores, por ser los ms frecuentes:
- Z: Es el indicador de cero. Almacena un 1 cuando el resultado de la
ltima operacin reaikada en la ALU es cero.
- N Es el indicador de negativo. Almacena un 1 cuando el resultado
de la ltima operacin realizada en la ALU es menor que cero.
- C: Es el indicador de acarreo. Almacena un 1 cuando el resultado de
la ltima operaci6n de la ALU produjo un acarreo en el ltimo bit.
- O: Es el indicador de desbordamiento. Almacena un 1 cuando el
resultado de la ltima operaci6n realizada en la ALU y almacenado
en el registro AC es incorrecto. Esta situaci6n se produce debido a
que el resultado no se puede representar con los bits que tiene el AC.
- P: Es el indicador de paridad. Almacena un 1 cuando el nmero de
unos del resultado de la ltima operacin realizada en la ALU es par.
- CP: Es el indicador de acarreo parcial. Almacena un 1 cuando el
resultado de la ltima operacin la ltima operacin en la ALU pro-
dujo un acarreo entre el cuarto y el quinto bit.

Contador de programa PC. Este registro contiene la direcci6n en me-


mona de la prxima instrucci6n a ejecutar por el computador. Debe ser
actualizado por la nnidad de control cada vez que se carga una instnic-
cin. El tamao del registro PC de la arquitectura ejemplo es de 12 bits,
y se incrementa dos veces en cada lectura de una instruccin, ya que las
instrucciones son de 16 bits y ocupan dos posiciones de memoria de 8 bits
cada una. El registro PC es un contador y se incrementa su valor cada vez
que se activa la seal (PC-INC).
Registras de interfaz con el bus. Son registros internos a la CPU que
almacenan datos que el procesador enva o captura del bus extemo de
direcciones o del de datos. El registro MAR almacena la direccin que se
pretende poner en el bus externo de direcciones. En el registro MAR la
transferencia es unidirecciond, por ello slo hay una seal de habilitacin
triestado para depositar la direccin en el bus externo (MAR-E), y una
seal de carga para tomar los datos del bus interno (MAR-C). Por otro
lado, el registro MDR contiene el dato que el procesador va a enviar o a
leer del bus externo de datos. La transferencia de informacin del registro
es bidireccional, ya que los datos que se cargan en l provienen del bus
interno del procesador y se dirigen hacia el bus externo o viceversa. En el
caso del MDR hay dos sefiales de carga, una para datos procedentes del
bus interno (MDR-CI) y otra para los datos del bus externo (MDR-CE),
igualmente las sefales de habitacin se duplican en interna (MDR-CI) y
externa (MDR-CE).

Unidad Arimtico-Lgica: ALU

Como ya se ha indicado en el captulo 1, la ALU es la parte de la CPU encar-


gada de realizar todas las operaciones aritmtico-lgicas dentro del computador.
En el caso del computador ejemplo se tiene una ALU de dos entradas, la entrada
~ -

A recibir los datos directamente del AC y la entrada B recibir los datos prove-
nientes del registro interno MDR.Antes de realizar una operacin se tendr que
cargar el registro MDR con uno de los operandos y habilitar la salida de datos de
este registro al bus interno de datos. El otro operando deber estar almacenado
en el registro acumulador (AC).
La ALU recibe la informacin sobre el tipo de operacin que debe realizar,
mediante la activacin de las entradas de operacin (OP). En el computador
ejemplo estas operaciones quedan restringidas a las 6 siguientes:

e OP(OOl)=A+B: suma de los valores de las entradas.

OP(OlO)=A+l: suma del valor de la entrada A y 1.

OP(Oll)=A-B: resta de los valores de las entradas.

OP(lOO)=A and B: AND lgico bit a bit de los valores de las entradas.

OP(101)=A or B: OR lgico bit a bit de los valores de las entradas.

e OP(llO)=B: muestra por la salida el valor de la entrada B.

Debido a que son 6 operaciones distintas se tendrn que codificar utilizando


3 lneas de operacin. Las entradas a la ALU sern por tanto (OP[3: 11). Tambin
se supondrque el tiempo necesario para realizar cualquiera de las operaciones
no supera la mitad de un periodo de la seal de reloj que gobierna el computador.

Unidad de control: UC

Su funcin principal es el gobierno interno del computador. Se encarga de


leer la instruccin adecuada de la memoria, de decodificarla y de ejecutarla.
La ejecucin se consigue mediante la generacin de la secuencia de rdenes
adecuadas aplicadas a cada elemento del computador. Por tanto la UC tendr
que activar todas las seales de control necesarias para:

e Realizar la transferencia de informacin entre registros. En cada transfe-


rencia de datos slo puede haber un registro origen, por lo que no deben
activarse las salidas triestado de dos registros a la vez. En cuanto a la
carga de estos datos en el registro destino se realizar mediante la seal
de carga que ser activa por flanco. Esta seial se activa a mitad del pe-
riodo de la seal de reloj para permitir que los datos provenientes de otro
registro estn estables en el bus.
ORA-MA CAPfTULO 2. UMDAO DE CONTROL: EJECUCIN DE MSTRUCCIONES 55

-
Generar las seales de operacin -
de la ALU,- deoendiendo de si la ins-
truccin que se quiere ejecutar realiza alguna operacin aritmtico-lgica.
Anteriormente se deben situar los datos en sus entradas correspondientes
habilitando los registros de datos AC y MDR.

Memoria principal

La memoria principal es la parte del computador en la que se almacenan


instrucciones y datos. La rnemoria se implementa fsicamente mediante un con-
junto de circuitos integrados, y se comporta como un conjunto ordenado de
registros. El contenido de estos registros se puede leer y modificar de forma
aleatoria activando un conjunto de seales (lneas de direccin), que los identi-
fica individualmente de forma unvoca. Adems la memoria posee el siguiente
conjunto de seales de control:
CS: Seleccin de la rnemoria.
RD: Lectura.
WR: Escritura.

Para realizar un ciclo de lectura de memoria, la UC debe de llevar la direc-


cin de la posicin de memoria que desea leer al registro MAR.Este registro
tiene unos drivers que permiten activar el bus de direcciones externo del pro-
cesador que conecta con la memoria. A continuacin el procesador activa las
seales CS y RD,y espera a que la memoria deposite los datos en el bus. Este
periodo de espera es el tiempo de acceso de la memoria, definido como el tiem-
po que necesita la memoria para almacenar o sacar los datos, medido desde la
activacin de las seales de control. Se supone que en el computador ejemplo
este tiempo de acceso es de medio periodo de la seal de reloj del procesador.
Para finalizar el acceso, los datos provenientes de la memoria se cargan en el
registro MDR. Para ello la UC debe de activar la seal de carga de este registro.
Esta secuencia de activacin de seales se cumplir tanto en los ciclos de lectura
de instrucciones como en los de datos.

Los ciclos de escritura comienzan de igual forma con la carga de la direc-


cin en el registro MAR y del dato a escribir en el registro MDR.Cuando estas
seales estn estables en los buses externos se activan las seriales CS y WR.
56 ESTRUCTURA DE COMPUTAWRES Y PER&UMS ORA-MA

2.5.2 Operaciones con registros


Un registro se puede considerar como una celda de memoria formada por
biestables en los que se almacena un dato o una palabra de infmaci6n. La
operaciones bsicas que se pueden realizar sobre 61 son las siguientes:

Operacin de carga: Almacena un nuevo valor en el registro. Para reali-


zarla ser6 necesario poner el nuevo valor en la entrada y posteriormente
activar la sefial de carga del registro.
Operacin de l e . : Permite la salida del dato contenido en el registro.
Habitualmente todos los registros internos del procesador comparten un
mismo bus para realizar la transferencia de informacin, pero slo uno de
ellos podr usar el bus en un determinado momento. La sefal de salida o
habilitaci6n actuar sobre puertas ttiestado para conectar el registro al bus
y por tanto permitir que los datos contenidos en el registro pasen al bus.
Operacin de reset: Inicializa el valor contenido en el registro a un valor
conocido.
Operacin de inmmento: Algunos registros pueden incrementar su valor
de forma autnoma, estos registros se denominan contadores.
Operacin de desplazamiento: Hay registros que presentan operaciones
de desplazamiento de sus bits hacia la izquierda o derecha. Este tipo de
operacin se ver con ms detalle en el capitulo 3.

Las operaciones de transferencia sobre registros son tiles para transferir


el valor contenido en uno de elios hacia otro. Siemme debe haber un reeistro
A -
origen, en el cual se encuentra el dato original, y un registro destino en el cual
se almacena. Adems debe haber una conexin entre los dos registros para que
se produzca el intercambio de informacin, que puede ser un bus de datos com-
partido por ms de dos elementos. Primero hay que permitir volcar los datos
desde el registro inicial al bus mediante la habilitacin de sus puertas triesta-
do. Simultneamente hay que deshabilitar las salidas triestado el resto de los
elementos con acceso al bus, para evitar la generacin de valores errneos o in-
cluso averas fsicas. Una vez que los datos se han estabilizudo en el bus hay
que indicar al registro destino que los datos ya son correctos y que los puede
@RAMA CAPhVI.0 2. UNIDAD DE CONTROL: EIECUCIONDE INSTRUCCIONES 57

capturar. Esto se realiza mediante la activacidn de la lnea de carga de este re-


gistro. Un esquema del proceso a seguir en la transferencias se observa en la
figura 2.10.

Peso 1: H a b i l i n del registro origen y desWilitaci6n de otras salidas al bus

Peso 2: Estabilizacibnde los datos en el bus

Paso 3: Captura de los datos ya estebilizados

Figura 2.10: T m f e m n c i a elemental mediante un bus

Otro modo de realizar la seleccin del camino de conexin entre el regis-


tro origen y el registro destino es mediante la utilizacin de multiplexores. La
salida del multiplexor se conecta a la entrada del registro destino, y las entra-
das del multiplexor a la salida de cada posible registro origen. Para realizar la
transferencia hay que seleccionar el origen de los datos mediante las seales
de control, esperar a que se estabilice el dato, y habilitar la seal de carga del
registro destino.
58 E S T R U W DE COMPUTADORBSY P ~ R I C O S ORA-MA

2.5.3 Instrucciones
El repertorio de instrucciones de un computador est formado por el con-
junto de todas las instrucciones que puede ejecutar. En el computador ejemplo
se considera que el microprocesadores capaz de ejecutar 16 instrucciones, aun-
que hay destacar que en los procesadores~comer~iales actuales este nmero es
mucho mayor. Una vez que la UC ha cargado la instruccin a ejecutar en el
registro iR, decodica el campo CD para saber de qu6 instruccin se trata. En
el computador ejemplo este campo tiene 4 bib, con los que se pueden codificar
16 instrucciones distintas. Estas instrucciones se pueden agrupar en 4 tipos:

e instrucciones aritmticas y lgicas: Son instrucciones que realizan una


operacibn wn dos datos contenidos, uno en la posicin de memoria cuya
diieccin esta contenida en el campo CD y otro en el acumulador. El
resultado de las operaciones se guarda en el AC. La UC es la encargada
de transferir los valores iniciales a las entradas de la ALU, de activar el
cdigo de la operacin en las sefiales OP, y de guardar el resultado en el
registro AC. Se han implementado5 instrucciones diferentes:

- ADD CD: Suma los dos operandos y guarda el resultado en el AC.


- iNC AC: incrementa el valor del acumuladoren una unidad.
- SUB CD.Resta los dos operandos y almacena el resultado en el AC.
- AND CD: Instruccin lgica and bit a bit de los operandos almace-
nando el resultado en el AC.
- OR CD:Instruccin lgica or bit a bit de los operandos almacenando
el resultado en el AC.

instrucciones de transferencia de datos: Son instrucciones que copian el


dato contenido en el registro interno AC de la CPU a memoria y viceversa.
En el campo de direccin de la instruccin se tiene que indica la posicin
de memoria donde se desea escribir o leer el dato.
- LW CD: Lee el valor contenido en la posicin de memoria CD y lo
almacena en el AC.
- SW CD:Escribe el valor contenido en AC en la posicin de memoria
indicada por CD.
ORA-MA CAP~TIILO2. UNIDAD DE CONTROL: EIECUCI~NDE INSTRUCCIONES 59

Instrucciones de salto: Son instrucciones que alteran la secuencia natural


de ejecucin de un programa. El campo CD de la instruccin contiene la
direccin de la nueva instruccin a ejecutar. La instruccin sustituye el
contenido del registro PC que contiene la direccin de la prxima instruc-
cin a ejecutar con el valor del campo CD.
- JMP CD: La prxima instruccin a ejecutar es la contenida en me-
mona en la posicin CD. Se produce un salto de foma incondicio-
nal.
- JM- CD: Instruccin de salto condicional. Dependiendo del valor
del indicador de estado correspondiente se rompe la secuencia de
ejecucin de instrucciones. Si se cumple la condicin la CPU sal-
tar a ejecutar la instruccin contenida en la posicin CD, en caso
contrario se ejecuta la instruccin siguiente a la actual. Las condi-
ciones de salto estn almacenadas en el registro de estado de la CPU.
Se pueden distinguir varias instrucciones distintas dependiendo del
indicador considerado. En cada caso el procesador saltar si el indi-
cador adecuado est activo.
* JMZ CD: indicador de cero.
* JMN CD: indicador de negativo.
* JMC CD: indicador de acarreo.
* JMO CD: indicador de desbordamiento.
* JMA CD: indicador de paridad.
* JMCP CD: indicador de acarreo parcial.
m Otras instrucciones: Dentro de este grupo se incluyen instrucciones de
carcter general no contenidas en ningn grupo anterior. En el procesador
ejemplo se han implementadodos instrucciones:
- NOP: Instruccin que indica no hacer nada.
- STP: Instruccin de paro del procesador. Al ejecutarla el procesador
para la secuencia de lectura y ejecucin de instrucciones.

Todas las instrucciones presentan el mismo formato, donde los 4 bits me-
nos significativos contienen el cdigo de operacin, y los 12 bits siguientes el
cdigo binario del campo de direccin, que permite direccionar 4 Kbytes de me-
moria. En el caso de la instruccin INC, que no precisa de campo de diieccin,
el contenido del mismo no se tiene en cuenta. Ya que todas las instrucciones
tienen la misma longitud, el ciclo de bsqueda de las instrucciones consta de
2 accesos a memoria, con lo aue se simvlifica el diseiio de la UC al no haber
casos especiales. En los procesadores reales esta circunstancia puede cambiar
al haber instrucciones de diferentes tamaos, aue necesitan un nmero diferente
de accesos a memoria para su lectura.

Los computadores son sistemas sincmnos que e s t h gobernados por una


seal de reloj. Se denomina operacin bsica a las operaciones de transfe-
rencia que se realizan en el interior de la CPU. Estas operaciones bsicas tienen
una duracin mnima determinada por el tiempo que transcurre entre 2 flancos
consecutivos de la seal de reloj. E computador &a ejecutar una determinada
instrucci6n realiza una serie de operaciones bisicas siguiendo un determinado
orden. En un mismo periodo de 6seal de reloj realizarse varias opera-
ciones bsicas en paralelo, si stas no interfieren al usar un mismo bus o algn
elemento interno del procesador.

Las instrucciones tpicas que ejecuta un computador suelen tener un periodo


de ejecucin dividido en cuatro fases. En general cada fase durar ms de un
periodo de la seal de reloj, realizndose en cada fase una serie de operaciones
bsicas que pueden ejecutarse en paralelo o en serie. Las fases que componen
una instruccin son:

Lectura de la instruccin (fetch):Ocurre al comienzo de la ejecucin de


cada instruccin y ejecuta la bsqueda de la instruccin en memoria. El
primer paso en esta fase consiste en cargar el MAR con el contenido del
registro PC.Posteriorniente el procesador tiene que activar las seales de
lectura de la memoria, guardar el dato en el registro MDR y por ltimo
transferirlo al registro IR. Este proceso de lectura se realizar6 en el com-
putador ejemplo dos veces debido a que las instrucciones son de 16 bits, y
los buses externos de datos y la memoria se consideran con una longitud
de palabra de 8 bits.
Decodi3cacinde la instruccin y lectura de lw operandos: El siguien-
te paso es la decodificacin de la instruccin en la unidad de control. Jun-
ORA-MA capfirno2. UNIDAD DE CONTROL: WECUCI6N DE iNSTRUCCIONS 61

to con la decodiiicacin se tienen que buscar los operandos que utiliza la


instruccin. Como se explic en las secciones anteriores los modos de di-
reccionamiento indican la ubicacin del operando, bien sea en memoria,
en la pmpia instruccin o en algn registro del procesador. En el proce-
sador ejemplo slo se considera un modo de direccionamiento en el cual
la instruccin tiene un campo que contiene la direccin del dato situado
en memoria. En las operaciones que necesiten dos datos el segundo se
supondr siempre contenido en el registro AC.
a Ejecucin de la operacin: En esta fase la UC activa las seales de con-
trol de los registros internos, para transferir la informacin necesaria entre
elios y realizar las operaciones adecuadas con la ALU.Las 2 fases ante-
riores realizan la misma secuencia de ordenes bsicas, pero en esta fase
por el contrario, esta secuencia depende de la inshuccin que se est e j e
cutando.
Aimacenamiento de los multados: En esta fase se almacena en el lu-
gar adecuado, dependiendo del modo de direccionarnientoempleado en la
instruccin, el dato que resulta de la ejecucin de la fase anterior.

Es posible que algunas instrucciones simples no necesiten todas las fases,


aunque la de lectura y la de ejecuci6n siempre deben estar presentes.

A continuacin, se van mostrar algunos ejemplos de ejecucin de instruccio-


nes. Para ello se utilizarn cronogramas que representan el estado de las seales
de control en cada uno de los ciclos que dura la ejecucin de la instruccin.

2.6.1 Cmnograma de ejecucin de la instruccin ADD #4 5 6


Esta instruccin realiza la suma de sus operandos y el resultado lo almacena
en el registro AC. El primer operando est situado en el registro AC y el segundo
se encuentra en la posicin de memoria que especifica la propia instruccin.

AC t AC + M(456) (2.1)

La instruccin consta de un total de 16 bits, organizados tal como se indica


62 ESTRUCl'RA DE COMPUTADORES Y PEW&RICOS ORA-MA

en la figura 2.1 1. Como la longitud de palabra del bus de datos es de 8 bits, se


necesitan 2 lechuas de memoria para acceder a toda la instrucci6n. En el caso
de tener un bus de datos de 16 bits y un sistema de memoria con esta longitud
de palabra solamente se necesitara una lectura.

SUM CD=458

Figura 2.1 1: Formato de la insttuccidn ADD #456

Para empezar a ejecutar la instruccin se va a suponer que inicialmente el


contador de programa (PC) contiene la direccin de dicha instruccin. La eje-
cucin se divide en 4 fases. Cada una de ellas tendr un determinado niimero de
periodos de reloj y en cada una de ellas se realizarn unas determinadas opera-
ciones bsicas mediante la activacin de la correspondientes seales de control.
1. M A R t PC.Se transfiere el contenido del registro PC (que es la direc-
cin del primer byte de la instruccin), al registro de direcciones MAR.
2. PC t PC + 1. Se incrementa el contenido del registro PC, para apuntar
a la siguiente posicin de memoria.
3. M D R e M ( M A R ) . Se ejecuta un ciclo de lectura de memoria principal,
cargando el registro MDR con la parte baja de la instruccin.
4. I R e MDR. Se transfieren los 8 bits de la parte baja de la instruccin
contenidos en el MDR a los 8 bits menos significativos del registro de
instruccin IR. Igualmente se podran considerar arquitecturas donde el
primer byte ledo fuera la parte alta de la instruccin, este primer byte
ira a los bits ms significativos del registro IR. Al primer tipo de ordena-
cin de los datos en memoria en el que la parte menos significativa de la
instruccin o del dato ocupa posicio~esde -&noria ms bajas se le deno-
mina little-endian. Por el contrario, cuando es la parte ms signicativala
que ocupa posiciones ms bajas la ordenacin sedenomina bipendian.
5. MAR t PC.Se transfiere el contenido del registro PC (que es la direc-
cin del segundo byte de la instruccin), al registro de direcciones MAR.
+
6. PC t PC 1. Se incrementa el contenido del registro PC para apuntar
a la siguiente instruccin.
(DRA-MA CAPTULO 2. UNIDAD DECONTROL: EIECUCI~N
DE INSTRUCCIONES 63

7 . M D R e M ( M A R ) .Se ejecutaunciclo de lectura de memoriaprincipal.


cargando en el registro MDR la parte alta de la instruccin.
8. I R e MDR. Desde el registro MDR se transfieren los 8 bits a los bits
IR[8..15] del registro de i n s m 6 n IR.
9. M A R e IR[4..15].Se transfiere la W n del dato al registro MAR,
para iniciar la lectura del mismo en la memona.
10. M D R e M ( M A R ) .Se realiza la lectura de la posicin de memoria cuya
direccin est contenida en el campo de direcci6n del registro IR,en los
bits IR[4..15].
11. AC e AC + MDR. Una vez capturado el &to en el registro MDR,
se conecta el registro con la entrada B de la ALU mediante la seal de
habilitaci6n de la salida y se activan las seales de selecci6n de operaci6n
OP con el c6digo de la suma. Cuando termina la operaci6n de suma,que
supondremos que tendr un retraso de medio ciclo de reloj, se activa la
seal de carga del registro AC.

La activaci6n de todas las sefiales se representa de fonna grtfica en el cro-


nograma de la figura 2.12.

Fase de blsqueda de la i n s t n d b n

En primer lugar se realiza la transferencia MAR e PC.Para ello se acti-


va la seal(PC-E)que habilita la sada triestado del registro y permite que el
contenido del registro PC salga al bus de direcciones interno de la CPU. A con-
tinuacin la UC activa la seal (MAR-C) sincmnizada con el flanco de subida
de la seal de reloj, que carga el registro MAR con el valor transmitido por el
bus de direcciones interno. Todo esto se realiza en el primer periodo de la setial
de reloj.

Dorante el periodo 2 se completa el acceso a memoria Primero se activan


las seaies CS y RD para realizar el ciclo de lectura Pasado el tiempo de ac-
ceso de la memoria, los datos ya estan estables en el bus de datos extemo y se
procede a cargar el contenido de la celda de memoria leda en el registro M ~ R ,
activando la seal W R - C E ) en el ltimo semiperiodo de la seai de reloj. En
64 ESTRUCTRA DI3 COMPUTADORES Y PBR&UCOS ORA-MA

Relo]
MDR-El
MDR-01
MDR-EE
MDR-CE
PC.C
PC-E
PC-INC
MAR-C
MAR-E
AC-E
ACC
OP13:1]
CS
WR
RD
IR-CI
IR-C2
IR-E
RE-C
Periodos

Figum 2.12: Cronograma de la instmccibn ADD # 4 5 6

este periodo tambin se activa la seal (PC-INC) de incremento del registro PC,
para que apunte a la siguiente posicin de memoria que contiene la parte alta de
la instrucci6n.

En el periodo 3, la parte menos significativa de la instrucci6n contenida en


el registro MDR se transfiere al IR. Para ello se activan la seales (MDR-EI),
para que los datos del registro MDR salgan al bus interno del procesador, y la
seal(IR-C1)para cargar los 8 bits ms bajos del registro IR.Adems se realiza
la transferencia MAR t PC,para comenzar un nuevo ciclo de lectura y acceder
a la parte alta de la instruccin.
@RA-MA c ~ ~ f n2.n Wo A D DE CONTROL: EJP.CUCI(INDE iNSTaUCCIONES S

En el periodo 4 se repite la secuencia de seales del periodo 2, leyendo de


memoria la pam ms significativa de la instruccin e incrementando de nuevo
el PC.

En el iltimo periodo de la fase de bsqueda, se carga en en el registro IR


la parte alta de la instruccin contenida en el registro MDR.Se activa la seal
(MDR-EI) para transfeni. los datos al bus interno y la seal de carga (IR-C2).
Tambin se produce la decodificacin de la instruccin en la UC, puesto que los
4 bits del cdigo de operacin que residen en la parte ms baja de la instruccin
ya estn aimacenados en el registro IR.

Estos 5 primeros periodos de reloj son comunes a todas las instrucciones,


puesto que la fase de biisqueda no depende de la instrucci6n leda.

Fase de bsqueda de operandos

En el momento en que la UC decodifica la instruccin cargada en el registro


IR, comienza la bsqueda de operandos. En esta fase se almacena en el registro
MDR el operando que se encuentra en la posici6n de memoria, cuya direccin
est contenida en IR[15..4].

En el primer periodo de esta fase de la instruccin, se transfiere la direccin


desde los bits (IR[15..4]) hasta el registro MAR,(MAR t IR[15..4]). Para ello
se habilita la salida de estos bits al bus de direcciones interno del pmesador con
la sefial IR-E, y a continuacin se capturan con la seal de carga (MAR-C).

En el siguiente periodo se activan las seales de lectura de la memoria CS y


RD. Una vez transcurrido el tiempo de acceso de la memoria, el dato se carga
en el MDR activando la seal (MDR-CE). Con este periodo termina la fase de
captura de operandos.

Fase de ejecucin y almacenamiento del resultado

Estas dos fases se realizan en el mismo periodo de la seal de reloj. Para


realizar la instniccin AC t AC + MAR en el ciclo 8 la CPU tiene que:
66 ESTRUCTURA DE COMPUTADORES Y PERW~RICOS ORA-MA

1. Conectar el registro MDR a la entrada B de la ALU activando la seal


MDR-EI.

2. Indicar a la ALU la operacin a realizar mediante la activacin de las


seales OP.

3. Por ltimo, sincronizada con el flanco de subida de la seal de reloj, acti-


var la seal de carga del acumulador (AC-C).

Tras la ejecucin de la instruccin se actualiza el registro de estado que


contiene los bits de condicin. Para ello, se activa la seal de flanco (E-C)
en el instante en que la ALU finaliza la operacin de suma, en el periodo 8.

2.6.2 Ejecucin de la instruccin Sw # 4 5 6


Esta instruccin realiza una escritura del dato contenido en el acumulador en
la posicin de memoria principal indicada por el campo CD de la instruccin.

La instruccin esta compuesta por los 4 bits del cdigo de instruccin, y los
12 bits necesarios para indicar la direccin de memoria donde se guarda el AC.
El cronograma que describe la ejecucin de esta instruccin se muestra en la
figura 2.13

La fase de bsqueda de la instruccin es similar a la del ejemplo anterior.


Sin embargo, en la presente instruccin no hay fase de bsqueda de operandos
ni almacenamiento de resultados, por lo que directamente se pasa a la fase de
ejecucin. La ejecucin se realiza en los ciclos 6 y 7.

En el ciclo 6 se lleva la direccin de memoria desde los bits (iR[4..15]) hasta


el registro MAR y el contenido del AC al registro MDR. En el siguiente periodo
se realiza la escritura de memoria activando (CS, WR, MDR-EE y MAR-E). Los
siguientes ciclos representados en el cronograma pertenecen al comienzo de la
siguiente instruccin.
ORA-MA C A P ~ 2.O UNlDAD DE CONTROL: JUECUCIbN DE iNSTRUCCIONBS 67

mloi
MDR-El
MDRCl
MDR-EE
MDR-CE
PCC
PGE
PC-INC
MAR4
MAR-E
AGE
AGC
OP[3:1]
cs
WR
RD
IR-C1
IR62
IR-E
RE-C
peiiodos

Figura 2.13: Cronogram de la instruccidn SW # 4 5 6

2.6.3 Ejecucin de la instruccin JMZ # 4 5 6


Esta instruccin realiza una bifurcacin condicional utilizando direcciona-
miento .directo. Se salta a la direcci6n contenida en el cdigo de direcci6n si el
indicador de cero del registro de estado est activo.

Si Z=1 entonces PC t #456


Si Z=0 entonces PC no se d if eca.
68 ESTRUCTURA DE COMPUTADORES Y PERIFRICOS ORA-MA

El cronograma de ejecucin de esta instruccin se muestra en la figura 2.14.


Despues de capturar la instruccin en el registro IR, comienza en el periodo 6
la fase de ejecucin de la instruccin. Si no se cumple la condicin de salto
(E01 se inicia la ejecucin de una nueva instrucci6n. ya que el PC ya se ha
actualizado. Sin embargo si se cumple la condicin se realiza la carga del PC
con el valor efectivo #456 en el periodo 6, y posteriormentese inicia la ejecucin
de una nueva instruccin.

Reloj
MDR-El
MDR-CI
MDR-EE
MDR-CE
PGC
PC-E
PC-INC
MAR-C
MAR-E
AC-E
AC-C
OP[3:1]
CS
WR
RD
IR-C1
IR-C2
IR-E
RE-C
Periodos 1 2 3 4 5 8

F i g m 2.14: Cronograma de la insfruccidn JMZ # 4 5 6


I ORA-MA

2.7 SUBRUTINAS
o UNIDAD DE CONTROL: J~IECUCI~N
c A F ' ~ ~ L 2. DE iiiSTRUCClONES 69

Los programas que ejecuta la CPU estn formados por una secuencia de
instrucciones. Para estructurarlos se dividen en mdulos independientes y se-
parados lgicamente denominados subnitinas. La utilizacin de subnitinas per-
mite que los programas sean ms fciles de depurar, ms portables y se facilita
la reutilizacin de cdigo. Con esta divisin la estructura de un programa est
formada por un mdulo principal, que realiza llamadas a diversas subnitinas.
Cuando se produce un salto a subnitina el procesador detiene la ejecucin del
mdulo principal y comienza la ejecucin de la subnitina. sta realizar una
determinada funcin y al finalizar el procesador vuelve a retomar la ejecucin
del mdulo principal.

Cuando se salta a una subnitina el procesador debe almacenar en algn lugar


el valor actual de PC, que servir como direccin de retorno cuando se termi-
ne la ejecucin de la subnitina. En una primera aproximacin se utiliza alguna
posicin de memoria o algn registro interno para almacenar el PC. El proble-
ma que presenta esta tcnica aparece cuando se realiza una segunda llamada a
subnitina desde la primera subnitina, ya que se pierde el valor de retorno para la
primera llamada. Una segunda solucin para almacenar las direcciones de retor-
no es utilizar posiciones de memoria distintas para cada iiamada. En este caso se
puede usar la primera posicin de memoria que ocupa la subnitina como espa-
cio para guardar la direccin de retorno. As, cada subnitina posee una posicin
distinta para guardar el PC. Pero de nuevo se presenta el mismo problema cuan-
do se realizan llamadas recursivas. Para solucionarlo, es necesario que en cada
llamada a subnitina se utilicen posiciones de memoria distintas para almacenar
las direcciones de vuelta. La implementacin de este mtodo utiliza una pila,
que apunta a nuevas posiciones de memoria a medida que se van almacenando
datos.

Al saltar a una subnitina es normal que el programa principal tenga que pasar
a la subnitina una serie de argumentos para que pueda realizar su funcin, y que
sta devuelva algn resultado. Estos parmetros pueden pasarse utilizando algn
registro interno o alguna posicin de memoria, pero en general se presentarn
los mismos problemas que en el caso del almacenamiento del PC. El mtodo
mis general de pasar los argumentos a la subnitina ser tambin mediante la
pila.
70 ES'IUCURA DE COMPUTADORES Y PERIE%ICOS @RAMA 1
Para permitir la ualizacin de subrutinas en el pmcesador ejemplo, se van
a implementar los elementos necesarios para gestionar una pila. Para ello se
tendrii que dotar al procesador de un nuevo registro interno: el puntero a pila
(SP). Este registro apunta a la siguiente posicin va& dentro de la pila Despus
de apilar un nuevo valor hay que decrementar el puntero y antes de desapilar
hay que inmementarlo. De esta forma la pila ir creciendo hacia posiciones de
memoria inferiores. Tambin hay que ampliar el repertorio de instrucciones con
cinco nuevas:

1. La instruccin MSP CD carga el SP con el valor contenido en el campo


CD, esto permite situar la pila en la zona de memoria que se desee.
2. La instruccin PUSH R apila el contenido del registro R en la posicin
apuntada en ese instante por el SP, demmentnddo posteriormente.
3. La instniccin POP R incrementa el SP y desapila un valor, almacenndolo
en el registro R.
4. Instruccin JSUB CD es una instruccin de salto a subrutina que antes de
modificar el PC apila su valor.
5. instruccin RET indica el final de la subrutina y desapila el valor inicial
que contena el PC antes de haberse producido la liarnada.

En el esquema de la figura 2.15 se pueden observar los valores almacenados


en la pila cuando se produce una llamada a subrutina.

A continuacin se mostrarn los cambios que se deben realizar en la estruc-


tura del computador ejemplo para implementar estas nuevas instrucciones. En
primer lugar aparece el nuevo registro SP con las seales de carga SP-C. de
salida al bus de direcciones SP-E, incremento SP-iNC y decremento SP-DEC.
Tambin hay que cambiar la estructura del registro de estado para permitir que
se pueda cargar y acceder al bus de datos interno. La seal RE-E sirve para
habilitar la salida al bus y la seal RE-CB, para cargar los datos desde el bus.
Igualmente hay que permitir el acceso desde el PC al bus de datos. Las seales
de habilitacin, (PC-EB1 y PC-EBZ), activan la salida de la parte alta y baja del
PC,y las dos seales de carga, (PC-CB1 y PC-CBZ), capturan datos del bus.
Como el PC tiene 12 bits, para aimacenarlo en memoria se divide en dos partes
de 6 bits, siendo necesario realizar dos escrituras. En ellas dos de los ocho bits
@RA-MA O- !C 2. UNIDAD DE CONTROL: EJECUCI~NDE INSTRUCCIONES 71

que se pueden almacenar tendrn un valor fijado por la UC, ya que no se utili-
zan, y el resto de los bits se corresponden con los del PC.Cuando se salva el PC
en 1pila cada uno de los dos by& utilizados estn en posiciones consecutivas
de memoria. Al desapilarlos se accede en orden inverso, primero se accede al
byte que fue apilado en segundo lugar, ya que la pila accede primero a la ltima
posicin utilizada, y a continuacin se accede al primer byte apilado.

Aparte de los cambios realizados en los registros internos para implementar


estas nuevas instrucciones, tambin hay que modificar la UC y cambiar el for-
mato de las instrucciones. Con la incorporacin de las 5 nuevas instrucciones
existen un total de 21, que supera el mximo de 16 que se pueden diferenciar
con los 4 bits reservados para el cdigo de operacin. En vez de modificar es-
te campo se ha optado por la solucin de codificar todas las instrucciones que
72 ESTRUCTURA DB COMPUTADORES Y PERE&ICQS ORA-MA

: CPU Y-
, _ _ _ _ _.____..______.____...--------..--.--------------
_

Figura 2.16: Esquema de conrputaabr e k t d

no necesiten campo de operandos can un mismo cdigo de operacin de 4 bits.


Posteriormente. para que la CPU puedadistinguirlasse utiliza un campo de ex-
pansin, tal como indica la figura 2.17.

2.8 EXCEPCIONES

Las excepciones son eventos que rompen la secuencia normal de ejecucin


del programa en curso, dejando el control a alguna subrutina especifica de trata-
miento de dicho evento. Las causas de una excepcin pueden ser las producidas
por algn acontecimiento anormal en el procesador durante la ejecucin de una
instrucci611, por la ejecucin de alguna instruccin especifica, denominada tmp,
o como consecuencia de algn acontecimiento externo, denominada intemp-
cin. Los tipos ms comunes de excepciones son:
Se ha producido un error de clculo aritm6tico como, por ejemplo, una
divisin por cero o un desbordamiento (ove-). (Excepcin).
Mediante una instruccin especfica. Hay instrucciones cuya ejecucin es
una excepcin. (Tmp).
Instrucciones Formato
SUM CD OOOOI CD

RES DC 0001 CD1


AND CD 0010 CD

0011 CD

LEE CD 0100 CD

ESC CD 0101 CD

SAL CD 0110 CD Instruccionescon Formato.


- expansin del
SAZ CD O111 CD cdigo de instruccin.
SAN CD 1000 CD /I INCAC [111110001 11
SAC CD 1001 CD

SAO CD 10101 CD

CAP CD pirF STP 11111 10101

SACP CD PUSH R 1111110111 011 1


MSP CD p q E T POP R 0~ 1
~ 1 1 1 1 ~ 1 0o11
JSUB CD m
RET /
11111 1011
XXX I1111I CD --
Figura 2.17: Fonnato del repertorio de instrucciones

Se lee un cdigo de operacin inexistente, la instruccin no existe. El


cdigo de operacin ledo no se corresponde con ninguna instruccin.
(Excepcin).

Un perifrico requiere la atencin de la CPU. Activacin de un pin de


entrada al procesador. (Interrupcin).

Las excepciones estn priorizadas, cuando se producen dos o ms excepcio-


nes distintas en el mismo instante de tiempo se atender primero acluella a la que
se le haya dado mayor prioridad. ~ e n t r ~ la
d eCPU debe existir algn registro
interno en el que se actualice la prioridad de cada excepcin. Las interrupcio-
nes pueden ser enmascarables, cuando pueden deshabilitarsepor software, o no
enmascarables, cuando no es posible su deshabilitacin. Las no enmascarables
son indicativas de algn error catastxfico como es la cada de la alimentacin
o un error en la memoria, y tienen la mayor prioridad. La submtina de trata-
miento de las interrupciones no enmascarables est situada en alguna posicin
fija en memoria, lo que se denomina autovectorizada, teniendo el procesador
almacenada su localizacin de antemano. Las enmascarables, o interrupciones
de usuario, necesitan un ciclo de reconocimiento durante el cual el pmcesador
recoge el vector de interrupcin, que indica la posicin de memoria donde se
encuentra la subrutina de tratamiento de la interrupcin.

El urocesador. uara detectar la activacin de una exceocin. comunieba to-


dos loiindicadore;@ags) de activacin de excepciones, &nacenado~en algn
registro interno especial dedicado a tal fin. Dependiendo del tipo de excepcin
la comprobacin de su activacin se produce en un determinado instante.

1. Final del ciclo de reloj: Se compmeban las interrupciones no enmascara-


bles.

2. Final del ciclo de bus: instruccin ilegal, violacin de privilegios (excep-


ciones).

3. Final de la ejecucin de instruccin: Interrupcin enmascarable.

4. Durante la ejecucin de la instrucci6n: Divisin por cero (excepcin),


instruccin de excepcin (trap).

Una vez detectada la excepcin, lo primero que se produce es el almace-


namiento en la pila del valor actual del contador de programa y del valor del
registro de estado. Dependiendo de si la interrupcin es autovectocizada o no,
puede ser necesario un ciclo de reconocimiento para obtener la posicin de me-
moria en la cual est situada la subnitina. A continuacin se realiza el salto a
esta subnitina de tratamiento, la cual debe finalizar con una instruccin RETi,
que realiza el retomo desapilando los valores del PC y del registro de estado.
Adems esta instruccin habilita el procesamiento de nuevas interrupcionesque
tengan una prioridad menor y est6n a la espera de ser ejecutadas.
76 ESTRUCTURA DE COMPiJTADORES Y PERIl$RICOS ORA-MA

2.9.1 Unidad de control cableada


Este tipo de unidad de control utiliza lgica combinacional (lgica cablea-
da equivalente a puertas lgicas), para implementar las funciones lgicas de las
seales de control. Un esquema de la UC cableada del computador elemental
se muestra en la figura 2.18. En el esquema se puede apreciar cmo la UC es
basicamente un circuito combinacional, pues la salida (seales de control) de-
pende nicamente de las entradas (cdigo de operacin, indicadores de estado,
registro contador e interrupcin). Cada una de las salidas de la figura 2.18 es
una seal de control del computador y serA una funcin lgica de las entradas
actuales.
IR ,............................
1 Unidad de Contml
CO E
r ,;
4 MDR-El

8 Cdigos de
/
/ R t - +
C MDR-CI
MDR-EE
4 MDR-CE
expanslon ; Clrculto comblnaclonal
:
,MAR-C
4 // * MAR-E
-
Demdificador 4 IR-Ct
. y IR-C2
7 IR-E
-16 lns<ruociones +
~
SP-INC
4 SP-DEC
...............diferentes
................ 4 SP-C
y SP-E
+RagWo contad; de;lfw
;
f PC-C
39 Entradas 31 Salidas + PC-INC
4 PC-ce1

-
PC-CB2
Hasta 258 pedodos. 7 PC-CE1
PC-CE

71-
I .................. ......, 4- RE-CB
lmerrupcin externa. / I
* + RE-E
/ RE-C
& AC-E
AC-C
y oP[3:1]
F cs
F WR
4 RD
8 Condiciones J I
del registro de estado ............................. 8

Figura 2.18: UC cableada


ORA-MA 0
- 2. UNIDAD DE CONTROL: EIECUU~NDE INSTRUCCIONES 75

Para la implementacinde interrupciones de usuario en el procesador ejem-


plo, es necesario dotarle de la instruccin RETI y de un pin adicional de entrada,
as como modificar la unidad de control para que compruebe la activacin de
las excepciones. Tambin habr que dotar al procesador de un registro interno
donde se almacenen los valores de prioridad de cada excepcin. Por sencillez
consideraremos que todas las interrupciones son autovectorizadas, con un vec-
tor de interrupcin fijo y almacenado en la unidad de control. De esta forma no
ser6necesario un ciclo de reconocimiento de interrupcin para que el dispositivo
solicitante su-stre su vector.

2.9 DISEO DE LA UNIDAD DE CONTROL

La Unidad de Control es la encargada de generar todas las sefiales de control


en cada uno de los periodos que forman el ciclo de ejecucin de una instruc-
cin. Para generar estas seales la unidad de control debe tener entradas que le
informen del estado actual del procesador, de cui es la instruccin a ejecutar
e informacin sobre posibles eventos (excepciones). Adems, la UC debe con-
tar los periodos de reloj, para realizar el secuenciamiento de activacin de las
seales de control dentro de la ejecucin de una instruccin. Esta cuenta la rea-
liza utilizando un registro interno que incrementa en cada pulso de la seai de
reloj. Cuando haliza la ejecucin de una instruccin la cuenta se pone a cero.

A partir de la secuencia de seales de entrada, la unidad de control genera las


seiales de control necesarias para la ejecucin de la instruccin. Se puede con-
siderar la unidad de control como un circuito digital que a partir de las entradas
genera una secuencia de seales de salida que se corresponden con las seales
de control. La secuencia y definicin de todas estas seiales debe realizarse en
el momento de diseEo de la CPU,utilizandolas diversas metodologas que exis-
ten a la hora de disefiar un circuito digital. Existen dos formas fundamentales
de abordar el diseo de una unidad de control: unidad de control cableada y
unidad de control micropmgnmada.
@M-MA CAP~T~M
2 UMDAD DE CONTROL: EJECUU~N DE INSTRUCCIONES 77

Las principales caractersticas de una UC genkrica implementadacon lgica


cableada se pueden resumir en:

La realizacin de estas funciones lgicas es muy costosa. Aunque en


la actualidad, con la utilizacin de lenguajes de especificacin hardware
de alto nivel, la tarea de implementaci6n a nivel de funcin lgica est
automatizada.
Cualquier pequea modicacin @mejemplo, aadir una instruccin) re-
auiere un rediseo urcticamente com~leto.Este esfuerzo de rediseo se
ha reducido drsti&nente con la utiliSaci6n de las tcnicas de CAD que
automatizan la generacin del hardware.
Presenta la ventaja de la rapidez. Se pueden optimizar los retrasos pro-
ducidos en las puertas que forman el circuito para que la unidad funcione
con seala de reloj de alta frecuencia.
Se suele utilizar unidad de control cableada cuando se requiere una gran
velocidad o el diseo es muy sencillo.

2.9.2 Unidad de control microprogramada


La unidad de control realizada con lgica cableada presenta como inconve-
nientes fundamentales la gran cantidad de funciones hardware necesarias para su
implementacin. Como alternativa a la unidad de control cableada se presenta
la unidad de control microprogramada.

Este tipo de unidad contiene una memoria, llamada memoria de control,


que almacena todos los valores que deben tomar las seales de control en cada
periodo de reloj dentro de la ejecucin de una instruccin. Al conjunto de los
valores de todas las seales de control en un periodo determinado se le denomina
microinstruccin. Cada una de ellas se almacena en una posicin dentro de la
memoria de control interna a la UC. Dentro de la UC hay una circuitena que
secuencialmente accede a la memoria de control para leer los valores adecuados
de las seales de control y activarlas en consecuencia. En la figura 2.19 se
muestra un ejemplo de microprograma.
Contenido de la memoria de control.

PCC
PGE
PClNC
MAR-C
MAR-E
AGE
ACG
OP[3:1]
CS
WR
RD
IR41
IR42
IR-E
RE-C

Figura 2.19: Micmpmgmma de la imtrucci6nADD #56

Para realizar una instrucci6n completa la UC debe ejecutar varias microins-


trucciones. El conjunto de todas las microinstrucciones que forman una instmc-
cin mquina recibe el nombre de microprogama.

Formato de las mimimtrucdones

El fomato de las miminstrucciones, al igual que el de las instrucciones


mquina, indica cuntos bits forman una micminstruccin y qu informacin
contiene cada uno de ellos. Las micminstrucciones pueden utilizar muchos for-
rnatos diferentes. La elecci6n de este formato afecta y se ve afectado por todos
los elementos que componen la CPU. Por ejemplo, el nmero de seaales de
ORA-MA 2. UNIDAD DE CONTROL: EJIECUCI~NDE
CAP~TUUI INSTRUCCiONBS 79

control que es necesario activar para cada miminstruccin limita el nmero


mnimo de bits que forman una miminstruccin,que a su vez limita la longitud
de palabra de la memoria de control que se utiliza para almacenarlas.

En una primera aproximaci6n se puede pmponer un formato en el cual cada


bit de la micminstruccin se corresponde con una seal de control. Este tipo
de formato se denomina m i c r o p ~ ~ c i horizontal,
n y en 61no se necesita
una traducci6n para generar las seales de control, sino que, por el contrario,
presenta la desventaja de que se trata de un formato con una gran cantidad de
bits, por lo querequiere mucha ms memoria para implementarlo.

Para limitar el tamao de la memoria se pueden agrupar las seales de con-


trol en campos. Cada uno de ellos contiene bien aquellas seales de control que
pertenezcan al mismo elemento interno de la CPU, o bien aquellas que no se
pueden habilitar de forma simultnea Ejemplos de seales que se pueden agru-
par en un campo son las de habilitad611de salida al bus interno del procesador, o
las de gobierno de la ALU.El valor de cada una de las seales de control pertene-
cientes a un campo se obtiene al deeodificar el valor correspondiente contenido
en la micminstruccin. Este tipo de formato se denomina mieroprogramacin
vertical, y tiene la ventaja de la reduccin del nmero de bits de la micminstruc-
cin, y por tanto de la memoria de control. La desventaja que presenta es que
es necesaria la decodificaci6n de los valores contenidos en la microinstrucci6n.
El grado de codificaci6n puede ser mayor o menor. Una formato presenta un
alto grado de coacacin cuando las seales de control estm todas agrupadas
en un nmero reducido de campos. El formato es ms vertical cuanto mayor sea
el grado de codificacin, hasta llegar al extremo de la codificacin total. En la
figra 2.20 podemos ver la agrup&n en campos de las seales de control del
computador elemental.

Adems de los campos que agrupan seaales de control debe de6nirse un


campo de secuenciamiento. En este campo se codifica cui es la pr6xima mi-
croinstruccin que se va a leer, y puede presentar tres casos:

La siguiente microinstrucci6n est contenida en la siguiente posici6n de


memoria.

La siguiente microinstnicci6n pertenece al comienzo de una nueva ins-


truccin.
campos
ConVol RAM. CS
WR

RD
MAR-E
MDR-EE
11
k MDR-CE J
f W d bus da dlmiones SP-E 1
IR-E
PC-E
f Carcia desde el bus de direcciones SP-C 1
I- PC-C
MAR-C

Carga desde el bus de datos IR-CI


IR-C2
RE-CB

( Acceso al bus de datos AC-E


RE-E 1
I
<
PGCEP )
Incremento de regiairos PC-INC

Control ALU
SP-INC

AC-C
.
OP[3:l]
RE-C ,
Figura 2.20: Agrupacidn en campos de las semles de control del computador
elemental

O Es necesario un salto a una posicin de memoria sin determinar.

Hay diseos donde el secuenciamiento de las microinstmcciones se realiza


-
slo mediante los dos primeros casos. En este tipo de secuenciamiento todas las
microinstmcciones que forman un microprograma deben estar ordenadas una a
continuacin de la otra en la memoria de control. Otra condicin necesaria es
que el cdigo de operacin de la instruccin contenida en el iR debe indicar la
posicin de la primera microinstruccin de su microprograma corresponcliente.
Con estos dos requisitos el campo & secuenciamiento de cada microinstmcci6n
se reduce a un bit, que indica cundo hay que acceder a la posicin de memo-
ORA-MA DE INSTRUCCIONBS 8 1
CAPhlLO 2. UNIDAD DE CONTROL:BTECUCI~N

ria siguiente, porque todava no se ha completado el microprogrma, o por el


contrario cundo hay que acceder a la posicin indicada por el c6digo de opera-
cin del IR, para comenzar la ejecucin de una nueva instruccin. Este tipo de
secuenciamiento se denomina impldto, y presenta la limitacin de que no es
posible implementar m i c r o p r o con~ sitos internos que puedan seguir una
secuencia de microinstniccionesu otra dependiendo de alguna condicin, como
por ejemplo en el caso de las instrucciones de salto condicional.

El secuenciamiento explfto, por el contrario, permite los ires casos y, por


tanto, como a pnori no se conoce la direcci6n, es necesario codificar en el cam-
po de secuenciamiento la direccin de la prxima miminstmccin. Con este
modo ya se permiten saltos condicionales dentro de un microprograma, pero se
aumenta lalongitud de palabra del formato de las miminstrucciones y por tanto
de la memoria de control.

Estruciura de la UC micmprogramada

La unidad de control microprogramada contiene un memoria de control en


la que se almacenan las microinstnicciones. Adems, en el caso de que stas
estn codificadas, debe contener una circuitera de decodificacin de los cam-
pos y una unidad de secuenciamiento para obtener la direccin de la prxima
mlminstrucci6n a leer. En el caso de que se permitan saltos condicionaes,
el circuito debe considerar los bits correspondientes del registro de estado, para
saltar a una posicin u otra dependiendo de su valor. En la figura 2.21 se muestra
el esquema de una UC microprogramadacon secuenciamiento explicito.

Ventajas y desvenwas de la micmpmgramacin

La microprogramacinpresenta desventajas cuando el procesadorque se d e


sea disear es muy simple o cuando se requieren unas prestaciones elevadas. En
el primer caso, el esfueru,en el diseo de una UC miCroprogramada puede ser
excesivo si el procesador es relativamente simple (pocas instrucciones y poca
circuitera intema) siendo ms senciilo abordar el diseflo con lgica cableada.
Por el contrario, si el procesador es complejo y requiere altas prestaciones, pue-
de ocurrir que la ejecucin del microcdigo sea excesivamente lenta.
82 ESTRUCTURA DE COMPUTADORES Y PERR%RICQS ORA-MA

MUX

-- -
IR 7
Memoria de Contml

t1

l Seales de wntml

Posible dlreccbn de salto


y wntrol del sacuenciamiento

Figura 2.21: UC microprogratnadu

La microprogramaci6n se basa en el hecho de que las microinstrucciones


estn almacenadas en un memaia, lo que presenta las siguientes ventajas:

a La UC microprogramada es ms fcil de reprogramar o redisear, ya que


s61o es necesario cambiar los valores de algunas posiciones de la memoria
para corregirla.
e Se pueden incluir, sin grandes dificultades hardware, instrucciones com-
plejas que tengan muchos periodos de ejecucin.
e Permite implementar a este nivel algunas instrucciones complejas que son
muy usadas por el computador, instrucciones de alto nivel que no es ne-
cesario dividir en vanas instrucciones mquina.
e Permite irnplementar procesadores con diversos juegos de instrucciones,
ya que si la memoria que almacena el micmdigo es de tipo RAM se
pueden cambiar los valores almacenados. Esto tambin permite copiar en
un computador un juego de instruccionesde otro computador para ejecutar
sus programas. es decir se pueden emular otros computadores.
iEIRA-MA CAF'fnn02. UNIDAD DE CONTROL: EIECUQ~NDEiNSTRUCCIONBS 83

Las microinsimcciones permiten hacer mtinas de diagn6sticodel compu-


tador mucho mejores &e las hechas en cdigo Es en este &el
(el ms bajo del computador) donde se tiene un mayor control sobre los
registros Ylas partes internas del computador.

Durante el desarrollo de este captulo el computador elemental diseado ha


servido como ejemplo para la explicacin de muchos conceptos bsicos de es-
tructura de computadores. Hay que destacar que este computador tiene muy
poca complejidad en comparacin con los procesadores comerciales actuales,
ya que el formato de las instrucciones y el nmero de instrucciones y de modos
de direccionamiento es muy reducido. Los computadores reales presentan un
nmero de instrucciones superior en algunos casos a las 400, as como mltiples
modos de direccionamiento. Adems el formato de las instrucciones no tiene
por qu6 ser de 16 bits y regular, sino que dependiendo del procesador, este va-
lor puede llegar a los 64 bits y ser diferente para distintas inhcciones. Por
ello, se van a resumir ahora las arquitecturas de procesadores comerciales ms
utilizadas viendo su evolucibn y caractersticas. En el captulo 12 se muestran
adicionalmente aproximaciones distintas al modelo de mquina Von Newman
presentado en este captulo, entre ellas procesadores que usan la segmentacin
para aumentar las prestaciones.

2.10.1 Aumento de las prestaciones


El primer procesador comercial fabricado por Intel en 1971 tena unos regis-
tros internos capaces de trabajar con datos (longitud de palabra) de hasta 4 bits,
funcionaba con una frecuencia de reloj de 0.5 Mhz y poda acceder a 16 Kby-
tes posiciones de memoria (anchura del bus de direcciones). Desde entonces ha
habido un incremento constante en las prestaciones de los microprocesadores
como consecuencia de:
1. Aumento de la longitud de palabra del procesador: Al ser mayor el
tamao de los datos internos del procesador, se incrementa la velocidad
de procesamiento al operar de forma paralela con un mayor nmero de
bits.
E4 ESTRUCTURA DE COMPUTADORES Y PEF~P~~RICOS ORA-MA

2. Aumento de la frecuencia de reloj: Los procesadores son sistemas se-


cuenciales sncronos, en los que, cuanto mayor es la frecuencia del reloj
mayor es su velocidad de ejecucin de instrucciones.
3. Aumento del nivel & integracin: Aunque ya se ha mostrado que la
arquitectura bsica del procesador est formada por una unidad de control,
la ALU y varios registros internos, se tiende a integrar junto con estas
unidades elementos externos al procesador para aumentar el rendimiento
del sistema Ejemplos de estas unidades son las memorias cache de primer
nivel y las unidades de gestin de memoria (MMV) .
4. Aumento de la anchura del busexterno: Ya que el procesador debe estar
cargando continuamente datos e instrucciones de memoria, la anchura de
losbuses que conectan ambos elementos es fundamental. Cuanto mayor
sea la anchura del bus, mayor ser el nmero de datos e instrucciones a
los que se podr acceder en un solo ciclo, aumentando as la velocidad de
acceso.
5. Avanceg en la arquitectura: Internamente el micropmesador puede ser
paralelizado para ejecutar varias instrucciones a la vez. Estas tcnicas re-
ducen el nmero de ciclos de reloj necesario para ejecutar una instruccin.
Ejemplos de estas arquitecturas son los procesadores segmentados.

Para medir la repercusin que estos avances tienen en los procesadores se


debe considerar algn metodo para medir su rendimiento. Un mtodo comn de
medida son los MiPS (millones de instnicciones ejecutadas por segundo) que
un procesador alcanza para una detenninada tarea. Se define MiPS como:

MIPS = F/CPI

Donde F es la recuencia de reloj en MHz y CPI es la media de los ciclos


de reloj que utilizan las instrucciones al ser ejecutadas. Es posible medir el
rendimiento de forma equivalente mediante la utilizacin del tiempo por tarea,
que mide el tiempo necesario para ejecutar una determinada tarea, sin incluir el
tiempo de espera en la entrada y salida de datos. En la siguiente frmula NI es
el nmero de instrucciones y C es el tiempo del periodo de la sefial de reloj.
ORA-MA CAPfTULO 2. UNIDAD DE CONTROL: EJECUCI~NDE INSTRUCCIONES 85

Procesedor Registros internos Bus de datosldlrec. Reloi Max.


8086 16bits 16bits/20bs(l Mb) a 1OMhz 10MHz
80286 16bits 16bits/24bits(l6Mb) a 20Mhz 20MHz

Pentium 32bits 64bits/32bits(4GB) a 66Mhz 200MHz


Pentiumll 32bits 64bits/36bits(64Gb) a 66Mhz 450MHz
Pentiumlll 32bits 64bitd36bits(blGb) a 100Mhz 1,13GHz

Tabla 2.2: Evolucin de los procesadores de Intel

Tiempo por tarea = N I * CPZ * C

2.10.2 Evolucin de la arquitectura Intel iX86


Estos procesadores son los ms utilizados en los computadores personales
(PC). Desde la aparicin del 8086 hasta el Pentium 111, han sufrido una evolucin
constante que se muestra en la tabla 2.2. En ella se muestra el incremento de la
longitud de la palabra interna (registros internos), de las longitudes de palabra
del bus de datos y direcciones y de la frecuencia de la seal de reloj.

La evolucin desde el punto de vista de sus unidades funcionales internas,


tambin ha sufrido grandes cambios. El 8086 y el 80286 no integran ninguna
unidad especial, a parte de las bsicas ya conocidas. Sin embargo el 80386 inte-
gra una unidad de gestin de memoria (MMU) para gestionar la paginacin y la
segmentacin de la memoria. En el 80486 se encuentra integrada una unidad de
operacin en punto flotante (FPU) y la cache de primer nivel de 8Kb. Adems,
comienzan los desarrollos de unidades de ejecucin segmentadas, que en el caso
de 486 alcanza 5 etapas. El Pentium es el primer procesador superescalar, con
dos unidades de ejecucin en paralelo segmentadas de 5 etapas. La arquitectura
de la cache es de tipo Harvard con datos e instrucciones separados en memo-
ria, se le dot adems de una unidad de prediccin de saltos y se desarroll un
juego de instrucciones multimedia denominado MMX. En el PentiumIi se in-
trodujo una unidad de ejecucin basada en la arquitectura P6, compartida con
el Pentium-pro, con tres unidades segmentadas de 12 etapas. Las principales
86 ESTRUCTURA DE COMPUTADORESY PE~U&UCOS ORA-MA

caractersticas de esta arquitectura son que permite la ejecuci6n especulativa y


fuera de orden de las instrucciones, evitando dependencias y bloqueos en la uni-
dades segmentadas. Incluye la cache de segundo nivel en el mismo encapsulado
con una capacidad de 512 Kb,funcionado a la mitad de la velocidad del pro-
cesador. Por ltimo,el Pentiumi no tiene muchas diferencias con respecto al
Pentiumii, en 61se introducen 70 nuevas instrucciones multimedia y se aumenta
la velocidad del bus de memoria.

En el diseo de procesadores se pueden diferenciar dos tipos diferentes de


tendencias, dando lugar a lo denominados mimprocesadores RISC y CISC.

2.10.3 Computadores RISC y CISC


Si se consideran los procesadores comerciales desde el punto de vista de
su repertorio de instrucciones, se pueden encontrar dos modos diferentes de di-
seos. La tendencia general en la arquitectura y organimi6n de computadores
durante muchos aaos ha sido incrementar la complejidad de la CPU: ms ins-
trucciones, ms modos de direccionamiento, ms registros especializados, etc.
Esta filosofa de diseo es conocida como CISC (Computadores de Juego de
instrucciones Complejo). Por otra parte, la tendencia RISC (Computadores de
Juego de Instrucciones Reducido) representa una ruptura fundamental con la fi-
losoa que hay detrs de los procesadores CISC. Con esta filosofa se consigue
disear mquinas muy rpidas. que necesitan sin embargo del orden de un 30%
ms de instrucciones que una mquina CISC para un programa tipo.

Los argumentos empleados para justificar que, mientras m88 rico y variado
es el juego de instrucciones, mejor es la arquitectura, son los siguientes:

Un amplio juego de instrucciones facilita el diseo de compiladores.

Los juegos de instrucciones amplios reucen el tamao de los programas


y al tardarse menos en leer el programa, la mquina es ms rpida.

incluir muchas funciones en forma mimprogramada hace la mquina


m6s riipida, al ser las microinstrucciones ms rpidas que su equivalen-
te en cdigo mquina.
ORA-MA C A P ~ U2.J UNIDAD DE CONTROL: EIECUCI~NDE INSTRUCCIONES 87

La filosofa RISC, por el contrario. establece una serie de principios de di-


seo que toda mquina debe poseer:
e Formato unorme de las htmcdones: El diseo de una unidad seg-
mentada que pueda interpretar instruccionescon formatos muy diferentes
y de longitud variable es muy complejo. Por ello, todas las instruccio-
nes han de tener la misma longitud, los c6digos de operaci6n de todas
las instrucciones han de tener la misma longitud y los campos de la ins-
trucci6n que especiican los registros a leer han de estar siempre en la
misma posicin, para poder simultanear su lectura con la decodificacin
de la instruccin. Tpicamente una mquina RISC tiene una longitud de
instmcci6n de 32 bits y tiene como mximo 4 fonnatos de instrucci6n
diferentes.
Poeas butmcdones y sen* La sencillez del juego de instrucciones
posibilita que la unidad de wntrol sea cableada y muy rpida. As mismo.
hace posible que todas las instrucciones tengan la misma dwaci6n, wn
lo que se simplifica el diseo de la unidad de control segmentada. En
general un mquina RISC tpica tiene un nmero de instrucciones menor
o igual a 128 y los tipos de instrucciones se reducen a: movimiento de
datos, aritmticas y 16gicas s e n d a s y bifurcaciones.
e Pocas tipos de datos: Por simplicidad se utilim pocos formatos de datos.
Generaimente un computador RISC emplearsi 4 formatos de datos de M,
32,16 y 8 bits.
e Modos de direcdonamiento sendos: Los modos de direccionamiento
complejos y que requieren vados accesos a memoria tardan mucho en
ejecutarse y paran la cadena de instrucciones. Una mquina RISC tiene
como maximo 4 modos de direccionamiento, entre los que se encuentran
el inmediato y el relativo a registro.
Modo de ejecud6n regisregistro-registro: S610 realiza operaciones sobre da-
tos contenidos en registros internos, lo que permite que estas instrucciones
tarden menos en ejecutarse al no tener que acceder a memoria Esta for-
ma de miizar las operaciones se denomina modo de ejecucin de registro
a registro (Rg-Rg). Para intercambiar los datos desde la memoria y los
registros internos se utizan s610 dos instrucciones denominadas Load Y
S&. Esto permite que el repertorio de instrucciones sea muy regular,
que la mayora de instrucciones opera 9610 sobre registros internos.
88 ESTRUCTURA DE COMPUTADORES Y P E ~ R I C O S @EA-MA

Muchos registros: Para tratar de limitar el impacto del modo de ejecucin


Rg-Rg,las arquitecturas RISC suelen tener ms registros que las CISC.
Una mquina RISC suele tener un mnimo de 32 registros.
Bifurcaciones retardadas: El diseo de las mquinas RISC se ha de ba-
sar fuertemente en la segmentacin, por lo que se incluye en su arquitec-
tura la bifurcacin retardada. Vdase capitulo 12.
Utilizacin de arquitectura H a w a d Ya que estos procesadores nece-
sitan muchos ms accesos a memoria para leer instrucciones, se separan
los buses y las memorias cache de datos y d i i o n e s de forma que se
puedan captar instrucciones y datos en paralelo.
Unidad de control segmentada y microeableada: Dado que el juego
de instrucciones es sencillo y regular, se permite el uso de unidades de
control microcableada, que son ms sencillas y r4pidas. Por otro lado se
introduce la segmentacin que permite la divisin de la ejecucin de una
instruccin en pequeo pasos independientes entre s, permitiendo que
antes de que una instruccin complete todos los pasos, otra instruccin
comience su ejeoucin, aumentando as el nmero de instrucciones ejecu-
tadas simultneamente en un determinado periodo de tiempo.

Hoy en da no est tan clara la diferencia entre procesadores RISC y CISC.


Estas iosofias representan dos aproximaciones a diseo del proces&lor que
pueden ser utilizadas en cualquier arquitectura. Un buen diseo debe saber ele-
.
gir cules son los atributos de CISC o RISC que se deben combinar, de esta for-
ma se converge hacia diseos hibridos que explotan las mejores caractersticas
de cada mdtodo. Eiemplo
- - de esta tendencia son los microprocesadores de Intel
considerados CISC y que actualmente incorporan unidades de ejecucin seg-
mentadas, arquitectura Harvard y paralelismo interno. Por otro, lado los proce-
sadores RIsC cada vez incluyen Afis unidades funcionales complejas como la
MMU, unidades de operacin en punto flotante e instrucciones no tan simples.
ORA-MA CAPTULO 2. UNIDAD DE CONTROL: EJECUCINDE INSTRUCCIONES 49

2.11 CONcLUSIONEs

La Unidad de Control es la parte del procesador que se encarga de gobernar


todos los elementos internos del procesador. Las acciones que puede r e a h u
un procesador vienen definidas en su repertorio de instnicciones. Estas insaic-
ciones contienen toda la informacin necesaria para su ejecuci6n, y se realizan
mediante una serie de operaciones bsicas secuenciadas con la seiial de reloj
del sistema. La unidad de control se puede diseiat como un circuito combi-
nacional digital (lgica cableada) o como un conjunto de microinstrucciones
almacenadas en una memoria de control (microprogramaci6n). Cada una de
las dos altemativas pemiten construir una UC, cuyas salidas son las seilales de
control que activan los elementos intemos adecuados a cada pulso de la seal de
reloj para ejecutar una instniccin. Adems del gobierno interno del computa-
dor, la UC es la encargada de gestionar los eventos (excepciones) tanto internos
como externos que llegan a la CPU. Todos estos conceptos han sido introduci-
dos utilizando un computador ejemplo elemental que aun siendo muy sencillo
permite comprender cules son las bases de funcionamiento de los procesadures
comerciales.

2.12 CUESTIONES

2.1 Enumerar todos los modos de direccionamiento indicando cules son sus
ventajas.

2 2 Se tiene una memoria con los siguientes valores almacenados:

Direccin Contenido
100 101
101 104
102 100
103 103

Si un procesador ejecuta las siguientes instrucciones LOAD que carga un


operando en el registro R2 con los siguientes modos de direccionm'ento:
90 ESTRUCTZTRA DE COMPUTADORES Y PERIPRIMS ORA-MA
*

LOAD R2,BlOO inmediato


LQAD R2,$101 directo
LOAD R2,[$100] indirecto
LOAD R2,$103 directo
LOAD ~2,[$102] indirecto

iQu6 valor se almacena en dicho registro en cada una de las instrucciones?

2 3 Supongamos un computador con palabra de 32 bits. La CPU tiene 64


tkstrucciones diferentes, en las que se pueden especificar dos operandos, 32
registros internos de 32 bits y la posibilidad de dos modos de direccionamiento
directo o relativo a registro. Disefiar el formato de las instrucciones. iCul es
la nhitna direccin de memoria que se puede alcanzar con el desplazamiento
directo y con el relativo a registro? Disear el circuito necesario para calcular
la direccin efectiva en el direccionamiento relativo a registro.

2.4 Disear una expansin de cddigo de operacin que permita codgcar en


una instruccin de 36 bits lo siguiente: 7 instrucciones con dos direcciones de
15 bits y una direccin de 3 bits. 500 instrucciones de una direccin de 15 bits
y una de 3 bits. 50 instrucciones de O direcciones

2.5 Dibujar el cronograma de la instruccin SUB#125, siguiendo el esquema


de computador elemental ejemplo.

2.6 iQut valor estar almacenado en el acumulador y en la posicin de me-


moria 401, cuando el computador elemental ejemplo termine de ejecutar Ins
siguientes instrucciones?

Direccin Contenido
400 10
401 5
QRA-MA CAPfTULO 2. UNIDAD DE CONTROL: ElXUCI6N DE INSTRUCCIONES 91

bucle: LW#401
INC AC
SW #401
SUB #4W
JMZfin (salto condicional a lnea indicada por la etiqueta fin)
JMP bucle (salto incondicional a lnea indicada por bucle)
fin: STP

2.7 Realizar un programa en el lenguaje ensamblodordel computador elemen-


tal ejemplo que sume dos nnteros contenidos en las posiciones de memoria 100

2.8 Realizar un programa en el lenguaje ensambiador del computador elemen-


tal ejemplo que busque un cardcter en array ntuado a partir de la posicin de
memoria 100. Eljnal del array se indica con el valor 'O'.

2.9 iPor qu es necesario implementar un pila para poder realizar llanadas a


subrutina recursivas?

2.10 Enumerar los tipos de excepciones y explica cucEles son sus cdusas.

2.11 Indicar las microinstrucciones que debe& ejecutar una UC micropro-


gramada para completar la i n s t m i 6 n AND DC,en el computador elemental
ejemplo.

2.12 Calcular el tamnrfo de memoria que necesitarla un UC micropmgra-


ma para implementar el repertorio de instrucciones del computador elemental
ejemplo.

2.13 Enumerar los tipos de excepciones y cules son sus causas.


92 ESTRUCTIJRA DE COMPUTADORES Y PERIF~ICOS @A-MA

2.14 Supongamos un computador de tamao de palabra 32 bits y 16 registros,


tambikn de 32 birs cada uno. Dentro de estos registros tenemos el contador de
programa (PC),y un puntero a pila (SP), siendo los dems de propdsito geneml.
El juego de instrucciones de esta mdquina se reduce a dos instrucciones:

e MOVE origen, destino

e ADD destino, operandol, operando2

y los modos de direccionamiento son:

e inmediato

e directo

e relativo a registro

e relativo a registro fndice con predecremento, postdecremento, pFeincre-


mento y postincremento, pero la cantidad incrementadddecrementada es
siempre l .

e indirecto

En esta mquina cada campo de operando debe tener un campo indicador del
modo de direccionamientode dicho operando. Este campo, junto con el cdigo
de operacin, es el que distingue entre los diferentesf o m t o s de insfruccidn.
Disear los formatos de instrucciones. Programar la funcih de salto con re-
tomo y la furicidn de retorno con las anteriores instrucciones, suponiendo que
la direccin de retorno se almacena en:

l . Un registm general.

2. El principio de la subtutina.

3. En la pila.
ORA-MA CAP~WLO 2. UNIDAD DE CONTROL: EJECUCINDE INSTRUCCIONES 93

m Fundamentos de los Computadores. Estructura, funcionamiento in-


terno, software de sistemas. Pedro de Miguel Anasagasti. Editorial Pa-
raninfo. Madrid, 1999.
m Computer Organization & Design. The HardwadSoftware Interfa-
ce. David A. Paterson, John L Hennesy. Morgan Kaufmann Publishers,
Inc. ISBN 1-55860-281-X. 1994.
m Computer Arquitecture: A Quantitative Apmach. John L. Hennesy,
David A. Paterson. Morgan Kaufmann Publishers, Inc. ISBN 1-55860-
069-8. 1990.
m Computer Organization and Architecture. Designiug for performan-
ce. William Stallings. 4 Edicin. Prentice-Hall Intemational, Inc. 1996.
ISBN 0-13-394255-4.
m Design of Micmprocessor Based Systems. Nikitas Alexandridis. Prentice-
Hall Intemational, Inc. ISBN 0-13-588567-1. 1993.
m The Indispensable PC Hardware Book. Hans-Peter Messmel: 3%ed.
Addison Wesley Longman, Inc. 1997. ISBN 0-201-40399-4.
En el captulo 2 se ha descrito cmo la unidad de control secuencia las ope-
raciones en las que se divide la ejecucin de una instruccin. El procesador,
despus de acceder a memoria principal para copiar la instruccin en el regis-
tro de instruccin, inicia la secuencia de acciones propias de cada instruccin.
Muchas de estas instrucciones consisten en la transformacin de datos mediante
la realizacin de operaciones lgicas o aritmticas. Para realizar estas operacio-
nes existe un bloque especial de la CPU denominado Unidad Aritmtico Mgica
(ALU). En este captulo se va a tratar de qu manera se pueden realizar las
diversas operaciones lgicas y aritmticas, los circuitos lgicos necesarios, as
como el compromiso entre velocidad de clculo y complejidad de la circuitera
de diversas aproximaciones tiles para realizar una misma tarea.

Gobernada por la unidad de control, la ALU tiene como entradas los datos
almacenados en los registros internos de la CPU. Su salida (los datos transfor-
mados) se almacenan a su vez en los registros de la CPU. Adicionalmente, la
ALU tiene como salida los indicadores de estado que sealan caractersticas
del resultado de la ltima operacin (por ejemplo, si el resultado ha sido cero,
negativo, etc.)

La ALU a su vez est compuesta por diversos circuitos especializados en


realizar una transformacin particular de los datos, tpicamente una operacin
aritmdtica o lgica. Como ejemplo una ALU puede disponer de una unidad de
sumidresta de enteros, una unidad de multiplicacin de enteros, una unidad de
divisin de enteros y su equivalente en punto flotante.

Estos mdulos en los que se divide la ALU se pueden clasificar en funcin


de diversos parmetros. Los criterios ms habituales que van a caracterizar los
mdulos de la ALU son:

Mdulo c o m b i n a c i d o secuencial. En el caso de mdulos combiia-


cionales se tiene un un circuito digital combinacional, sin elementos de
memoria. Si se modifica uno de los operandos el resultado se modifica
con un retraso que vendr dado por la suma de los retrasos de todas las
puertas que inte~ienenen la operacin.
Nmero de operandos del mdulo. Hay mdulos que solamente em-
plean un operando, como es el de la negacin, pero habiiualmente la ma-
yora de mdulos realizan operaciones que utilizan dos operadores, como
son la suma, divisin o AND lgico.
incorporacin de paraleiiamo al mdulo. Si el mdulo realiza la ope-
racin bit a bit se dir que es serie. sin embargo, si se transforma toda
la palabra simultneamente se dir que es paralelo. El primero es de ti-
po secuencial y requiere tantas fases como dgitos tengan los operandos,
mientras que el segundo es de tipo paralelo.
Operacin aribn6ca o lgica. La operacin realizada puede ser de tipo
lgico (AND,OR, etc) o de tipo aritmtico (suma, multiplicacin, etc).
Integracin en la CPU. Puede ocurrir que parte de los mdulos de la
ALU estn integrados en la CPU (tpicamente los que reazan operacio-
nes lgicas o aritmdticas con nmeros enteros), y otros sean externos a
la CPU debido a que son muy complejos y ocupan mucha superficie de
silicio. Es el caso de los coprocesadores matemticos que se utilizaban en
procesadms.

Un ejemplo de mdulo de la ALU es el sumador elemental de 1 bit de la


figura 3.1. KFte operador es aritmdtico y utiliza dos operandos. Suponiendo que
una palabra tiene una anchura de 8 bits, si se conectan 8 sumadores elementales
se obtiene un sumador paralelo. Sin embargo, si la unidad de control suministra
@M-MA CAPflUI.0 3. UNIDAD ARl'R&TCO L ~ G I C A 97

de manera secuencial los bits a una sola unidad de suma elemental y almacena
el resultado parcial en un registro, se trata de un sumador serie.

Figura 3.1: S u d o r elemental de 1 bit

La principal ventaja del operador serie es que es ms pequeio y por tanto


ocupa menos superficie de silicio. La desventaja de este mdulo es que es ms
lento que el operador paralelo. Cabe destacar c6mo el operador serie ocupar
ms de 118 parte del mdulo paralelo, ai incluir tambin la UC mdulos que
secuencim las operaciones. En la figura 3.2 A se muestra un operador de suma
paralelo de 8 bits constmido a partir de 8 sumadores elementales de 1 bit de la
figura 3.1. En la figura 3.2 B se muestra tambin un sumador de 8 bits, pero
esta vez construido con un solo sumador de 1 bit ms circuitera combinacional
y secuencial. El secuenciador de la figura es un simple contador y emite las
seales de control de los multiplexores, el demultiplexor y del registro de 1 bit
que almacena el acarrea parcial.

3.2 ESTRUCTURA Y OPERACIONES DE LA ALU

La ALU est formada por un conjunto de operadores, un conjunto de re-


gistros que van a almacenar los operandos fuente y resultados parciales y unos
biestables de estado. El 6rgano secueuciador (si hay operadores secuenciales)
se integra en la UC.

Las operaciones ms complejas no se implementan con circuitos combina-


cionales, ya que requeriran una gran superficie de silicio. Ser6 la unidad de
control la que se encarga de generar la ejecucin secuencial de los algoritmos
de las operaciones complejas. Un ejemplo tpico son las operaciones de mul-
98 ESTRUCTURA DE COMPUTAWRES Y P E R B ~ ~ I C O S ORA-MA

Operando2 Operando2

C
(Fkg de mndlclh)

Rasunam

Figura 3.2: A) Sumador combinacional paralelo B) S d o r secuencia1serie

tiplicacin y divisin. Este tipo de operaciones en procesadores pequeos no


suele implementarse con lgica combinacional dentro del operador, sino que su
ejecucin se basa en sumas y restas elementales realizadas en mdulos combi-
nacionales.

Las ALUs suelen tener varios operadores que pueden funcionar indepen-
dientemente de los dems y en algunos casos en paralelo. En el ejemplo de la
figura 3.3 se puede seleccionar el mdulo de la ALU que va a realizar la ope-
racin mediante unas seales especificas de seleccin. El banco de registros de
prop6sito general sirve para almacenar resultados de operaciones intermedias,
tpicamente una ALU de tamao intermedio suele tener de 8 a 16 registros. En
algunas CPUs existe un registro especial llamado acumulador que recibe los
resultados del operador y ciertas operaciones slo pueden realizarse sobre el
contenido del acumulador.

El registro de estado del procesador consta de una serie de indicadores ojags


aue
* almacenan informacin sobre el resultado de la ltima ooeracin realizada.
Estos indicadores, tal como ya se mostr en la seccin 2.2, y definidos por IEEE,
son los que se enumeran en la tabla 3.1.

Las operaciones ms frecuentes que implementan los operadores de la ALU


son las siguientes:
Desplazamientos: Lgicos, circulares y aritmdticos.
Tabla 3.1: Lista de indicadores de la ALU
Banco de registros

Reglstm de estado

Figura 3.3: Esquema de una ALU genirica

Operaciones lgicas: NCYT, AND, OR,XOR.

Operaciones aritmticas: Suma, resta, multiplicacin y divisin.

Estas operaciones se pueden ejecutar de diversas maneras, dependiendo del


paralelismo que se implemente en cada una de ellas. A mayor paralelismo ma-
yor rapidez, pero habr ms unidades funcionales, con lo que la ALU ocupar
ms superficie de silicio y por tanto ser ms cara.

Las operaciones bsicas y ms frecuentes (sumalresta, desplazamientos y


operaciones lgicas) siempre se implementan con una unidad combinacional
especifica. Los procesadores ms potentes incorporan unidades especficas para
realizar las operaciones de multiplicacin y divisin en coma flotante, quedan-
do para coprocesadores aritmticos y programas especficos operaciones como
races y operaciones trigonom6tricas.

En las secciones siguientes se va a explicar de qut manera se implementan


las operaciones habituales que realiza la ALU.
ORA-MA CAP~TULO3. UNIDAD ARITMTICO LOICA 101

3.3 OPERACIONES DE DESPLAZAMIENTO

En este tipo de operaciones se realiza un desplazamiento, hacia la izquierda


o hacia la derecha de los bits de un dato. El desplazamiento puede ser de n bits,
aunque en los computadores m8s sencillos s610 se puede realizar un desplaza-
miento de 1 bit.

En cualquier caso una unidad de desplazamiento de n bits requiere una gran


cantidad de lgica combinacional. Lo ms habitual es que el registro origen
coincida con el registro destino, y se reduzca la unidad a un simple registro de
desplazamiento. En la figura 3.4 se muestra la construcci6n de un registro que
permite desplazamientos de 1 bit a la izquierda, a la derecha y carga en paralelo.
Este regisira universal se realiza con biestables D y multiplexores.

El comportamiento de este registro esta gobernado por las sefialesde control


Cl y Co. De esta manera con C,Co=OO se mantiene el estado presente, con
ClCo=10se produce un desplazamiento a la derecha de 1 bit, con CiCo=O1se
desplaza 1 bit ala izquierda, y con CICo=l1 se realiza una carga en paralelo.

Figura 3.4: Registro universal de 8 blts

Dependiendo del tratamiento de los bits de los extremos, los desplazamien-


tos se pueden clasificar en 16gicos, circulares o aritmticos.

Desplazamientos lgicw

En este tipo de desplazamientos los valores de los extremos se rellenan con


ceros o unos. En la figura 3.5 se muestra este tipo de desplazamiento para 71.2.
102 ESTRUCTURA DE COMPUTADORES Y P E ~ C O S ORA-MA

11 01 01 11 11 11 01 1
Deeplazamlentoa la Izquierda Desplazamiento a la derecha

Figura 3.5: Desplazamiento lgico

Desplazamientos circui&uw

En este tipo de desplazamientos por uno de los extremos se introducen los


valores que han salido por el otro extremo, tal como se muestra en la figura 3.6
para n=2.

Desplazamiento a la izquierda Desplauimientoa la derecha

Figura 3.6: Desplazamiento circular

Desplazamientos aritm6ticos

Este tipo de desplazamientos produce una divisin o una multiplicacin del


operando por una potencia de dos. Cabe destacar que en este tipo de despla-
zamientos debe tenerse en cuenta el sistema de representacin numrica del
operador, ya que se debe tener en cuenta el signo para realizar correctamente
el desplazamiento. El caso de la representaci6n de ndimeros negativos en com-
plemento a dos va servir de ejemplo en esta seccin, aunque el desplazamiento
sera anlogo para el resto de representaciones.

Un desplazamiento a la derecha de 1 bit produce una divisin por dos. Para


el caso de nmeros positivos hay que introducir un cero, para el caso negativo
(sup6ngase-A) su representacin en complemento a 2 es el nmero 2" - A . Una
divisin por 2 nos dara el resultado = 2"-'-A/2. Como en complemento
a 2 se cumple que -A = 2"-A, reescribiendo la anterior expresin se obtendra
2"-' + v, que consiste simplemente realizar un desplazamiento a la derecha
introduciendo un 1 en la casilla situada ms a la izquierda.

En un desplazamiento a la izquierda debe comprobarse si los dos bits ms


significativos tienen un mismo valor para que no haya una prdida de signo al
perderse el dtimo bit. En este caso se producira una desbordamiento o ove@ow

Los desplazamientos a la izquierda consisten en una multiplicacin por una


potencia de 2. En este caso se despl~~~n'ana la izquierda los bits de la palabra
introduciendoun cero por la derecha. Un ejemplo de desplazamiento aritmetico
de nmeros representados en complemento a 2 se puede observar en la figura
3.7.

esplazamiento a la izquierda Desplazamiento a la derecha

Figura 3.7: Desplazamiento aritmtico

Las operaciones lgicas que puede realizar un computador son:


AND lgico
OR lgica
N ( X o negacin
XOR lgico

Estas operaciones suelen implementarse mediante operadores paralelos com-


binacionales de carcicter general, ya que no hay dependencia entre los diferentes
104 ESTRUCiTJRA DE COMPUTADORES Y PER&UMS @RA-MA
l
bits del operando. Esto permite que estas operaciones se realicen con gran rapi-
dez. Como ejemplo, en la figura 3.8 se puede observar la ALU lgica de 1 bit.
Este circuito es puramente combinacional. Con las seales O P se seleccionara
la operacin a realizar (AND, OR o XOR).Construir una ALU lgica de n bits
consistira simplemente en poner en paralelo n veces este circuito bsico.

Figura 3.8: Operadores Idgicos

3.5 OPERACIONES DE CAMBIO Y EXTENSI~N


DE SIGNO

Muchas veces, para implementar una operacin de resta se opta por cam-
biar el signo al sustraendo y utilizar la unidad de suma. El cambio del signo
de un nmero depender del sistema de representacin de nmeros negativos
utilizado.

En el caso de que se utilice la representacin con signo-magnitud solamente


habr6 que complementar el bit ms significativo (que es el de signo). Por el
contrdo, en el caso de que se utilice representacin en complemento a uno
habr que invertir todos los bits del nmero en cuestin. Finalmente, en el caso
de que se tenga un nmero en complemento a 2 habr que invertir todos los bits
y sumar un 1 al resultado. Al ser el segundo operando un 1 fijo, se puede realizar
la suma con un circuito combinacional ms sencillo que un sumador completo.
ORA-MA CAP~TULO
3. UNIDAD ARJT&TICO LGICA 105

La figura 3.9 ilustra la inversin de signo para los nmeros enteros en estos tres
formatos.

Cuando se tiene un nmero binario representado con un cierto nmero de


bits y se pretende representarlo con un mayor nmero de bits, hay que r e a i i i
una extensin de signo. Esto se consigue en el caso de signo magnitud haciendo
que el nmero ocupe los bits menos significativosde la nueva representaci6n y
el bit de signo el ms significativo.

Para complemento a 1 y complemento a 2 el nmero ocupar los bits me-


nos significativos de la nueva representacin, mientras que el bit de signo se
replicar6 para ocupar el resto de nuevos bits, tal como muestra la figura 3.10.

Figura 3.10: Extensidn de signo en diversos formatos


3.6 SUMA Y RESTA

La operacin aritmtica fundamental a la que se pueden reducir todo el resto


de operaciones es la suma. De hecho la resta no es ms que una suma con uno de
los operandos negativo, la multiplicacin se puede reducir a una serie de sumas
sucesivas y la divisin a una serie se sumas y restas.

3.6.1 Sumador elemental binario


El sumador elemental o de un bit se ha mostrado en la figura 3.1, y su
smbolo para construir sumadores de mayor orden ser el que se muestra en la
figura3.11.

Figura 3.11: S/mbolo del srrmador elemental


A partir del sumador elemental de 1 bit se puede construir el sumador pa-
ralelo y el sumador serie que se muestran en la figura 3.2.

En el sumador binario serie la operaci6n se realiza bit a bit. Para ello se


necesitan dos registros de desplazamiento o lgica de selecci6n para decidir en
cada instante el bit que se debe sumar. Tambikn es necesario un registro de 1
bit, que inicialmente estar a cero, para almacenar el acarreo parcial. En el caso
de la figura 3.2 B el secuenciador ser un contador binario que con su estado
seleccionar6 el bit que se debe sumar. En el caso del sumador paralelo de la
figura 3.2 A se tienen n sumadores elementales con sus acarreos conectados en
cascada, de forma que el acarreo de salida de un sumador sirve como acarreo de
entrada del siguiente.
En este tipo de sumadores cabe destacar que:

m El acarreo del primer bit en principio debe estar a O, aunque en operacio-


nes de resta puede utilizarse.

m El acarreo del bit ms significativo se conectar.al bit del registro de estado


C fcaw).

m El retrmo total del sumador de d e n n ser n T donde T es el retraso


la

en el sumador de 1 bit. Esto se debe a que el acarreo debe propagarse a


travs de toda la cadena para calcular el valor del ltimo bit.

Esta ltima caracterstica es un seno obstculo en el diseo de ALUs sufi-


cientemente rpidas, Para evitar este problema se han desarrollado mtodos de
suma que anticipan el clculo del acarreo. estos son los algoritmos de suma
conocidos como suma con acarreo adelantado.

3.6.2 Sumadores con acarreo adelantado


En el caso del sumador paralelo de la figura 3.2 A el acarreo tiene que atra-
vesar los n bits para dar el resultado correcto. En los circuitos de acarreo ade-
lantado se anticipa el acarreo mediante dos funciones lgicas G y P lamadas
generador de acarreo y propagador de acarreo respectivamente. Estas funciones
se definen para cada bit de la siguiente manera:

A partir de estas ecuaciones se puede reescribir el acarreo ci y el resultado


de la suma para cada bit S,:
Aplicando estas ecuaciones de forma recursiva se puede obtener:

CO =90 +e-i.Po
c1 =gl+go'Pl +c-l.Po.Pl

cz =g2+g1 'P2 +90 'Pl 'Pzt-c-1'PO 'Pl.P2

El resultado interesante de esta expresin del acarreo es que la funcin c,no


depende del acarreo del bit anterior ct-l de manera que se evita el retraso de la
conexin en cascada. La expresin de S, depende de los valores de p, y &-l. La
expresin de e,-1 depende de los diversos valores de g y p, dependiendo stos a
su vez de los valores de los operandos.

Para realizar una suma de 2 operandos, en primer lugar se calcularn g y p


en paralelo, con un tiempo de retraso de una puerta 7,para cada uno de estos
valores. A partir de estos valores se calculan los acarreos 6, con un tiempo
de retraso de 27, ya que el rbol de lgica combinacional tiene dos puertas de
profundidad. Una vez ya se tienen los retrasos se tardar6 un tiempo de 27 para
calcular S,, lo que da un retraso de 57,independiente del nmero de bits.

Estos resultados presentan el problema del gran nmero de entradas necesa-


rias en las puertas lgicas si el nmero de bits es alto. Claramente siempre se
pueden construir puertas ms grandes a partir de puertas pequeiias, pero en la
prctica puertas lgicas con mis de 5 entradas imponen un gran retraso.

La funcin e, requiere de una AND y una OR de i + 2 entradas, por lo que


al limitar el nmero de entradas de las puertas lgicas a 5, con la estrategia del
acarreo adelantado en la pr6ctica slo se construyen sumadores de 4 bits.
ORA-MA CAP~TULO3. UNIDAD ARlTMeTICO L ~ I C A 109

3.6.3 Resta de nmeros enteros


Los sumadores descritos hasta ahora pueden ser utilizados sin mayor pro-
blema para la operacin de resta slo con realizar el complemento a 2 del sus-
traendo. De hecho es lo que se realiza en las gran mayora de ALUs, obviando
la construccin de un circuito restador. La figura 3.12 muestra un circuito que
cumple estas caractersticas. Cuando la seal ~ / vale
r O se realiza una suma del
operando B. Sin embargo si 3 / r vale 1 se realiza una suma del complemento
a 2 del operando B. es decir se suma -B. Cabe destacar cmo para ello se ha
calculado el complemento a 2 de B con las puertas XOR y con C,, = 1.

Figura 3.12: Circuito sumador restador

Anlogamente se realizara la resta en el caso de que los nmeros negativos


estn representados con signo-magnitud. La resta se realizar con el mismo
circuito de suma de la figura 3.12 slo con colocar el sustraendo en la entrada B
del sumador restador.

-
En el caso de aue se tengan nmeros en comulemento a 1 se utilizar un
A

circuito similar. La nica diferencia ser que la seal Ci, vale O para la resta y
si Cmt=lhay que corregir el resultado aadiendo un 1 posteriormente.
110 ESTRUCIWRA DE COMPUTADORES Y PERl@EICOS QRA-MA

Es interesante destacar la diferencia entre acarreo y desbordamiento en el


resultado de una operacin. Si se suman nmeros sin signo la condicin de
desbordamiento se reduce a que Cmt=l(Cat = C,). Sin embargo la condicin
de.desbordamiento, en el caso de que se tengan nmeros en complemento a 2, es
m6s sutil. Si se suman dos nmeros de signo contrario (o se restan dos nmeros
del mismo signo) no se puede tener desbordamiento. Sin embargo, si se suman
dos nmeros del mismo signo (o se restan dos nmeros de signo contrario s
que se puede producir un desbordamiento). Esto va a ocurrir en la suma de
nmeros positivos representados en complemento a 2 slo cuando se produzca
que Cn-1 = 1 (nmero negativo). Anlogamente si se suman dos nmeros
negativos y C,-1 = O se ha producido un desbordamiento. La condicin de
desbordamiento en el caso de que se sumen nmeros positivos o negativos del
mismo signo representados en complemento a 2 D sera D = Cd @ Cn-l o
equivalentemente D = Cn $ Cn-1.

Como ejemplo, si se suman los nmeros representados en complemento a


2 O1111000 y 00100000 (+120 y +32 en decimal) el resultado de la suma ser6
en 8 bits 10011000 (con acarreo O), cantidad que en complemento a 2 expresa
el nmero -104 decimal. Claramente el resultado de la operacin ha sido in-
conecto y se ha producido un desbordamiento. En este caso la condicin de
desbordamiento D sera D = Cn $ Cn-1 = O @ 1 = 1.

3.6.4 Sumadores en BCD


Los sumadores de cdigo BCD se disean de manera anloga a los surna-
dores binarios pero aadi6ndoles circuitos correctores para prevenir cuando la
suma sea mayor que 10 y los sumadores binarios suministren un valor incorrec-
to. Este valor incorrecto se puede rectificar si se suma un 6, tal como indica el
ejemplo $e la figura 3.13.

En este ejemplo se realiza la suma de 1000+ O100 = 1100 que es un resultado


incorrecto en BCD. Para compensar este resultado se comge con la suma de
0110.
i Sumador binarlo

Fgura 3.13: Ejemplo de suma en BCD

3.7 MULTIPLICACI~NY DIVISION DE N~MEROS


ENTEROS

La multiplicacin es una operacin ms costosa que la suma, pero no mu-


cho ms compleja. De hecho se puede reducir una muitiplicacin auna serie de
sumas sucesivas con un desplazamiento. Este algoritmo de multiplicacin se co-
noce como multiplicacin cldsica de lpiz ypahl, y es la base para el algoritmo
de multiplicacin de nmeros enteros sin signo.
112 ESTRUCTRA DE COMPUTADORES Y PE&RICOS ORA-MA

3.7.1 Multiplicacin de nmeros enteros sin signo


La aproximacin clsica de lpiz y papel de multiplicacin decimal tambin
se puede utilizar en el caso binario. En la figura 3.14 se muestra un ejemplo
utilizando este m6todo clsico de multiplicacin. Si se utilizan operandos de n
+
y m bits se obtendr un nmero de n m bits.

Figura 3.14: Multiplicaci6n clsica de ldpiz y papel


La multiplicacin utilizando el mtodo de lpiz y papel es muy sencilla.
Si en el multiplicador (el operando que est debajo en la operacin) hay un 1,
simplemente se copia el multiplicando (el operando que est arriba), en caso
contrario, si en el multiplicador hay un cero, se copia una fiia de ceros. Cla-
ramente cada vez que se realiza una multiplicacin parcial hay que realizar un
desplazamiento para despus efectuar la suma de todos estos resultados parcia-
les. Esta metodologa se puede realizar de forma C i t a con dos aproximaciones
distintas: una cornbinacional y otra secuencial.

Apmximaci6n combinacional

A partir de la metodologia del lpiz y papel, y utilizando sumadores elemen-


tales de 1 bit, se puede construir una matriz de multiplicacin combinacional
como la que se muestra en la figura 3.15. El truco en este diseo estriba en
habilitar que se sume el multiplicando A,-I..Ao o una fila de ceros mediante
una puerta AND que va al bit correspondiente del multiplicador B,-l..Bo. El
desplazamiento de los resaltados parciales se realiza desplazando la conexin
de las salidas de los sumadores a la siguiente fila de sumadores. Los acarreos se
propagan a travks de toda la red de maltiplicadores.
QRA-MA ~r\pfivu,
3. UNIDAD ARlTh&Ico L~GICA 113

Figura 3.15: Matriz de muliiplicaci6n combinacional

Esta aproximacin no se suele utilizar debido a la gran cantidad de lgica


combillacional que utiliza, lo que se traduce en una gran superficie de silicio
que acaba encareciendo la ALU. A pesar de que esta aproximacines ms rpida
que realizar una circuito secuencial que ejecuta el algoritmo del lpiz y papel,
se suelen utilizar unidades de multiplicacin secuenciales. S610 lag CPUs muy
potentes y especializadas incorporan unidades de multiplicacin combinaciona-
les.

Aproximacin secuencial

La matriz de multiplicacin de la figura 3.15 presenta el problema de que


u& muchas puertas lgicas. Es por esto por lo que se han desarrollado otros
algoritmos que, a costa de ser rn4s lentos, reutilizan la circuiteta de suma y
multiplicacih, y por tanto ocupan menos espacio. Un ejemplo es el esquema
del sumador secuencial que se muestra en la figura 3.16.

En este circuito se supone que el multiplicando es A,-l..Ao y el rnultipli-


cador es B,-,..Bo. El circuito consta de un sumador de n bits, un registro
acumulador S de desplazamiento de n bits (con seaales de carga en paralelo
Figura 3.16: Multiplicador secuencia1

Load y desplazamiento Shif t), un registro de desplazamiento M de m bits y un


registro C de 1 bit para almacenar el desbordamiento. La unidad de control no
es ms que una maquina de estados que realiza el algoritmo:
1. Se activa la seal de reset de todos los registros. i=O;
2. Mientras i<m hacer
Si B,=l entonces activar la seal de carga Load, cargando en S el
resultado de la suma y en C el acarreo.
Desplazamiento a la derecha (Activar la seal Shift), cargando en
M,,-1 el bit saliente de So

Con este sencillo algoritmo se realiza la multiplicacin de los nmeros ente-


ros sin signo. Cabe destacar que cuando se realiza la carga (Bi=l) se actualiza
tanto el registro de n bits que almacena la suma como el registro de 1 bit que
almacena el desbordamiento. Despues, independientemente del valor de B,, se
realiza el desplazamiento.

En el caso de que B,=0 se desprecia la suma parcial, ya que no se carga


el Yralor que aparece en la salida del sumador en el registro acumulador. Esta
aproximacin es ms sencilla, ya que la circuitera es m s simple. El resultado
@RAMA cAFhJLX33. UNIDAD ARIT~&TIco ~ 6 0 115
1 ~ ~

Tabla 3.2: Ejemplo de multiplicacin secuencia1

+
final queda almacenado en el registro de n m bits que forman el acumulador
de n bits y el registro de desplazamiento de m bits.

Como ejemplo se va a suponer que A,-l..Ao = 101010 (42 decimal) u


B,-l..Bo = 101 (5 decimal). Claramente n = 6 y m = 3, con 10 que al
iniciazar los registros se tendra 000000 en el acumulador S, O en el registro
de 1 bit, y 000 en el registro M. Las operaciones y los distintos resultados se
resumen en la tabla 3.2. Para seguir el ejemplo s610 hay que tener en cuenta que
el acumulador, si B, = 1, se carga con 101010 + S. Al final el valor correcto se
almacena en el registro acumulador encadenado con el registro M. En este caso
011010 010 = (210 decimal), que es el resultado correcto.

Multiplicadores de alta velocidad

Tanto la aproximacin combinacional como la secuencia1 derivadas del al-


goritmo del lpiz y papel son extremadamente lentas. E1 retraso en la aproxima-
cin combinacional descrita en la figura 3.15 tiene su origen en la propagacin
del acarreo a lo largo de todas las etapas. Este retraso se puede disminuir sig-
nificativamente si en lugar de esperar a que el acarreo se propague a lo largo de
todos los sumadores binarios que se encuentran en su misma fila a su izquier-
da, se suma a la entrada del acarreo del sumador inmediatamente inferior a la
izquierda. En realidad lo que se est haciendo es posponer la suma de los aca-
rreos calculando previamente los t6rminos producto P,. La multiplicacin de
la figura 3.17 se puede realizar con las dos aproximaciones que se muestran en
la figura 3.18. En esta figura se muestra la propagacin del acarreo en los ca-
minos ms latgos para el multiplicador combinacional bsico y el multiplicador
combinacional mejorado.

Figura 3.17: Trminos producto en una multiplicacin genrica de 4x4 bits

Figura 3.18: Multiplicador combinacionaE bsico y el multiplicador combina-


cional mejorado

Se puede mejorar an ms la propagacin del acarreo mediante la dispo-


sicin inteligente de los productos parciales y utilizando sumadores binarios.
El principio del rbol de Wallace consiste en interconectar la suma de los pro-
ductos parciales utilizando sumadores binarios & 1 bit para reducir tres bits de
igual peso a dos bits, uno de suma y otro de acarreo. La figura 3.19 muestra la
disposicin inicial de los productos parciales.
ORA-MA CAPTULO3. UNIDAD mm&nc0 &CA 117

Figura 3.19: Redism'buci6n de los productos palriales para la interconexidn


con los rboles de Wallace

La columna con altura mxima de n bits se divide en grupos de tres bits,


reducindolos simultneamente a dos bits. De esta manera se obtiene una co-
lumna de $n que se vuelve a dividir de forma sucesiva hasta llegar a obtener
una columna de dos bits. En el ltimo nivel se utiliza un sumador con acarreo
adelantado. La figura 3.20 muestra esta estrategia para acelerar la propagacin
de acarreos en el caso de n = 4.

. .
e....
e..
.ae .q.1 e e e e. e
e.

@P e O .
e e..
e e. e...
e +.
e.
o
e...
e

Figura 3.20: Reduccidn mediante un rbol de Wallace para n = 4

3.7.2 Multiplicacin de nmeros enteros en complemento a 2:


Algoritmo de Booth
Para resolver el problema de la multiplicacin de nmeros con signo se va a
analizar slo el caso del complemento a 2. El caso de signo magnitud es idntico
al caso de enteros sin signo, salvo en que hay que hacer una funcin XOR con
los signos de los operandos. El caso del complemento a 1 se considerar que se
puede reducir a complemento a 2.
Para reaiizar la multiplicacin de nmeros en complemento a 2 se utiliza
el algoritmo de Booth. Este algoritmo se conoce como el algoritmo de unos y
ceros, ya que optimiza el nmero de sumas y restas para conseguir el resultado
hal.

Supngase un multiplicando de n bits y un multiplicador de m bits. Para


+
almacenar el resultado total sern necesarios n m bits. El algoritmo de Booth
es un algoritmo secuencia1que necesita de los siguientes elementos:
Dos registros de n bits: A y M. En M se almacenar el multiplicando.
Un registro S de m bits. En S inicialmentese almacenar el multiplicador.
Un registro S-1de 1 bit. Se situar a la derecha de S. La cadena de
registros encadenada A+S+ S-1 debe poder realizar desplazamientos
aritmBticos a la derecha.
m Una unidad sumadora-restadora de n bits.
La unidad de control del algoritmo debe poder comparar los bits de S y
S-1para detectar cadenas de unos y ceros. De la misma manera ten&%un
contador C m6dulo m para llevar la cuenta del ciclo del algoritmo.

Con estos elementos el algoritmo de multiplicaci6n de n6meros enteros en


complemento a 2 se puede describir as:
1. Se almacena en M el multiplicando y en S el multiplicador. Los registros
A, S-1y el contador C se iniciaiizan a cero.
2. Si SoS-1=10 (Soes el bit menos significativo de S) entonces A t A -
M. Se efecta un desplazamiento aritmtico a la derecha de 1 bit
encadenando los registros A+S+ 3-1. Se actualiza el contador
CtC+l.
Si SoS-l=O1 entonces AtA+M. Se efecta un desplazamiento arit-
mtico a la derecha de 1 bit encadenando los registros A+S+
Se actualiza el contador CeC+l.
En cualquier otro caso (SoS-l=l 1 6 00) se efecta un desplaza-
miento aritmtico a la derecha de p bits encadenando los registros
A+S+ S-1,hasta que So # S-i6 C+p = m, siendo p el nmero
de desplazamientos de 1 bit. Adicionalmente se actualiza el contador
con CtC+p.
ORA-MA C A P h L O 3. UNIDAD A R C I W ~ C OL6OICA 119

3. Si C< m volver al paso 2. Si C=m ndel algoritmo, estando el resultado


correcto de n + m bits almacenado en la cadena formada por los registro
AyS.

En la figura 3.21 se muestni un ejemplo numrico de la aplicacin & este


algoritmo. Cabe destacar la reduccin de operaciones de suma y resta gracias a

-14 1111 001O


x 0111
--
la &teccin de unos y ceros consecutivos.
M-Mulfipllcando(n-8 bits)
S-Multiplicador (m=4 b k )
1111 1001 1110 -b A encadenado con S-Produoto (12 b i )

C A S ;S,
Paso 1 O 0000 0000 0111 1 0 Inicialiracin
1
Paso 2 O 00001110 011110 SOS-l=lOA<-A-M
1 0000 O111 0011 1 1 Desplazamientode 1 bit. C=1
1
Paso 3 1 00000111 0011 11 Can
Paso 2 3 0000 0001 1100 1 1 Desolezamlentode 2 bits. C=3
Paso 3 3 00000001 iia0;i can
Paso 2 4 1111 0011 1100 II
1
SOS-l=O1 A<-A+M
4 1111 1001 1110 1 O Desplazamientode 1 bit. C=4
Paso 3 4 ,1111 1001 1110; O G m Fin del Algoritmo
V

Figura 3.21: Ejemplo del algoritmo de Booth

3.7.3 Divisin de nmeros enteros sin signo


La operaci6n & divisin es bastante m& compleja que la de multiplicacin.
De nuevo existe la *wsibiidad &realizar una a~roximacinbasada en el m6todo
de lpiz y papel, aunque tambi6n existen Vanos m6todos combinacionales.

Los mtodos combinacionales de divisin entera se basan en matrices regu-


lares de celdas a travds de las cuales se propaga el acarreo de diversas operacio-
nes elementales de suma. Estas matrices tienen el problema de que los lazos de
120 ESTRUCTLJRA DE COMPUTADORES Y PERW~RICOS ORA-MA

realimentacin son largos, y si se quieren realizar divisores de muchos bits el


retraso puede llegar a ser inaceptable.

Por este motivo, para realizar la divisin entera en la mayora de casos 5610 se
recune a algoritmos secuenciales. La divisin entera se basa en dos algoritmos
de divisi& de nmeros sin signo: La divisin con y sin restauracin.

Los algoritmos de divisin de nmeros enteros con signo son ms complejos


y requieren de transformaciones previas de los operandos. El mtodo elegido
ser representar los operandos en signo magnitud y despuks asignar el signo del
resultado.

DiM16ncon restauracin

Se pretende realizar la divisin de un nmero entero de n bits, P. entre un


nrmero entero de m bits S. El resultado ser un cociente Q de n bits y un resto R
de m bits. Es decir 5 = Q + 9. Para poder realizar estas operaciones sern ne-
cesarios un registro Q de n bits donde inicialmente se almacenar el dividendo
y al final estar almacenado el cociente, un registro D de m bits donde se al-
macenar el divisor, un registro A de m bits donde al final estar almacenado el
resto, un mdulo sumaor restador de n bits y una unidad de control. El registro
encadenado A-Q debe poder efecniar desplazamientos de un bit a la izquierda
y ser necesario un contador C para almacenar el nmero de la iteracin. Con
estos supuestos el algoritmo se ejecutar en n iteraciones y tendr la forma:

1. Inicializaciones: A t O, D t divisor, Q t dividendo, C t O.

2. Desplazamiento a la izquierda de 1 bit encadenando los registros A-Q.

3. A t A-D.
4. Si A<O entonces Qo t O y se restaura A haciendo A t A+D.
Si A>O entonces Qo t 1.
5. Si C=n - 1 entonces n del algoritmo. Q contiene el cociente y A el
resto.
Si C<n - 1 inwmentar C ( C t C + l ) y volver al paso 2.
El algoritmo toma su nombre de la operacin de restauracidn que se realiza
para el registro A si el resultado de A-D es negativo.

En la figura 3.22 se muestra un ejemplo del resultado de reaiizar la divisin


entera de 10110011 (179) entre O110 (6). El cociente es 00011101 (29) y el
resto o101 (5).

D (divisor) m 4
,q---mj
Q (dividendo) n= Qn C

Paso 2
Paso 3
Paso 4
Paso 5
Paso 2
Paso 3
Paso 4
Paso S
...
Paso 2
Paso 3
Paso 4
Paso 5

Figura 3.22: Ejemplo de divisidn con restauracin

Divisin sin restauracin

En el algoritmo de divisin con restauracin se restaura A si A-D es negativo.


Se puede realizar un algoritmo similar en el cual se evita este paso salvo al final,
en el clculo del resto. En esta versin se suma o se resta en funcin del valor
de A. Este algoritmo se describe as:
122 FSTRUCl'lJRADE COMPUTADORESY P E R F ~ I C O S ORA-MA

1. Iniciazaciones: A t O, D t divisor, Q t dividendo, C e O.

2. Desplazamiento a la izquierda de 1 bit encadenando los registros A-Q.


3. A t A-D.
4. i Si A<O entonces Qot O. Desplazar 1 bit A-Q a la izquierda. A t
A+D.
i S i A 2 0 entonces Qot 1. Desplazar 1 bit A-Q a la izquierda. A t
A-D.

5. C t C+l
6. i Si C< n - 1 entonces volver al paso 4.
i Si C= n - 1 entonces
- Si A<O Qot O. A t A+D.
- Si A20 Qot 1.

7. Fin del algoritmo. Q contiene el cociente y A el esto.

3.8 REPRESENTACI~NDE -ROS EN COMA


FLOTANTE

Los computadores no utilizan solamente fomatos numricos de nmeros


enteros. Es fundamental para cualquier mquina de clculo poder realizar ope-
raciones con nmeros fraccionarios. Es posible representar cualquier nmero
racional o fraccionario no periddico mediante su descomposici6n binaria en po-
tencias de 2. En el caso de niimeros enteros la deswmposici6n en sus dgitos
binarios se realiza tras realizar divisiones sucesivas por potencias de 2 positivas.
En el caso de nmeros reales no enteros las divisiones sucesivas se extienden a
potencias de 2 con el exponente negativo (2-', 2-2, etc).

3.8.1 El estndar de precisin simple de IEEE


Antes de explicar cmo se realizan la operaciones en coma flotante es inte-
resante explicar la representacin de niimeros reales en binario con el estndar
ORA-MA CAP~TIJLO3. UNIDAD ARITM~TICOLGICA 123

EEE. Para expresar cualquier nmero real en binario slo hay que extender la
representacin en base 2 a los exponentes negativos. De esta manera se tendra
por ejemplo:

La ltima representacin corresponde al estndar IEEE de representacin de


nmeros en coma flotante de precisin simple. Para la representacin en binario
se deja siempre en la mantisa un solo 1 a la izquierda de la coma modificndose
el exponente de manera adecuada. En general se tendr:

Los n bits que lo representan se dividen en p bits para la mantisa M y q bits


para el exponente E y un bit de signo s. r es la base del exponente que se obvia
al ser en el caso binario siempre 2.

El exponente se representa en binario con exceso. De esta manera en el caso


del estndar de E E E se deber sumar 127 al exponente E para representarlo,
dando un margen de representacin de nmeros con exponente desde el -127
hasta el 128. El estndar de simple precisin de IEEE tiene un total de 32 bits,
de los cuales el primero es para el signo, los 8 siguientes para el exponente con
polarizacin de +127, y los 23 restantes para la parte fraccionaria de la mantisa

En el caso de la mantisa se elimina siempre el uno que est a la izquierda


de la coma, por estar siempre presente, y se rellenan los bits ms significativos
a partir de la coma hacia la izquierda. De esta manera se considerar la parte
fraccionaria f como el nmero binario que corresponde a la mantisa menos l.
Como ejemplo se tiene el nmero:

El bit ms a la izquierda indica un signo menos. Los siguientes 8 bits son un


nmero entero sin signo que representa el exponente. Como se ha apuntado hay
que restarle 127 para tener el valor correcto, por tanto E=011110012-127=-6.El
resto de dgitos expresan la parte fraccionariaf , que en este caso sera 0.010lZ=
+
2-2 2-4 =0.3125. Para calcular la mantisa habra que sumarle 1, con lo que
el resultado inal, aadiendo el signo, quedara -1.3125-2-6=-0.0205078125.

3.8.2 Operadones en coma flotante


Para sumar (o restar) dos operandos representados en coma flotante se deben
realizar las operaciones:
1. Seleccionar el nmero con menor exponente y desplazar su mantisa a la
derecha tantos pasos como la diferencia en valor absoluto de los exponen-
tes de los dos operandos.
2. Igualar el exponente del resultado al mayor de los exponentes de los ope-
rando~.
3. Sumar (restar) las mantisas y determinar el signo del operando.
4. Normalizar el resultado si es necesario.
5. Comprobar la condici6n de desbordamiento.

Como ejemplo se va a abordar la resta 1.510- 0.3751~.Para ello hay que


representar estos nmeros en coma flotante, obtenindose para el estndar de
IEEE de simple precisin:

Para realizar la resta se selecciona como exponente el mayor (0111 111 l),
se desplaza la mantisa del nmero menor tantas veces a la derecha como la
diferencia de los exponentes (2). Con lo que al final hay que realizar la resta
1.1002 - 0.O1l2 = 1.0012, quedando de signo positivo.

Expresando el resultado en el est8ndar de IEEE se obten&

Aniogamente la multiplicacin (y divisin) de nmeros en coma flotante es


si cabe ms sencilla. Los pasos a realizar en este caso son:
1. Sumar (restar) los exponentes.
2. Multiplicar (dvidir) las mantisas y determinar el signo del resultado.
3. Nomializar el valor resultante si es necesario.

Como ejemplo se va a realizar la multiplicacin de los nmerosenteros 3.5 y


0.75. Estos nmeros expresados en formato IEEE de coma flotante de precisin
simple tendrn la forma O 1OOOOOOO 1100OOOOOOOOOOOO~00 y O 01111110
lOOOOOOaOOOOOOOOOOOO000respectivamente. Si se suman los exponentes de 8
bits se obtiene el nmero 11111i10, y restndole el exceso de 12f, ya que se ha
sumado este exceso 2 veces al estar representados ambos exponentes con exceso
127, se obtiene el exponente 01111 111,lo que corresponde un cero expresado
con exceso 127.

Si se realiza la multiplicaci6n de ambas mantisas 1.11 y 1.1 se obtiene


10.101, que corresponde al resultado previsto en decimal: 2.625. Normalizando
la mantisa de nuevo para representarlo en el formato iEEE se obtendri como
resultado 1.0101 .2l.Si se aade este exponente al resultado del exponente an-
terior se tendr un exponente expresado en exceso 127 igual a 10000000. La
mantisa sera O101 y el bit de signo no cambiara al ser ambos nmeros po-
sitivos. De esta manera la representacin final del resultado ser O 1OOOOOOO
OlolOOOOOOOOOOOOOOOm.

Finalmente se puede realizar la divisin de ambas cifras de manera que 3.5


sea el dividendo y 0.75 el divisor. En este caso se restan los exponentes ob-
tenindose el resultado 00000010. Este resultado no est expresado en exceso
127, ya que se restan ambos excesos. Por tanto es necesario ailadir 127 de nuevo,
con lo que el exponente ser6 10000001.

Si se realiza la divisi611 de ambas mantisas 1.11 y 1.11 se obtendr el resulta-


do 1.00101010101010101010101, que adems no es exacto, ya que el resultado
de la divisin es un nmero peri6dico. De esta manera, y teniendo en cuen-
ta el exponente, el resultado obtenido es 1.00101010101010101010101~22=
100.101010101010101010101,que expresado en decimal se corresponde con el
nmero 4.666 ...6.

3.9 CUESTIONES

3.1 Indicar las diferencias entre un operador secuencia1 y un operador combi-


nacional. j Qu ventajas presenta una aproximacidn frente a la otra?

3.2 En este capitulo se ha distinguidoentre desplazamiento lgico y aritmtico.


iQu6 diferencia fundamental existe entre ambos tipos de desplazamiento? Se
produce este efecto tanto en el desplazamientoa la izquierda como a la derecha?
Indicar un par de ejemplos que demuestren las diferencias entre ambos tipos de
desplazamiento.

3 3 Disear un circuito lgico que realice la inversidn de signo de un nmero


de 8 bits que puede estar almacenado en fonnato de signo magnitud, de com-
plemento a 1 y de complemento a 2. El circuito debe tener 2 bits de seleccidn
con los que se indicara el tipo de conversidn a realiza>:

3.4 Indicar las ventajas y desventajas de los sumadores de acarreo adelanta-


do frente a los sumadores realizados con sumadores binarios completos con el
acarreo conectado en cascada.

3 5 Realizar la multiplicacidnde los nmems -20 y 5 representados con 8 bits


y en formato complemento a 2 utilizando el algoritmo de Booth. Cul es el
coste temporal de este producto (en nmero de ciclos de reloj)?
~RA-MA C&LO 3. UNIDAD AIU'B&TICO LGICA 127 l

3.6 Se pretende realizar la divisin entera del nmero 25 (6 bits) entre el


nmero 3 (5 bits). Indicar el tamao de los registros implicados y el coste tem-
poral en ciclos de reloj. Utilizar para ello el algoritmo de divisin entera con
restauracin.

3.7 Se pretende realizar la divisin entera del ndmero 63 (8 bits) entre el


ndmero 20 (6 bits). Indicar el tamao de los registros implicados y el coste
temporal en ciclos de reloj. Utilizar para ello el algoritmo de divisin entera
sin restauracin.

3.8 Se propone completar el ejemplo de la figura 3.22 siguiendo el algoritmo


de divisin con restauracin, as como realizar el mismo ejemplo con el algo-
ritmo de divisin sin restauracin.

3.9 Representar los siguientes nmeros d e c i d e s con el formato de comajo-


tante IEEE de precisin simple.

13.15625io

W 2593,7510

-3124.000976562510

3.10 Expresar en formato decimal los siguientes nmeros representados en el


formato de comajotante IEEE de precisin simple.

w 101100110101000000000OOO000OOO00

w 00101O11111o11oo00OOOoOOO000000o

w 10111011101101110001000000000000

3.11 Realizar la suma, producto y divisin de los nmeros 21.53125i0 y


-32.415.04687510.Utilizar para ello el formato IEEE de precisin simple.
128 ESTRUCTURA DE COMPUTADORES Y PERIFRICOS mRA-MA

m Estructura y Tecnologa de Computadores 11. S. Donnido, M. A. Canto


y J. Mira, A. E. Delgado. Universidad Nacional de Educacin a Distancia.
Madrid, 1994. ISBN 84-88667-06-X.
m Fundamentos de los Computadores. Estructura, funcionamiento in-
temo, software de sistemas. Pedro de Miguel Anasagasti. Editorial Pa-
raninfo. Madrid, 1999. ISBN 84-283-1790-9.
m Computer Arithmetic Systems. Amos R. Omondi. Editorial Prentice
Hall. Nueva York, 1994. ISBN 0-13-334301-4.
m Digital Computer Arithmetic: Design and Implementation. Joseph J.
E Cavanaugh. EditonalMc. Graw-Hill.USA, 1984. ISBN 0-07-010282-1.
m Computer Arithmetic: Algorithms and Hardware Designs. Behrooz
Parhami. Editorial Oxford Univ Press. UK, 1999. ISBN 0-19-512583-5.

m Division Algorithms
- and Implementations.
- Stuart E Oberman y Mi-
chael J. Flynn. IEEE Transactions on Computers, vol. 46, nc 8, Agosto
1997.
JERARQUA DE MEMORIA

La memoria principal (main memory) es la parte del ordenador donde resi-


den los programas y los datos que stos utilizan en el momento de su ejecucin.
Cuando se desea ejecutar un programa, como normalmente est almacenado en
un dispositivo de almacenamiento secundario, lo primero que se hace es copiar-
lo en memoria. Este proceso lo realiza el Sistema Operativo (S.O.) teniendo
tambin que gestionar las posiciones de memoria donde se va a cargar el pro-
grama. Una vez la copia ha finalizado, el procesador inicia la ejecucin de las
instrucciones leyndolas de memoria a partir de la posicin donde el S.O. ha
cargado el programa.

El tamao mximo que puede tener la memoria fsica de un ordenador viene


determinado por el nmero de lneas de direcciones que posee el procesador.
Un procesador con 16 lneas de direcciones ser capaz de acceder al rango de
posiciones de memoria desde la O hasta la OFFFFh. Se define el espacio de
direccionamiento del procesador como la cantidad de posiciones de memoria
a las que puede acceder. En el ejemplo anterior se puede decir que el espacio
de direccionamiento del procesador es de 64 Kbytes. En algunos procesadores
se diferencia el espacio de direccionamiento de las posiciones de memoria del
espacio de direccionamiento utilizado para acceder a los recursos de los disposi-
tivos de Entradalsalida. Dependiendo de la anchura del bus de datos se define La
longitud de palabra de la memoria como la cantidad de octetos que pueden ser
130 ESTRUCTURA DE COMPUTADORES Y P E R I E ~ c o s QRA-MA

transferidos de fonna simultnea en un ciclo de bus. Si el bus de datos es de 32


bits, la transferencia de una palabra de memoria constar de 4 bytes. Normal-
mente, la unidad de informacin menor que puede ser transferida es el byte, por
lo tanto, cuando se tiene una direccin Bsta h d referencia a un byte de la me-
moria. La direcci6n de dos palabras consecutivas, teniendo en cuenta el ejemplo
anterior, diferir6 en 4 unidades.

- . .
Cuanto antes llemen las instrucciones v los datos desde la memoria al oro-
cesador mayor sed la velocidad de ejecuci6n de los programas. Para medir la
velocidad del sistema de memoria se consideran los siguientes parmetros:
Tiempo de acceso: Tiempo mnimo que transcurre desde que las direc-
ciones se depositan en el bus y se recogen los datos, en el caso de una
lectura.
Tiempo de ciclo: Tiempo mnimo que tiene que transcurrir entre dos
operaciones de memoria consecutivas

Es muy importante hacer un buen diseo del sistema de memoria para mi-
nimizar estos tiempos y por tanto aumentar el rendimiento del ordenador al
mximo. En este disefo hay que tener en cuenta que no s610 el procesador
accede a la memoria, sino que tambi6n existen transferencias entre la memoria
y los dispositivosde entradalsalida,haciendo que la memoria sea un dispositivo
muy ocupado que pueda llegar a ser el cuello de botella del sistema.

Para implementar el sistema de memoria se utilizan memorias RAM (Ran-


dom Access Memory), caracterizadas principalmente porque su tiempo de acce-
so es independiente tanto de la posicin a la que se quiere acceder como de la
secuencia de los accesos anteriores. Frente a estos dispositivos se encuentran
las memorias de acceso secuencial, cuyo tiempo de acceso depende de la se-
cuencia de operaciones realizadas. Hay que tener en cuenta que el coste por bit
de informaci6n en este segundo tipo de dispositivo es mucho menor que en los
dispositivosde acceso aleatorio, pero que debido a los tiempo de acceso tan ele-
vados que presentan s610 son apropiadas como dispositivos de almacenamiento
masivo para hacer copias de seguridad.

Para aumentar las prestaciones se va a incorporar una memoria cache cons-


truida a base de memoria SRAM de alta velocidad entre el procesador y la me-
moria principal del sistema. La poltica de acceso a esta jerarquia de memoria
va a permitir que la mayora de los accesos se realicen en la memoria r@ida, que
contendr por tanto una copia de un subconjunto de posiciones de la memoria
principal.

Otro aspecto que influye notablemente en el disefio del sistema de memo-


ria ha sido el aumento del espacio de direccionamiento de los procesadores
convencionales. A medida que las necesidades de utilizacin de los sistemas
i n f d ' t i c o s han ido creciendo, los programadores han realizado aplicaciones
ms complejas con unos requerimientos de memoria mayores. Como para eje-
cutar un programa, su c6digo y sus datos deben estar en memoria principal, se
Ueg r&pidamente al caso de que la memoria no era lo suficientemente grande
como para satisfacer las necesidades de un programa.

Para aumentar el tamaho de la memoria se va a utilizar la memoria de al-


macenamiento secundario para guardar parte de los programas. Estos sistemas
aparecieron en los aos cincuenta, donde se dispona de una pequea memoria
RAM. Los programadores dividan sus programas
- . en secciones independientes
que alojaban en memoria secundaria Las secciones se transferan a memoria y
a medida que el .programa
- evolucionaba se haca un acceso secuencial a disco
o a cinta &a cargar una nueva seccin que reemplazaba a otra que ya no se
necesitaba en ese momento. El programador era el responsable de realizar estas
tareas.

A medida que empezaron a hacerse popuiares los lenguajes de programa-


cin que permitan la implementacin de programas m& complejos y conforme
el programador estaba cada vez menas familiarhado con el sistema informhtico,
la eficiencia de los programas basados en overlays fue decreciendo. Empez a
emerger el problema de la asignacin de memoria a los programas. Las solu-
ciones adoptadas en la epoca consistian en realizar una asignacin esttica de
la memoria basada en las predicciones de necesidad de memoria del programa
que se podian hacer, y en realizar una asignacin dinmica de la memoria que
creca y decreca segn las necesidades reales. Rhpidamente result imposible
realizar una asignacin esttica de la memoria debido a la complejidad de los
programas.

A continuacin se invent la memoria vimial, que es una tcnica que permite


a la B U generar direcciones vimiales que son trasladadas en direcciones fisicas
que se utilizan para acceder a la jerarqua de memoria Esta tcnica se desarroll
132 ESTRUCTURA DE COhF'TAWRFS Y P E R ~ R I c o S @U-MA

por primera vez en la Universidad de Manchester con el ATLAS Compufer,


mquina con una memoria con dos niveles, una RAM de 16K y un tambor de
96K. Los programadores realizaban sus programas como si la memoria fuera de
96K, y el ordenador trataba la memoria wmo si estuviera dividida en pginas
de 512 palabras, cargando 32 pginas de programas y datos al principio. Si
se acceda a una palabra de una pgina que no estaba en memoria, el hardware
traa la pgina requerida a memoria que sustitua a otra que era pasada al tambor.
Todo este proceso era transparente al usuario. Este sistema de memoria se sigue
utilizando en la actualidad y recibe el nombre de memoria virtual, ya que la
memoria principal parece de mayor tamao de lo que realmente es.

En esta introduccin se han definido los dos parmetros esenciales que se


deben tener en cuenta en el momento de construir un buen sistema de memoria:
las prestaciones y el tamafio. Ambos estn en funcin del coste. y por lo tanto el
objetivo va a ser construir una memoria de tamao grande, de altas prestaciones,
pero con un coste por bit pequeo.

Se va a disear un sistema de memoria jerrquico, compuesto por varios


niveles de memoria que difieren entre s en tamao y prestaciones. Lo que se
pretende es obtener unos resultados parecidos a un sistema en el que toda la
memoria est compuesta por los dispositivos ms rpidos de la estructura.

4.2 EL PRINCIPIO DE LOCALIDAD

A medida que el tamao de las aplicaciones fue creciendo, se detectaron


ciertas caractegsticas de los en ejecucin que se aprovecharon para
implementar los sistemas de memoria de alto rendimiento con un coste bajo.
~a~observacin del comportamientode los programas revela la fuerte tendencia
de los accesos a memoria a estar agrupados en regiones pequeas de memoria
durante cualquier pequeo periodo de tiempo.

Los programas no necesitan acceder a SU cdigo ni a sus datos de una vez


con la misma probabilidad. El principio de localidad asegura que los progra-
mas acceden nicamente a una porcin relativamente pequea de su espacio de
direccionamiento durante un corto espacio de tiempo. Por lo tanto existe una
fuerte tendencia en los patrones de acceso futuros a ser similares a los patrones
ORA-MA DE MEMORIA 133
CAP~TULO4. IERARQLI~A

ocurridos en el pasado cercano, es decir, que mirando la historia de los accesos


se pueden predecir los accesos que ocurrirn en el futuro. Haciendo estas pre-
visiones el sistema puede trasvasar bloques de datos entre los diferentes niveles
de la memoria jerrquica para garantizar, con cierta probabilidad, que cuando se
busca un dato en el nivel superior de la jerarqua se va a encontrar. El principio
de localidad surge de la estructura propia de los programas. Existen dos tipos
diferentes de localidad:

Temporal. Si se hace referencia a un objeto, existe una cierta tenden-


cia a volver a referencia10 en un corto espacio de tiempo (bucles en un
programa o llamadas a subrutinas).
Espacial: Si se hace referencia a un objeto, tambin tendern a ser refe-
renciados los dems objetos que estn ubicados en direcciones prximas
a ste. (Acceso a vectores de datos o a la memoria de instrucciones).

Para aprovechar la localidad, se va a implementar la memoria como una


memoria jerrquica de manera que existirn diferentes niveles de memoria con
distintos tamaos y velocidades. La memoria ms rpida constituir el nivel
supenor y se colocar prxima al procesador. El nivel inferior constituido por
la memoria ms lenta, que tiene un precio mucho menor, se colocar detrs del
nivel supenor. Los programas se dividirn en bloques de tamao fijo que se
cargan en la memoria ms rpida para aprovechar las ventajas del principio de
localidad. Con esto, el objetivo que se persigue es que el usuario tenga la mayor
cantidad de memoria posible con la tecnologa ms econmica, pero con el tiem-
po de acceso ofrecido por la memoria ms rpida. Las tecnologas que se usan
para construir las memorias de las capas ms cercanas de la jerarqua son las tec-
nologas de circuitos de memoria SRAM (Static Random Access Memory) y a
continuacin las DRAM (Dynnmic Random Access Memory) con sus mltiples
variantes de acceso sncrono, modo rfaga, etc. Las capas ms externas de la
jerarqua de memoria las constituyen los dispositivos de almacenamiento ma-
sivo que se analizan en el captulo l l. En la tabla 4.1 se muestran de forma
comparativa los tiempos de acceso y el coste por Mbyte aproximados para estas
tecnologas de memorias en el ao 1999.

Debido al principio de localidad temporal, la mayora de las veces se en-


cuentra el dato en la memoria ms rpida, ya que es bastante probable que el
dato haya sido accedido anteriormente.
Tabla 4.1: liempos de acceso y precio por Mbyte (1999)

La jerarqua de memoria puede constar de varios niveles, pero los datos


siempre se van a copiar entre dos niveles adyacentes. Por simplicidad, aun-
que no se pierde generalidad, se va a considerar 6nicamente el nivel supexior y
el nivel inferior.

Cuando el procesador busca un dato en la memoria se pueden producir dos


situaciones:

1. Acierto (H&): Los datos estn en el nivel superior. La tasa de aciertos


(hit rate) define la fracci6n de los accesos a memoria en los que se han
encontrado los datos en el nivel superior.

2. Fao (Miss ofault): Los datos no estn en el nivel superior. Por tanto se
debe acceder al inferior para traer el bloque que los contiene. Se define la
tasa de fallos (miss mre) como 1 menos la tasa de aciertos.

Ya que con la estructura jerrquica principalmente se persigue obtener un


mayor rendimiento en el sistema, hay que tener muy en cuenta la velocidad con
la que se procesan los aciertos y los fallos. Se define por tanto:

tiempo de acierto o Hit time: tiempo necesario para acceder a los datos
en el nivel superior, incluyendo el tiempo necesario para determinar si es
un acierto o un fallo.

Tiempo de Pdlo o Miss time: tiempo que se tarda en sustituir un bloque,


incluyendo tambin el tiempo utilizado en pasarlo al mimprocesador.
Este parmetro es mucho mayor que el anterior.
@U-MA C~l'hUL04. JERARQU~ADE MEMORIA 135

4.3 MEMORIA CACHE

La idea de la memoria cache es similar a la de la memoria virtual en el


sentido de que existe una pequea porcin de la memoria principal que est
duplicada en una memoria especial (llamada memoria cache) de alta velocidad.
El thmino cache se utiliza para denominar al nivel superior de la jerarqua de
memoria. Cuando se genera una peticin de memoria, la peticin es presentada
primero a la cache, y si sta no proporciona el dato se le pmenta entonces a la
memoria principal.

Los conceptos de memoria cache y memoria virtual son similares, ya que se


diferencian nicamente en la implementaci611, que ser distinta debido princi-
palmente a las diferencias de velocidad que existen entre los distintos niveles de
la jerarqua de memoria. La memoria principal es de 4 a 20 veces ms lenta que
la cache y el disco es alrededor de 1OOO a 10000 veces ms lento que la memo-
ria principaL El coste tan elevado de los fallos & pgina hace que se utilicen
estrategias distintas para manejarlos, no siendo tan importante en el caso de la
cache la generacin de un fallo en algn acceso.

E1 funcionamiento de la cache es muy simple. Cuando la CPU enva por


primera vez una solicitud de lectura de una posci6n de memoria, se transfiere
a la cache un conjunto de palabras (liamado bloque) que contienen el dato re-
ferenciado. Sucesivos accesos a cualquiera de las posiciones del bloque hacen
que su contenido se lea directamente de la cache. La correspondencia que existe
entre los bloques de la cache y las posiciones de memoria principal la decide
.
una funcin de mapa o mapeo Cuando la cache se nena y se hace referencia a
una palabra que no est en la cache, se debe decidir qu6 bloque se elimina para
que el nuevo ocupe su lugar. El conjunto de reglas que se utilizan para tomar
esta decisin constituye el algoritmo de reemplazo.

No es necesario que la CPU tenga conocimiento de la existencia de la cache.


Al generar las dhciones, existe una circuitera que decide si el dato est en la
cache o no. (Esta circuitera en los sistemas comerciales se implementa en un
integrado especial llamado controlador de cache). En las lecturas, si el dato est
en la cache, la memoria principal no interviene. Sin embargo en las escrituras
se puede actualizar simultneamente tanto la cache como la memoria (caso de
una cache write-through) o se puede actualizar slo la cache y marcarla como
136 ESTRUCT'UBA DE COMPUTADORESY PER&RICOS @M-MA

modificada (caso de las caches write-back o copy-back). Ms tarde, cuando se


reemplace el bloque se actualizar6 la memoria principal. El primer m6todo tiene
como inconvenienteque genera operaciones de escritura inneceshas, por ejem-
plo cuando se escribe varias veces sobre el mismo bloque. Sin embargo, wmo
cada vez que se m a c a la cache tambibn se m&ca la memoria principal,
ambas copias son siempre iguales y por tanto evita problemas de incoherencias
con los datos en los sistemas multiprocesadores.

Los datos en la cache se agrupan en estructuras llamadas lneas o bloques,


cada uno de los cuales tiene asociada una etiqueta. El tamao mnimo de un
bloque es una palabra, sin embargo, para aprovechar el principio de localidad
espacial se suelen utilizar bloques de varias palabras. Esto es debido a que si los
bloques tienen un tamao superior a una palabra, cuando ocurre un fallo en la
cache se traen a la cache varias palabras adyacentes. Debido a este principio los
bloques que se acaban de copiar tienen una gran probabilidad de ser necesitados
en un wm espacio de tiempo, con lo que se van a mejorar las tasas de acierto
en los accesos a la cache y por lo tanto el rendimiento del sistema de memoria
ser ms elevado.

Los datos son copias de una parte de la memoria principal. Para poder ave-
riguar de qu parte se trata se utiliza la etiqueta, que indica de alguna manera
la direccin que ocupan en memoria estos datos. Cuando el procesador realiza
una lectura, primero se buscan los datos en la cache utilizando la etiqueta. Si se
encuentran se ha producido un acierto y el procesador lee los datos directamente
de la cache. En caso contrario ocurre un fallo en la lectura y no hay ms remedio
que leer los datos de la memoria principal.

Las palabras de la cache y de la memoria principal se van a agrupar en blo-


ques de tamao constante. En las siguientes secciones se van a describir los
mbtodos que se utilizan para asignar las posiciones en la cache donde se copia
un bloque. Esta posici6n puede ser nica, en el caso de tener una cache mapeada
directamente, o bien puede ser variable en el caso de tener caches asociativas por
conjuntos o caches totalmente asociativas. Para poder describir los algoritmos
de mapeado con mayor facilidad se va a utilizar la nomenclatura definida en la
tabla 4.2.

En este ltimo caso, en donde un bloque de memoria principal se puede


copiar en posiciones diferentes de la cache, se tiene que u t i b un aigoritmo de
+Nmero de bytes en un bloque
-+ Nmero de bloques en un conjunto
+ Nmero de conjuntos en la cache
M =K *N -Nmero
i de bloques en la cache
Tabla 4.2: Parmetros que describen una cache

emplazamiento (o reemplazamiento en el caso de que haya que sustituir algn


bloque) para determinar la posicin de destino.

4.3.1 Mapeado directo


Este m6todo se caracteriza porquecada bloque de la memoria se corresponde
con un bloque nico en la cache. En la figura 4.1 se muestra un ejemplo de este
tipo de mapeado.

Nobloque

oca
001
o10
o11
1 O0
101
110
111
Memoria Cache

Memorla Wnclpal

Figura 4.1: Ejemplo de mapeado directo en una cache

- si
Cuando el vrocesador realiza un acceso a un dato se tiene que averiguar
existe una copia del mismo en la cache para evitar un acceso a memoria principal
innecesario. Para ello, primero se calcula qu bloque de memoria contiene el
138 ESTRUCPVRADE COMPUTADORES Y FEIUP~ICOS ORA-MA

dato y la posicin del bloque de la cache que tiene asignado. Seguidamente se


compara la etiqueta con la que se obtiene de la direccin del dato y el bit de
vlido de dicho bloque para ver si se ha producido un acierto.

La direcci6n del bloque de memoria que contiene un dato determinado se


calcula como:
(direccin del dato) dividido (tamao del bloque en bytes)

La posicin que tiene asignada en la cache un bloque de memoria viene dada


por la expresin:
(direccidndel bloque) mdulo (turnar50de la cache en bloques)

La etiqueta que le corresponde al bloque que contiene el dato se calcula


wmo:
(direccin del bloque) dividido (tamuode la cache en bloques)

Este mtodo es atractivo si los parmetros que definen la estructurade la me-


moria cache (vtase la tabla 4.2) son una potencia de 2. En este caso, se puede
calcular la direccin del bloque que contiene al dato realizando un desplaza-
miento aritmttico a la derecha de la direccin del dato log, L posiciones. De la
misma manera los log, M bits menos signiicativosde la dimxin del bloque
indican la posicin donde se copia este bloque en la cache (ver la figura 4.2).
Este valor se calcula realizando la operacin binaria (direccin del bloque en
memoria) AND M. La etiqueta se corresponde con los bits restantes, es decir
con el valor que resulta de realizar un desplazamiento aritmktiw a la derecha de
la direccin del bloque log, M posiciones. Estas operaciones son muy sencillas
y se realizan de forma muy rpida en la ALU de cualquier ordenador.

Cada posicin en la cache puede contener varias posiciones de memoria, por


tanto la cache debert disponer de informacin adicional para poder diferenciar
los distintos bloques de la memoria. Para ello es necesario aadir una etiqueta
que identifica la direccin en memoria de cada bloque. Esta etiqueta slo ne-
cesita guardar la parte alta de la direccin. la que no se utiliza para desplazarse
sobre la cache, ya que los datos a los que apunta una direccin slo pueden al-
macenarse en un bloque concreto & la cache. Por lo tanto el nmero de bloque
que ocupan los datos en la cache junto con el contenido de la etiqueta de ese
bloque, especifican la direccin de memoria del bloque.
ORA-MA C~F'fl'uL.0 4. JERARQU~ADE MEMORIA 139

De manera adicional, es necesario saber si la informacin contenida en un


bloque de la cache es vlida, para ello se aade un bit de vlido a cada bloque.

En la figura 4.2 se observa un ejemplo de cache mapeada directamente con


4096 bloques de 32 bytes cada uno. Se muestra cmo se descomponen los bits
de las direcciones del procesador en campos, cada uno de ellos utilizado para
identificar, respectivamente y de derecha a izquierda, la posicin que ocupa el
byte referenciado dentro de la palabra, la posicin que ocupa esta palabra dentro
del bloque, la posicin (nmero de bloque) donde se copia el bloque de memoria
en la cache y por ltimo el valor de la etiqueta que se copia en la zona reservada
para almacenar la etiqueta del bloque. Como se puede observar, el bloque de
datos no se compone de un nico byte, sino que lo forman 4 palabras de 4 bytes
cada una. Debido a que el bus de datos es de 32 bits se necesita un multiplexor
para secuenciar la copia o la lectura del bloque de la cache.

Cuando el procesador quiere realizar un acceso a memoria, por el bus de


direcciones saca la direccin de este byte. Para determinar si el dato est en la
cache, la parte de la etiqueta se compara con la etiqueta contenida en el bloque
de la cache cuya posicin la definen los bits centrales de la propia direccin.
Si son iguales y adems el bit de vlido del bloque est activado se produce
un acierto y el procesador puede, en el caso de una lectura, leer los datos de
la cache, o en el caso de una escritura escribir los datos en la misma. En caso
contrario se produce un fallo y se tiene que acceder a memoria principal.

Debido a que se usan los bits menos significativos (LSB bits) de la direccin
del bloque para acceder a la cache, sta tendr un tamao potencia de 2. La
cantidad de memoria necesaria para implementar una cache estar por tanto en
funcin del nmero de bloques que se desee guardar en la cache y del tamao
del espacio de direccionamiento del procesador, (que influir sobre la longitud
de las etiquetas). Como ejemplo es posible calcular la memoria necesaria para
implementar una cache mapeada directamente de tamao 2". Esta cache servir
para el procesador MIPS, que usa direcciones de 32 bits y con un tamao bloque
de 1 palabra (4 bytes).

El tamao de la cache sera 2"(32-n-2+32+1)=2"(63-n)


31 30 . ... . . 1716 1514 .... , 5 4 3 2 1 0
Pos. Byte en palabra
ENlm T16 12 2
I, b s icque en coche Pos. Palobto en Maque

I I ,YT.Q. Bloquesde datos [128 Mts) 1

Figum 4.2: Funcionamiento de una cache con mapeado directo

4.3.2 Mapeado asaciativo por conjuntos


La cache se divide en varios conjuntos CN) que contienen cada uno el mismo
nmero de bloques (m. En este caso la cache se dice que es K-way assaciative.
El nmero de bloques que contiene la cache se obtiene fcilmente multiplicando
N*K Este algoritmo se macteciza porque cada bloque de memoria principal
tiene asignado un nico conjunto dentro de la cacho.

Para ello, se averigua primero qu6 bloque de memoria contiene el dato y qu6
conjunto le corresponde a ese bloque en la cache. A partir de este momento
ya se sabe que si existe copia del bloque, inicamente se podr encontrar en
alguno de los bloques que pertenecen al conjunto que se acaba de calcular. A
continuacin se procede a comparar las etiquetas de estos bloques con la etiqueta
que se obtiene a partir de la direccin del dato para ver si coinciden. En caso
afirmativolos datos estn en la cache.
ORA-MA C W h I L 0 4. JERARQU'~DE MEMORIA 141

La ventaja que presenta este mtodo es que no es necesario verificar todo el


directorio de la cache (la etiqueta de todos los bloques de la cache), sino slo la
de los bloques del conjunto.

Dada la direccin de un dato es posible calcular la posici6n que ocupa dentro


de la cache. Como en un bloque siempre van a estar todos los bytes (puesto
que el bloque es la unidad mnima de informacin que se transfiere desdda
memoria principal) no se tendrn en cuenta los log, L bits menos significativos
de la direccin para el mapeado. Se utilizarn los 1og2N bits siguientes para
deteminar el conjunto dentro de la cache donde puede estar el bloque. El resto
de la direcci6n es lo que se utilizar para compararlo con la etiqueta o iag. No
hace falta utilizar el nfimero de conjunto, ya que todos los bloques dentro del
conjunto tienen el mismo n h e m y por tanto es informacin redundante que no
es necesario almacenar. La figura 4.3 muestra esta metodologa.

log, N log, L
1 etiqueta 1 conjunto 1 byte 1
Figura 4.3: Dimccionamiento de una linee de cache genLlrica

4.3.3 Mapeado totalmente asociativo


Si se utiliza este algoritmo de mapeado, los bloques de memoria principal
pueden ocupar cualquier posicin dentro de la cache. Bsicamente es como si
se tuviera una cache asociativa por conjuntos en donde slo existe un conjunto
que contiene todos los bloques de la cache (N = 1).

Para determinar si se ha producido un acierto o un fallo en la bsqueda de


un bloque en la cache se deben comparar las etiquetas de todos los bloques con
la etiqueta calculada a partir de la direccin del dato. Si alguna de ellas coincide
y adems su bit de vlido asociado est activo se habr producido un acierto.

La etiqueta que le corresponde al bloque que contiene el dato se calcula


como:
(direccin del bloque) dividido (tamao del bloque en bytes)
En el caso de que los parmetms que definen la estructura de la cache sean
potencias de 2, esta operacin se puede realizar de forma sencilla calculando
el desplazamiento aritm6tico a la derecha de la direccin del bloque en log, L
posiciones,

El mapeado totalmente asociativo se caracteriza por el emplazamiento fle-


xible que tienen los bloques, Debido a ello, si se utiliza un algoritmo de reem-
plazamiento adecuado para elegir los bloques que son sustituidos en la cache se
pueden conseguir tasas de acierto elevadas. El problema que presenta es que el
tiempo de acierto es elevado, puesto que se tienen que comparar las etiquetas
de todos los bloques de la cache y adems el tamaao de la etiqueta es grande,
puesto que la misma coincide con la direccidn del bloque en memoria principal.

4.3.4 Algoritmos de reemplazo


Cuando la cache est llena, es necesario sustituir algin bloque para cargar
otro nuevo. Se debe, por tanto, elegir una estrategia de reemplazo de forma que
se mantengan en la cache los bloques que tienen d s probabilidad de ser acce-
didos en futuros accesos. Para ello es Itil basarse en el principio de localidad de
los accesos a memoria, con lo que se reemplazar6 aquel bloque que haya estado
en la cache ms tiempo sin haber sido accedido. Este algoritmo se denomina
LRU (Last Recently Used) menos recientemente usado.

Existen otros algontmos, como el aleatorio, del que se obtiene un mejor


resultado en ciertos casos de lo que a priori cabra esperar.

4.3.5 Manejo de los fallos en los accesos a la cache


Cuando se produce un fallo de lectura en la cache, los datos se buscan en
la memoria principal y se copian en la posicin que les corresponde dentro de
la cache, actualizando la etiqueta del bloque de esa posicin y activando el bit
de viido en el caso de que no lo estuviera. En paralelo se llevan tambin los
datos al procesador. El conjunto de pasos que se realizan cuando se produce un
failo en la lectura de una instmccin que va a ser ejecutada (fetch miss) es el
siguiente:
1. Se decrementa el contador de programa.
GIRA-MA CAF'fTUl.0 4. lKIWl0UfA DE MEMORIA 143

2. Se leen de memda los datos.


3. Se escriben en la cache los datos (instruccin a ejecutar), se escriben los
bits ms significativos de la direccin en la etiqueta y se activa el bit de
vlido.
4. Se inicia de nuevo la bsqueda de la insbuccin en la cache, produciendo
en este caso un acierto o fetch hit.

En el caso de las escrituras pueden aparecer problemas tanto en los aciertos


como en los fallos. Si se produce un acierto se puede crear una inconsistencia
entre los datos que hay en-la cache y los de la memoria principal. Para prevenir
las inconsistencias no se va a permitir que el contenido de ambas memorias sea
diferente, por lo que se va a usar un p~tocolopara las escrituras llamado write
through. El protocolo consiste en que cada vez que hay que escribir en la cache
un dato, se actualiza tanto la cache como la memoria central. Si se encuentra
una copia de los datos que se quieren en la cache (es decir, que se ha producido
un acierto en la wcdtura), simplemente se escriben los datos tanto en el bloque
de la cache como en el de memoria principal.

En el caso de tener un fallo en la escritura, el procesador no puede escxibir


la palabra modificada directamente en la cache, en el bloque que le corresponde
de acuerdo con la funci6n de mapa, y actualizar la etiqueta En este caso se
producira un error debido a que el contenido del bloque que no ha sido modifi-
cado obviamente no es una copia del bloque de memoria principal al que hace
referencia la nueva etiqueta. Pinsese que al existir una nueva etiqueta se consi-
dera al bloque como copia de otro bloque diferente de memoria principal. Este
problema lgicamente no existe para tamaos de bloque de una palabra.

Para solucionarlo previamente se tiene que copiar en la cache el bloque en-


tero de memoria que se quiere modificar, garantizando de esta manera que al
realizar la postenor escritura se producir un acierto y por tanto no hay que mo-
dificar la etiqueta. Se puede observar que siguiendoesta estrategiacada escritura
lleva consigo implcitamente una lectura de memoria.

Al usar el mtodo write through el rendimiento del sistema decrece, ya que


en las escrituras es como si no estuviera la cache @y que esperar a que se
escriban los datos en la memoria lenta). Para solventar este problema se usan
144 ESTRUCiVRADE COMPUTAWRES Y P!iRE@ICOS O RA-MA

w e r s de escritura de alta velocidad que guardan los datos para ser escritos
posteriormente en la memoria El procesador una vez ha escrito los datos en
el buffer contina ejecutando la instruccin. Si se llena el buffer el procesador
debe esperar hasta que los buffersse escriban en memoria. El tamao del buffer
oscila entre 1 y 10 bloques.

4.3.6 Rendimiento de la cache


El tamao del bloque afecta al rendimiento. Si se aumenta se aprovechan las
ventajas & la localidad espacial y por tanto la tasa de fallos decrece. Pero si el
bloque se hace demasiado grande, al tener palabra6 muy distantes entre sf no les
afectar6 la localidad espacial y por tanto no se acceder6 a la mayora de las pa-
labras de ese bloque. Como a medida que crece el tamao del bloque disminuye
el n6mero & bloques que se pueden ubicar en la w h e , habr gran competencia
por ocupar la cache. Los bloques sern desechados antes de que se agoten las
wsibilidades wtenciales aue ofrece la localidad (se acceder s610 a unas DO-
palabras d1 bloque). En consecuencia la tasa de fallos se incrementd.ia
grica de la figura 4.4 muestra la tasa de fallos que tiene un programa ejemplo
en ejecuci6n en funcin del tamao del bloque. En la grica se representan las
tasas de f d o s de caches con diferente tamao.

Otro problema que surge al aumentar el tamao del bloque es que se incre-
menta el coste de un fallo (tiempo que se tarda en recuperar el bloque del nivel
inferior y cargarlo en la cache). Si el tamao del bloque aumenta, el tiempo
de transferencia aumenta y con ello el tiempo que tiene que estar esperando el
procesador hasta que se acabe de cargar el bloque completo. Se utilizan dos
soluciones para solucionar este problema:

1. EarEy Restart: Cuando se ha cargado la palabra del bloque que produjo


el fallo, el procesador contina con su trabajo sin esperar a que se termine
de cargar el bloque.

2. Requesfsd Word First: La primera palabra de memoria que se trae es la


que produjo el miss.
ORA-MA ~Al'flUL.04. IERARQU~ADE MEMORIA 145

4 16 64 256
Tamafio del bloque (bytes)

Figum 4.4: Ewluci6n de la tasa de fallos en funcin del tamafiodel bloque

Cicuio del rendimiento

El tiempo que tarda la CPU en ejecutar un progama se puede dividir en


el tiempo que utiliza la unidad de control para ejecutar las instrucciones y el
tiempo en el que sta est esperando a que el sistema de memoria le suministre
los datos:

tiempo de CPU = (ciclos de reloj en ejecucidn + ciclos de reloj esperando a


memoria) * tiempo de ciclo reloj

Los ciclos de reloj en los que el procesador espera a la memoria se calculan


como:

ciclos de espera = (noaccesos a memoria/programa) * [tasa de fallos * no


ciclos de ntemoria + (1 - tasa de fallos) * nociclos de cache]
146 ESTRUCTiJR4DE COMPUTADORES Y FBRF~RICOS ORA-MA

Como se puede apreciar en esta frmula, es vital a la hora de implementar


el sistema de memoria, por un lado reducir los tiempos de acceso a los disposi-
tivos de memoria y por otro aumentar la tasa de aciertos de la memoria cache.
El primer objetivo se logra fcilmente incrementando el coste del sistema, pero
para el segundo hay que sintonizar de forma adecuada los parmetros que de-
terminan las caractersticas del sistema jerrquico de memoria. Ea importante
elegir valores adecuados para el tam&o de la cache, el tamaiio del bloque y los
algoritmos de mapeo y de reemplazamiento de bloques.

Dependiendo de la carga del sistema, es decir de las aplicaciones que vaya a


realizar, ser meior imi>lementar una cache u otra. Por medio de la simulacin
y utilizando trazas de ~r0grama.scomerciales se pueden obtener los parmetros
ptimos para cada una de las aplicaciones.

4.3.7 Diseo del sistema de memoria


Si se disea la memoria para transferir bloques grandes eficientemente se
puede incrementar el tamao del bloque y obtener un mayor rendimiento en la
cache. A continuacin se describirn los mtodos que se utilizan para aumentar
la velocidad de transferencia de los datos.

Aunque es dificil reducir el retraso en la bfisqueda de la primera palabra de


memoria, es posible reducir el coste en los fallos si se incrementa el ancho de
banda (nmero de bits que se transfieren por unidad de tiempo) de la memoria
central a la cache.

El tiempo necesario para acceder a la memoria se divide en:

1 ciclo de reloj para enviar las direcciones.


10 ciclos de reloj para iniciar el acceso a la DRAM.
1 ciclo para enviar una palabra de datos.

Entonces es posible calcular el ancho de banda para varias configuraciones,


tal como se muestra en la figura 4.5. Si se desea transferir un bloque de 4
palabras de 32 bits cada una, el ancho de banda ser el siguiente:
w.1 Coche

u - 1
Mumplexor
Memorla lnterpolada

Figura 4.5: Ejemplos de dise& de sistemas de memoria

1. Anchura de memoria de una palabra: Los accesos se hacen secuencial-


mente.
Tiempo en cargar un bloque: 1 + 4*10 + 4*1 = 45 ciclos.
N6mero de bytes transferidos por ciclo de reloj: BW = 16 145 = 0.35
bytes.
2. Anchura de memoria de 4 palabras: Se han ampliado los buses de inter-
cmxidn para permitir la transferencia de todo el bloque en paralelo.
Tiempo en cargar un bloque: 1 + 1*lo + 1 = 12 ciclos.
Nrmero de bytes transferidos por ciclo de reloj: BW = 16 1 12 = 1.33
bytes.
3. Memoria interpolada (interleaving): Se incrementa el ancho de banda de
la memoria pero no los buses de interconexin. Los chips de memoria se
organizan en bancos para poder leer y escribir mitiples palabras en un
solo acceso. Si se enva la direccin a todos los bancos a la vez se pueden
leer simultneamente (se ahorra la latencia de acceso).
Tiempo en cargar un bloque: 1 + 1*10+ 4 = 15 ciclos.
Nmero de bytes transferidos por ciclo de reloj: BW = 16 115 = 1 byte.

Como se puede observar, el sistema de memoria interpolada aunque no ma-


ximiza el ancho de banda, simplifica bastante el diseio manteniendo una velo-
148 ESTRUCTURA DE COMPUTAWRESY PERC~RICOS ORA-MA

cidad parecida al sistema con un bus de 4 palabras. El coste de este sistema y


las probabilidades de fallo del mismo sern reducidas, por lo que habitualmente
se utiliza para constmir las memorias.

4.4 MEMORIA VIRTUAL

La cache es un medio de conseguir un acceso rpido a porciones de memoria


que han sido usadas recientemente. De la misma manera, la memoria central
puede actuar como una especie de cache para el almacenamiento secundario,
implementado normalmente por medio de discos magnticos. A este mtodo se
le llama memoria virtual. Los principios que gobiernan el comportamiento de
la cache y de los sistemas de memoria vimial son los mismos:
Mantener los elementos activos en la memoria de mayor velocidad.
Enviar los datos a la memoria de menor velocidad en el momento que
dejen de estar activos.
a El rendimiento tender a estar cercano al rendimiento de la memoria de
mayor velocidad y el coste tender6 a estar cercano al coste por bit de la
memoria de menor velocidad.

La memoria fsica se divide en bloques del mismo tamao llamados marcos


de pgina @ames). La memoria lgica se divide tambin en bloques con el mis-
mo tamao llamados p6ginas. stas constituyen la unidad bsica de informacin
que se mueve entre la memoria principal y el dispositivo de almacenamientose-
cundario. Cuando un proceso va a ser ejecutado, sus pginas se cargan desde el
dispositivo de almacenamiento secundario en los marcos de pgina libres de la
memoria fsica. Cada pgina se puede cargar en cualquier marco de pgina de
la memoria.

Con este mtodo las direcciones que produce el procesador son direcciones
vimiales. De la misma forma que el tamao de la cache era inferior al de la
memoria principal, ahora la CPU hace referencia a un espacio de diiciona-
miento virtual independiente del espacio fsico existente en memoria principal.
El tamao del espacio de direccionarniento virtual no est en relacin con la
memoria fsica disponible y suele ser mucho mayor. A cada direccin virtual
se le asocia una direcci6n fsica en memoria central mediante el mecanismo de
mapeado o de traduccin de las direcciones. Si la pagina que contiene el dato
no est copiada en la memoria, el resultado es un faiio de pgina que produce la
copia

4.4.1 Mecanismo de traduccin de direcciones


La memoria virtual necesita de la traduccin de las direcciones lgicas en
fsicas. Para ello se suele utilizar una unidad que o bien puede estar dentro
del propio procesador o bien puede ser un dispositivo especial, llamada MMU
(Memory Management Unit).

Las direcciones que genera la CPU se dividen en un nmero de pgina virtual


y en un desplazamiento dentro de la pgina. Cada proceso utiliza una estructura
en memoria llamada tabla de pginas que contiene la direccin base de cada
pgina en memoria fsica. Esta tabla tendr tantas entradas como pginas tiene el
proceso. En cualquier instante de tiempo el Sistema Operativo del computador
Ueva cuenta de los procesos que se estn ejecutando concurrentemente. Como
consecuencia tambin existirn mltiples tablas de pginas en memoria y es
por tanto necesario tener un registro de tabla de pgina para que apunte a la
posicin de comienzo de la tabla en memoria propia del proceso. Este registro
se implementa dentro de la MMU.

Para calcular la direccin fsica se utiliza el nmero de pgina como ndice


en la tabla de pginas para calcular la diieccin base de la pgina y sumarle
el desplazamiento (que es el mismo tanto para la direccin virtual como para
la fsica). El nmero de bits en el desplazamiento determina el tamao de las
pginas. Observese que no es necesario guardar etiquetas en la tabla de pginas,
tal como se haca en la memoria cache, puesto que hay una entrada en la tabla
para cada posible pgina virtual. En la tabla de pginas existe un bit de vlido
que se activa cuando la pgina est cargada en memoria.

El tamao de las pginas lo determina el hardware del computador y suele


ser una potencia de 2 para facilitar la traduccin de las direcciones. Si el ta-
mao de la pgina es de 2" bytes, entonces los n bits menos significativos de la
direccin lgica indican el desplazamiento dentro de la pgina y el resto de los
bits ms significativos indican el nmero de pgina. La figura 4.6 muestra un
ejemplo de traduccin de una diieccin virtual en fsica.
150 ESTRUWRA DE COMPUTADORES Y PERIFRICOS ORA-MA

Direccin vlftual

Figura 4.6: Mecanismo de traduccidn de direcciones en la memoria virtual

Debido a la gran cantidad de pginas que puede tener un proceso, la tabla de


pginas puede hacerse demasiado grande como para caber en memoria. Si por
ejemplo se tienen pginas de lK, para un espacio de direccionamiento de 4G
(direcciones de 32 bits) habr 4M pginas. Una tabla en memoria con 4M entra-
das ocupa demasiada memoria. Para solucionar este problema se pagina la tabla
de pginas. En este caso el nmero de pigina virtual se divide en dos partes,
la primera de ellas sirve para desplazarse sobre una tabla de tablas de pginas
(que siempre estn en memoria) que contiene la direccin base en memoria de
las tablas de pginas donde se encuentra ya la direccin fsica. La segunda parte
del nlimero de pgina virtual se utiliza para desplazarse dentro de esta ltima
tabla. En este caso un acceso a memoria conlleva incluso hasta tres lectoras.

Las ventajas que ofrece el mtodo de traduccin de direcciones en tiempo


de ejecucin de los programas son:

Permite la implementacin de la memoria virtual. en donde los progmmas


pueden exceder el tamao de la memoria fsica. Antes, si un programa era
ms grande que la memoria fsica, se tenan que usar overlays, que eran
trozos de programas cargados por el programador cuando eran necesa-
rios. El propio programador tena que controlar que nunca se necesitara
un overlay si no estaba cargado. Adicionalmente stos nunca tenan que
superar el tamao de la memoria fsica.
QRA-MA C A P ~ T U L O JERAROU~A
~. DE MEMORIA 151

Aumenta el grado de multiprogramacin, ya que la memoria fsica y el


procesador pueden ser compartidos por los procesos y slo se necesita
tener en memoria una parte del programa. Esto es posible debido a que
cada proceso utiliza su propio espacio de direccionamiento independiente,
que es un rango separado de posiciones de memoria a los que slo puede
acceder el propio programa. Se tienen que implementar por tanto meca-
nismos de proteccin entre los diferentes espacios de direccionamiento de
los procesos. Cada marco de pgina lleva asociado en la tabla de pginas
unos bits de proteccin que informan de si la pgina es de dlo-lectura o
si contiene cdigo ejecutable. Cuando se realiza el proceso de traduccin
de la direccin, el S.O. compmeba estos bits para ver si se esta realizan-
do una operacin no permitida. En ese caso se produce una interrupcin
debida a una violacin de la proteccin de memoria.

Los programadores ya no tienen que controlar el manejo de la memoria


principal ni el del almacenamiento secundario, ser el S.O. el encargado.

Facilita la relocalizacin, ya que se puede cargar el programa en cualquier


direccin fsica puesto que el espacio de direccionamiento del programa
est definido a travs de direcciones virtuales.

Permite compartir trozos de cdigo entre los diferentes procesos. Si el


cdigo de un programa es reentrante (tambin llamado cdigo puro) sig-
nifica que durante la ejecucin del mismo no se modifica, por lo que di-
ferentes procesos lo pueden ejecutar de forma simultnea. nicamente se
mantiene una copia del programa en memoria fsica. Las diferentes ta-
blas de pginas de los usuarios asignan los marcos de pgina a esa misma
pgina, utilizando pginas diferentes nicamente para los datos.

En este caso ya no se sabe dnde se va a cargar un programa en memoria, ya


que como la memoria se comparte entre los programas de usuario y el Sistema
Operativo, se deben proteger los programas entre ellos para que no se invadan
los espacios de direccionamiento.

La memoria virtual presenta las desventajas de que el proceso de traduc-


cin de las direcciones ralentiza al ordenador. Los controladores utilizados en
pequeas aplicaciones de control en tiempo real no implementan estos mecanis-
mos puesto que el procesador no es compartido entre diferentes procesos, no se
152 BSTRUCWRA DE COMPUTADORES Y PERW&ICOS ORA-MA
l
necesita proteccin de los espacios de direccionamiento y la carga dinmica de
los programas tienen lugar muy de vez en cuando.

4.4.2 Acceso a memoria


Cuando un programa desea acceder a una posicin de memoria, primero se
debe acceder a la tabla de paginas, en la posicin que se obtiene de sumar el con-
tenido del registro de tabla de paginas con el nmero de pagina de la direccin
virtual, para leer el valor de nmero de marco de pagina. Este valor se combina
con el desplazamiento de la pgina para producir la direccin fsica. Una vez
que se sabe la posicin en memoria donde se quiere acceder, se realiza un se-
gundo acceso a memoria para leer o escribir el dato. Como se puede apreciar,
para leer una palabra de memoria se necesitan dos accesos. Este incremento por
un factor de 2 en el tiempo de acceso a la memoria es intolerable en la mayora
de circunstancias.

Para evitar este problema y debido a que el mecanismo de traduccin de las


direcciones tambin cumple el principio de localidad, se incluye una cache es-
pecial que recoge las entradas de la tabla de paginas ms recientemente usadas.
A esta cache se le llama TLB (Translation Lookiide Bu$er) o a veces recibe el
nombre de registros asociativos. Cada posicin de la TLB contiene un cdigo
y un valor. En la etiqueta se ahacena el nmero de pgina y en los datos el
nmero de marco de pagina, es decir, la h i n base de la pagina en memoria
fsica. La figura 4.7 muestra esta estructura.

En este caso para cada referencia se busca primero la pagina en la TLB. Si


se encuentra, se utiliza el nmero de marco de pagina para acceder a memoria
de forma casi inmediata. En caso contrario, se busca el nmero de marco de
pgina en la tabla de pginas que esta en memoria. Cuando se obtiene ya se
puede utilizar para acceder a la memoria, pero adems se aade el nmero de
&m de pgina y el nmero de pagina en 16sregistros asociativos para que sean
utilizados en futuros accesos. Antes de realizar el acceso al dato se comprueba
.
si la pgina est cargada en memoria. Si no lo est, el microprocesador ejecuta
una excepcin de fallo de pagina (pagefault) que se encarga de copiar la pagina
del disco en la memoria.
ORA-MA CAPfiUID4. JERAROU~ADE MBMOIUA 153

TLB

Figura 4.7: Estructura del TLB

4.43 Diseio del sistema de memoria virtuai


Cuando se produce un fao de pgina se utiliza mucho tiempo en volver a
cargar la nueva pgina, por lo tanto en el diseo de estos sistemas se tienen en
cuenta una serie de aspectos:

Pginas con tamao elevado (entre 4k y 16k) para aprovechar mejor la


localidad espacial.

m Emplazamiento flexible para reducir la tasa de fallos de pgina. Se permi-


te emplazar cualquier pgina virtual en cualquier marco de pgina. De es-
ta forma cuando ocurre un fallo se puede elegir sustituir cualquier pgina
(mapeado totaimenteasociativo).

m Los f d o s de pgina se manejan va software, puesto que mientras se res-


ponde a un fallode pgina hay mucho tiempopara &zar funciones de
manejo de la memoria que reduzcan futuros fallos. Si antes wn la cache
el procesador esperaba que se cargaran los datos, ahora el prooesador
pasa a ejecutar otra tarea diferente. Cuando la pgina no est en memoria
se produce una intempci6n y se transfiere el control al Sistema Operati-
vo. La instruccin que produjo el fao se debe volver a ejecutar una vez
se haya cargado la pagina, por lo que se debe salvar el estado del proceso.
El proceso que sigue el S. O. es el siguiente:
1. Se busca en la tabla de p6ginas la direccin de la pagina en el disco.
2. Se escoge una pagina fsica para reemplazarla
3. Se lleva la pgina del disco a memoria
4. Mientras se cede el control a otro proceso.
J. Cuando se termina de cargar la pgina se vuelve a ejecutar la opera-
cin que caus el fallo.
El algoritmo que se utiliza para reemplazar las pginas es una versin sim-
plificada del algoritmo LRU (Least Recently Used): Si todas las paginas
fsicas estn ocupadas, el Sistema Operativo reemplaza la menos reciente-
mente usada. Este algoritmo se basa en el principio de localidad temporal.
Para determinar cundo se us la pagina por ltima vez se utiliza en la ta-
bla de pginas un bit de referencia para cada pgina que se activa cuando
se usa la pagina. Peri6dicamente el Sistema Operativo va desactivando
poco a pocolos bits de referencia.
Como la escritura en disco de una pagina tarda cientos de miles de ciclos
de reloj, no se puede usar el algoritmo wrire-through. En este caso se
usa un protocolo llamado write-back donde las escrituras individuales se
acumulan en la pagina. Antes de reemplazar la pgina de memoria, se
debe copiar en el disco si ha sido modificada. Existe un bit de sucio (diriy
bit) en la tabla de pginas que se actuaza cuando se modifica (escribe por
primera vez) la pgina.

4.4.4 Memoria segmentada


La segmentacin es un esquema de manejo de la memoria que divide al es-
-
pacio de direccionamiento virtual en segmentos con distinto nombre de tamao
variable. El usuario, cuando hace referencia a un dato en la memoria, debe
especificar el nombre de segmento y el desplazamiento dentro del segmento.

Para faciiitar la implementacinlos segmentos no se identifican por su nom-


bre sino que a cada uno se le asigna un nmero. Los compiladores y ensambla-
dores, cuando construyen los programas, se encargan de agrupar los datos y el
@RA-MA ~Al'blJJ.0 4. JERARCJUfADE MEMORIA 155

Dlrecd6n fsica
Figura 4.8: Direccionamiento de pdgim en la memoria virtual

cdigo en segmentos diferentes. Son habituales los segmentos para las variables
globales del programa, para la pila y para el cdigo del programa

Esta aproximacin bidimensional que tiene el usuario del espacio de direc-


cionamiento del procesador tiene que ser traducida a un direccionamiento lineal
para acceder a la memoria fsica. Para elio las direcciones lgicas se dividen en
un nmero de segmento y un desplazamiento dentro del mismo. El nmero de
segmento sirve para acceder a una tabla de segmentos que contiene para cada
uno de los segmentos definidos una base de segmento y un lmite de segmento.
La direccin fsica se obtiene sumando el desplazamiento a la base del seg-
mento. Para tener cierto control de emres, el controlador de memoria siempre
compmebaque el desplazamiento de la direcci6n lgica sea menor que el b i t e
de segmento. En caso contrario se ejecuta una excepcin para indicar el error de
acceso por encima del lmite de segmento.

En los esquemas con memoria sementada la tabla de segmentos tambin de-


be localizarse en la memoria y tamb%nse puede poner de ella en registros
rpidos a modo de cache o de TLB.El procesador debe tener un registro base de
156 BSTRUCTRA DE COMPUTADORES Y PE~~FRICOS mRA-MA

la tabla de segmentos para localizar la misma en la memoria y debido tambin


a que un proceso puede utilizar mltiples segmentos, tambin debe existir un
registro de longitud de tabla de segmentos para saber si existe el segmento que
se est referenciando en la direccin.

Al igual que ocurre con la paginacin, la segmentacin tambin implementa


mtodos de proteccin de los accesos incorrectos a los segmentos
- - -posibilita la
y
compartici& de un mismo segmento por parte de vanos procesos.

Las dos alternativas anteriores (paginacin y segmentacin) se pueden com-


binar para aprovechar las ventajas de ambas. La solucin consiste en utilizar
segmentos de tamao elevado pero que se almacenan en memoria de forma pa-
ginada.

Para implementaresta aproximacin, la tabla de segmentos no contiene la di-


reccin base de los mismos sino que contiene la direccin de la tabla de pginas
asociadas a ese segmento. Las direcciones virtuales se dividen por tanto en un
nmero de segmento, un nmero de pagina y un desplazamiento dentro de la
pgina. En la figura 4.9 se puede ver un diagrama de bloques que muestra cmo
se realiza la traduccin de una direccin virtual en una direccin fsica.

4.6 CONCLUSIONES

Durante este captulo se ha tratado de mostrar la importancia que tiene la re


lacin coste/~restacionesdel sistema informtica en la toma de decisiones sobre
A

la arquitectura del mismo. Se han introducido los conceptos fundamentales re-


lacionados con la estructura de la memoria de un ordenador: Acceso a memoria
y a disco y ejecucin de programas.

En las secciones que tratan sobre la memoria cache se ha justificado la ne-


cesidad y las ventajas de la misma, viendo adems el principio de localidad
como el pilar de la memoria jerrquica. Se ha tratado con detalle por un lado la
ORA-MA 4. IERARQU~A
CAP~TULO DE MEMORIA 157

Direccin virtual

Direccin fisica

Figura 4.9: Traduccin de una direccidn viriual con segmentacidn paginada

poltica de emplazamiento de los bloques y por otro la poltica de sustitucin de


los mismos.

Otro aspecto importante ha sido el describir los parmetros que afectan al


rendimiento de la cache, atendiendo a la tasa de aciertos, al nmero de accesos
a memoria realizados y a los tiempos de transferencia de los bloques.

La evolucin de la tecnologa de los procesadores afecta tanto al tamao de


la memoria como a la complejidad y tamao de los programas informticos que
se realizan. Las nuevas necesidades de memoria hacen que se implementen la
paginacin y segmentacin como tcnicas que se pueden solapar para resolver
estos problemas. Utilizando estas tcnicas se dispone de un espacio de direccio-
namiento virtual mucho mayor que la memoria fsica disponible en el sistema.
Al dividirse los programas en trozos, llamados pginas, no hace falta tener todo
el programa en memoria, sino que Csta puede estar compartida entre diieren-
tes procesos. Se facilita adems la comparticin de c6digo y la realizacin de
programas reubicables.

4.7 CUESTIONES

4.1 iQu6 es la memoria jerbrquica? Dibujar un esquema de un procesador


conectado a una memoria de este tipo y explicar los niveles que podemos en-
contral:

4.2 Explicar el funciomiento de una cache, tanto en las operaciones de


lectura como en las de escritura, suponiendo que es de tipo write-through.
iC6m0 afecta al rendimiento del sistema el usar esta polftica para las escri-
turas? j C 6 m se puede mejorar este rendimiento? Solventa el problema de
las inconsistencias?

4 3 Se quiere disear un sistema micropmcesador que tenga una cache de da-


tos de 256 Kb. El espacio de direccionamiento del pmesador es de 16 Mb y
la longitud de palabra de 64 bytes. Lo cache estar6 mapeada directamente y
los bloques se& de 16 palabms. Cunta memoria habrd que comprar para
implementar dicha cache?

4.4 Explicar las diferencias m'stentes en cuanto a su manejo en@ un pmgra-


ma constituido por Overlays y un programa paginado.

4.5 Cdmo se apmecha el principio de localidad mostrado por los programas


en ejecucin para &&ir los pardmems de la cache.

4.6 dC6mo injuye en tamaAo del bloque en el rendimiento de la cache? Dife-


renciar entre lecturas y escrituras.

4.7 Qu operaciones se tienen que realizar desde que el pmesador genera


una direccidn virtual para leer una pdgina de un programa que se encuentra en
disco? Suponer el caso peor y que en el sistema existe una TLB.
4.8 Indicar los objetivos que se deben seguir a la hora de implementar un
sistema jerrquico de memoria y cdmo se consiguen.

4.9 Por qu se utilizan tamaos potencias de 2 a la hora de implementar las


caches?

4.10 Comparar el algoritmo de mapeado directo con respecto al asociativo,


atendiendo tanto a la memoria que utilizan como al rendimiento que presentan.

4.11 La carga de un sistema informtico se caracteriza porque existe un por-


centaje elevado de escrituras, pero sin embargo, debido a que la cache es de
tamao reducido, la tasa de aciertos en escritura es muy baja. i Qu poltica en
escrituras se debera utilizar? Es conveniente modificar el tamao del bloque?
Razonar brevemente la respuesta.

4.12 1Qud tecnologa de memoria se emplea para implementar las memorias


caches?

4.13 Si se desea poder ejecutar en un sistema i n f o h t i c o programas mds


grandes, razonar qu partmetros modi@aras en el mismo: el &mero de lneas
de direcciones y daos del procesador, el tamao de la cache, el tamaio de la
memoria flsica, el tamao del disco dum.

4.14 Dada una cache con un tamaAo.fijo para los datos, indicar si la modifi-
caci6n de los siguientes pardmetros inrJIuirlasobe el tamao total de la m h e :
tamaAo del espacio de direcciomiento delprocesador,algoritmo utiliuido pa-
m el mapeado de los bloques, tamao del bloque, nilmero de bloques.

4.15 Indicar cdmo infiye en el rendimiento del sistema de memoria: el au-


mento del t-o del bloque, la utilraci6ndel algoritmo Requested Word First
(Primero la palabm pedida), utilizar en la cache de instrucciones una poltica
W&-back, incremento del ancho de bandn de la memoria principal.
4.16 Indicar las semejanzas y diferencias que existen entre cache y memoria
virtual.

4.17 Algunas memorias caches utilizan buffer6 de escritura. Explicar breve-


mente lo que son, para qu sirven y cundo es apropiado utilizarlos.

4.18 Dibujar un diagrama con todos los elementos necesarios pana implemen-
tar un sistema con memoria virtual.

4.19 Indicar qu problema se produce cuando un proceso puede tener un ndmero


considerablemente alto de pdginas. 1Cdmo se soluciona?

4.20 Siendo h el porcentaje de aciertos (hit mtio) que se produce en la tra-


duccidn de direcciones de un progmma en ejecucibn, tc el tiempo de acceso a
la memoria cache y tp el tiempo de acceso a la memoria principal, calcular el
tiempo medio de acceso midel sistema jerrquico de memoria.

4.21 Indicar pam qu sirve el algoritmo de reemplazamiento de una memo-


ria cache y explicar por qu no tiene sentido hablar de este algoritmo en las
memorias con mapeado directo.

4.22 Explicar las diferencias entre memoria cache y memoria virtual con res-
pecto a:
Traduccin de direcciones:

Poltica en escrituras:

4.23 Si se dispone de una cache wnte-back con 2 Mbytes de memoria para


almacenar 512 bloques y el procesador es capaz de direccionar 4 Gbytes de
memoria, indicar cdmo podramos saber cuntos bits tendrn las etiquetas en
el caso de que: a) la cache sea con mapeado directo y b) la cache sea totalmente
asociativa.
ORA-MA &TUL0 4. JERARQUfA DB MEMORIA 161

4.24 En un sistema con memoria virtual, calcular el tamao de la tabla de


pginas sabiendo que el espacio de direccionamiento virtual es de 1 Gbyte, las
pcginas son de 16 Kbytes, y que el sistema tiene 4 Mbytes de memoria RAM.
Razonar la respuesta.

4.25 25 Qu papel desempean en el proceso de traducci6n de las direcciones


virtuales los siguientes elementos: Pginas, Registrode Tabla de Pginas, Tabla
de Pginas, TLB? Poner un ejemplo.

436 i Qu parmetms se utilizan pam medir las prestaciones del sistema de


memoria?

437 Qu parmetms deciden la cantidad de memoria que se necesita para


implementar una cache asociativa en conjuntos de k (k-way associative)?

4.28 Se quiere diseAar un sistema rnicmpmcesador que tenga una cache de


datos write-through de 256 Kb, El espacio de direccionamiento del procesador
es de 16 Mb y la longiRui de palabm de 64 bits. La cache estar mapeada
directamente y los bloques sern de 16 palabras. Cunta memoria habr que
comprar para implementar dicha cache?

4.29 Si se tiene una cmhe writeback con 16 bloques y algoritmo de reempla-


zamiento LRU, indicar cules de los siguientes accesos pmducen un hit o un
miss. Se supone que inicialmente la cache estd vaca, que cada bloque contiene
una tnica palabm y que el procesador tiene un bus de datos 16 bits y un bus
de direcciones de 10 bits. Considemr dos casos, uno suponiendo que la cache
utiliza el algoritmo de emplazamiento mapeado directo y otm suponiendo que
la cache es totalmente asociativa. Calcular tambin el tamao en bytes de la
cache.

Contenido de la memoria: 27A(OO), 27B(OI),27C(02), 27D(03), 27E(04),


...
27F(O5), , 39A(M),39B(07),39C(08),39D(09),39E(OA),39F(OB).

Secuencia de accesos: Lectura palabra en 27E, lectum palabra en 39E,


lectura byte en 39A, escritum byte (FF)en 398 y escritum byte (00)en 27E
430 Sea un pmcesador con los buses multiplexados de direcciones y datos de
16 bits y una cache de Ikb con 64 bloques. Calcular la cantidad de memoria
que se necesita para implementar la cache, sabiendo que sta utiliza mapeado
directo y que es de tipo write-back. Adenrs indicar cul es la etiqueta y a qu
bloque de la cache iran los datos que se correspondencon las direcciones: 34h,
39eh y 8ab3h.

4.31 Si se tiene una cache wtite-back con 2 Mbytes de memoria para almace-
nar 40% bloques y el pmcesador es capaz de direccionar4 Gbytes de memoria,
indicar cmo se podra saber cuntos bits tendrdn Eas etiquetas en el caso de
que la cache sea con mapeado directo o bien totalmente asociativa.

4.32 Considerar un sistema informtico con un procesador que tiene un es-


pacio & direccionamiento de 4Kb, un bus de datos de 32 bits y una cache
write-through con mapeaab directo de 32 bloques con 2 palabras por bloque.
Calcular el tamaAo en bytes de la cache y las tasas de aciertos y de fallos su-
poniendo que se acceden a las siguientes posiciones de memoria upresadas en
hexadecimal: 320 (l),420 (1). 352 (e),426 (l),422 (e),320 (l),255 (l),422 (e),
y que inicialmente la cache est vacla.

4.33 Supngase un sistema infonntico que utiliza un espacio de direcciona-


miento virtual de 1 Mbyta y tiene una memoria flsica de 512 Kb. Teniendo en
cuenta el contenido de los registros de tabla de pdginas para los procesos PO,
Pl y P2, y que las longitudes respectivas de las tablas & pginas para cada
pmceso son de 8 elementos. Cul serd el tamdo de las pginas? Indicar para
los siguientes accesos si se produce un acierto o un fallo de pgina al ejecutar
las instrucciones que se indican en la tabla, a W e n d o tambin la direccidn
f(sica de memoria a la que se accede. Indicar tambin cul ser el contenidoj-
M I de las tablas de pginas. Suponer que el algoritmo de reemplazo de pginas
es el LRU (Least Recently Used).
ORA-MA 4. JERARQU~ADE MEMORIA 163
CAP~TULO

4.34 Supdngase que un sistema informdticocon un espacio de direccionamien-


to de lKbyte y una cache con 8 bloques ejecuta un programa que accede suce-
sivamente a las siguientes direcciones: 03, 134, 318, 2,414,A6, le 111, 13C y
DI. Completar la etiqueta y el bit de vlido de las caches siguientes, suponien-
do en primer lugar que la cache tiene mupeado directo y en segundo lugar que
la cache es totalmente asociativa, sabiendo que en ambas el tamaiio del bloque
es de 8 bytes. (Inicialmente la cache tiene todos los bits de vlido a O).

4.35 Si se tiene un procesador hipotktico con un espacio de direccionamiento


de 256 bytes, un bus de datos de 16 bits y adems utiliza una memoria cache
write-back con 8 bloques, siendo el tamao de cada bloque de 4 bytes.
l. Calcular la cantidad de memoria necesaria para implementar dicha ca-
che.
la4 ESTRUCTURA DE COMPUTADORES Y PE~UF~WCOS ORA-MA

2. Indicar cubl ser el contenido de la cache y de la memria central des-


pus de ejecutar el programa que se muestra en la memoria de lajigura.
El contador de programa contiene la direccin 6AH y se supone que el
procesador se para despuks de ejecutar la cuarta instruccin.
3. Calcular el tiempo que tardard en ejecutarse el programa, sabiendo que
el Miss time es de 200 ns, el Hit time es 30 ns, el tiempo que el procesador
tarda en ejecutar una instruccin arimirica es de 50 & y que el tiempo
de ejecucin de una instruccidn de movimiento de datos es de 30 ns.

Computer Organization & Design. The HardwadSoftwareInterfa-


ce. David A. Paterson, John L. Hennesy. Morgan Kaufmann Publishers,
inc. ISBN 1-55860-281-X.1994.
Computer Aquitecture: A Quantltative Apmach. John L. Hennesy,
David A. Paterson. Morgan Kaufmann Publishers, inc. ISBN 1-55860-
069-8.1990.
High-PerformanceComputer Arehitecture. Harold S. Stone. Addison-
Wesley. ISBN 0-201-52688-3.1987.
o The Cache Memory Book. Jim Handy. Academic Press, inc. ISBN:
0-12-322985-5.
1993.
Computer Organization and Arehitectwe. Designing for performan-
ce. WilliamStallinns, 40 ed. Prentice-HaU intemational. inc. 1996.ISBN

Computer Systems Design and Architecture. Kncent P. Heuring, Farry


E Jordan. Addison Wesley Longman, Inc. 1997. ISBN 0-8053-4330-X.
Operathg System Concepts. A. Silberschatz, J. Peterson, i! Galvin. 3%
ed. Addison Wesley Longman, inc. 1991. ISBN 0-201-51379-X.
En cualquier ordenador, adems del procesador y del subsistema de memo-
ria, existe una parte muy importante, llamada el subsistema de Entradalsalida
@/S), que hace posible la comunicacin con el mundo exterior. Este sistemaesta
fonnado por varios dispositivos perifricos que proporcionan un medio para in-
tercambiar datos con el exterior y que se comunican con el procesador a travs
de una serie de mdulos llamados de WS. Cualquiera de estos mdulos contiene
una serie de controladores que se encargan de manejar el funcionamiento de uno
o varios perifricos.

Los mdulos de E/S no deben conectar directamente el perifrico con el


bus del sistema, sino que tienen que poseer una cierta inteligencia para poder
realizar la comunicacin entre el perifrico y el procesador de forma eficiente.
Si se observan algunas de las caractersticas del subsistema de Entradalsalida
ser posible darse cuenta de esta necesidad:
Existe una gran diversidad de perifricos que utilizan mtodos de opera-
cin diferentes. No sera lgico que la CPU tuviera que incorporar toda la
lgica necesaria para controlar este rango de dispositivos.
m La velocidad de transferencia de los datos de los perifricos es a menudo
mucho mas lenta que la que tiene el procesador con el sistema de me-
moria, por lo tanto resulta poco prctico usar el bus del sistema de alta
velocidad para comunicarse directamente con los perifricos.
A menudo los perifricos utilizan formatos y longitudes de palabra de
datos diferentes a Los que u& el procesador. Debe haber por tanto
algn mecanismo para adecuar las seales de ambos dispositivos.

Los mdulos de WS establecen una serie de reglas (llamadas inteiface) que


les vermite. uor un lado conectarse con la CPU v la memoria bien a travs del
bus-del sistema, bien a travs de el bus de expansin, y por otro lado conectarse
con los dispositivos perifricos a travs de enlaces dedicados para datos.

Cualquier operacin de WS se descompone siempre en varias fases bien di-


ferenciadas:

1. Fase de direcdonamiento. En esta fase se identifica al controlador del


dispositivo objeto de la transferencia y se indican las operaciones que se
desean realizar escribiendo un cdigo especial en alguno de los registros
del controlador. Todos los registros de cualquier controlador ocupan una
direccin nica en el sistema que dependiendo del tipo de procesador ser
en el mapa global de direcciones o en el caso de que se distinga entre
posiciones de memoria y de E/Sen el espacio dedicado a la E/S. Cuando
el procesador escribe una direccin en el bus, todos los controladores la
leen para deteminar si se quiere acceder a alguno de sus registros. En
ese caso se leen tambiki las ineas de control para saber si se trata de una
lectura o una escritura y se contesta al procesador.
2. Sincronizacin y coordhaci6n de las operadone de EIS: En esta fase
se decide el momento exacto donde debe comenzar la transferencia de
datos.
3. M e r e n c i a de datos: Desde el controlador del perifrico seleccionado
al procesador (o directamente a la memoria) en el caso de una operacin
de lectura y al contrano para las operaciones de escritura.

En los controladores siempre existen una serie de registros estndar: el regis-


tro de control para poder pro&ar el tipo de operacii a realizar, el regis&&
estado que informa sobre el resultado de la iltima operacin o la disposici6n del
controlador para recib'i/transrnitir los datos y el registro de datos que almacena
ORA-MA CAP~TULO5. INTERCONEXI~NENTRE PROCESAWR Y PERIF&UCOS 167

temporalmente los datos que van a ser transferidos. De esta manera se facilita la
sincronizacinentre el procesador y el perifrico.

Actualmente, para operar con los perifricos se utilizan controladores ms


avanzados, muy parecidos a los procesadores convencionales, llamados copro-
cesadores. Los controladores tratan de realizar la mayor parte de las operaciones
en paralelo con el objetivo de minimizar el tiempo que dedica el procesador a
las operaciones de EIS. Tambin se utilizan microprocesadores estndar como
controladores de perifricos, recibiendo en este caso el nombre de procesadores
de WS.

5.2 CLASIFICACINDE LOS DISPOSITIVOS DE WS

Las operaciones de E/S se realizan a travs de una serie de dispositivosexter-


- suministran un medio para intercambiar datos con el mundo exterior. El
nos que
dispositivo externo se conecta con el ordenador a travs de un enlace o bus que
va a uno de los mdulos de WS.Este enlace sirve para programar las operacio-
nes, intercambiar datos y para comprobar el estado del perifrico y el resultado
de la operacin.

Los dispositivos perifricos son muy diversos, por lo-que para clasificarlos
se tendrn en cuenta:

Comportamiento: Entrada, salida o almacenamiento.

Destino de la comunicaci6n: El destino de la comunicacin puede ser un


humano o una mquina.

Tasa de datos: Tasa mxima de transmisin de datos entre el dispositivo


y memoria principal o entre el dispositivo y el procesador.

En la tabla 5.1 se muestra una relacin comparativa de los dispositivos ms


comunes de Entradalsalida.
168 ESTRUCTURA DE COMPTAWRES Y PERIFlkICOS ORA-MA

Tabla 5.1: Tabla comparativa & dispositivos & EntmddSalida


El mdulo de E/S es responsable de controlar a uno o ms dispositivos ex-
ternos y de intercambiar datos entre estos dispositivos y la memo& principal o
alguno de los registros de la CPU. Por lo tanto este mdulo consta de dos inter-
f&s: una in&a al ordenador (a la CPU y a la memoria) y otra externa (a los
perif6ricos).

Las funciones principales o los requerimientos de un mdulo de EIS se re-


cogen en alguna de las siguientes categoras:

Control y temporizaan: Como la CPU se comunica con los perif6ricos


de forma impredecible, dependiendo de las necesidades de WS del pro-
grama en ejecucin, los recursos internos se comparten para realizar una
serie de actividades diferentes. Las actividades de WS deben coordinar el
flujo de datos entre los recursos internos y los dispositivos externos. Por
ejemplo la transferencia de datos entre la CPU y un dispositivo perif6rico
se realiza siguiendo los pasos siguientes:
1. La CPU pregunta al mdulo de WS el estado del perifrico.
2. El modulo de E/S devuelve el estado.
3. Si el mdulo est operativo y a punto para realizar la transferencia,
la CPU le suministra una orden al mdulo de WS para pedir la trans-
ferencia de datos.
4. El m6dulo de E/Sobtiene una unidad de datos del dispositivo exter-
no.
5. Los datos se transfieren desde el mdulo de WS a la CPU.

Comunicacin eon la CPU: Del escenario anterior se desprende la ne-


cesidad de que el rn6dulo de EIS se comunique con la CPU. Para esta
comunicacin se requiere:
1. Decodificacin de la orden: Las rdenes se envan al mdulo escri-
biendo en alguno de sus registros y el mdulo las enva al perifrico
mediante el bus de control.
2. Datos: Los datos se intercambian a trav6s del bus de datos.
170 ESTRUCTURA DE COMPUTADORES Y P&RICOS ORA-MA

3. Notificaci6n del estado: Ya que los perifricos son muy lentos es


importante conocer el estado del m6dulo de WS. El m6dulo utiliza
ineas de estado (Ocupado, Listo y Error) para indicar su disponibi-
lidad para realizar la transferencia.
4. Reconocimiento de la direcci6n: Cada dispositivo de Entradalsalida
debe tener una direcci6n que debe reconocer el mdulo que los con-
trola.

Comimicad6n con el perifbrico: Recoge el envo de 6rdenes, informa-


cin de estado y datos.

Aimacenamiento temporal de datos: Los datos que suministra la me-


moria se envan al mdulo de ES mediante una transferencia en rfaga.
Los datos se almacenan en el mdulo y poco a poco se van enviando al
perif6rico.

Detecd6n de errores: El mdulo de WS es responsable de la deteccin


de errores y de la notificacin de los mismos a la CPU. Se detectan errores
mecnicos, elctricos o cambios en el patrn de bits tnuismitido.

Para realizar una operacin de WS, el procesador debe generar una direcci6n
que especifique el perif6rico al que se quiere acceder dentro de un mdulo de
E/S y por el bus de datos se enviar la orden que se quiere ejecutar. La figura
5.1 muestra la estnictura e interconexi6n genrica de una inteflace de WS.

Como existen muchos mdulos de WS, cada uno de eilos con varios pe-
rifrico~,se utiliza un identificadornico (una deccin) para cada uno de eilos.
Cuando la CPU, la memoria y la EIS comparten el mismo bus se pueden dife-
renciar dos modos distintos de dicionamiento: E/S mapeada en memoria y
WS aislada.
Llneas de dlreaiones
Llneas de datos
Lfneas de oonml

U
Disposlllvode entrada

Figura 5.1: Estructura genrica de una inter$az de WS

E/S mapeada en memoria

Existe un nico espacio de direccionamiento que se comparte entre la me-


moria y los perifricos. Los registros de los controladores son tratados como si
fueran posiciones normales de memoria. Las lecturas y escrituras a esas direc-
ciones se interpretan como rdenes para el dispositivo.

La ventaja es que se reduce el juego de instrucciones, simplificando el di-


seo de la unidad de control, puesto que no se reauieren instrucciones de EIS
especiales. Adems se puede utilizar todo el repertorio de instrucciones usado
para acceder a la memoria con las operaciones de EIS, permitiendo una progra-
macin ms eficiente. Las desventajas de este modo son que el diseo del mapa
de memoria es ms complejo, puesto que el circuito de decodificacin de las
direcciones utilizado para seleccionar a los distintos dispositivos y a la memo-
ria requiere muchas ms lneas. Esta tcnica la utilizan los procesadores de la
familia Motorola.

Para que el usuario no pueda acceder directamente a los registros de los con-
. -
troladores, el S.O. prohibe su acceso mediante los mecanismos de traduccin de
las direcciones. Si un usuario intenta acceder a uno de los registros se producir
un error de proteccin.
172 ESTRUCTURA DE COMPUTADORES Y PERIPRICOS ORA-MA

E/S aislada:

El bus del sistema dispone de lneas de lectura y escritura en memoria y de


unas lneas adicionales para la lectura y escritura de los registros de los mdulos
de EIS. Por tanto se dispone de dos espacios de direccionamiento diferentes, el
de memoria y el de WS.

Para poder acceder a un registro del controlador se utilizan instrucciones


especiales del procesador que activan las lneas de WS. Para prevenir el acceso
duecto por parte del usuario a los controladores de perifricos, el S.O. prohibe
la ejecucin de las instrucciones de WS cuando no se esta en modo Kernel o
modo Supervisor. Ejemplos de procesadores con instrucciones de E/S: son los
de la familia INTEL 8086 y el IBM 370.

La aparicin de eventos del exterior es impredecible. El procesador necesita


algn medio para sincronizarse con estos eventos y as poder administrar las
transferencias de WS.

El mtodo ms simple consiste en que la CPU ejecuta un programa que es-


pera a que el perifrico tenga los datos listos o est dispuesto a recibirlos, y
entonces realiza una transferencia explcita de un dato. De este modo el pro-
cesador est esperando mucho tiempo, sobre todo cuando los perifricos son
lentos. Este tiempo podra ser aprovechado por el procesador para hacer trabajo
til.

El siguiente mtodo consiste en que el perifrico avise al procesador de su


disponibilidad para realizar la transferencia, envindole una interrupcin. De
esta forma el procesador utiliza mejor su tiempo, pero sin embargo todava se
requiere la accin de la CPU para transferir los datos.

El mtodo ms eficiente es utilizar un dispositivo especial de acceso directo


a memoria que se encarga de realizar una transferencia de un bloque de datos
directamente entre el perifkrico y la memoria. El procesador slo interviene al
principio y al fin de la transferencia.
QRA-MA ~APfruL0
S. INTERCONEXI~N

5.5.1 Sincmnizacin por prueba de estado


ENTR PROCESADOR Y PHW~RICOS 173

I
Cuando el procesador est ejecutando un programa y encuentra una opera-
cin & WS, ejecuta esa instrucci6n enviando una orden con la operacin a rea-
lizar al controlador del perifrico apropiado. Si la sincronizacin es por prueba
-
de estado, el controlador realizar la accin con el perifrico v activar los bits
correspondientes en el registro de estado una vez terminada, no realizando nin-
guna accin posterior para aviw al procesador. Por lo tanto es responsabilidad
de la CPU el comprobar peridicamente, mediante la ejecucin de un programa,
el estado del periferico para determinar si el perifrico est listo para aceptar o
enviar los datos. De esta manera la CPU podr dirigir la transferencia de los
datos.

Cuando el dato se encuentre en el bufer de datos, el pmesador lo leer y


lo guardar en uno de sus registros. Si el dato an no est listo, el procesador
deber esperar e intentar de nuevo. La gran desventaja es que el procesador
utiliza innecesariamente mucho tiempo leyendo los registros de estado en las
consultas sin kxito. Cuando se completa la operacin se deber comprobar el
registro de estado para detectar los posibles errores.

Si varios verifricos pueden estar activos al mismo tiempo, se deber realizar


un es~rutini~(~o1lin~) sobre todos los registros de los perifkncos para determi-
nar cul de ellos est listo. Los maneiadores de dispositivo (devicehndlers) son
rutinas que realizan estas tareas, existiendo una distinta para cada dispositivo.

5.5.2 Sincronizacin por interrupcin


Para solucionar la sobrecarga del sistema debido al escmtinio, el pmsador
enva la orden de WS a un mdulo y a continuacin pasa a realizar otra tarea iitil.
Cuando el mdulo est listo para re* la operacin intenumpir a la CPU
y entonces Bsta realizar la transferencia de datos, como en el caso anterior,
continuando con la tarea que realizaba despus de terminar. De esta manera
cuando el procesador desea realizar una transferencia programada, se evita el
esperar a que el perifrico est listo para efectuar la transferencia. Las acciones
que se realizan ante la llegada de una intemipcin son:
174 ESTRUCTURA DE COMPUTADORES Y PERIPRICOS @RAMA

1. El perifrico enva la interrupcin activando una lnea de control del bus


conectada a la CPU, la lnea de peticin de interrupcin (INT o INTR).
2. La CPU finaliza la instruccin en curso.
3. La CPU comprueba si hay peticiones de interrupcin pendientes, y en caso
afirmativo, enva una seal de reconocimiento al dispositivo que mand la
interrupcin.
4. La CPU detiene la tarea que estaba realizando y guarda la suficiente in-
formacin para poder continuar despus. Es decir el registro contador de
programa y la palabra de estado del procesador.
5. La CPU ejecuta la rutina de servicio de interrupcin que atiende al pe-
rifrico cargando en el PC la direccin de comienzo de esta rutina. Si
hay ms de una rutina el procesador deber determinar cul ejecutar. Esta
informacin se puede incluir en la seal original o tiene que ser el pro-
cesador el que se la pida al dispositivo que mand la interrupcin. Si se
producen dos interrupciones al mismo tiempo, el procesador tratar pri-
mero la que tenga mayor prioridad, que normalmente estar asignada al
dispositivo de mayor velocidad.
6. Dentro de la rutina el procesador salva el estado de todos los registros del
procesador que vaya a modificar para pasar despus a realizar la EIS.
7. Cuando termina la nitina, antes de retomar, se restaura el valor de los
registros y se ejecuta la instruccin de retorno de intemupcin que res-
taura a su vez el PC y el registro de estado. Como resultado, la siguiente
instruccin que se ejecuta pertenecer al programa que fue interrumpido.

Las ventajas que presenta este mBtodo son la respuesta rpida y que el pro-
gramador no tiene que utilizar rutinas de muestre0 del estado del perifrico. El
inconveniente es que a pesar de obtener una mayor velocidad en la respuesta
an no es un mtodo lo suficientemente rpido, puesto que cada dato transferido
desde la memoria al perifrico an tiene que pasar por la CPU.

Identificacin del dispositivo que pidi la interrupcin

Cuando hay varios perifricos conectados al computador y el procesador


recibe una interrupcin, antes de atender la peticin debe identificar cul es el
ORA-MA cAPfTm.05. ENTRE PROCESAOR Y PWFRICOS 175
INTERCONEX~~N

perifrico solicitante. Adems, si se realizan varias peticiones de interrupcin en


el mismo instante, siempre se deben atender de forma priorizada. Hay diversos
mtodos para determinar cul ha sido el perifrico fuente de la interrupcin,
y en caso de que haya vatias interrupciones determinar la ms prioritaria, los
mtodos ms comunes son: mediante exploracin secuencial, mtodo (daisy-
chain) y mediante heas individuales. Estos mtodos sern descritos con mayor
detalle en el captulo 6.

Enmascaramiento

De forma selectiva se pueden inhibir las peticiones usando una mscara de


bits. El procesador tiene un registro de enmascaramientodonde estn estos bits.
Hay que tener en cuenta que hasta que la rutina de tratamiento no desactive la
peticin de la interrupcin, habr que deshabilitar las interrupciones para que no
se detecte a s misma. Esto es debido a que las interrupciones se pueden anidar,
es decir, que dentro de una subrutina de tratamiento de interrupcin se pueden
producir ms interrupciones. Entre los controladores integrados ms populares
est el 8259 de Intel que utiliza interrupciones vectorizadas.

5.6 TRANSFERENCIA DE DATOS ENTRE UN


DISPOSITIVO Y MEMORIA

En los mtodos analizados el procesador pasa los datos mediante transferen-


cia programada, a travs de instrucciones ya sea de WS o de memoria. Estas
tcnicas son buenas para dispositivos lentos en los que es interesante tener in-
terjacessencillas.

Sin embargo, para dispositivos con mayor rendimiento se utilizan mecanis-


mos de transferencia de datos controlados por interrupciones. En este caso el
S.O. puede trabajar en otras tareas mientras los datos se leen o escriben en el dis-
positivo. Estas transferencias permiten que el procesador no tenga que esperar
a los eventos de EIS, por lo tanto no hay sobrecarga en ausencia de operaciones
de WS.
176 ESTRUCTURA DE COMPUTADORES Y PEFS&UCOS ORA-MA

Algunos procesadores tienen instrucciones para mover bloques de datos que


se pueden usar en las operaciones de E% en lo que es conocido como transfe-
rencias de bloques de datos. Los datos se puede; transferir de esta manera de
forma ms rpida que en las WS o dirigidas por intempciones. La
CPU tiene que
* simnizar el movimiento del bloque - -
con el perifrico y- no puede
realizar ninguna otra funcin mientras progresa el movimiento del bloque. Es-
- - vara verifricos
ta tcnica no se suele utilizar normalmente Y 9610 es apropiada
muy rpidos en los que su velocidad sea comparable con la del &oceiador.

En consecuencia, el procesador tiene que perder mucho tiempo reazando


la transferencia de datos. Sera ms deseable evitar usar la CPU comvletamente
para realizar operaciones de WS. El objetivo de toda transferencia 4 transferir
los datos desde el perifrico a la memoria para poder ser procesados posterior-
mente. Esto requiere la generacin de las direcciones apropiadas de memoria
y del controlador y activar las lneas de control del bus para realizar la transfe-
rencia. Para realizar esto, es posible &a& cierto hardwm para implementar
estas funciones de forma que es el controlador del dispositivo el que transfiere
los datos directamente a la memoria sin que intervenga el pmsador.

Este mecanismo se llama Acceso Directo a Memoria (DirectMemry Access


o DMA). En este caso tambin se usan intenupciones para comunicarse con el
procesador, pero slo en caso de error o cuando se acaba la transferencia.

La transferencia DMA la realiza un dispositivo especial. Este controlador


debe ser capaz de actuar como maestro delbus del s i s k para poder realizar
la transferencia. Cuando la CPU quiere realizar una transferencia, accede al
controlador de DMA como si fueni el controlador de un dispositivo tpico de
E/S. En la figura 5.2 se muestra la interconexin tpica de un controlador de
DMA. ste incorpora los siguientes registros:
m R. de direccin de memoria: Almacena la posicin en memoria donde va
el primer dato.
m R. contador: Indica la cantidad de datos a transferir.
m Buffer de datos: Es una memoria de almacenamiento secundario. Puede
ser un registro o una fifo.
m R. de estado: Donde se almacena el estado de la operacin.
m R. de control: En i se escriben las overaciones a realizar.
ORA-MA ENTRE PROCESADOR Y PE~~PRICOS177
CAPfTULOS. INTERCONEXI~N

...B. ........,
.....Dato;

r- ............. ..
B. Dir
! :

Control
del Bus
1 Decodiicaci6n
Direcciones
l....,

111
AEN

....
L - r
Buffer de
t

.I Memoria

Figura 5.2: Estructura e interconexin del controlador de DM4

Toda transferencia se realiza mediante las operaciones:

1. La CPU inicializa el controlador de perifrico para realizar la operacin.


Tambin inicializa el controlador de DMA, indicando el nmero de bytes
a ser transferidos, la direccin de memoria donde se inician los datos y el
tipo de operacin.

2. El controlador de DMA espera a que el perifnco le indique que los da-


tos estn listos para realizar la transferencia (normalmente mediante una
interrupcin).

3. Cuando ya estn listos los datos, el controlador de DMA inicia la opera-


cin y solicita el bus al procesador. (A diferencia de las interrupciones,
178 ESTRUCWM DE COMPUTADORES Y -0s ORA-MA

aqu la CPU puede responder inmediatamente, ya que no tiene que cam-


biar su estado interno).

4. Cuando el controlador de DMA posee el bus coloca la direccin de me-


moria de comienzo del bloque en el registro de direcciones, reconoce la
peticin del controlador del perifrico y pide los datos al perifrico.

5. El controlador de perifrico activa las seaales apropiadas de control sobre


el bus y suministra los datos. Cuando los datos son capturados por la
memoria el controlador de DMA se lo indica al perif6rico.

6. El controlador del perifrico niega la lnea de peticin de transferencia y


espera a que el siguiente dato del perifrico est disponible. El contro-
lador de DMA devuelve el bus, incrementa el registro de comienzo de
las direcciones y compara la direccin de comienzo con la de in. Si son
iguales, la transferencia termina y el controlador de DMA intermmpe a
la CPU para que compruebe si todo ha ido bien. Si no son iguales, se
espera a que Uegue la siguiente peticin de transferencia del controlador
del perifrico.

5.6.1 Arbitraje del bus y transferencias de datos


La CPU y el controlador DMA compiten por la utiiizacin del bus procesador-
memoria. El controlador DMA tiene que tener una prioridad muy alta en la pe-
ticin de bus para evitar el tener que realizar esperas demasiado prolongadas.
Existen tres tipos de esquemas diferentes:

1. Arbitraje por robo de ciclo: El controlador de DMA realiza un ciclo de


acceso a memoria cada vez que quiere transferir un dato. Para cada da-
to se pide el bus, se utiliza y despu6s se libera, de forma que la CPU y el
controlador de DMA se multiplexan el bus en el tiempo. En las transferen-
cias por bloques nicamente se pide el bus una vez, ya que el controlador
de DMA no lo devuelve hasta que no ha terminado completamente con
el bloque. Existe adems un mtodo de transferencia de datos bajo de-
manda que consiste en una transferencia en bloques supervisada por el
perif6rico. El perifrico puede avisar al controlador de DMA para que
detenga la transaccin si as lo requiere.
2. Acceso transparente sin arbitraje: En un ciclo de memoria se da el tiempo
suficiente para que acceda tanto el procesador como el DMA. En primer
lugar el pmcesador activa sus drivers de bus y despus lo hace el contro-
lador de DMA.Este mtodo necesita de circuitda especial para poder
ser implementado, puesto que al no haber arbitraje se pueden producir
contenciones de bus si ambos dispositivos tratan de acceder a la vez.
3. Utlimci6n de memorias multipuerto: La memoria principal del sistema
es especial y tiene varios puertos de direccines, datos y control. Cada
dispositivo utiliza buses diferentes y por lo tanto se eliminan los conflictos
en el acceso, pudindose hacer transferencias sirndtneas.

El primer mtodo es el ms utilizado, puesto que el diseio es bastante sen-


cillo y no requiere la utilizacin de circuitera especial ni de memorias de doble
puerto.

5.7 CANALES Y PROCESADORES DE E/S

Para reducir la necesidad de interrumpir al procesador y ocuparlo en el ma-


nejo de intenupciones de WS,se pueden disear los mdulos de WS de forma
que exista un pmcesador en el mdulo que ejecute instrucciones especiales pa-
ra realizar operaciones de WS. Al mdulo de WS se le llama canal de E/S.La
CPU construye en memoria un progama de E/S, tambin llamado programa de
canal, para este procesador. La transferencia se inicia indicando al canal que
ejecute el programa. ste especifica los dispositivos, las reas de memoria para
el almacenamiento, la prioridad y las acciones a realizar en caso de error. El
canal va siguiendo estas instrucciones y controlando la transferencia. Hacen un
uso intensivo del acceso directo a memoria, pudiendo compartir el controlador
de DMA entre varios dispositivos.

Si se utiliza esta tcnica la CPU slo es interrumpida cuando se termina de


realizar la secuencia de operaciones de WS,con lo que el pmcesador interviene
muy poco en la realizacin de la operacin.

Si adems del procesador el mdulo de WS contiene memoria local, se le lla-


ma procesador de EIS.Con esta arquitectura se puede controlar un gran nmero
de dispositivos de EJS sin la intervencin de la CPU.
180 ESTRUClWRA DE COMPUTADORES Y P E l W & I S ORA-MA

A diferencia de los circuitos integrados de DMA que son procesadores espe-


ciales, los procesadores de EIS se implementan con procesadores normales de
propsito general.

5.8 CONCLUSIONES

En este captulo se han descrito los conceptos y las operaciones que tienen
lugar cuando se realiza una transferencia de EnWSalida. No hay que olvi-
dar que el subsistema de EntradaJSalidacompone uno de los grandes pilares de
la arquitectura del computador, junto con el procesador y la memoria, por ello
es de vital importancia realizar un disefo eficiente del mismo. El ordenador se
comunica con el mundo extenor a travs de los perifricos. No es necesario
disponer de un sistema demasiado eficiente pata cubrir las necesidades de co-
municacin de los usuarios, pero sin embargo s que es preciso de disponer de
enlaces de alta velocidad para conectar unas mquinas con otras.

Si se analiza el desmilo en los ltimos aos de los sistemas infonnticos,


los avances en microelctronica han hecho posible la implementacin de pro-
cesadores que funcionan a frecuencias muy elevadas (del orden del GHz). Este
hecho supone que las necesidades de alimentacin del procesador con inshuc-
ciones o con datos se han incrementado considerablemente, con lo que el sub-
sistema de WS tiene que evitar que el procesador est parado en espera de la
llegada de la informacin. En los ordenadores personales el cueiio de botella
lo constituye el acceso al disco, y en los sistemas distribuidos cada vez es ms
necesario disponer de un mayor ancho de banda en las comunicaciones.

Despus de describir las caractersticas de las opeaciones de Entradalsalida,


en este captulo se han clasificado los perifncos m6s importantes. Lo esencial
es comprender las fases por las que pasa una operacin de Entradalsalida: Ri-
mero se programan las operaciones a realizar en los controladores escribiendo
directamente sobre los registros de control, que tienen posiciones nicas en el
mapa de memoria. Despus, una vez que el controlador ya dispone de los datos
del perifrico, se debe sincronizar con el procesador para culminar la opera-
cin con la realizacin de la transferencia de los datos hacia alguna posicin de
memoria.
De vital importancia son los procesadores de E/$que hacen uso intensivo de
los canales de acceso directo amemoria Con los sistemas operativos multitarea
y los grandes sistemas multiusuario lo importante es que el procesador no se
detenga para que pueda ejecutar los procesos de otros usuarios que no estsn
esperando datos. Con el uso de estos m6dulos. el procesador apenas interviene
en la ejecucin de estas operaciones.

5.9 CUESTIONES

5.1 2 En qu consisten las transferencias programadas realizadas por el proce-


sador? Indicar los tipos que se conocen.

5.2 En una transferencia de entradn/salida, indicar la fme en donde estn ac-


tivos: el decodificador de direcciones, el registro de orden, los registros de datos
y el registro de control, indicando adems cules son las funciones de cada uno
de ellos.

5 3 i Para qu sirve el ciclo de reconocimientode interrupcidn del procesador?

5.4 Qu ventajas tiene usar DMA para realizar una transferencia de datos?
Qu es mejor; utilizar DMA o un canal? Razonar la respuesta.

5.5 Enumerar los mtodos que el procesador puede emplear para transferir un
bloque de datos desde un controlador de perifrico a una zona de la memoria.

5.6 Calcular el ancho de banda que tiene un sistema de memoria cuando se


transfiere un bloque de 8palabras de 16 bits cada una, suponiendo que se tarda
un ciclo de reloj en enviar las direcciones, el tiempo de acceso de la memoria
RAM es de 5 ciclos de reloj y el tiempo de transferencia de los datos por el bus
es de I ciclo de reloj. Suponer tres configuraciones diferentes:

Bus de datos de 8 bits


182 ESTRUCWRA DE COMPIJTADORES Y PERR~RICOS @IRA-MA

Bus de datos de 16 bits


Memoria interpelada con dos bancos de 8 bits.

5.7 i Cmo se programan las 6Fdenes en los dispositivos de WS?

5.8 i Que! ventajas presenta In sincronizacin por interrupcin frente a las sin-
cronizacin por prueba de estado?

5.9 Por qu dispone un controlador de DMA de lneas de arbitraje de bus?

5.10 Cuando un dispositivo enva una peticin de interrupcin al procesado6


i Qu mtodos utiliza el procesador para identijicar al dispositivo que ha pro-
ducido la interrupcin?

5.11 Explicar cdmo se realiza una transferencia de datos utilizando DMA.


Qu registros debe tener el controlador de DMA?

Computer Organization & Desip. The HardwdSoftwam Interfa-


ce. David A. Paterson. John L Hennesy. Morgan Kaufmann Publishers,
I~c.ISBN 1-55860-281-X. 1994.
An intmduction to Microcomputer Systems. Archiiecture & interfa-
cing. John Fulcher. Addison Wesley Publishers Ltd. ISBN 0-201-41623-9.
1989.

The Indispensable PC Hardware Book. Hans-Peter Messmer. 3%ed.


Addison Wesley Longrnan, inc. 1997. ISBN 0-201-40399-4.
Computer Arquitecture: A Quantitative Aproach. John L Hennesy,
David A. Paterson. Morgan Kaufmann Publishers, Inc. ISBN 1-55860-
069-8. 1990.
ORA-MA CAP~TUW5. INTERCONEXI~N
ENTRE PROCESAWR Y PERIFRICOS 183

High-Performance Computer Architecture. Hamld S. Stone. Addison-


Wesley. ISBN 0-201-52688-3. 1987.
Computer Organizationand Architecture. Designing for performan-
ce. William Stallings. 4" ed. Prentice-Hail Internationai, Inc. 1996. ISBN
0-13-394255-4.
Computer Sysiems Design and Adtecture. Ynicent lS Heuring, Farry
E Jordan. Addison Wesley Longrnan, Inc. 1997. ISBN 0-8053-4330-X.
BUSES

En los captulos anteriores se ha expuesto la estructura bsica de un compu-


tador, en este esquema junto a los elementos principales (CPU, memoria y E/S)
aparecen caminos de comunicacin a travs de los cuales se intercambia infor-
macin (instrucciones y datos). Este intercambio de informacin se produce de
forma continua entre el procesador y la memoria, para acceder a las instruccio-
nes y realizar las lecturas y escrituras de los datos. De manera adicional, el pro-
cesador tambin realiza un intercambio de informacin con el exterior a travs
de los dispositivos de E/S y los controladores de DMA acceden a la memoria
para intercambiar bloques de datos con algn controlador de forma autnoma.
Toda esta comunicacin entre dispositivos se realiza mediante la transmisin de
seales el6ctricas a travs de cables o de pistas de un circuito impreso. Cada
lnea es capaz de transmitir un nivel de tensin, que representa un '1' 6 un 'O'
binario. Esta estructura forma lo que se denomina bus, donde adems de las
caractersticas elctricas y fsicas tambin se definen un conjunto de protocolos
que hacen posible la comunicacin entre los diferentes subsistemas.

Habitualmente los buses estn compartidos por los dispositivos. Es, por tan-
to, necesaria la implementacin de mecanismos que aseguren que nunca va a
haber ms de un dispositivo controlando el estado (el nivel de tensin) de las
lneas del bus. Si varios dispositivos tratan de transmitir informacin por el mis-
mo bus en el mismo instante de tiempo, las seales se solaparan producindose
un error llamado contencin del bus. En todas las transferencias siempre existe
un elemento emisor, o dispositivo origen, que enva informacin a uno o vatios
elementos receptores o dispositivos destino.

Todos los elementos conectados a un mismo bus deben ser capaces de in-
terpretar de maneni correcta la informaci6n que se transmite por el bus. Para
conseguir que diferentes m6dulos de distintos fabricantes puedan interactuar en-
tre ellos sin problemas, todos los buses deben estar estandarizados, cumpliendo
una serie de requisitos elctricos (niveles de tensin en el bus), mecnicos (tipos
de conectores) y de protocolo (cmo se enva la informacin). De manera adi-
cional, la estandarizacin tiene otras ventajas como son la flexibilidad y el bajo
coste, ya que si se define un nico sistema de conexin con los mismos conecto-
res para todos o para una conjunto grande de dispositivos,se podrz intercambiar
dispositivos entre diferentes ordenadores o aadir nuevos.

Por otro lado, el principal inconveniente que plantea el uso de buses para la
interconexin de los elementos de un computador es que puede convemise en
un cuello de botella que limite las prestaciones del sistema. Esta situacin se
produce si las necesidades que tienen los diferentes elementos conectados a un
mismo bus (CPU, memoria y E/S) de transferir informacin, supera la capaci-
dad de transferencia, produ~i6ndosemltiples estados de espera que &&dan
el rendimiento del sistema. La mxima velocidad en las comunicaciones vendr
dada por el ancho de banda del bus que indica la cantidad de datos que se pue-
den transferir por unidad de tiempo (habitualmente en byteds). Si la velocidad
del bus no es suficiente para evitar la degradacin del rendimiento, se puede au-
mentar el nmero de buses del sistema const~yendouna jerarqua que permita
realizar transferencias simultneas.

6.2 CARACTER~STICAS
DE UN BUS
Todas las cmcte&ticas que tiene un bus y que lo diferencian de otros buses
se recogen en un documento llamado estndar del bus. Dependiendo del mbito
de aplicacin, ser conveniente elegir un bus con unas c&tedsticas determi-
nadas que permita realizar mejor todas las transferencias. Las caractersticas
bhsicas que d e h e el estndar son el nivel fsico, nmero y funcin de las lneas
elctricas y el modo de operacin.
Nivel fsico

La primera propiedad de los buses es el soporte fsico que utiliza. Dentro


de la estructura jerrquica de los buses que tiene un sistema informtico, hay
buses que conectan dispositivos rpidos cuyas lneas son de reducida longitud
y estn formadas .por .pistas del circuito impreso.
- Estas lneas conectan direc-
tamente pines de los circuitos integrados, ya sean del procesador, la memoria
o de algn
. controlador. En contraposicin, los buses que enlazan externamente
con los chips penfkricos se componen a menudo de mltiples hilos, recogidos
en mangueras o en los denominados cables planos. En una zona intermedia se
sitan los buses de expansin que conectan diferentes placas de circuitos impre-
sos. En estos casos se dispone de un circuito impreso especial que contiene las
lneas del bus y diversos conectores dispuestos de forma regular. A estos co-
nectores se les denomina ranuras o slots. Los circuitos impresos normalmente
se colocan sobre una estructura metlica con guas que permite la insercin de
otras tarjetas y la colocacin de fuentes de alimentacin. La estructura recibe el
nombre de rack y todas las tarjetas conectadas a la misma estructura comparten
el mismo bus. Cada uno de los componentes del sistema ocupa una o varias ra-
nwas de esta estructura. Para que todas las tarjetas sean compatibles, el estndar
del bus debe definir perfectamente la forma y el tamao de los conectores, tanto
de las ranuras como de las placas que se introducen en la estructura.

La longitud de las ineas de un bus y el nmero de dispositivos que se co-


nectan a 61 est limitado. En funcin de los valores de estos parmetros el dis-
positivo que fija el estado de las ineas debe suministrar ms o menos comente
al bus. Para poder conectar cualquier dispositivo se utilizan circuitos integrados
especiales llamados drivers de bus que convierten las seales elctricas locales
de los integrados en seales adecuadas al estndar del bus. Estos integrados
suministran la suficiente intensidad de comente para que la seal se reciba co-
rrectamente en el otro extremo. Tambin se caracterizan por consumir poca
comente de entrada y tener mrgenes de tensin apropiados para evitar el rui-
do cuando actan como receptores. Un ejemplo es la familia BTL (Backplane
Transceiver Logic) que utiliza niveles de tensin entre 1'9 y 2' 1 voltios para
transmitir un 1 lgico y entre 0'75 y 1' 10 voltios para el O lgico.

La longitud de las pistas individuales que forman un bus en un circuito im-


preso puede no ser la misma. Este hecho no tiene importancia para bajas fre-
cuencias, pero llega a ser un factor critico a medida que aumenta la frecuencia
188 ESTRUCTURA DE COMPTADORESY PEIW&ICOS ORA-MA
I
de funcionamiento del sistema. Las pequeas diferencias en la longitud de las
pistas provoca pequeas diferencias temporales de propagacin de la seal. Este
retraso de las seales se denomina skew y puede producir la prdida de sincm
nizaci6n entre varios dispositivos. Este problema es especialmente crtico en la
seal de reloj y para evitarlo se incluyen drivers especiales, que generan la mis-
ma seal de reloj pero con diferentes retrasos para que llegue al mismo tiempo
a todos los dispositivos.

Por ltimo, tambin es necesario especiiicarlos niveles de tensin que acepta


el bus y los tipos de salida de los drivers de bus. Esta especific~cines necesaria,
para que los dispositivos conectados no interiemn elktricamente sobre el nivel
de tensin de las seales del bus, nicamente aquel que posea permiso en un
determinado instante debe controlar el nivel elctrico de las seales. Esto se
consigue utilizando los siguientes tipos de salida en los drivers de bus:

1. Ibtenr-M: Es el tipo de salida que siempre est activa, tomando comen-


te cuando est a nivel bajo y suministrando comente en el caso contrario.
Se utilizan para las ~eilaes-~ue
slo tienen conectado un driver por lnea
como son: las seales de intenupci6n o de arbitraje encadenadas daisy
chain que se describirn a continuacin.

2. OC (Colector Abierto): El driver toma comente cuando est anivel bajo,


pero no suministra cuando est a nivel alto. Debe incluirse en la lnea una
resistencia depull-up para conseguir el estado alto debido cuando ningn
driver est activo. Como el estado de la lnea cambia cuando uno o m&
drivers se activan (enviando un nivel bajo) se dice que implementa una
or-cableada Se utilizan para sefiales que pueden ser activadas por varios
dispositivos a la vez (lneas de peticin de interrupcioneso de peticin de
bus). Estas puertas se usaron mucho en buses antiguos, pero debido a su
alto consumo de caiente es preferible usar puertas triestado.

3. TS (Mestado): Funcionan de forma similar a las totem-pole, pero se


diferencian en que se pueden desactivar pasando la lnea a un estado de
alta impedancia Para ello tienen un transistor que habilita o deshabilita la
salida, dependiendo del estado de una entrada de control. Se utilizan para
lneas que pueden ser activadas en varios puntos diferentes del bus (lneas
de direcciones o de datos) pero nunca simultneamente.
ORA-MA CAP~TULO6. BUSES 189

Lneas

Una de las propiedades que describe el estndar es el nmero de lneas


elctricas que posee el bus, que pueden ser desde solamente dos hasta a va-
rios cientos. Cada una de las lneas tiene asignada una funcin o un significado
en particular y en general se pueden agrupar en los siguientes cuatro tipos de
lneas:

1. Alimentacin: f 12 V, * 5 V. f3 V y tierra (GND).


2. Datos: Llevan informacin (pueden ser instrucciones, datos o paridad)
entre los mdulos del sistema. El nmero de lneas representa el ancho del
bus de datos y por tanto define la cantidad de info&acin que se puede
transmitir en paralelo en un instante de tiempo detemiinado, influyendo
enormemente en el rendimiento del sistema.
3. Direcciones: Se utilizan para designar el origen o el destino de los datos
que hay en el bus. Sirven para habilitar dispositivos o posiciones de me-
moria y su anchura (nmero de lneas) determina la mxima capacidad de
memoria fsica del sistema.
4. Control: Transmiten informacin sobre el tipo de ciclo que est teniendo
lugar (lectura, escritura...), informacin de sincronizacin (informacin
temporal que indica la validez de la informacin en las lneas del bus),
intempciones y seales de arbitraje. Entre las distintas lneas de control
tpicas estn:
m Escritura y lectura de memoria,
m Escritura y lectura de E/S.
m Reconocimiento de una transferencia.
m Peticin y concesin de bus.
m Peticin y reconocimiento de interrupcin.
m Reloj.
m Reset.

Existen buses donde las mismas lneas fsicas se utilizan para llevar infor-
macin tanto de datos como de direcciones. El ciclo de bus se divide en dos,
190 ESTRUCTURA DE COMPUTADORBS Y F%W&lUCOS @RA.MA

en primer lugar se envan las direcciones y se validan. A continuacin, por las


mismas ineas se envan o se leen los datos dependiendo del tipo de ciclo. A
los buses que presentan esta caracterstica se les denomina buses multiplexa-
dos y tienen la ventaja de utilizar menos ineas, lo que abarata su coste. Como
desventaja se tiene que el control del bus es ms complejo.

Modo de operaci6n

El estndar tambin regula el modo de operaci6n del bus que indica la forma
en la que se realiza una transferencia, incluyendo protocolo, ordenaci6n y tem-
porizaci6n de las seales. Se distingue entre buses sncronos, donde todas las
acciones se realizan en instantes de tiempo determinados en funci6n de la seal
de reloj perteneciente al bus, y asincronos, que utilizan seiiales de control para
indicar la reazaci6n de determinadas acciones.

Dentro de los elementos conectados se pueden diferenciar los maestros y los


esclavos de bus. Un dispositivo maestro es aquel capaz de iniciar una transfe-
rencia de datos en el bus, mientras que un esclavo s610 puede enviar datos como
respuesta a una peticin de un maestro. Hay buses en los que se permite la
existencia de vatios maestros de bus. Como dichos dispositivos se conectan en
cualquier instante de tiempo, para evitar la contenci6n del bus, s610 uno de ellos
puede estar seleccionado en cada momento.

Por regla general cada uno de los dispositivos conectados a un bus tendr
una determinada velocidad de funcionamiento. Tambi6n es habitual que la ne-
cesidad de ancho de banda en las transferencias que realiza cada dispositivo
sea diferente. Dado que la incorporaci6n de elementos lentos puede retrasar
las transferencias de los elementos ms rpidos, necesitados de mayor ancho de
banda, los dispositivosdentro de un com&tador se suelen agrupar por sus velo-
cidades y necesidades de ancho de banda. Los dispositivos dentro de un gmpo
comparten un mismo bus y el conjunto de todos los buses forman una jerarqua
dentro del sistema. Con la separacin de los buses se consigue reducir los retra-
sos de las seales, al reducir la capacidad de las lneas debida a la conexin de
mltiples elementos. Tambin se reduce el riesgo de que el bus pueda llegar a
constituirse como un cuello de botella del sistema si la demanda de transferencia
de datos alcanza el ancho de banda mximo del bus. Un esquema de la jerarqua
de buses se muestra en la figura 6.1. Normalmente en una jerarqua de buses se
encuentran los siguientes niveles:

m Bus del pmesador: Se utiliza para conectar el procesador a la cache o a


una serie de dispositivos muy especficos y rpidos. Tiene poca longitud
y alta velocidad, y utilizan las propias seales del procesador, por lo que
son especficos para cada sistema.

m Bus local: A medida que se incrementa la velocidad de los dispositivos


de E/S, sobre todo los terminales de vdeo, se necesita un bus de alta velo-
cidad estrechamente ligado al sistema para permitir transferencias a gran
velocidad. Este bus es independiente del procesador, por lo que diferentes
sistemas con procesadores distintos pueden usar las mismas especifica-
ciones. Si el sistema de memoria est conectado a este bus tambin se le
puede denominar bus de memoria.

m Bus de expansin: Conecta los controladores de EJS ms lentos con el


procesador. A este bus se conectan muchos dispositivos, por lo que suele
tener un ancho de banda variable. Normalmente suelen estar estandari-
zados para que se puedan acoplar mltiples dispositivos distintos. A esta
clase de buses tambin se les denomina buses de WS.

m Bus del sistema: Conecta las diferentes tarjetas procesadoras y perifricas


que forman un mismo sistema. Habitualmente un computador personal
se caracteriza por estar compuesto de una placa base donde se dispone
de ranuras de expansin para conectar perifricos. Estos sistemas tienen
una flexibilidad limitada y no son fciles de expandir. Otros sistemas
ms complejos (como m~i~rocesadores) estn compuestos por mltiples
tarjetas que se conectan entre si mediante un bus nico. el bus de sistema.
&tos sistemas son ms flexibles y escalables y pueden estar compuestos
por tarjetas de distintos tipos y de diferentes fabricantes.
192 ESTRUCTURA DE COMPUTADORES Y P E ~ C O S ORA-MA 4

Figura 6.1: Esquema de la jerarqua & buses

6.4 PROTOCOLOS DE BUS

Un protocolo de bus describe el conjunto de reglas mediante las que se ponen


-
de acuerdo el maestro de bus -Y el esclavo, para reaiiuir una transferencia. Estas
transferencias, atendiendo a la sinmnizaci6n de los eventos en el bus, se pueden
clasificar en:

En las transferencias shcronas todos los eventos tienen lugar en un instan-


te de tiempo especifico, sinmnizadas con una seal de reloj incluida entre las
lneas de control del bus. Cualquier transferencia consta de un nmero fijo de
ciclos de reloj, por lo que los datos permanecen en el bus un determinado inter-
valo de tiempo. Este instante en el que los datos estn en el bus es el momento
en el cual deben de ser leidos por el dispositivo receptor. Un cronograma con
este tipo de transferencia se muestra en la figura 6.2
ORA-MA CAPfTULO 6. BUSES 193

Figura 6.2: Transferencia sincrona

En el ejemplo se realiza una lectura de memoria. En el flanco de subida de


la seal reloj del primer ciclo se transmite la direccin. En el flanco de bajada
se supone que La direccin ya est estable en el bus, por lo que se activa la
seal de lectura. Despus del retraso de los decodificadores se activa la lnea de
seleccin de memoria que suministra el dato, que es capturado por el procesador
en el segundo flanco de subida.

Ventajas: Este tipo de protocolo es fcil de interpretar, por lo que el bus


puede funcionar a alta velocidad, ya que la interfaz es sencilla.

Desventajas: El dispositivo debe funcionar a la misma frecuencia que la


CPU, ya que si se conectan dispositivos de diferentes velocidades el bus
deber funcionar siempre a la velocidad del dispositivo ms lento. Debido
a que los tiempos son fijos, pueden haber problemas de sincronizacin de-
bido a los diferentes retrasos de las seales si el bus tiene mucha longitud.

En este tipo de transferencias la ocurrencia de un evento depende nicamente


de la ocurrencia de un evento anterior. Por lo tanto no existe ninguna relacin
directa con el reloj del sistema. Para coordinar la transferencia es necesario un
protocolo de intercambio de informacin (handshakepmtocol) que consiste en
un conjunto de pasos donde slo se llega a la siguiente etapa si el emisor y el
receptor estn de acuerdo.
Para implementar este protocolo el bus dispone de un conjunto de lneas
adicionales y no utiliza la seiial de reloj. En el siguiente ejemplo de lectura
asncrona de memoria s610 se utilizan 3 lneas de control:
Lechira: Con ella el dispositivo que la activa indica que quiere realizar
un ciclo de lectura de memoria.
m Rdy: Se utiliza para indicar que los datos estan estabilizados en el bus.
Esta lnea la activa el pmcesador o la memoria.
Ack: El dispositivo que la activa reconoce que ha detectado y procesado
la activaci6n de alguna de las lneas anteriores.

El cronognuna correspondiente se muestra en la figura 6.3

Figura 6.3: Transjeerencia asncrona

La lectura tiene lugar en los siguientes pasos:


O. El maestro activa las direcciones y la petici6n de lectura.
1. El esclavo lee las direcciones y avisa activando la seal de reconocimien-
to.
2. El maestro detecta el reconocimiento y desactiva las direcciones y la peti-
ci6n del bus.
3. El esclavo detecta que cesa la peticin y desactiva el reconocimiento.
4. Al transcurrir el tiempo de acceso de la memoria, el esclavo activa los
datos y los valida.
ORA-MA c ~ f n n 6.o BUSES 19s

5. El maestro lee los datos y los reconoce.

6. El esclavo detecta el reconocimiento y desactiva los datos y su validacin.

7. El maestro elimina el reconocimiento para finalizar.

La principal ventaja que presenta esta sincronizacin es que acopla dife-


rentes velocidades de CPU y perifricos. Los buses de WS suelen ser de tipo
asncrono (a no ser que se desee un bus sncmno de alta velocidad especfico
a algn dispositivo concreto). De manera adicional el bus puede tener grandes
longitudes fsicas, puesto que ya no va a haber problemas con los retrasos. Para
evitar la parada del sistema debido a un error de protocolo, se utilizan tempo-
rizadores de guardia que activan una interrupcin cuando la transferencia dura
ms de una determinada cantidad de tiempo.

lkansferencia en bloque

Este tipo de transferencias se utilizan cuando es necesario aumentar el ancho


de banda del bus. Se caracterizan porque se realiza la transferencia de ms de
una palabra (un bloque), especificando solamente la direccin de comienzo, ya
que las dems posiciones se supondrn consecutivas. Hay buses en los que
el nmero de ciclos que completa una transferencia es fijo y otros en los que
puede ser variable, interrumpindosela transferencia a peticin del maestro o del
esclavo . Este mktodo es muy utilizado en los buses de procesador para acceder
a zonas de memoria y almacenarlas en la cache, existiendo versiones sncronas
o asncronas. La figura 6.4 muestra una transferencia en bloque asncrona. En
este caso se tienen 4 neas para realizar la sincronizacin. Las seales AS y
DS son de validacin de direccin y de datos respectivamente y son activadas
por el maestro. Las seales AK y DK son de reconocimiento de direcciones y
datos y las activa el esclavo. En cada activacin de la pareja de seales DS-DK,
suponiendo activacin por flanco, ya sea de subida o bajada, se enva un nuevo
dato sin enviar una nueva direccin. El ciclo finaliza con la desactivacin de AS
y AK.
1
1% ESTRUCi'RA DE COMPUTADORES Y PERIPI~cos ORA-MA

Figura 6.4: Transferencia en bloque

Este tipo de transferencia se utiliza para implementar una secuencia de even-


tos inintempible en la que primero el maestro lee un dato, lo modifica y a
continuacin escribe el resultado en la misma posicin. Este tipo de transfe-
rencia es importante en sistemas multiprocesador con memoria compartida, ya
que mientras un procesador accede a un dato para modificarlo, los demas pro-
cesadores no deben acceder a esa posicin de memoria hasta que el dato haya
sido actuaizado. En la figura 6.5 se muestra este tipo de tlansferencia en el
caso de un bus ashcrono. Rimero se produce un lectura sincronizada con DS-
DK y posteriormente una escritura sin dar una nueva direccin. Durante toda la
transferencia el bus permanece bloqueado hasta la desactivacin de AS-AK

6.5 ARBITRAJE DEL BUS

En un instante determinado, solamente un dispositivo debe transmitir infor-


macin por el bus. Si varios dispositivos tratan de usar el bus simultneamente
se pueden producir errores, puesto que las lneas pueden estar en un estado in-
definido. A este hecho se le denomina contencin de bus, y para evitarlo debe
existir un mdtodo, llamado arbitrae del bus, que impida que vanos mdulos
utilicen el bus de forma simultnea. El arbitraje se caracteriza por:
Figura 6.5: Transferencia read-modify-write

l . Priorizaein de peticiones: El maestro de prioridad ms alta ser el


prximo duelo del bus.

2. Juego limpio Cfaimess): Cualquier dispositivo que quiera usar el bus tie-
ne garantizado que tarde o temprano lo podr usar.

3. Reduccin al mximo del tiempo de arbitraje: El proceso de seleccin


se solapa con las transferencias por el bus de datos.

La forma ms simple de funcionamiento del bus consiste en que no haya


arbitraje, slo hay un maestro que es el procesador que controla el bus en todo
momento. Este caso no es atractivo porque el procesador se ocupa de forma
innecesaria de realizar las transferencias de datos entre disvositivos verifricos
y memoria. La alternativa consiste en tener varios maestros de bus que puedan
iniciar transferencias. Para ello habr que implementar un mecanismo de arbi-
traje que decida qu6 maestro es el que va a usar el bus. Existen bsicamente dos
formas de arbitraje: Centralizado, donde un dispositivo, llamado controlador de
bus o rbitro, es el responsable de asignar la posesin del bus, o distribuido,
donde todos los mdulos deciden entre si el prximo maestro que accede al bus.
En un esquema de arbitraje centralizado, el dispositivo que quiere usar el bus
activa una seal de peticin (bus noquest). Despus de un proceso de arbitraje, si
resulta ganador se le avisa activando la lnea de concesi6n(bus granf). Cuando
el dispositivo no desea usar m8s el bus activa la lnea de liberaci6n (bus release)
para que el rbitro realice un nuevo arbitraje.

Los diversos tipos de arbitraje, tanto centralizado como disttibuido, se pue-


den agrupar en 4 clases:
Arbitraje &y-chain: La lnea de concesi6n va atravesando los dispo-
sitivos de mayor a menor prioridad (la prioridad la determina el orden en
el que la lnea las atraviesa). Cuando un dispositivo detecta la activacin
de esta lnea puede utilizar el bus sin activar la seai hacia el siguiente
m6dulo. En el caso de que no necesite acceder al bus, propagar la activa-
ci6n de la seial al siguiente m6dulo de la cadena. Se caracteriza porque es
simple de implementar, pero el proceso puede ilegar a ser lento si existen
muchos dispositivos, ya que la seal debe recorrer todos los mdulos. Un
ejemplo de bus que utiliza este tipo de arbitraje es el VME,cuyas especi-
ficaciones se indican al final del captulo. Un esquema de la estructura de
este mtodo se puede observar en la figura 6.6.

Figura 6.6: Arbitraje daisy-chain

Arbitraje oentraihdo-paralelo: En este caso se usan mltiples lneas


de petici6n independientes que son recogidas por un rbitro central, el cual
elige el pr6ximo ~ t r que o accede al bus. El principal problema que
presenta un esquema w n un nico rbitro es que ste se puede convertir en
un cuelio de botella en las tareas de arbitraje. Ademh, el funcionamiento
de todo el sistema depende de este elemento, por lo que no es bueno en
los sistemas tolerantes a fallos. Por otro lado su principal ventaja parte del
hecho de que la prioridad la decide el rbitro central, por lo que es flexible
y reprogramable.

m Arbitraje distribuido por autoseleccin: Estos esquemas usan tambin


mltiples lneas, pero son los propios dispositivos quienes determinan el
ganador del bus. Cuando comienza el arbitraje cada dispositivo pone su
cdigo sobre las lneas de arbitraje. A continuacin se examinan estas
lneas para comprobar si su valor coincide con el cdigo del mdulo. En
caso afirmativo significa que se ha ganado el arbitraje, puesto que no hay
otro dispositivo con mayor prioridad. Presentan la ventaja de que cam-
biando el cdigo de cada dispositivo se puede alterar la prioridad. El bus
NUBUS y el Gespac utilizan este mtodo.

m Arbitraje distribuido por deteccin de colisin: Cada dispositivo trata


de utilizar el bus en el momento que detecta que est libre. Pero cuando
se realizan peticiones simultneas se produce una colisin, que debe ser
detectable por cada uno de los dispositivos. En ese caso todos los dispo-
sitivos dejan de utilizar el bus y esperan un tiempo aleatorio hasta volver
a intentar acceder al bus. La red Ethernet utiliza este mtodo de arbitraje.

6.6 INTERRUPCIONES

Los buses como medio de conexin entre los distintos elementos de un sis-
tema infonntico deben permitir que cualquier esclavo pueda producir interrup-
ciones en el sistema. Dependiendo de la prioridad de la interrupcin, el maestro
parar la tarea actual eiun instante determinado y la atender. Si se solicitan
varias interrupciones a la vez, se debe determinar cul es la ms prioritaria y
dejar las dems en espera. Los mtodos ms utilizados para la implementacin
de las interrupciones son:

m Mediante lneas individuales. En este primer mtodo cada uno de los


esclavos tiene una lnea individual que llega hasta el maestro. Con la ac-
tivacin de cada lnea, el maestro reconoce el esclavo que ha producido la
peticin. Las ventajas del mtodo son la velocidad y la flexibilidad a la
hora de priorizar las interrupciones, ya que se pueden modificar las prio-
ridades de cada esclavo reprogramando el maestro, as como la sencillez.
Za, ESTRUCXWRA DE COMPUTADORES Y P E ~ C O S ORA-MA

Sin embargo. tiene como desventajas la existencia de un gran nmero de


lneas y el posicionado geogrfico del maestro. que debe situarse siempre
en el mismo slor del bus. al cual llegan bdas las lneas de interrupcin de
los esclavos, tal como se muestra en la figura 6.7.

Figura 6.7: Mediante lineus individuales

m Explorad611secuendd. En este caso todos los esclavos comparten una


misma lnea de interrupcin. El maestro tiene constancia de que se ha
solicitado una interrupci6n pero no conoce la fuente. Mediante lneas
dedicadas, el maestro genera una serie de c6digos, cuando el generador
de la interrupci6n reconoce su c6digo en el bus, responde mediante otra
lneas destinada para tal fin. Es un mtodo lento, pero tiene las ventajas de
la flexibilidad y de que se trata de un mtodo no geogrico. En la figura
6.8 se puede observar su esquema.

Figura 6.8: Exploracin secuencia1

m -y-Chin. De nuevo hay una nica lnea de intempcin compartida


por todos los esclavos. Junto con la lnea de peticin existe una lnea de
identificacibn que recorm todos los dispositivos desde el maestro hasta el
utimo esclavo en orden - -
geomkfko. Cuando el maestro activa esta seiial,
cada uno de los esclavos no peticionarios que la miben propagan la acti-
vaci6n hacia el esclavo aue ocupa la simiente posici6n en el bus. Cuando
la seal Uega al esclavo iolicitGte, stepara lactivaci6n hacia el siguien-
te esclavo y pone el vector de intempci6n en el bus. Es un mtodo lento,
ya que la seal debe recorrer todos los maestros, y geogrfico. puesto que
la prioridad se codifica dependiendo de la posici6n que ocupe el esclavo
en el bus, pero tiene la ventaja de la senciilez. La figura 6.9 muestra este
ltimo mktodo.

-
-..-.. - ....-.. --.-
.

Figura 6.9: Daisy-Chain

6.7 CONTROL DE ERRORES

A continuacin se describe una lista con los tipos de errores ms comunes


que se producen en los buses:
1. Transacciones a direcciones de memoria/perifricos no existentes.
2. Bloqueo del sistema por errores en los protocolos asncronos.
3. Accesos a zonas protegidas por el Sistema Operativo.
4. Erores de naturaleza elktrica en las seales:
Ruido externo (EMI) de carcter electromagndtico: Estos problemas
se solucionan utilizando mecanismos de apantallamiento (placa o
carcasa de metal conectada a masa).
202 ESTRUClWRA DE COMPUTADORES Y PERI&RICOS ORA-MA

Ruido que proviene de la red elctrica: para evitarlo se filtra la en-


trada de la fuente de alimentacin.
Ruido cruzado (crosstalk): se produce por las comentes inducidas
que se generan entre dos ineas muy juntas, cuando las comentes
conmutan a muy alta frecuencia Para solucionar el problema o bien
se trazan ineas de masa entre las lneas, o se utilizan algoritmos de
rutado que previenen el trazado de lneas paralelas por encima de
una cierta longitud.
Reflexiones de las seales de alta frecuencias (ringing): cuando la
seal llega a su destino se refleja hacia el origen de la lnea. Es-
te problema se soluciona situando terminadores con una resistencia
adecuada al final de cada inea para adaptarla y evitar las reflexiones.
Variaciones en la alimentacin de los integrados producidas por cam-
bios bruscos de consumo: si de repente el integrado varia mucho su
consumo de comente se puede producir una variacin en la tensin
de alimentacin. Para evitarlo se utilizan condensadores de desaco-
plo, uno por cada par de entradas de alimentacin y tierra, que se
oponen a los cambios bruscos de tensin.

El sistema debe implementar mecanismos de temporizacin (time-outs)para


detectar errores, principalmente los que dejan al sistema en un estado descono-
cido. Para ello, se utilizan los temponzadores de guardia (watch-dog timrs),
que contienen un contador que el procesador inicializa peridicamente. Si se
bloquea el sistema, el procesador no podr reinicializar el contador, por lo que
se alcanzar el nal de la cuenta Cuando esto ocurre, el temporizador enva una
interrupcin de alta prioridad al procesador para intentar deshacer el bloqueo.

6.8 EJEMPLOS DE BUSES COMERCIALES

Los buses comerciales desarrollados en su mayora por uno o v d o s fabri-


cantes, estn totalmente especificados por medio de un estndar, que como ya
se ha explicado, recoge todas las caractersticas del bus. Esta estandatizacin
permite que varios fabricantes puedan desamilar productos para un mismo bus
sin problemas de incompatibilidades. Dependiendo de las prestaciones que po-
sean, se orientan hacia la interconexin de unos deteminados elementos dentro
del computador, situndose dentro de algiin grupo de la jerarqua de buses an-
tenomiente descrita. De esta forma podemos encontrar buses locales como el
PCI, buses de expansi611como el bus ISA y buses de sistema como el VME.AL
igual que todo sistema informitico los buses comerciales tarnbi6n sufren una
evolucin constante, con la aparicin de nuevos buses y la desaparicin de los
obsoletos. A continuacin se van a explicar las caractersticas btsicas de dos
buses comerciales el PCI y el VME.

6.8.1 Bus PCI


El bus PCI naci con la intencin de eiiminar el cuello de botella que se
haba producido entre el procesador y los dispositivos perifricos graficos en los
computadores personales PC, debido a la aparicin de sistemas operativos como
Windows y OSl2. En estos sistemas operativos hay una transferencia continua
de informacin hacia la memoria gr6ca que utiliza el controlador grfico para
refrescar la pantalla. Por ejemplo, cada vez que se activa un cuadro de dilogo
hay que salvar y reescribir una parte de la pantalla. Con los buses de expansin
antxiores a PCI, ISA y EISA con velocidades inferiores a 10 Mhz, esta tarea
se haca muy costosa, por lo que aparecieron los primeros buses locales. En un
principio estos buses no fueron ms que el propio bus del microprocesador al
cual se conectaba la memoria gr6ca para ganar velocidad. El problema es que
este bus depende del procesador y no es eskndar. Para evitar esta desventaja se
desarrollaron dos buses, por un lado Intel desarroll el PCI (Peripheral Com-
ponent Znterconnect) y por otro el comit VESA desarroil el Vesa local bus,
hoy en da casi desaparecido. Una aplicacin tpica del PCI se muestra en el
diagrama de bloques de la figura 6.10.

C r i & & a ~ bsicas del biwi

En el esquema de la figura 6.10 se observan tres tipos distintos de elementos


PCI. El primero es el puente entre el bus del procesador y el bus local PCI, este
puente permite el desacoplo de los dos buses. Internamente cuenta con buffers
de prebsqueda y de escritura, que le permiten convertir ciclos independientes
de lectura o escritura de la CPU en ciclos de transferencia en modo bloque. En
el caso de la memoria @ca, la CPU, aunque accede a posiciones consecutivas
u)4 E S T R U C D~E COMPUTADORBS Y PERIPRICOS ORA-MA

Figura 6.10: Esquema de aplicacidn del bus PCI

de memoria, no puede realizar la transferencia en modo bloque, ya que esta zona


de memoria no tiene correspondencia en la cache. El puente PCI detectar que
todas las transferencias son consecutivas y realizar una transferencia en bloque,
siendo sta la gran ventaja del bus PCI. La mxima velocidad de transmisin
cuando el bus realiza transferencias en bloque utilizando lneas de datos de 64
bits es de 266Mbytesis.

Los dispositivos o agentes PCI se agravan al sistema mediante los conecto-


res de expansin. Hay dos tipos distintos de conectores, que permiten el fun-
cionamiento a tensiones de 5V 6 3.3V. Los agentes permiten la conexin al bus
de elementos como controladores SCSI,controladores LAN y tarjetas grficas,
entre otros. Tanto el esquema de arbitraje como el de interrupciones de estos
elementos esclavos es centralizado con lneas independientes.

Con respecto al bus cabe destacar que tiene un funcionamiento sncrono con
frecuencias de reloj que pueden llegar hasta los 33Mhz. Estn multiplexadas las
d i i i o n e s y los datos, lo cual disminuye el niimero de lneas necesarias para
implementw el bus pero reduce la velocidad de funcionamiento. Para evitar en
lo posible esta degradacin, el modo de transferencia bsico es el modo bloque,
con un nmero cualquiera de datos en cada transferencia.

Adems de los espacios de direcciones de memoria y entradalsalida, el bus


PCI implementa un nuevo espacio, llamado espacio de direcciones de configu-
raci6n. Se usa para aoceder a los 256 bytes internos de los elementos PCI que
forman los registros de configuracin.

Las sefiales ms importantes que utiliza el bus son:

Seales del sistema:


CLK: Es la seal que sincronizatodas las transacciones en el bus.

RST# Es la seal de reset para todos los registros, contadores y seales


del bus.

Seales de direcciones y datos:


AD[31:0]: Las direcciones y los datos estn multiplexados. Una tran-
saccin est compuesta por una diieccin seguida de una o ms fases de
datos.
C/BE[3:0]: Los comandos de bus y la habilitacin de los byte (byte ena-
bles) estn multiplexados en los mismos pines. Durante la fase de direc-
cin se defmen los comandos. Durante la fase de datos se usan como
seales de habilitacin de los bytes.
PAR:Bit de paridad de AD y -E.
AD[63:321#: Proporciona 32 bits adicionales multiplexados de datos y
duecciones.
C/BE[7:41#: Comandos del bus y habilitacin de byte multiplexados so-
bre el bus.
-

206 ESTHUC~URADE COMPUTADORES Y PE&RICOS ORA-MA

R E G W Indica que se quieren enviar datos usando direcciones de 64


bits.
A C K W Indica que se va a transferir un dato de 64 bits.
PAR64 Es la paridad de las seales AD y CIBE de extensin.

Seales de control:
FRAME# Es utilizada por el maestro para indicar el principio y la dura-
cin de un acceso.
IRDY#: Indica que durante la presente transaccin el maestro est prepa-
rado para aceptar los datos (lectura) o ha puesto los datos (escritura).
TRDY#: Indica que durante la presente transaccin el esclavo est prepa-
rado para aceptar los datos (escritura) o ha puesto los datos (lectura).
STOP#: Indica que el esclavo quiere parar la transaccin en curso.
LOCW. Indica una operacin atmica que requiere mltiples transac-
ciones para completarse.
IDSEL: Seleccin de dispositivos para configuracin.
DEVSEM Reconocimiento activado por el dispositivo seleccionado.

Seales de error:
P E R W Se activa por el elemento receptor de los datos cuando ha habido
un error de paridad en los datos.
SERRk Se activa por el elemento receptor de los datos cuando ha habido
un error de paridad en las direcciones o cuando hay un error catastrfico.

Seales de interrupcin:
INTA#: Hay 4 lneas de interrupcin activas por nivel.
INTB#, C, D: Son lneas utilizadas para dispositivos multifuncin.
rdenes

Las rdenes del Bus indican el tipo de transaccin que se va a realizar:

e Acknowledge: Es un ciclo de reconocimiento de interrupciones.

e Speciol cicle: Es un mensaje broadcast.


e Z/O read command: Lectura de un puerto.

e Z/O write command: Escritura de un puerto.

e Memory read command: Lectura de memoria.

m Memory write command: Escritura de memoria.

e Configurotion read command: Lectura del espacio de configuracin de


cada agente.

m Configuration w d e command: Escritura en el espacio de configuracin


de cada agente.

e Memory Read multiple: Indica que el maestro intenta acceder a ms de


una lnea de cache antes de terminar la transaccin.

e Dual address cycle: El comando se usa para transferir direcciones de 64


bits.
e Memory write and invalidate: Es igual que la escritura pero garantiza
como mnimo la transferencia de una lnea completa de la cache.

Transferencias en el bus

El mecanismo bsico de transferencia es en modo bloque (burst), tanto a


memoria como a WS. Una transaccin siempre es iniciada por un maestro tras
ser autorizado por el rbitro del bus. El esquema de arbitraje es centralizado con
ineas independientes para cada dispositivo. Cada uno de los maestros de bus
debe realizar el arbitraje para cada acceso. El algoritmo de arbitraje utilizado
en cada caso depende del diseador y es implementado por las seales REQ# y
GNT#. A continuacin, en la figura 6.11 se muestra una transaccin de lectura.
208 ESTRUCTURA DE COMPUTADORES Y PEWIT~ICW ORA-MA

Bus bmd

IRDYI
I

TRDY# 1 1 1 1 1
l l I l l I
I A I I I I

Fase de daloa Fese de dnica

Figura 6.11: Trensfemmiade lectura en el bus PCI

La transaccin se inicia con la activacin de la lnea Frame# al mismo tiem-


po que se da la direccin y el comando. Las lneas IRDY#, TRDY# y Devesel#
por su parte tienen un periodo de contencin. El siguiente ciclo presenta la con-
tencin en las lneas AD, debido a que es una lectura, para que el maestro deje
paso al esclavo en la activacin de dichas seales. En este mismo ciclo se pro-
duce la respuesta del esclavo dwccionado mediante Devesel#. A continuacin
se inician los ciclos de datos. En cada uno de ellos, para que se pueda producir
la transferencia, tanto la lnea IRDY# como la TRDY# deben estar activas, y al
ser transferencia en bloque cada nuevo dato corresponde a una direccin conse-
cutiva a la anterior. La transaccin finaliza cuando el maestro desactiva la seal
Frame#, indicando que la prxima transferencia es la itima y esta se completa.
A continuacin hay un ciclo de contencin en las lneas Frame#, C/BE# y AD,
antes de comenzar una nueva transferencia.
Conclusin

Hoy en da el bus PCI est presente en todos los computadores persona-


les PC: Existen una gran cantidad de tarjetas perifricas que utilizan este bus,
ademas la mayora de dispositivos que utilizaban el bus de expansin ISA estn
siendo rediseados para k 1 , ya que ofrece mejores prestacioes. Por otra parte
el bus PCI en computadores personales ha dejado de ser el bus de interconexin
con la tarjeta grfica, esto es-debido a la apAcin del bus AGP, que ha sido di-
seado especficamente para ese fin y ofrece unas velocidades de transferencia
superiores.

6.8.2 Bus VME


El bus VME (Versa Module Europej aparece en 1981 como sucesor del Ver-
sabus, fue desarrollado conjuntamentepor Motorola, Signetics y Mostek, siendo
actualmente el bus de sistema ms utilizado dentro de un conjunto en el que po-
demos encontrar buses como Fastbus, Futurebus y Multibus. Aceptado como
estndar por IEEE en la norma 1014, es el mas sencillo y el que menos presta-
ciones tiene de todos los buses de sistema, sin embargo su gran aceptacin es
debida a que es posible encontrar ms de 200 mdulos comerciales para este
tipo de bus. Sus aplicaciones se centran en los campos de sistemas industriales
en tiempo real, aplicaciones militares e investigacin.

Caracterscas del bus

Es un bus multiproceso, lo que significa que mltiples procesadores pueden


.
c o m p d el mismo bus. El chasis mecnico (rack)es del t i ~ Eurocard
o de 19"
y tiene hasta 21 ranuras de expansin. Los mdulos pueden ser simples con
un solo backplane denominado PlIJ1 que maneja hasta 24 bits de direcciones y
16 bits de datos o de dos backplane PlIJ1 + P2lJ2 con 32 bits de direcciones y
datos. El bus tiene una adaptacin dinmica del tamaiio y acepta datos de 8, 16
6 32 bits con una justificacin (low-end byte).

Es asncrono y no multiplexado con velocidades mximas de transmisin de


hasta 10 Mbytesls para transferencia simple, 20 Mbytesls con transferencia en
210 ESTRUCiVM DE COMPUTADORKS Y PE&R~COS ORA-MA

bloque y 40 Mbytesls con transferencias en bloque con datos de 32 bits. Las


ineas de alimentacin utilizadas son de +5V y f12V utilizando tecnologa
'iTL. Las interrupciones y el arbitraje del bus utilizan un esquema daisy chain y
no disponen de direccionamiento geogrbfico.

Las seiales que utiliza el bus son:


AD(AD31-AW): Son las lneas de direcciones que pueden utilizarse co-
mo lneas de 16.24 6 32 bits. Sin embargo s610 vueden utilizarse 8 bits
para acceder a dispositivos de ~ntradalsaida.

AM AM5-AMOk Indican el es~aciode direcciones al cual se oretende


acceder, c6dig0, datos, modo us-o o privilegiado. Adems inican cul
es el tamao de la direccin contenida en AD.
e DB(DB31-DBO): Son las lneas de datos y pueden contener datos de 8,
16 6 32 bits con justificacin baja.

W
-
. Sefial de escritura o lectura.
DSW,DSW Indican un dato de 8 6 16 bits respectivamente.
LWORM Indica una transferencia con un dato de 32 bits.
AS#, DTACI(#: Seiales de protocolo para transferencia asnmna, el
maestro activa AS# al indicar la dimxi6n y el esclavo activa DTACK#
al completar una transferencia.
BR#, BGIN#, BGOUT#, BBSY# y B C L M Seales de arbitraje con
BR#,petici6n del bus, daisy chain, BBSY#, BCLR# bus ocupado y libre
respectivamente.

iACW, iACKIN#, iACKOUT#: Seaies de ciclo de interrupcin, y en-


trada salida de interrupcin en daisy chain.

e SYSCLW, SYSRESET#, SYSFAIW, ACFAIW: Utilizacin de seiales


peridicas, reset, fallo del sistema y alimentacin.
ORA-MA CAPfIVL06. BUSES 211

BD24-31 BD16-23 BD8-15 BDO-7 DSl#, DSW. Al. LWORD#

ILEGAL 1,0,1,0
ILEGAL 0,1,1,0
Tabla 6.1: Tamao y posicin de los datos en el bus VME

Transferencias en el bus

El bus presenta cuatro tipos de ciclos:


Ciclo simple de lectura o escritura.
e Ciclo de transferencia en bloque.

e Ciclo read-modify-write.
e Ciclo de reconocimiento de interrupciones.

El tipo ms comn es el simple, en el cual el dispositivo maestro enva un


dato de 8, 16, 24 6 32 bits a un esclavo. El tamao del dato y las lneas del
bus por las que se transmite se indica mediante DSO#,DS 1#, LWORD# y A l
siguiendo la tabla 6.1.

El direccionamiento se realiza con las seales AD31-ADO, AMS-AMO, DSl#-


DSW, IACK# y LWORD#, validadas mediante la seal AS#. El tamao de
la direccin tambin puede ser variable con valores de 16 bits (A15-AO), 24
bits (A23-AO) 6 32 bits (A31-AO), indicado mediante las seales AM. La seal
IACW inactiva indica que no es ciclo de reconocimiento de interrupcin. La
finalizacin del ciclo se produce cuando el esclavo h a mediante la sea
DTACK#, el maestro desactiva las sefiales AS#, DSW y DSl#, y por ltimo
el esclavo desactiva DTACK* A continuacin en la figura 6.12 se muestra un
ciclo de escritura simple para este bus.

Iniao de deb

Figura 6.12: l'kansfemia de escritura simple en VME

Conclusin

Los buses de sistema no esin presentes en computadores personales, sino


que se reservan para aplicaciones informticas ms sofisticadas en las que es
necesario aaadir mdulos especficos, ya sean de memoria o varias tarjetas pro-
cesadoras, que permiten construir sistemas con mayores prestaciones. Esta es la
razn por la que no son buses muy populares y es ms difcil encontrar mdulos
que los soporten.
6.9 CONCLUSIONES

Dentro de cualquier computador se encuentra una jerarqua de buses que


interconecta todos sus elementos. Cada uno de los niveles que forman esta je-
rarqua engloba buses que estn orientados a la interconexin de unos determi-
nados elementos, con unos requisitos de ancho de banda y prestaciones distintas
para cada nivel. La especificacin de un bus se realiza mediante un estndar en
el cual se recogen todas sus caractersticas, desde el nmero de lneas hasta los
modos de operacin, incluyendo la sincronizacin, los tipos de transferencia, el
arbitraje y las interrupciones. Esta estandarizacin es necesaria para que todos
los mdulos que se conecten al bus puedan intercambiar informacin, y permite
la construccin de sistemas de forma modular.

6.10 CUESTIONES

6.1 iQu6 utilidad tiene el driver m'esrado medianie el cual los dispositivos
acceden a las lfneasde un bus?

6.2 A que' bus se conectaran las tarjetas de integu con la conexin RS-232
dentro de la jemrqua de buses?

6 3 C d l es el m f n i m intervalo de tiempo que debe esperar un maestro antes


de enviar o recibir un nuevo dato, en una transferencia en bloque asfncrona?

6.4 Realiza el cronograma de una transferencia en bloque asncrona,en la que


las transacciones de datos se realicen solamente en l o s ~ n c ode
s subida de l
m
sefdesDS-DK.,jCul sera el mnimo tiempo de espera entre dos datos en este
caso?

6.5 Enumerar las ventajas y desventajas de cada uno de los mtodos de arbi-
traje del bus.

6.6 Qu tipo de arbitraje tiene el bus VME? Cmo funciona este tipo de
arbitraje?
214 ESTRUCTURA DE COMPUTAWRESY PERI@RICOS ORA-MA

6.7 Enumerar las ventajas y desventajas de cada uno de los mtodos de imple-
mentacin las interrupciones en un bus.

6.8 Cul fue la causa que impuls la aparicin del bus P U ? Qu problemas
solucion?

6.9 2 Tarda el mismo tiempo en producirse la lectura y la escritura de un dato


en el bus PCI? Por qu?

6.11 BIBLIOGRA~A
a Design of Microprocessor Based Systems. Nikitas Alexandridis. Rentice-
Hall Intemational, Inc. ISBN 0-13-588567-1. 1993.
a The Indispensable PC Hardware Book. Hans-Peter Messmer: 35 ed.
Addison Wesley Longman, Inc. 1997. ISBN 0-201-40399-4.
a Penfncos e Interfaces Industriales. Jos C. Campelo, FranciscoRodr-
guez, Vicente Torres. Servicio de Publicaciones de UPV. ISBN 84-7721-
474-3.1997.
a PCI Local Bus Specification. Revision 2.1.
a Computer Organizanon and Architecture. Designing for performan-
ce. William Stallings. 4"ed. Prentice-Hall Intemational, Inc. 1996. ISBN
0-13-394255-4.
CAPTULO7

EL ENLACE EXTERIOR

En este captulo se describe el enlace exterior como el conjunto de interfa-


ces que conectan los controladores de Entradalsalida con sus dispositivos pe-
rifrico~asociados. Ejemplos de estos enlaces son los buses dedicados de En-
tradalsalida que conectan la impresora con el ordenador (interfaz centronics),
el cable del mdem (interfaz RS232), los cables de los discos (interfaz IDE o
SCSI), el cable del teclado e incluso el de un ratn.

El objetivo a la hora de disear estos elementos es doble. Por una parte,


para los dispositivos que necesitan un ancho de banda pequeo se trata de diver-
sificar lo ms posible los protocolos para poder conectar un mayor abanico de
dispositivos diferentes, como pone de manifiesto el bus USB. Sin embargo para
otros dispositivos, como los de almacenamientomasivo, el objetivo principal del
enlace exterior es el de incrementar el ancho de banda al mximo.

En captulos anteriores se han visto ya las tcnicas empleadas para conseguir


estos objetivos. A lo largo de esta seccin se van a describir principalmente los
estndares ms importantes y ms comunes que se utilizan en la actualidad para
conectar los perifricos al ordenador.
7.2 TIPOS DE INTERFACES

Dentro de la estructura jerrquica de buses que presentan los sistemas in-


formticos, destacan aquellos que son tiles para conectar el ordenador con el
mundo exterior. Se caracterizan porque son los ms lentos, tienen una menor
longitud de palabra y menores velocidades de transferencia de datos. Su diseo
se basa en un estndar para permitir la interconexin de dispositivos de diferen-
tes fabricantes.

Los buses de WS se utilizan en las operaciones de WS para llevar los datos


desde el perifrico hacia su controlador. como ejemplos sepuede citar la cone-
xin existente entre el disco duro y su controlador, la conexin con la impresora
o con un tenninai serie y tambin la conexi6n a una red informtica.

Las operaciones que tienen lugar y los protocolos que se siguen en las trans-
ferencias se unifican en una sene de estndares que hacen ms fcil la intercone-
xin de dispositivos con caractersticas similares. A todos los elementos hard-
ware y s o f t k que hacen posible la conexin entre dos unidades diferentes se
les denomina interfaz. Esta interfaz debe estar diseada segn las caractersticas
del perifrico al que se accede para poder obtener el mayoirendimientoposible.
Normalmente se distingue entre interfaces sene e interfaces paralelas.

1. Interlaz serie: Se utiliza una nica lnea para transmitir los datos.
2. Interfaa paralela: Se utilizan varias ineas de datos para transmiti~mlti-
ples bits de forma simultnea.

Se puede realizar otra posible clasificacin si se tienen en cuenta el nmero


de dispositivos y de controladores que se pueden conectar a travs de un en-
lace de comunicacin. Se pueden distinguir las conexiones punto a punto y las
conexiones multipunto. Una conexin punto a punto dedica un enlace exclusiva-
mente para conectar el mdulo de WS y el dispositivo externo. En los sistemas
pequeos se utiliza este sistema para conectar teclados, impresoras y mdems.
Un ejemplo tpico de esta interfaz es la espacificacin EiA-232 de conexin
serie.
ORA-MA CAP~TULO7. EL ENLACE EXTERIOR 217

De mayor importancia son las interfaces externas multipunto, utilizadas en


los dispositivos de almacenamiento secundario y dispositivos multimedia. Estas
interfaces son realmente buses externos y utilizan la misma lgica que el bus del
sistema, permitiendo conectar mltiples dispositivos a travs del mismo cable.

7.3 INTERFACES SERIE

La conexin a travs de esta interfaz es muy importante debido a su gran fle-


xibilidad. En los ordenadores personales la interfaz serie se utiliza para conectar
multiples dispositivos como plotters, mdems, ratones y tambin impresoras.

En la transmisin serie se van transfiriendo los bits de informacin uno a


uno a travs de una lnea de datos. Si se utilizan seales adicionales (reloj o
seales de peticin y reconocimiento) para indicar cundo el bit siguiente es
vlido, entonces se dice que la transmisin se realiza de forma sncrona. La
principal ventaja de este tipo de transferenciases que el receptor puede funcionar
a varias frecuencias de reloj (siempre que no se sobrepase su frecuencia mxima
de funcionamiento). Simplemente bastar con retrasar el envo de la seal de
reconocimiento para relentizar el protocolo. En las transferencias asncronas,
por el contrario, tanto el receptor como el transmisor deben funcionar a la misma
frecuencia. En este caso se enva tambin informacin de sincronizacin a travs
de la lnea de datos, que se corresponde con un bit de comienzo (bit de start),que
indica el comienzo de una unidad de datos, un bit de fin (bit de stop) indicando
su finalizacin y opcionalmente un bit de paridad para controlar los posibles
errores.

El bit de paridad lo generan los controladores serie de forma automtica,


pudiendo configurarse entre las opciones de: sin paridad, paridad par (odd), pa-
ridad impar (even),siempre un nivel alto (mark)o siempre un nivel bajo (space).

Las tasas de transferencia de datos se miden en baudios. Los baudios indican


el nmero de veces que puede cambiar una seal en la lnea de transmisin
por segundo. En una interfaz serie, las seales cambian siempre a la misma
frecuencia y se realiza una codificacin binaria de la informacin de forma que
cuando se quiere enviar un '1' se pone la lnea a nivel alto y cuando se quiere
enviar un 'O' se pone la lnea a nivel bajo. En este caso los baudios coinciden
218 RSRUCi'RA DE COMPUTAWRBS Y PElUPhlCOS ORA-MA

con el ndmero de bits por segundo transfexidos si se incluyen tambin los bits
de comienzo, de fin y el de paridad.

Para poder realizar una transferencia asfncrona, tanto el emisor wmo el re-
ceptor se deben poner de acuerdo en la frecuencia de transmisin de datos y en
la fo* de las tramas que se van a enviar: nmero de bits de datos, de comien-
zo, de fin y tipo de paridad. Despu6s de la recepcin de una trama, se pueden
producir los siguientes errores:
e E m r de trama (Frming error). Se produce cuando el receptor detecta un
bit de stop en un momento que no le cotresponde, puesto que no se adapta
a la forma de las tramas que se espera recibir.
Error de rotura (Break error). Se produce cuando se detecta que la lnea
est a nivel bajo durante un tiempo mayor al que se tarda en enviar una
trama completa. Esto es asf ya que por defecto. cuando no se utiliza la
Inea, permanece a nivel alto.
e Em>r de sobrepasamiento (Overrun error). Se produce cuando la CPU
an no ha recogido los datos del controlador y de nuevo llegan nuevos
datos que sobreesaiben los primeros.
Error de paridad (Parity e m r ) . En este caso la paridad que calcula el
receptor con los datos que le llegan no coincide con la paridad recibida.

Este estndar lo incorporan todos los ordenadaes personales y esta definido


por la EIA (Electmnic Industries Association) aunque en Europa se le conoce
como el estandar V.24 definido por la CCilT (Consultative Committee for In-
t e n i a t i o ~ Telephone
l and Telegraph).En l se definen todas las caractersticas
mecnicas, elctricas y los protocolos necesarios para conectar un equipo ter-
-
minal de datos @TE Data Terminal Equipment) con un equipo transmisor de
datos (DCE - Data Carrier Equipment). Inicialmente se defini para realizar la
comunicacin entre un ordenador personal y un mdem, aunque actualmente se
utiiiza con muchos otros propsitos para enviar datos de forma serializada.

En la tabla 7.1 se puede obsewar una tabla que recoge la denici6n de las
seaies tanto paca los conectores de 25 patas como para los de 9 patas.
Tabla 7.1: SeAales del estndar RS-232C

Cuando se conecta un mdem al ordenador, la comunicacin puede ser sim-


ple (shplex)en el caso de que sea nicamenteel DTE el que enve datos al DCE,
funcionar en ambos sentidos de forma no simultnea (Mf-dupla)o realizase
una comunicacin en ambos sentidos de forma simultnea, ya que existen dos
lneas de datos, una de envo y otra de recepcin fi11-duplex).

Si se rediza una comunicaci6n de tipo simple para transferir datos desde


el DTE al DCE se utiliza la lnea TD para transferir los datos, la lnea DSR la
utiiiza el DCE para sincronizarse con ei DTE y evitar por ejemplo los desborda-
mientos de datos y las dems lneas no se utilizan o estan activas constantemen-
te. Si los datos sienvan en el sentido opuesto, el DCE utiliza la lnea RD para
transferir los datos al DTE. Puede utilizar tambin la lnea DCD para indicarle
al DTE que un dispositivo externo quiere realizar una tnuisferekia y empezar
la transferencia cuando el DTE le contesta que est disponibleactivando la lnea
DTR. Esta misma inea se utilizar para s ~ m n i z ala-transfeiencia
r

En una transferencia half-duplense utilizan tanto la lnea TD para transmitir


datos como la RD para recibir, pero nunca se har uso de las dos beas de forma
simultnea. Para sinmnizar la hmerencia se utilizan las lneas RTS y CTS.
Cuando el DCE quiere enviar datos al DTE activa la lnea DCD y espera a que
el DTE le conteste activando la lnea DTR.

En las transferenciasfull-dupla,utilizadas en la mayora de las conexiones


con los m6dems. se pretende que no haya esperas, por lo que a veces no se utili-
220 ESTRU(7lllRA DE COMPUTADORES Y PER~&RICOS mRA-MA 1

zan las lneas de sincronizacinDTR, DSR, RTS y CTS, que permanecen activas
durante todo el tiempo (por ejemplo, en el caso de la configuracin null-modem).
En la tabla 7.2 se muestra un ejemplo del protocolo que se siguecuando un dis-
positivo externo quiere conectarse con el host a travs de un m6dem. Se ha
implementado un protocolo de entendimiento hardware que utiliza las lneas de
sincronizacin del estndar.

El estndar define voltajes que oscilan entre +[3-15]V para el nivel alto y -[3-
15]V para el nivel bajo. Debido a la gran diferencia de voltaje que existe entre
los niveles altos y bajos, se permiten tasas de transferencia de hasta 115.200
baudios si la longitud del cable es de unas pocas decenas de metros.

Si se utiliza este estndar para conectar otros perif6ricos diferentes de los


mdems, stos se comportan como dispositivos DTE y por lo tanto las seales
cambian de significado, e incluso las seales DCD y RI dejan de utilizarse for-
mando una conexin llamada null-modem o zeromodem.

Si se conecta una impresora, el principal problema reside en que el PC puede


transmitir los datos con gran rapidez y se puede desbordar el buffer de recepcin
de la impresora. La solucin reside en conectar el pin 19 de la impresora, que
indica que el buffer est Ueno a la seal del ordenador DSR, indicando cundo
est preparado para recibir ms datos.

7.3.2 El Bus Serie Universal (USB)


El USB es un estndar (1995) que define un bus utilizado para conectar pe-
rifricos al ordenador. La principal caracterstica que tiene es que la conexin
es muy sencilla, ya que utiliza un nico conector para conectar a travBs de un
bus serie todos los dispositivos. En l se definen los conectores y los cables, una
topologa especial tipo estrella para conectar hasta 127 dispositivos y protocolos
que permiten la deteccin y configuracin automtica de los dispositivos conec-
tados. USB soporta dos tasas de transferencia diferentes, una baja de 1'5 Mbps
para la conexin de dispositivos lentos de bajo coste (joysticks, ratones) y o!m
alta de hasta 12 Mbps para la conexin de dispositivos que requieren un mayor
ancho de banda (discos o CD-ROMS).
t R I - - t lu A - t RI - -
t DCD - - t DCD - - c DCD - -
X - DTR + X - DTR -t A - DTR +
t DSR -X c DSR X - e DSR -X
t CTS - X C C T S - X 4 - C T S - X
X - RTS + X - RTS -r X - RTS +
c RD - c RD - t RD -
- m + - TD + - m +

1. Posrdiin inicia de reposo 2. La unidad extetna Intenta 3. El PC indica al m6demaue


conectar con el PC. El mbdem acepta la llamada activando
actlva RI. DTR.

t RI - - ~ R I - - c R I - -
t DCD - - t D C D - A t DCD - A
A - D T R + A - D T R + A - DTR +
c D S R - A e DSR - A t DSR -A
t CT8 X - c CTS - A c CTS -A
X - R T S - t A - RTS + A - RTS -r
t RD - t RD - t l U > - A
- TD -r - TD + A 1 D +

4. Cuando el mdem termina 5. El mddwn activa DCD pare 6. Se tmnsnilten datos hasta
de preparar la conexldnactiva indlcar que la wnexi6n es* que se desaciiva DCD, DSR o
DSR. lista. El PC acva RTS para DTR.
enviar datos y el mdem res-
ponde con CTS.

Tabla 7.2: Pmtocolofull-duplex


222 ESTRUCTURA DE COMPTAORBS Y PER&Uc0s ORA-MA

La especi6caci6nde este estndar ha sido respaldada por las empresas lderes


.
mundiales en el camm de la informtica: intel, IBM. DEC, haicrosoft, Comuac.
NEC y Northem Telecom, empresas que garantizan la continuacin y la utiliza-
cin de este estndar.

-
Anteriormente los *rerifricos se conectaban mamados directamente en di-
recciones de WS, se les asignaba una interrupcin especfica y en algunos casos
-
un canal DMA. Esta situaci6n conduca a tener conflictos en la asienaci6n de
estos recursos, puesto que siempre han estado bastante limitados en el ordena-
dor. Adems cada dispositivo tena su propio puerto de conexin y utilizaba sus
cables especficos, lo que daba lugar a un incremento de los costea. Debido a
que a cada dispositivo se le tenan que asignar unos recursos e s p d c o s (so-
bre todo si es plug-a&-play, es decir que el Sistema Operativo lo configura de
forma automtica) la deteccin del mismo deba hacerse a la hora de arrancar
el sistema y nunca se poda incorporar un nuevo dispositivo cuando el sistema
estaba en marcha.

Los dos aspectos fundamentales que motivaron la realizacin de este estndar


fueron la necesidad de configurar de fonna sencilla los perifricos conectados
al ordenador y la necesidad de aumentar el nmero de puertos disponibles (ha-
bitualmente en los ordenadores personales de la dcada de los noventa s610 se
dispona de 4 ranuras PCI, 4 ISA, 2 puettos paralelos y 2 serie).

Este estndar define una topologa de conexin en estrella, tal como se mues-
tra en la figura 7.1. por medio de la incorporacin de varios concentradores
(hubs) conectados en serie. Cada concentrador se conecta por un lado al compu-
tador (llamado host en el estndar) -
. aue contiene una o dos interfaces de este tipo
en la placa base o a otro concentrador, y por otro lado se conecta a varios disposi-
tivos o incluso a otro concentrador. De este modo pueden existir ~erifericosaue.
vengan ya preparados con nuevos conectores USB para incorporar nuevos dis-
uositivos.
* hasta un total de 127. todos ellos funcionando simultneamente. Los
hubs tienen la misin de ampliar el nmero de dispositivos que se pueden conec-
. .
tar al bus. Son concentradores cableados aue uermiten la conexi6n simultnea
& mltiples dispositivos y lo m8s importante es que se pueden concatenar entre
s ampliando la cantidad de puertos disponibles para los perifricos. El concen-
trador detecta cundo un periftrico es conectado o desconectado alde uno de
sus puertos notificndolo de inmediato al controlador del USB. Tambitn realiza
funciones de acoplamiento de las velocidades de los dispositivos ms lentos.
@lRA-MA OAP~TULO7. EL ENLACE EXTFXUOR 223

F!
Hub ralz

Figura 7.1: Topologta de una conexidn USB

Al conjunto de dispositivos que se pueden conectar al bus a excepcin de


los concentradores se les conoce en el estndar como funciones. Existen una
gran variedad de dispositivos USB que se conectan todos al mismo bus: tecla-
dos, ratones, joystickq impresoras, escners, charas digitales, video cmaras,
altavoces, mdems, adaptadores de red, discos duros y concentradores. La ca-
racterstica mBs importante es que todos los dispositivos utilizan el mismo tipo
de cable y de conector y se conectan de la misma forma tan sencilla, El host
decide qu dispositivo puede acceder al bus, utilizando un protocolo parecido
al de paso de testigo. Este protocolo se caracteriza porque entre los diferentes
dispositivosse va pasando un identicador a lo largo del tiempo que permite la
utilizann del bus.

El hmt USB fiene las funciones de:

Detectar la conexi61desconexi6n de dispositivos y configurarlos.

Controlar las transferencias de datos y de contiol que tienen lugar en el


bus.
2% ESTRUClVRA DE COMPUTADORES Y P E R F I ~ C O S BRA-MA

Realizacin de auditorias sobre la actividad del sistema.

Servir como fuente de alimentacin a los dispositivos.

El USB define dos lneas para transmitir datos y otras dos para transmitir
potencia (vase 7.2). Los datos se transmiten de forma balanceada a velocida-
des entre 12 Mbps y 1.5Mbps. La seiial se transmite codificada en un cdigo
autoreloj de no retorno a c m invertido (NRZI) para poder incluir junto con los
datos informacin de sincronizacin. (Se puede ampliar la informacin sobre el
cdigo NRZI en el captulo 11). Las lneas de alimentacin (Vbus y GND) evi-
tan la necesidad de utilizar fuentes de alimentacin externas. Tiene una tensin
de 5V y la corriente se limita a un mximo de 3 a 5 amperios por tazones de se-
guridad, siendo el consumo y la configuracin elctrica to&nte transparente
al usuario. La distancia entre dos perifricos conectados al mismo cable no debe
ser superior a los 5 metros para evitar problemas de cadas de tensin.

D+
D- D -
GND GND

Figura 7.2: Formato del tipo & cable utilizado

El computadoridentifica automticamenteel dispositivoque se conecta mien-


tras opera y lo configura sin tener que instala drivers especficos del fabricante.
Al comienzo se detectan los dispositivos conectados midiendo los niveles de
voltaje de las lneas. Si un dispositivo est conectado, entonces el dispositivo
enva informacin sobre el tipo o la clase de dispositivos a la que pertenece, qu
modo de transferencia utilizar6 y cules son sus necesidades de ancho de ban-
da. El host reconocer el dispositivo buscando en la lista de drivers del sistema
operativo y teniendo en cuenta los dems dispositivos conectados le asignar un
ancho de banda determinado. De la misma forma tambin se pueden desconec-
tar los dispositivos del sistema. El controlador USB del host asigna un nmero
diferente de dispositivo a cada uno de los perif6ricos que se conectan a este bus.
Para empezar ltransferencia, ste enva paquete &e identifica al dispositivo
objeto de la transferencia. El protocolo soporta cuatro tipos de transferencias:
ORA-MA CAP~TULO7. EL ENLACE EXTERIOR 225
l
e Control. Son transferencias entre el host y el dispositivo que se utilizan
para leer informacin de los descriptores en los registros de los dispositi-
vos (iiamados end points), interpretarla y poder conigurarlos.

Interrupcin. Usado en los perifricos del tipo de los controladores de


juegos, teclados y ratones, cuya comunicacin es unidireccional y poco
frecuente.

e Masiva (Bulk). Son transferencias no peridicas que precisan de todo el


ancho de banda disponible. Utilizado por las impresoras y los scanners y
tambin para transferir imgenes.

e Isocrona. Dedicada a las transferencias de telecomunicaciones, como


voz o video, que garantiza unas tasas de transferencias constantes. Se
caracteriza porque el nmero de pulsos de reloj que transcurren entre la
transmisin de dos caracteres es constante, por lo tanto se est enviando
informacin constantemente entre el host y el dispositivo.

-
Intel ha implementado un coniunto de controladores de USB vara -uerifricos
de PCs (8x930x USB ~ e r i ~ h e rController)
ai y para los concentradores (8x930-
Hx USB Hub Controller y el 8x93 1Ax USB Peripheral Controller).

Los controladores USB constan de las siguientes partes:

e Transceivers para adecuar las sefiales del bus.

e Interfaz serie (Serial Inteiface Engine - SIE) que serializa los datos y se
encarga adems de realizar la codificacin NRZI, el control de errores, el
control de los protocolos y el secuenciamento de los paquetes.

Unidad de interfaz (Function Inteiface Unit - FIU) que monitoriza el es-


tado del controlador, las transacciones y los buffers de datos, e interrumpe
tambin a la CPU.

Buffers de almacenamiento temporal de datos que son memorias FWO


(primero en entrar, primero en salir) destinadas a la transmisin y a la
recepcin de datos, as como al control de interrupciones y a las transfe-
rencias tanto isocrnicas como masivas (bulk).
226 ESTRUCiTJRA DE COMPUTADORES Y PERF&IcOS ORA-MA

La version 2.0 de este estndar, que est siendo desarrollada actualmente,


multiplica la velocidad del bus por un factor de U ) o 40, utilizando los mismos
cables, conectores e interfaces software.

7.4 INTERFACES PARALELAS

Los ordenadores personales incorporau tradicionalmente un puerto paralelo


consistente en un conectar DB25 de 25 vines. Este tim de interfaz se caracteri-
za porque se eavlan simultneamente 1s; bits de datos por medio de diferentes
lneas. Desde siempre se ha considerado la bierfaz paralela como el puerto uti-
lizado para conectar la impresora, pero desde comienzos de la decada de los
noventa se viene utilizando con otros fines, ya sea para comunicar diferentes
sistemas infom6ticos o bien para conectar dispositivos de almacenamiento ma-
sivo. La clave para su expansi6n fue la utilizacin de estndares que permitan
la comunicaci611bidimxional por las lneas de datos.

7.4.1 La interfaz Centronics


Inicialmente (mediados de los aios sesenta) se dise6 una interfaz con 36
pines, que utilizaba la casa Centronics Data Computer Corporation en sus im-
presoras, y es por ello por lo que se le conoce como la interfaz Centronics. Sin
embargo la interfaz Centronics de los ordenadores personales actuales fue di-
seada por Epson Corporation.

La interfaz consta de 8 pines para datos ms 5 seaies que controlan la im-


presora y cinco que vienen de la misma. Se utilizan voltajes TTL con seales
no balanceadas (en el destino el valor de la seal se obtiene en referencia a otra
seilal de tierra), por lo que son susceptibles de recibir ruido y producir -res.
Si se utilizan cables normales de impresora, la longitud mxima del cable ronda
los 4'5 metros, aunque se puede aumentar hasta l-5 metros si se utilizan cables
especiales. El bus soporta tasas de transferencia de datos de hasta 100 kbytesls.

En la tabla 7.3 se pueden observar las seaales que componen el estndarCen-


tronics, su descripci6n. direcci6n v su localizaci6n fsica tanto en el conector
DB25 del PC como en el conectorCentronics de la impresora.
ORA-MA CAP~TULO7. EL ENLACE EXTERIOR 227

Tabla 7.3: Seules que componen el estdndar Centronics


Actualmente se han diseado dos esthdares que tratan de aumentar el ancho
de banda de la interfaz Centronics sin perder la compatibilidad con el mismo,
permitiendo ademgs la comunicacin bidireccional. Son las interfaces ECP (Ex-
tended Capabilities Port) y EPP (Enhanced Capabilities Port) que se definen
en el estndar del IEEE 1284 (ZEEE Std. 1284-1994 Standard Signaling Met-
hod for a Bi-Directional Parallel Perioheral Interface
" "for Personal Comouters).
ECP se utiliza en las impresoras y escnm, puesto que permite mayores tasas
de transferencia con protocolos sencillos, mientras que EPP sirve para los dems
dispositivos en donde se necesita un control de errores miis exhaustivo.

7.4.2 El estndar IEEE 1284


Este nuevo estndar define 5 modos de transferencia de datos, desde el viejo
Centronics hasta dos mtodos que
- -permiten la comunicacin bidireccional entre
el ordenador y el dispositivo. Debido a que los protocolos se implementan por
hardware, EPP y ECP permiten tasas de transferencia de datos mucho mayores,
llegando incluso al Megabyte por segundo. La tabla 7.4 describe los modos de
transferencia de datos que define el estndar.

El estndar describe el formato de las seales, la asignacin de pines y los


mecanismos de deteccin y correccin de emres, sin embargo las funciones de
la BIOS, la interfaz software y el control de los puertos estn a cargo de los
fabricantes. La tabla 7.5 describe los tipos de conectores que existen.

El puerto paralelo se configura inicialmente en el modo compatible. DespuBs


se establece un dilogo con el perifrico para decidir el modo de funcionamiento
final, aunque debido a la facilidad con la que se puede cambiar el modo, es
posible realizar transferencias cambiando los modos de emisin y de recepcin
de datos de forma dinmica. Los modos byte, ECP y EPP son opcionales en el
estndar.

7.4.3 Small Computer Systerns Interface (SCSI)


La interfaz SCSI es una interfaz paralela, con 8, 16 o 32 lneas de datos que
se utiliza para comunicar dispositivos rApidos, como discos CD-ROM, dispositi-
ORA-MA

impresora6 y otras apliniciones

Tasa de tranerencia mxima. So-


parte mmpre6kin RLE (en lugar de
enviar muchos Iguales, se

veoss que se repite). Apropiado pa-


m conectar eschera y CDROMS.
Desarrollado por HP y Micmoii

8 bita de entrada y 8 de Salida. ID


pmgmmadabasada en Intenupcio.
nes (DMA NO).
lnduye direoaonamiento para so- Comunicaciones interactivas wn
EPP parter mAs de un periirlco con- H~~ coniroladores de red, CDROM,
tado por deisy-chaln al &e. 2000 d l m s y dnlas. ES el modo m& po-
lmplementeoidn del protacdo por tente y flexible.
hnrdware (El sw no se preoaip de
sct~varIdesact~varlassemalesdere-
mnocimiento).

Tabla 7.4: Modos de transferencia de datos del Estndar IEEE-1284


m*
Constar
A

B
-
230 ESTRUClWRA DE COMPUTADORES Y PERIR~ICOS

DB-25 estbndar.

C o n W r centmnica de 38 pl-
DlatPiidP
(m)
2

2
Comentulos
@RA-NLP

Puerto patalelo esundar del PC


(hembra).
Puerto paralelo estendar en la
1

nes. impresora.
C Coneoior centronias de 38pines 10 Nuevo estinilar de conexlbn.
mlnlatura. w n nuevos voltajes que permi-
ten un mayor ancho de banda.
Desarrollado por intel, Xlrcom.
and Zenllh.

Tabla 7.5: 2fposde conectores del estllndar lEEE-1284

vos de audio y dispositivos de almacenamiento externo de datos. Normalmente


se considera a la conguraci6n SCSI como un bus (conexin multipunto), sin
embargo los dispositivos estn encadenados entre si formando una conexin
daisy-chain. Cada dispositivo tiene dos conectores, uno de entrada y el otro
de salida. El comienzo del bus se conecta con el host y el ltimo dispositivo
incorporta un terminador para evitar problemas de reflexiones de las seiales.
Los dispositivos funcionan de forma independiente y pueden intercambiar datos
tanto entre s como con el host.

Este bus puede soportar mltiples procesadores y mltiples dispositivos pe-


rif6ricos. Soporta hasta 8 dispositivos de los cuales cada uno puede tener 8
unidades lgicas, cada una de las cuales soporta 256 subunidades lgicas.

La eapecificaci6n original se llam6 SCSI-1 y usaba 8 lineas de datos a una


frecuencia de SMHz, permitiendo una transferencia de datos de 5 Mblseg. SCSI-
1 soporta hasta 7 dispositivos que pueden ser encadenados al bus.

En 1991 surgi una extensin al estndar, el SCSI-2, que incrementaba el


nmero de lneas de datos a 16 6 32 bits e incrementaba la frecuencia de reloj a
10 MHz. As se logran tasas de transferencia mxima de hasta 40 Mbyteslseg.

Las transferencias en el bus siempre tienen lugar entre un iniciador (disposi-


tivo que manda comandos) y un objetivo (dispositivo que ejecuta los comandos).
Normalmente el host es el iniciador y el controlador del dispositivo es el obje-
tivo, aunque puede haber algn dispositivo que sea ambas cosas a la vez. Las
seales que se transmiten por el bus pueden estar implementadas utilizando un
solo cable cada una y compartiendo una masa comn en el caso de un single-
ended SCSZo utilizando dos cables cada una en el caso del werential SCSI. El
primero se utiliza para distancias menores a 6 metros y el segundo para distan-
cias menores a 25 metros. Los conectores son de 50 pines.

En la figura 7.3 se muestran las seales de este bus. Existen 9 llneas de datos
y 9 seales de protocolo que coordinan la transferencia entre el controlador y el
host. A continuacin se presenta una lista que describe la funcionalidad de las
sefiales de protocolo del bus.

m Ocupado (BUSY). Esta seal la activa el iniciador o el objetivo para in-


dicar que el bus est ocupado.

m Selecdn (SELECT). Esta seal la utiliza el iniciador para seleccionar


un objetivo. o el objetivo para reseleccionar al iniciador. La seal de EIS
distingue entre seleccin y reseleccin

m ControDatos (CONTROL/DATA). El objetivo indica si la informaci6n


en el bus de datos es de control (orden, e d o o mensaje) o de datos.

m E/S (i/O). La utiliza el objetivo para controlar la direccin del movimiento


de datos.

m Mensaje (MESSAGE). Con ella el objetivo le indica al iniciador que la


informaci6n que se transmite es un mensaje.

m Peticin (REQUEST). La usa el objetivo para pedir una transferencia de


datos. En respuesta a la activacin de esta seal, el iniciador acepta datos
del bus durante la fase de entrada & datos o pone datos Mel bus durante
la fase de salida de datos.

m Reeonodmiento (ACKNOWLEDGE). La usa el iniciador para recono-


cer una peticin del objetivo. Indica que d iniciador ha puesto los datos
en el bus o que los ha recogido.

m Atencin (ATTENTION). El iniciador indica al objetivo que tiene un


mensaje listo para ser transferido.

m Inicializacin (RWET). Utilizado para inicializar el bus


- -

232 BSTRUClVRA DE COMPUTADORESY E T R E ~ C O S ORA-MA

(PeMrim intellgents.
wnidndor Inteligente

1
Figura 7.3: Descripcin de la inte$hz SCSI

Las transferencias que tienen lugar en el bus se dividen en varias fases, tal
como muestra la figura 7.4. Como se puede observar no todas las transferen-
cias tienen que pasar por todas las fases para completarse. A continuaci6n se
describen las fases por las que se pasa en el prutocolo SCSI.
1. Bus libre. No es una fase propiamente dicha, ya que ningn dispositivo
est utilizando el bus.
2. Fase de arbitraje. Antes de empezar o continuar con la operaci6n de WS
en necesario ganar el control del bus, ya que puede haber mltiples inicia-
dores de la transferencia.
3. Fase de selecci6n. El iniciador selecciona un objetivo. ste contesta con
los tipos de transferencia que es capaz de soportar: entradalsalida de da-
tos, peticin de comando, reconocimiento de estado o entradalsalida de
mensaje.
4. Fase de reseleccin. El objetivo se vuelve a conectar con un iniciador con
la intencin de continuar con la operacin que 61 mismo suspendi.
5. Fase de orden. El objetivole pide al iniciador informacin sobre la orden.
@RAMA C A P f n a o 7. ELENLACE,EXTERIOR 233

6. Fase de datos. El objetivo le pide al iniciador que realice la transferencia


de datos. Los dispositivos se comunican mediante un conjunto de coman-
dos de alto nivel que se envan en los bytes de desCnpci6n de los paquetes.

7. Fase de estado. El objetivo pide permiso para poder enviar informacin


de estado.

8. Fase de mensaje. El objetivo pide la transferencia de uno o ms mensajes.

Cuando en una transferencia ya se ha arbitrado el bus y se han elegido tanto


el iniciador como el objetivo se pueden realizar una o varias fases de transfe-
rencia de informacin (orden, datos, estado y mensaje). La ltima fase suele
ser la de entrada de mensaje, y en ella se transmite un mensaje al iniciador de
desconexin o de finalizacin de orden.
Inicializaci6n

.1
Selecci6n o
BUSlibre Arbitraje reseleccibn
A
T
Figura 7.4: Fases en una transferencia SCSl

Una caracterstica importante del SCSI es la capacidad de reseleccin. El


protocolo permite que si la orden tarda mucho tiempo en completarse, el objetivo
libere el bus y se reconecte despus, como, por ejemplo, para formatear un disco.
Con esta poltica, es posible que un dispositivo reciba varios comandos antes de
ejecutar el primero, con lo que puede realizar una seleccin fuera de secuencia
para optimizar el tiempo de respuesta.

Temporizacin del bus

Inicialmente ninguna seal est activa. La fase de arbitraje comienza cuan-


do uno o ms dispositivos activan la lnea BSY y una de las lneas de datos
234 BSTRUCWRA DE COMPUTADORES Y PERW&COS ORA-MA

que indica su identificativo (0-7). El dispositivo con mayor prioridad es el de


identiiicativo mayor y es el que gana el arbitraje.

El dispositivo que gana el arbitraje es el iniciador. Entra en la fase de se-


l d 6 n mediante la activaci6n de la seal SEL. En esta fase activa su ID y la
lnea de datos que conesponde con el W del objetivo, y despus de un retraso
desactiva la seflal BSY. Cuando el objetivo detecta activada SEL, y desactivadas
BSY e U0,y adems detecta su identiicativo activado en la lnea de datos, ac-
tiva la seal de BSY. Cuando el iniciador detecta BSY, desactiva el bus de datos
y niega SEL.

A continuaci6n, el objetivo entra en la fase de orden mediante la activacin


de la lnea C/D y pide el primer byte de la orden al iniciador mediante la acti-
vaci6n de REQ. El iniciador, cuando deposita en el bus de datos el primer byte
de la orden, activa ACK. Despub de que el objetivo lee el byte, desactiva REQ
y entonces el iniciador desactiva ACK. El primer byte de la orden contiene el
cdigo de operaci6n de la orden que indica cuantos bytes quedan an por trans-
ferir. Esta transferencia se produce del mismo modo que la anterior mediante
las lneas de protocolo REQIACK.

Despus de que el objetivo ha recibido y ha interpretado la orden coloca el


bus en la fase de datos negando la lnea C/D y activa la lnea U 0 para indicar
una fase de Data In (la direccin de la transferencia es de objetivo a iniciador).
La transferencia se reaIiza de la misma forma que se transmiti6 la orden.

Cuando ya se han transferido todos los datos que se pidieron, el objetivo po-
ne al bus en la fase de estado v transfiere un bvte de estado al iniciador indicando
el xito de la transferencia. n este caso la &a C/D se activa de nuevo y la lnea
U 0 permanece activada. Tambin aqui se utiliza el protocolo REQIACK.
Finalmente, para concluir con la transacci6n el objetivo pone al bus en la
fase de mensaje activando la lnea MSG y transfiere un byte que contiene el
mensaje de orden terminada. Cuando este byte es recibido por el iniciador, el
objetivo desactiva todas la lneas para dejar al bus en estado de no utilizacin.
ORA-MA 0 EL ENLACE EXTERIOR 235
C A ~ f r v L 7.

Mensajes

Existen 3 tipos de fonnatos de mensajes: de un byte, de dos bytes y mensajes


extendidos de tres o ms bytes. Algunos ejemplos de mensajes son:

e Orden completadsi. El objetivo le indica al iniciador que ha terminado la


orden y que se le ha enviado un mensaje de estado vlido.
Desconexin. El objetivo indica que se va a desconectar del bus y que
realizar una reconexin posterior para completar la orden.
Ermr detectado por el iniciador. El iniciador comunica que ha detecta-
do un error.
e Terminacin. El iniciador quiere terminar la transferencia actual.
e h s f e r e n c i a de datos sncrona. Para establecer que la transferencia se
va a realizar de forma sncrona.

7.5 CONCLUSIONES

En este captulo se ha deinido el enlace exterior como el medio de comuni-


cacin que interconecta el controlador de perifrico con su perifrico asociado.

Adems se han clasificado las interfaces en funcin del nmero de lneas uti-
lizadas para la transmisin de los datos y del nmero de dispositivosconectados
y se han introducido las interfaces serie (RS232) y paralelo (IEEE 1284) como
ejemplo de la gran diversidad de estndares que existen.

Tambin se ha explicado de forma mas exhaustiva un bus exterior paralelo:


el SCSI.El objetivo de este punto ha sido el de conocer las seales que lo for-
man, su funcionalidad y los protocolos que utiliza para realizar el arbitraje del
bus, las transferencias de datos y el envo de mensajes.
Con la finalizaci6n de este captulo, el lector debe ser capaz de representar
el diagrama de bloques completo de un computador sencillo, incluyendo los
pe~Wncos.puesto que ya se han contenplado todos los bloques funcionales que
forman la arquitectura de un computador.

7.6 CUESTIONES

7.1 Se quiere enviar uno secuencia de 3 caracteres (15h, 255 y AOh) por una
ltnea serie utilizando un protocolo asncrono. Se conjguran tanto el emisor
como el receptor para emiiar/recibir caracteres a una velocidad de 10 bits por
segundo, con paridad par y un bit de stop. Realizar un esquema temporal que
muestre el estado de la lnea de transmisin incluyendo [as celdas de bit. .jCmo
sabe el receptor cuando debe muestrear la lnea?

7.2 hkplicar las diferencias existentes en cuanto a la metodologla de conexin


de un bus USB y de un bus SCSI.

7.3 .jQu&tipo de arbitraje utiliza el bus SCSI? Indicar cmo tiene lugar el
proceso de arbitraje.

7.4 Por qut la seul de seleccidn en el bus SCSI es bidireccional?

7.7 BIBLIOGRAF~A
e Computer Peripherais. Bany M. Cook, Neil H. White. 30 ed. Edward
b o l d . ISBN 0-340-60658-4. 1995.
e An Introduction to Micxucomputer Systems. Architecture & Intea-
dng. John Fulcher. Addison Wesley Publishers Ltd. ISBN 0-201-41623-9.
1989.
@RA.MA CAP~~ULO
7. EL ENLACE EXTBRIOR 237

m The indispensable PC Rardware Book. Hans-Peter Messmer, 39 ed.


Addison Wesley Longman, Inc. 1997.ISBN 0-201-40399-4.
m El Libro del RS232. Joe Campbell. Ediciones Anaya Multimedia, S.A.
ISBN 84-7614-055-X.1985.
m Conexiones en el IBM IPCIXTIAT. Teora y prctica de perifricos,
comunicaciones y congurauones. M. D. Seyer, Ediciones h a y a Mui-
timedia, S. A. ISBN 84-7614-119-X.1986.
m Gua a las Comunicaciones del IBMIPC. David Kruglimki. McGraw-
Hill, Inc. ISBN 84-7615-057-1.1984.
m Conceptos Actuales Sobre la Tecnologa de los Ordenadores. Joseph
C. Giarrutano. Ediciones Maz de Santos, S. A. ISBN 84-86251-15-X.
1984.
DISPOSITIVOS DE ENTRADA DE
DATOS

Los medios a travs de los cuales llega informacin al procesador son muy
dispares. A lo largo de este captulo nicamente se van a considerar aquellos
dispositivos que utiliza el usuario para introducir informacin en el ordenador.

Debido a la condicin humana estos dispositivos son bastante lentos y no


requieren un ancho de banda demasiado elevado, por lo que el diseo de las in-
tegaces con el procesador es bastante sencillo. Habitualmente se utilizan proto-
colos de comunicacin de datos serie para transmitir la informacin de entrada,
que puede variar desde un conjunto de caracteres alfanumricos introducidos
por el teclado, a una coordenada de la pantalla, o incluso a un conjunto de bits
que describen la forma de una imagen digitalizada.

Todos estos dispositivos se conectan al sistema informtico por medio de


buses estandarizados para abaratar los costes de produccin y facilitar el inter-
cambio entre diferentes sistemas. Actualmente el bus USB va reemplazando a
las interfaces tradicionales Centronics y RS232.

A continuacin se van a describir los dispositivos ms tpicos, desde el te-


clado a los ratones, pantallas sensibles al tacto o digitalizadores de imgenes.
8.2 INTERRUPTORES

El dispositivo m8s simple de entrada es el interruptor o el pulsador. Son


dispositivos electrnicos que estn en estado abierto (no conducen la comente
elctrica) o cerrado (conducen la corriente elctrica). La concepcin ms simple
de interruptor consiste en dos hilos que estn en contacto o no lo estn. Para
activar el interruptor se unen y para desactivarlo se separan. Entre los diferentes
tipos que existen destacan los siguientes:

Mdniccm: Dos contactos mecnicos entran en contacto para - cerrar un


circuito, tal como se puede observar en la figura 8.1 (a). Al presionar el in-
t e m t o r los contactos se tocan o se se~aranfiiando un voltaie u otro. Es-
r e s una pequea resistencia del orden & 0'1 ohmios
tos ~ t e r ~ ~ t otienen
que suele aumentar con el tiempo. En los interruptores ms modernos los
contactos estn baados en oro para evitar su oxidaci6n y por el mismo
hecho de accionar el interruptor un mecanismo limpia los contactos.

Nlideo
magntlw
Material
magn61iw
l.Salida

8.1: Diferentes tipos de interruptores

De membrana: Tiene tres capas de un matxial formado a base de pelculas


de poliater o policarbonato, separadas por espaciadores. El conjunto se
ensambla ocupando menos de un milmetro. La capa del fondo es fija,
mientras que la intermedia y la superior son flexibles, teniendo esta itima
impreso en la cara exterior el dibujo del carcter que representa la tecla.
Los contactos se localizan en las caras internas de la membrana inferior
y la media. Al presionar la capa superior el nivel intermedio presiona al
nivel inferior formando el contacto elctrico. Presentan la ventaja de que
ORA-MA cAP~TULO8. DISPOSITIVOS DE ENTRADA DE DATOS 241

son muy delgados y baratos, y adems son hermticos, lo que los hace
ms duraderos, pudiendo ser incluso hasta sumergibles.
m Capacitivos: Como se puede observar en la figura 8.1 (b), estos inte-
rruptores internamente tienen dos placas de condensador en la base del
interruptor. Al presionar se acerca una tercera placa que produce una
variacin de tensin entre las dos placas de la base. La calidad de los
interruptores de este tipo es bastante elevada, ya que no existen contactos
mecnicos que se puedan estropear o desgastar con el tiempo.
m De efecto Hall: El efecto Hall produce una diferencia de potencial en-
tre los extremos de una pieza hecha a base de un material semiconductor
cuando fluye la corriente a travs de la misma y el material sufre los efec-
tos de un campo magntico perpendicular a la direccin del flujo de la
comente. La figura 8.1 (c) muestra un interruptor de estas caracterlsticas.
Cuando se presiona la tecla, al acercarse el ncleo magntico produce
una variacin del flujo magntico que atraviesa la pieza del fondo del in-
terruptor. Esta variacin de flujo produce un cambio en la tensin del
semiconductor que sirve para detectar la pulsacin de la tecla.

8.2.1 El problema de los rebotes

Serial acUva a nivel bajo

Figura 8.2: El problema de los rebotes

Desde el momento en que se dispone de un interruptor en un sistema in-


formtico, como, por ejemplo, para generar la seal de reset de un microcontro-
lador (vase la figura 8.2). se deben poner circuitos para evitar las oscilaciones
que produce la seal debido a la accin de los contactos. El tiempo de respuesta
del interruptor es varias rdenes de magnitud ms lento que el ordenador, por
lo tanto cada vez que se presiona el interruptor, las oscilaciones que produce
pueden ser interpretadas como nuevas entradas. Para solventar este problema se
pueden aplicar varias tcnicas que se resumen a continuacin:
m Filtro RC: Se utiliza un integrador con una constante de tiempo RC que
determina la velocidad con la que se va cargando asintticamente el con-
densador hacia Vcc. Se debe elegir el filtro para que un rebote en el inte-
rruptor no sobrepase nunca el nivel bajs &la seal. La figura 8.3 muestra
el efecto que se consigue con el fiitro en la sefial que procede del interrup-
tor.

Nivel
bajo Rebdss

Figura 8.3: Cixuito con una red RC para evitar rebotes

m Monoestable: Este dispositivo en el momento en que se detecta un flan-


co de bajada en la seal de entrada produce un pulso de amplitud fija.
Mientras est activo el pulso, subsiguientes flancos en la entrada sern
ignorados, con lo que se eliminan por completo los rebotes.

m Biestable SR: Debido a la inclusin de un biestable SR s61o se responde


al primer estado bajo que activa el Reset, como en el caso anterior. La
figura 8.4 muestra un ejemplo de este circuito.

Reset Set

Figura 8.4: Circuito con un biestable RS que evita los rebotes


ORA-MA C A P ~ 8.O DISWSITIVOS OB ENTRADA DE DATOS 243

8.3 TECLADOS

La mayon de los teclados suelen tener alrededor de 100 teclas. El sistema


informitico debe reaccionar a cada una de ellas independientemente. No sera
prctico tener una lnea dedicada para cada tecla, y en cualquier caso, es bastante
raro que varias teclas se presionen a la vez, por lo tanto se emplea un canal
compartido.

Las teclas se configuran en forma de matriz de m filas por n columnas. Para


+
controlarlo slo se necesitan conectar m n cables a un puerto del ordenador,
pero hace falta la ayuda adicional del sofiare para identificar la tecla pulsada.

Si se tiene una matriz de 3x3, como muestra el ejemplo de la figura 8.5,


se conectarn las 3 lneas de las filas a un puerto de salida, con lo que el pro-
cesador podr cambiar el estado (alto o bajo) de cada una de ellas. Hay que
destacar que la lnea discontinua del dibujo indica el sentido que sigue la co-
mente elktrica. Como el primer puerto de salida muestra un nivel bajo tiene
que absorber corriente. Las columnas se conectarn a un puerto de entrada, de
forma que el procesador podri averiguar, leyendo del puerto, cul es su valor. El
procedimiento para interpretar las pulsaciones consiste en que a medida que se
van escribiendo ceros en las filas se van leyendo de forma simultnea los valores
de las columnas.

Cuando se escribe un 'O' por la fila 1, siempre que se detecte un 'O' en la co-
lumna l significa que se ha presionado la tecla (1,l). En memoria se tendr una
tabla que indique cud es la tecla que se tiene en esta posicin. Existen 8 posibi-
lidades para cada fila, indicando desde las tres teclas pulsadas simultneamente
(000) hasta ninguna tecla pulsada (111). Esta tcnica de decodificacidn por soft-
ware consume mucha memoria debido a la gran cantidad de posibilidades que
se pueden obtener, por lo tanto normalmente no se tienen en cuenta las pulsa-
ciones mltiples en este tipo de teclados cuando se aplican estos algoritmos &
interpretacin de las teclas pulsadas.

Adems, este mtodo puede presentar emores en la wdificaci6n de las teclas


que se han pulsado cuando se activan varias a la vez. Para ilustrarlo se va a
considerar la misma matriz de teclas del ejemplo anterior y se va a suponer que
se pulsan de forma simultnea 3 teclas, las dos ltimas de la primera fila y la
tecla del medio de la segunda fila, tal y como muestra la figura 8.6.
Puerto de
Entrada

Figura 8.5: Lecfum de ia primerafila

Cuando el algoritmo pasa a comprobar la fda 2, como inicamente est pd-


sada la tecla del medio de dicha fila, en el puerto de entrada se debe leer la
secuencia 1 O 1. Sin embargo se detectan niveles bajos en las dos ltimas co-
lumnas (1 O 0)con lo que se interpreta que tambin est pulsada la ultima tecla
de la fila y por lo tanto se produce un error. Hay un O no esperado debido al
camino alternativo que sigue la comente desde la columna 3 hacia la fila 2. Si
se enumeran los intemptores por pares de fdas y columnas, desde el momento
en que el puerto de salida activa un cero en la fila 2, empieza a adquirir corriente
que es suministrada por las columnas 2 y 3, pasando respectivamente por los
intemptores (1,2)(2,2) y por (1,3)(1,2)(2,2). Debido al flujo de corriente por
la columna 3 se produce una cada de potencial en la resistencia que produce
la lectura del O etrnea en el puerto de entrada. La soluci6n consiste en aadir
diodos en los intemptores para evitar la vuelta atrs de la comente desde las
filas a las columnas cuando el pulsador est apretado.

Otro de los problemas que presenta esta tcnica consiste en que el procesa-
dor tiene que estar todo el tiempo comprobando las filas secuenciaimente para
detectar las pulsaciones de las teclas. por lo que se pierde eficiencia. Para so-
lucionarlo se emplean otros algoritmos en los cuales el procesador activa todas
las filas a la vez y pasa a realizar alguna otra tarea en espera de la pulsaci6n de
alguna tecla (detectada por la presencia de al& cero en alguna columna). En
@IRA-MA 8. DISPOSITIVOS DE ENTRADA DE DATOS 245
CAP~ULO

5v

Puerto de
Entrada

Figura 8.6: Camino alternativo que sigue la corriente

el momento de la deteccin el puerto de entrada es el que enva una interrupcin


al procesador para avisarle de la pulsacin y para que ejecute el driver de te-
clado que se encarga ya de realizar la comprobacin de todas las filas de forma
secuencial para identificar la tecla pulsada.

J3i teclado de un ordenador se controla de forma diferente a las vistas ante-


riormente. En la figura 8.7 se puede observar un esquema de un teclado con su
conexin a la placa del procesador. ste es un dispositivo de entrada de datos
que se conecta al controlador de teclado o a la nterfaz de teclado de la placa base
del ordenador mediante una interfm serie. Los teclados del ordenador consis-
ten en una matriz de teclas y un circuito integrado que se encarga de supervisar
esta matriz y de detectar las pulsaciones. En el momento en que se detecta la
pulsacin o la liberacin de una tecla se escribe su cdigo correspondiente en
un buffer interno del teclado y a continuacin el teclado transmite este cdigo al
controlador que se encuentra en la placa base del procesador va serie a travs
del cable del teclado. Las funciones del contro1ador incluido en el teclado se
pueden resumir como las siguientes:

Prevenir las falsas repeticiones (rebotes) y evitar la deteccin de pulsa-


ciones incorrectas debidas a la vuelta atrs de la comente mediante la
inclusi6n de diodos en las teclas.
e Traducir la tecla pulsada, identificada por su posicin en la matriz, en
un cdigo nico, llamado scan-code, que la identifica. Con un byte es
suficiente para almacenarlo, ya que los teclados de ordenador suelen tener
alrededor de 105 teclas.
e Repetir un carcter si se ha pulsado durante cierto tiempo (normalmente
del orden de un segundo).
e Detectar la pulsacin simultnea de varias teclas (rollover): Cuando se
pulsa una tecla, se genera su cdigo correspondiente. Si la primera tecla
permanece apretada mientras se pulsa una segunda, se generar6 la salida
correspondiente a la segunda tecla. Si se pulsa una tercera tecla mientras
las anteriores estn apretadas (o alguna de enas) se genera el c6digo de
la tercera. As sucesivamente hasta que se pulsan todas las teclas menos
una.

El conector del teclado dispone de 5 hilos para transmitir las seales de reloj,
datos, reset, tierra y alimentacin, con lo que se puede establecer una comunica-
cin bidireccional entre el ordenador y el teclado con propsitos de transferencia
de datos o de configuracin (como, por ejemplo, para programar la velocidad de
repeticin de la tecla pulsada, o para deshabilitar el teclado). La lnea de reset
sirve para inicializar el teclado.

ll~l - h k m de
lnwmipd6n

W --
,--
DI
-- Controlador
d i Idado
11
ol -
M- - 8741
DS --
06 -- 8741
D7 -- Cable &l
tulodo

Figura 8.7: Esquema de la consrin de un teclado


Cuando se produce una pulsacin, el controlador transfiere un cdigo al or-
denador (limado muke-code) que genera una intempcin para que la mtina
@A-MA cAP~VLO8. DISPOSl'ITVOS DEENTRADA DE DATOS 247

de tratamiento lea el cdigo enviado. Es el driver de teclado el que en esta


interrupcin se encarga de combinar los cdigos para generar los caracteres
(maysculas, minsculas, teclas de funcin, control y cualquier combinacin
entre stas). Cuando se suelta una tecla, se enva el cdigo de la misma (llama-
do break-code)que equivale al scan-code + 128 y de nuevo se ejecuta la nitina
de tratamiento de la interrupcin del teclado.

8.4 RATONES

Los ratones son los dispositivos de entrada posicionales que ms se utilizan.


Otros dispositivos son el joystick y los trackballs. El ratn viene asociado nor-
malmente con un cursor sobre la pantalla que sigue su movimiento. Se suelen
conectar al puerto serie del ordenador, aunque existen versiones con sus pm-
pias tarjetas adaptadoras que se insertan en el bus de expansin. Estos ltimos
reciben el nombre de (bus mice).

Los ratones funcionan asociados con las interfaces de usuario grficas, en las
que la mayora de las acciones vienen determinadas por la pulsacin de un botn
del ratn cuando Bste se encuentra sobre una determinada rea en la pantalla.
Los botones diferencian eventos cuando se aprietan o cuando se sueltan. El
driver de ratn es el programa que se encarga de convertir las seales recibidas
en rdenes de la CPU.

Al mover el ratn, la distancia recorrida se enva en forma de coordenadas


X-Y al ordenador. El ratn enva informacin posicional relativa que se utiliza
para mover un cursor sobre la pantalla. Ser este cursor el que lleve cuenta de
la posicin absoluta. El Sistema Operativo actualizar la posicin del cursor
sobre la pantalla en funcin del desplazamiento recorrido por el ratn. La co-
municacin entre el ratn y el ordenador consiste tpicamente en mensajes de la
siguiente forma:

a botn n apretado

a botn n soltado

ratn desplazado en (X,Y) unidades


Los ratones se diferencian bsicamente en el mtodo empleado para detectar
el movimiento, existiendo principalmente los sistemas mecnicos y los pticos.
El mecnico emplea una bola de goma que est en contacto con dos pequeos
rodillos. El movimiento de la bola es transmitido a los rodillos que miden sepa-
radamente la translacin en las direcciones X e Y (relativas al ratn). Al nalde
cada rodillo se encuentra un disco con pequenos agujeros realizados siguiendo
un patrn regular. La rotacin del disco se utiliza para medir el desplazamien-
to relativo del ratn. Ya que los rodillos se colocan en posicin perpendicular,
(constituyendo un sistema de coordenadas cartesiano), cualquier movimiento
oblicuo del ratn se convierte en una combinacin de desplazamiento vertical
y horizontal. Los valores obtenidos del desplazamiento se transmiten va se-
rie al ordenador, por medio de un cable o ms recientemente mediante seales
i n f m j a s . Existen dos mtodos para medir el desplazamiento:

1. Electromecnico: Los discos tienen contactos configurados en dos crcu-


los, existiendo un pequeno desplazamiento entre los contactos de un disco
y otro. El nmero de contactos delimita la resolucin del ratn, siendo 40
un nmero bastante comn. El ratn detecta el movimiento usando una
banda de metal para cada crculo de contactos y otra banda que esta en
contacto con los dos crculos a la vez. La banda central produce un voltaje
que se detecta en las otras dos cuando se alcanza un contacto. Se graba
una unidad de movimiento cada vez que las dos tiras detectan un voltaje.
Como ambas pestafas estn desplazadas ligeramente, existe un peque30
retraso en la recepcin del pulso sobre las pestaas y el orden de los dos
pulsos indica la direccin del movimiento. -
2. Optomeenico: Como se puede obse~aren la figura 8.8, los discos tie-
nen un conjunto de agujeros distribuidos a lo largo de todo el permetro.
En una parte del disco se coloca un par de leds que apuntan hacia el otro
lado del disco donde se encuentran sus respectivos fotodetectores. La ro-
tacin del disco hace que el haz de luz emitido desde el led hacia e1 foto-
detector sea interrumpido cada vez que se termina un agujero, con lo que
se genera un tren de impulsos el6ctricosen el fotodetector. Cada pulso sir-
ve para medir unidades de movimiento y como se dispone de dos parejas
de led-fotodetector cuya posicin relativa con respecto a los agujeros est
desplazada ligeramente se puede determinar la direccin del movimiento
controlando cul es el flanco que se detecta primero.
ORA-MA ~APfnn0S. DISPOSiTTVOS DE ENTRADA DB DATOS 249

Figum 8.8: Esquema de un ratdn optomecnico

Los ratones 6pticos no utilizan la bola para detectar el movimiento. En la


base del ratn existen dos ventanas por las cuales un par de kds alumbran la
superficie sobre la que se mueve el ratn. La luz se refleja en esta superficie
y vuelve a entrar por las mismas ventanas, siendo detectada por dos fotode-
tectores. Un ied produce luz roja normal visible y el otro luz M j a . La
almohadla debe ser especial conteniendo lneas negras y azules pintadas de
forma alternada tanto en la direccin X como en la Y.

La luz roja es absorbida tanto por las ineas negras como por las d e s ,
mientras que la luz infrarroja slo es absorbida por las lneas negras. Por lo
tanto, el fotodetectorde luz roja generar6 pulsos cada vez que el rat6n se mueva
por encima de alguna lnea, sea cual sea su color, mientras que el fotodetector
de M j o s generar6 pulsos nicamente al pasar por encima de las ineas ne-
-
mas. Para detectar la d i i c i n del movimiento las ventanas tienen un mueo
A

desplazamiento tanto horizontal como vertical, con lo que se consigue una pe-
quea variaci6n en los pulsos generados por los sensores que produce una seal
cuadrangular.

Estos ratones no tienen partes mviles, por lo tanto son m& fiables, pero
necesitan una almohadilla especial. Los mechicos tienen la desventaja de que
la bola de goma y sobre todo los rodillos que la sujetan se suelen ensuciar, con
lo que no se transmite bien el movimiento.
I
250 ESTRUCTURA DE COMPUTADORES Y PERJF&IcoS ORA-MA

.
El conector del ratn sirve de manera adicional ara alimentar al ratn.
Cuando se mueve el ratn o se aprieta algn botn, el ratn transmite un paquete
. .
de datos a la interfaz oue ~roduceuna interruocin. La nitina de tratamiento de
la interrupcin (es decir el driver del ratn) se encarga de leer el paquete de da-
tos y de actualizar el estado de los pulsadores y de la posicin del ratn. Adems
se debe encargar tambin de mover el puntero del ratn sobre la pantalia. Para
ello se borra el puntero de la posicin actual, se escriben los contenidos anterio-
res de esa posicin, se leen los contenidos de la nueva posicin y se dibuja el
puntero del ratn.

8.5 DISPLAYS GRFICOS INTERACTIVOS

Los displays
- - -grsficos interactivos permiten al usuario retomar informacin
sobre la posicin en la pantalla de los objetos seleccionados, los objetos movidos
o borrados. Esta informacin se puede introducir de muy diversas maneras.

8.5.1 Ltpiz ptico


Estos dispositivos consisten en un elemento punzante que se conecta por me-
dio de un cable al ordenador. Se utilizan para seleccionar objetos en la pantaila
o para realizar algn trazado. En un extremo incluyen un botn para realizar
la seleccin del objeto. Los lkpices pticos han sido poco a poco reernplaza-
dos por los ratones. Antiguamente se utilizaban por su facilidad de manejo,
pero son dispositivos bastante complejos y con un mbito de aplicacin tambi6n
reducido.

Se conectan al controlador del tubo de rayos catdico por medio de un cable.


El lpiz tiene un fotodetector en la punta que detecta la luz emitida desde el pxel
donde se posiciona sobre la pantalla. Al pulsar un botn, como esta conectado
al circuito de banido de la pantalla, es posible determinar las coordenadas de la
pantalia sobre las cuales est apoyado el lapiz cuando se detecta el refresco del
pxel.

El problema se genera cuando el pxel sobre el cual se coloca el lapiz no


est iluminado. El haz de electrones cuando pasa sobre un punto no iluminado
ORA-MA cAPfnn0 S. O~SPOSiTiVOSDE ENTRADA DEDATOS 251

est deshabilitado, por lo que el fotodetector del lpiz es incapaz de detectar su


presencia. Para evitar este caso se pueden tomar varias alternativas:

m Utilizar siempre el lpiz para seleccionar un objeto encendido, a modo de


mens distribuidos sobre la pantalla.

m Usar el lbipiz para controlar un cursor que le sigue como si fuera un ratn.
Tiene el inconveniente de que no se puede separar el Ibipiz de la pantalla.

m iluminar la pantalla cada vez que se pulsa el botn del lpiz para evitar los
puntos no iluminados.

8.5.2 Pantallas sensibles al tacto


Debido a su facilidad de uso cada vez ms las podemos encontrar en aplica-
ciones domsticas o de uso general. El ejemplo ms claro es el de los cajeros
automticos de los bancos. A simple vista son monitores de ordenador comen-
tes pero que permiten realzar una seleccin de los objetos que se ven por la
pantalla simplemente tocndolos con el dedo.

Cuando se toca la pantalla se puede detectar las coordenadas X,Y donde se


ha realizado la pulsacin. Frente a su facilidad de uso tienen la desventaja de
que su resolucin es muy baja, con lo que slo sirve para detectar unos pocos
objetos representados en la pantalla.

Existen dos tipos distintos:

m El primero usa una hoja transparente que se pega sobre la pantalla. Las
hojas pueden ser de tipo resistivo o capacitivo. Las de tipo resistivo usan
dos hojas, la primera con hilos conductores trazados horizontalmente y la
segunda con los hilos trazados verticalmente. Si se presiona un punto de la
pantalla los hilos hacen contacto suministrando la informacin de donde
se ha tocado con el dedo. Las de tipo capacitivo utilizan una tecnologa
similar.

a El segundo tipo utiiiza una lila de sensores de infrarrojos o de ultrasonidos


que se montan en un extremo de la pantalla y una fila de receptores en el
otro lado. Los transmisores envan continuamente una sefial a los recep-
tores, mientras que el usuario interrumpe los haces de rayos produciendo
la deteccin de la posicin puisada.

Para evitar la activacin accidental de la pantalla, se incorpora una pequea


membrana sobre la pantalla que detecta cundo se presiona sta.

8.5.3 Tabletas digitalizadoras


Estas tabletas estn formadas por un dispositivo apuntador movible ms
un panel sensible de hasta 1 m2 de tamao. La resolucin puede llegar hasta
milsimas de milmetro. El dispositivo apuntador suele ser una mirilla o lpiz
electrnico similar al lipiz ptico visto anteriormente que tienen cuatro boto-
nes que sirven entre otras funciones para recoger las coordenadas de la posicin
actual.

Para determinar la posicin del puntero se pueden diferenciar tres mtodos:

Electromagntico: Debajo de la tableta existe una mahiz de hilos muy


densa. El procesador de la tableta enva pulsos elctricos a travs de la
rejilla, recomendo todas las columnas para cada una de las filas. Cuando
coinciden los pulsos de las X's y de las Y's se induce un voltaje en el
puntero que sirve para determinar su posici6n en funci6n del instante de
tiempo en que se detect. El espacio de la rejilla puede variar entre 0'25
y 10 milmetros.
Por ultrasonidos: El puntero emite ultrasonidos que son recogidos por
micr6fonos. Un ejemplo de este tipo de tableta se puede observar en la
figura 8.9
Por presin: Existe una rejilla al igual que en los teclados de membrana

Estos dispositivos tienen una resolucin mucho mayor que la de los ratones,
por lo que se usan en aplicaciones de CAD. Para la mayora de estos programas,
la tableta viene dividida en varias partes: una central para posicionar el cursor, y
una seccin en los bordes con diferentes smbolos. La pulsacin del botn en la
ORA-MA GVhJI.0 8. DiSPOSfllVOS DE ENTRADA DE DATOS ?S3

Tiras de
MkrMci~os

Figura 8.9: Tabeta digitalidora con deteccin por ultrasonidos

zona central posiciona un punto, mientras que en la seccin perifrica produce


la activacin de la funcin seleccionada.

8.6 DIGITALIZADORES DE IMGENES (ESCNERS)

Un digitalizador, en su nivel ms bsico, es un dispositivo ms de entrada.


La diferencia estriba en que toma sus entradas de forma griifica. La imagen es
digitalizada y convertida a un mapa & bits que se almacena para su posterior
procesamiento. Los digitalizadores son tiles en un conjunto muy extenso de
aplicaciones y es por eilo por lo que se han diversificado para cumplir mejor
las exigencias de cada una de eUas. Se pueden utilizar, por ejemplo, como re-
conocedores pticos de caracteres (OCR). Esta aplicacin tienen como objetivo
interpretar una imagen digitalizada de un texto y traducirla a cdigo ASCII. A
continuacin se detallan los digitalizadores m8s comunes:

m Digitalizadores a base de tubos de rayos cat6dicos (CRT): Se utiliza un


CRT para hacer incidir un haz de luz sobre la superficie a digitalizar. Un
fotodetector mide la intensidad de luz reflejada y la convierte en tecno-
loga digital para hacenarla en un fichero. Este tipo ha quedado ya
obsoleto.
m Digitalizadores deimpresora: Se coloca un pequeo detector en el cabezal
de impresin de una impresora raster capaz de imprimir en modo grato.
La impresora se programa para que imprima una imagen en blanco so-
254 BSTRUClWRA DE COMPUTADORESY F%RI&NCOS ORA-MA

bre la zona que se quiere digitalizar y mientras se va imprimiendo, se va


leyendo la informaci6n. Este escner es de muy bajo coste.

Digitalizadores de tambor: Son capaces de digitalizar tanto transparencias


como mat&al reflectivo. Pueden trabajar con tamaos desde los 35 mm
hasta paneles de 16 pies por 20 pulgadas con resoluciones de ms de 400
PPP @untospor pulgada).

e Digitalizadores de documentos compactos: Se disedan exclusivamente


para aplicaciones de reconocimiento automtico de caracteres (OCR)y
de manejo de documentos.

Digitalizadores para fotograffas: Funcionan desplazando una fotografa


sobre una fuente fija de luz.

Digitalizadores de transparencias: Sirven para digitalizar elementos trans-


parentes o traslcidos y su funcionamiento se basa en pasar luz a travs
de la transparencia en vez de reflejarla

e Digitalizadores de mano: Son porttiles. El escner de mano que es capaz


de leer una pequea fila del documento en cada instante. Para recoger una
pgina completa se pasa manualmente el escner sobre toda su superficie
y despus se reagrupan las imgenes en un nico fichero.

Digitahadores de tableta: Son los mi% utilizados por su versatilidad.


Capturan fotogratlas y dibujos en color. p8ginas de libros y revistas e in-
cluso son capaces de capturar pelculas fotogricas transparentes. Miden
por tanto la intensidad y el color de una serie de puntos recogidos en un
rect8ngulo.

El escner convierte la luz en datos digitales. Todos utilizan el mismo prin-


cipio de reflexi6n o de transmisin de la luz. La imagen se coloca debajo del
cabezal lector, que consiste en una fuente de luz y en un sensor que mide la
cantidad de luz reflejada o transmitida. Despus la informacin analgica se
convierte en digital utilizando un conversor Analgico/Digital (conversor AID).
ORA-MA CAP~TULO8. OlSPOSlTIVOS DE ENTRADA DE DATOS 255

El sensor de luz suele ser un dispositivo CCD (Charge Coupled Device) que
convierte la intensidad de luz recibida en un voltaje proporcional. El cabezal
monta una tira con miles de estos elementos. El escner emite luz sobre tres
filtros (rojo, verde y azul) y la luz reflejada en el documento a digitalizar es
diigida hacia la tira de sensores mediante un sistema de espejos y lentes. El
CCD acta como un fotmetro que produce un voltaje que posteriormente se
convierte en informacin digital.

Actualmente se utiliza una nueva tecnologa, llamada CIS, que utiliza bancos
de leds de color rojo, verde y azul que producen luz y sustituye los espejos
y las lentes por una fila de sensores ubicados en una zona muy cercana a la
imagen. Como resultado se puede construir un digitaiizador mucho ms delgado
y ligero, con un menor consumo y ms barato, aunque de momento, la calidad
que muestran no es tan buena como la de los digitalizadores convencionales.

8.6.2 Calidad del digitalizador


Los parmetros que determinan la calidad de un digitalizador son los si-
guientes:

La resolucin: Mide el grado de detalle que un digitaiizador es capaz


de distinguir. Se mide en puntos por pulgada y se necesita un dispositivo
CCD para cada punto. Si el escner tiene una resolucin de 600 ppp y
es capaz de capturar documentos de 8'5 pulgadas de anchura, entonces
el cabezal necesita disponer de 5100 CCD. Este cabezal se monta sobre
un soporte mvil que se desplaza a lo largo del documento en intervalos
muy pequeos. El nmero de CCD's en el cabezal detennina la tasa de
muestreo en la direccin horizontal, mientras que el nmero de interna-
los que se realizan en una pulgada determina latasa de muestreo vertical.
Habitualmente estos -parmetros sirven para tener una referencia sobre la
resolucin del escner, sin embargo la resolucin verdadera la marca la
capacidad del escner para detectar los detalles de los objetos, y viene da-
da por la calidad de los elementos electrnicos, las lentes, los filtros, el
control del motor paso a paso, adems de la tasa de muestreo. Los digi-
talizadores actuales utilizan una tcnica de interpolacin para conseguir
una mayor resolucin, que emplea mtodos tanto hardware como sofhua-
re para adivinar valores intermedios (realizando la media de los colores
256 ESTRUCNR.4 DE COMPUTADORES Y PENR~ICOS ORA-MA

que rodean al punto) e insertarlos entre los verdaderos. De esta forma se


consiguen resoluciones de hasta 9600 ppp, siendo sin embargo la resolu-
cin verdadera como mximo de 600 x 1200 ppp.

El color: Los digitalizadoresen color utilizan tres fuentes de luz para cada
uno de los colores primarios. Otros contienen un nico tubo fluorescente
y tres CCDs por pxel que iltran la luz. Los primeros necesitan dar tres
pasadas al documento, mientras que los segundos, que son los ms utiliza-
dos, digitalizan la imagen en una sola pasada. Los digitalizadores de una
pasada utilizan dos mktodos diferentes para leer la imagen. El primero
pasa la luz a trav6s de un prisma para separar los tres colores primarios,
que son entonces leidos por tres CCDs distintos. La otra tcnica, ms ba-
rata. consiste en la utilizacin de tres CCDs, recubiertos con filtros para
que nicamente puedan leer un color concreto. Esta tcnica da casi los
mismos resultados que La anterior.

Profundidad de bit (Bitdepth): Esta caracteristica indica la cantidad de


informacin que se puede recoger por punto digitalizado. Habitualmente
se almacena un byte de informacin por cada uno de los colores primarios,
denominndoseesta tcnica "digitalizacin con color verdadero". Actual-
mente existen digitalizadoresde 30 y 36 bits.

Rango dinmico: Es similar al anterior, e indica los rangos de tonos que


puede almacenar el escner. Depende de la calidad de los convertidores
AD, de la pureza de la luz con la que se ilumina el papel, de la calidad
de los filtros y de cualquier otro ruido elctrico que pueda entorpecer el
funcionamiento del digitalizador. Se mide en la escala de 0.0 (blanco
perfecto) a 4.0 (negro perfecto). Dependiendo de la calidad del escner
se le asigna un valor que indica el porcentaje de ese rango que se puede
distinguir. Los eschers habituales tienen diicultades para distinguir los
colores cuando est todo muy oscuro o demasiadoiluminado, por lo que se
les asigna un rango dinmico de 2.4. Los escners profesionales obtienen
rangos desde 2.8 a 3.2, mientras que los de tambor ilegan hasta los 3.8.
- .
Tericamente. un escner de 24 bits tiene un mngo de 8-bits oara cada uno
de los colores primarios, pero hay que tener en cuenta que los bits menos
significativos de cada uno de los colores se desprecian para evitar el ruido,
por lo que se pierde calidad.
@RAMA C A P ~ ~ U L8.ODISPOSITIVOS DE ENTRADA DE DATOS 257

8.7 CONCLUSIONES

A partir de este captulo comienza una serie donde se recoge la descripcin


de los dispositivos perifncos bsicos utilizados en los sistemas informticos.

En este captulo se ha dado un repaso a los dispositivos de entrada de datos


ms importantes, comenzando por el ms simple que es el interruptor. Se han
contemplado los diferentes tipos de interruptores que existen y se han compara-
do entre si. Adems se han presentado y solventado los problemas derivados de
la utilizacin de los interruptores en los sistemas basados en microprocesador.

A continuacin se han descrito los mtodos que habitualmente se utilizan


para la deteccin de las pulsaciones de un teclado. Se han analizado los pro-
blemas que presentan en cuanto a la deteccin de pulsaciones incorrectas y se
han propuesto mtodos para solventarlos. Dentro de este punto se insiste en la
importancia que tiene el uso del procesador en las prestaciones del sistema y
se analiza otro mtodo de lectura que utiliza interrupciones para evitar que el
procesador est ocupado en todo momento. Para terminar con los interruptores,
se han analizado los teclados de los ordenadores personales, se han presentado
sus caractersticas y los enlaces de interconexin con el procesador.

Tambin se describen otros dispositivos de entrada de datos, como son los


ratones, el lpiz ptico, las pantallas sensibles al tacto, las tabletas digitalizado-
ras y los digitalizadores de imgenes. Los principales objetivos que se persiguen
al describir un perifrico consisten por un lado en que se comprenda cmo se
detecta la actuacin del perifrico (sentido del movimiento, direccin, posicio-
namiento, pulsacin, captura de informacin) y adems que se puedan analizar
las caractersticas que ms influyen en las prestaciones de los mismos.

Por otro lado, con los avances tecnolgicos, y con el auge de los sistemas
multimedia y de realidad vimial, han salido al mercado multitud de dispositivos
de entrada de altas prestaciones que no han podido ser incluidos en el presente
texto. Como ejemplo se pueden citar micrfonos, guantes con sensores de pre-
sin, sensores de movimiento, ratones tridimensionales y pistolas inalmbricas.
258 ESTRUCTURA DE COMPUTADORES Y PERU~RICOS ORA-MA

8.8 CUESTIONES

8.1 Qu es un escner de teclado? Dibujar un teclado de 3 x 3 teclas, inclu-


yendo los puertos y los diodos para evitar la vuelta atrs. Poner un ejemplo
de pulsacin de teclas donde se vea claramente la necesidad de utilizar estos
diodos.

8.2 Explicar las funciones de los controladores de teclado.

8.3 Explicar el mtodo empleado por el ratn para enviar la informacin al


procesadol; indicando adems el tipo de informacin que se envta.

8.4 Disear mediante biestables D con entradas asincronas de puesta a O y


puesta a 1 un contador en cuadratura para poder ser utilizado en un ratn.

8.5 j En qu consiste el problema de los rebotes en los dispositivos de entrada


de datos? Indicar cmo afecta este problema a los teclados y describir alguna
solucin.

8.6 Cmo se averigua la direccin y el sentido del movimiento en un ratn


optomecnico?

8.7 Para qu sirve el rollover en los scanners de teclado?

8.8 Describir los elementos que tiene un ratn ptico e indica para qu sirven.

8.9 Explicar las diferencias existentes entre un ratn y una tableta digitaliza-
dora atendiendo a la informacin que recibe el procesador de dnde se encuen-
tra el cursor en la pantalla y a la resolucin que presentan.
ORA-MA CAF'hU.0 8. DISPOSITIVOS DE ENTRADA DE DATOS 259

Computer Peripherals. Barry M. Cook, Neil H. White. 3%ed. Edward


b o l d . ISBN 0-340-60658-4.1995.
An inmduction to Microcomputer Systems. Architecture & Interfa-
cing. John Fulcher. Addison Wesley Publishers Ltd. ISBN 0-201-41623-9.
1989.
The indispensable PC Hardware Book. Hans-Peter Messmer. 3%ed.
Addison Wesley Longman, Inc. 1997.ISBN 0-201-40399-4.
Conceptos Actuales Sobre la Tecnologa de los Ordenadores. Joseph
C. Giarratano. Ediciones Diaz de Santos, S.A. ISBN 84-86251-15-X.
1984.
DISPOSITIVOS DE COPIA IMPRESA

Sin duda, uno de los dispositivos que resulta imprescindible en todo sistema
informtico es la impresora. Cualquier sistema consta al menos de uno de es-
tos dispositivos, desde los pequeos ordenadores personales que se instalan en
casa, hasta los grandes supercomputadores. Debido a que cada da se va am-
pliando tanto el abanico de aplicaciones que ejecutan los ordenadores como su
expansi6n por entornos no especializados, las impresoras resultan de vital im-
portancia para poder escribir sobre el papel documentos de texto, fotografas,
planos, esquemas de circuitos elctricos e incluso nrninas y cheques. En este
captulo se describen los tipos de impresoras que se han venido utilizando hasta
ahora, empezando por las antiguas impresoras matnciales y terminando por las
sofisticadas impresoras lser en color.

La impresoras inicialmente utilizaban las mismas tcnicas que se aplicaban


a los teletipos. Un trozo de metal con la forma del carcter que se deseaba
imprimir presionaba una cinta impregnada de tinta sobre la superficie de un
papel para pasar la tinta al mismo. Estos caracteres se recogan en tambores o
esferas.

Los desarrollos en esta tecnologa dieron como resultado la impresora de


margarita, de cuyo funcionamiento se muestra un esquema en la figura 9.1. Cada
carcter se sita al final de un brazo flexible para formar un juego de caracteres
262 ESTRUCTURA DE COMPUTAWRES Y F ' R ~ C D S ORA-MA

sobre un tambor. El tambor rota sobre s mismo y un martillo golpea el carcter


especifico, que ya esti situado en la posicin central, el tiempo justo para que
entre en contacto con la cinta. El mecanismo que opera sobre el tambor se coloca
sobre un carro que se desplaza de izquierda a derecha por encima de la lnea de
texto. Estas impresoras estn limitadas a la impresin de documentos de texto.
con un nico juego o repertorio de caracteres, denominadofuente.

4
Ralles gula

Figura 9.1: Impresora de margarita

El siguiente paso en el desarroilo de las impresoras tuvo lugar con la apari-


cin de las impresoras de propsito general que podan producir tanto grcos
como caracteres. Los nuevos dispositivos permitan el control individual de un
nmero relativamente grande de puntos situados regularmente. Esta flexibilidad
permita formar las lneas y figuras geomdtricasde los dibujos, as como definir
de forma arbitraria el contorno de los caracteres para fonnar las fuentes. A es-
tos dispositivos se les conoce generalmente como dispositivos de mapas de bit,
ya que es posible controlar individualmente el estado de los puntos del papel a
imprimir.

Para describir la informacin sobre una pgina completa se define un patn5n


de bits que representa el estado de cada uno de los puntos del dibujo. Hay que
tener en cuenta que para que una impresora pueda representar los dibujos con
un buen detalle se necesita del orden de 4 Mbytes de memoria para cada pagina
completa que utilice slo dos niveles de color (oroff). Un dispositivo en color
de alta calidad necesita cerca de los 100 MB.Es por elio por lo que la necesidad
ORA-MA C m 9. DISFOSnNOS DE COPIA IMPRESA 263
l
de memoria de las impresoras es bastante grande y adems aumenta a medida
que se requiere representar los dibujos con una mayor resolucin.

Sobre los aos ochenta, las impresoras que predominaban en el mercado


eran las de matriz de puntos y las impresoras lser, sin embargo, a partir de los
noventa empezaron a predominar las impresoras de inyeccin de tinta.

Debido a la gran diversidad de impresoras que existen en la actualidad, re-


sulta difcil realizar una clasificacin completa. Entre los diferentes criterios que
se pueden aplicar resulta interesante re& una comparacin atendiendo a os
elementos comunes que poseen, que son los siguientes:

1. El mecanismo de impresin, que indica el elemento que se encarga de


transferir la tinta al papel.
2. La parte de traccin del papel, encargada de desplazar el papel lnea a
lnea para que el cabezal pueda imprimir a lo largo de todo el folio.
3. La electn5nica de contml utilizada para mover el papel, mover el cabezal
e imprimir los caracteres o los puntos de tinta

Si se tienen en consideracin el mecanismo de impresin, dependiendo de


si el cabezal entra en contacto con el papel a la hora de realizar la impresibn de
una phgina, se pueden distinguir

Impresoras de impacto. El mecanismo de impresin presiona una cinta


de papel impregnada en tinta. Dentro de este tipo de impresoras antigua-
mente se podfa distinguir entre:
1. impresoras de lneas. Todos los caracteres iguales que existen en una
misma lnea se imprimen a la vez. En la impresora de tambor, filas
enteras del mismo carcter aparecen sobre la superficie del tambor,
con el juego completo de caracteres distribuido sobre toda la circun-
ferencia. El tambor se rota para todos los caracteres y los martillos
se activan cuando ese caxcm en particular aparece sobre la &ea.
De esta manera las paginas se pueden imprimir con una mayor ve-
locidad que supera las 1000 ineas de 132 caracteres por minuto,
que es una velocidad mucho mayor que los 700 caractereslseg de las
impresoras de caracteres.
2. Impresoras de caracteres. Imprimen un carcter tras otro de fomm
secuencial.
impresoras de no impacto. No existe contacto entre la cabeza de impre.-
si6n y el papel; en las de inyeccin se emiten pequefias burbujas de tinta
cargadas electrostticamente que irnpactan sobre el papel; las impresoras
trmicas usan un papel especial que se quema aplicando un cierto volta-
je sobre la superficie para producir los grcos; las impresoras electro-
sensibles/electrost~ticasproducen una carga electrostitica sobre las su-
percie del papel sobre la cual se adhiere el t6ner cuando el papel pasa
sobre 61. Estas impresoras evitan el desgaste mecnico de los cabezales
y adems son silenciosas, pero normalmente requieren tratar el papel de
alguna fonna especial.

Si se atiende a la posibilidad de generar grcos de alta resoluci6n y de poder


elegir entre multitud de fuentes diferentes se pueden distinguir las siguientes
clases de impresoras:
e impresoras de texto muiormado. La forma de los caracteres esta mol-
deada en los cabezales, como la impresora de margarita, donde el carcter
deseado se posiciona delante de un martillo haciendo rotar la margarita.
El martilloentonces golpea el carcter sobre la cinta de tinta que impregna
el papel. Las ventajas son que produce caracteres de calidad como en una
mquina de escribir y que reemplazando la margarita se puede cambiar el
juego de caracteres.
Impresoras de matriz de puntos. Forman los caracteres y graficos gra-
dualmente, descomponi6ndo1os en patrones de puntos muy pequefios.

9.3 IMPRESORAS DE MATRIZ DE PUNTOS

Estas impresoras van formando los caracteres de forma gradual por colum-
nas de puntos. En el cabezal existen 9 guas distribuidas circularmente que
QRA-MA CAPfnnO 9. DlswSiTWOS DB COPIA iMPESA 265

mantienen agujas en su inkdor en una posicin lo m& perpendicular posible al


papel. Existe tambin un solenoide por cada gufa que al recibr un cierto vol-
taje empuja la aguja en direccin ai papel, haciendo que sta presione la cinta
impregnada en tinta para producir un punto sobre la superficie del papel. En la
igura 9.2 se muestra una de las agujas del cabezal. Las agujas se organizan en
una columna vertical. El muelle de contencin evita el movimiento excesivo si
los cabezales estn demasiado cerca del papel o s i el papel es demasiado gordo.

i
Clnia

Papel

Figura 9.2: Detalle de una aguja del cabezal de una impresora matricial

De esta forma se van imprimiendo los caracteres columna a columna. El


nmero de puntos usado para formar el carcter determina la calidad de la im-
presin. Las impresoras de alta calidad permiten escoger el espacio existente
entre los puntos. Reaiizando varias pasadas sobre la misma lnea con las agujas
ett diferentes posiciones se pueden formar caracteres con mayor resolucin, in-
cluso se pueden sobreponer para producir texto de calidad, con texto en negrita,
itlica o subrayado. Estas impresoras pueden llegar a tener hasta 27 agujas.

Las impresoras matnciales tienen la ventaja sobre las que usan otras tecno-
logas de que el papel puede ser continuo y que adems permiten la alimentacin
con hojas sueltas, utilizando rodillos o ruedas dentadas. Para la cinta con tin-
ta es posible tener dos carretes o un cartucho que contiene una cinta continua.
Sin embargo la velocidad es bastante lenta, oscilando entre los 50 y los 500
caracteres por segundo, dependiendo de la calidad de las letras que se quieran
imprimir.
266 ESTRUCTIJRA DE COMPUTADORESY PERW~ICOS ORA-MA

9.4 IMPRESORAS DE TRANSFERENCIA DIRECTA

Son impresoras electrostticas que emplean papel dielctrico sobre el que


se generan zonas cargadas negativamente por medio de un conjunto de agujas
dispuestas formando una tira. Despus de cargar una linea en el papel se le
espolvorea con tner lquido que contiene partculas de carbn mezclado con
paraha cargadas positivamente. Estas partculas se pegan en las reas cargadas
del papel y forman la imagen. El tner restante se elimina y la tinta adherida se
seca antes de que el papel pueda ser manipulado.
Electrodo

Rodlllo
de papel
dieWritrlco

Figura 9.3: Impresora de tra>tsfem& dimeta


Existe un hueco de aire de aproximadamnte 0'6 mm entre las agujas y el
papel, mientnis que en el otro lado un electrodo est en contacto continuo con
el papel. Entre los electrodos se aplca un voltaje cuyo valor oscilaentrelos 550
y los 750 Voltios. Cuanto mayor sea este voltaje se producira una imagen ms
oscura. La figura 9.3 muestra un esquema de una impresora de este tipo.

El espacio que existe entre las agujiis es aproximadamentede 0'25 mm, por
lo que la impresora tiene una resolucih de 100 puntos por pulgada. Ademk
es posible utilizar dos mas de agujas para doblar la resolucin. Tambibn se
puede imprimir en color, simplemente pasando el papel varias veces con tners
& diversos colores.

Estas impeanis tienen un alto coste debido p~cipalmentea la electrnica


de alto voltaje que necesitan. Normalmente son reemplazadas por las impresoras
iser, excepto cuando se necesita utizar papel de gran anchura, puasto que se
pueden utilizar tiras de agujas con una mayor longitud, que permiten imprimir
mayor nmero de columnas.
ORA-MA CAF'fTULO 9. DISPOSmOS DE COPIA IMPRESA 267

Estas impresoras fueron pensadas originalmente para producir una impre-


si611 de alta calidad, a gran velocidad y con un gran volumen de produccin.
Actualmente se logran velocidades de varios cientos de pginas por minuto, se
ha reducido su tamao, se han abaratado los costes de produccin y la reso-
lucin mnima suele ser de 600 puntas por pulgada. Todos estos factores las
han convertido en impresoras muy populares, siendo tambin muy utilizadas en
aplicaciones domsticas.

Las impresoras User fueron inventadas por Hewlett-Packard en 1984, utili-


zando una tecnologa desarroiada por Canon para su fotocopiadoras. Se distin-
guen bsicamente de stas en que la fuente que se utiliza para iluminar el papel
en la fotocopiadora es una luz brillante, mientras que en las impresoras la luz
proviene de un lser, siendo el proceso de copia o de impresin del papel similar.

Las ventajas de estas impresoras frente a las de inyeccin de tinta son que
producen mejor calidad en blanco y negro, que estn pensadas para produccio-
nes altas y adems permiten la utilizacin con facilidad de otros soportes como
postales, sobres y cualquier otro tipo de material de tamaiio no estndar.

9.5.1 Operacin
En las impresoras lser, el componente ms m'tico es el tambor fotosensi-
-
ble o tambin conocido como cartucho orgnico fotoconductor (OPC - Oraanic -
Photo-conducting Cartridge). El tambor est cubierto por un material compues-
to vor selenio que es sensible a la luz. En la oscuridad tiene una alta capacidad
y acta como un condensador que se carga a un alto voltaje a medida que pasa
por el hilo cargador. Un rayo lser se refleja sobre un espejo poligonal movi-
ble que lo mueve sobre una lnea del tambor. Ya que el tambor est rotando el
haz lo cubre totalmente. La luz, al incidir sobre el tambor, reduce la capacidad
del tambor en el punto del impacto, reducindose el efecto del condensador y
descargndose, eliminando el alto voltaje. Modulando la intensidad del lser,
se pueden descargar los puntos del tambor selectivamente o dejarlos cargados
268 ESTRUCTURA DE COMPUTADORES Y P E R E ~ U C ~ S ORA-MA

de forma que se representa en el mismo la imagen de salida. Cada punto del


tambor se corresponde con un punto en la hoja del papel. Tanto el tambor como
el t6ner tienen que reemplazarse peridicamente, incrementndose el coste del
mantenimiento de la impresora.

El lser se enciende y se apaga a medida que va pasando horizontalmente so-


bre el tambor, cambiando de estado millones de veces cada segundo. El tambor,
a su vez, rota de forma que se construye una lnea horizontal cada vez. Cuanto
menor sea el paso de rotaoi611, mayor ser la resolucin vertical de la pgina, y
cuntas ms veces se apague y se encienda el lser en una lnea, mayor sera la
resolucin horizontal.

Al pasar el tambor sobre el tner, cargado negativamente, las reas que an


quedan cargadas atraen las partculas de tinta que se sitan sobre su superficie.
Las partes descargadas no atraen al t6ner y por tanto posteriormente resultan en
zonas blancas en el papel. A continuacin una hoja de papel pasa entre el tner
y el hilo de la corona. El cable pmduce una descarga negativa sobre el papel que
es suficiente para desprender el tner del tambor, tninsfirindose de esta manera
la imagen al papel. Un rodilio caientado a una temperatura aproximada de 260
*C funde las partculas del t6ner sobre el papel para que, en combinaci6n con
la presi6n que realizan unos rodillos, queden sujetas pemianentemente al papel.
Tambin es posible utilizar rodillos de gran presi6n sin aplicar calor para fijar la
imagen en el papel.

El ltimo paso consiste en limpiar el t6ner remanente del tambor para iniciar
de nuevo el proceso. Existen dos formas de hacerlo, la fsica y la elctrica. En
la primera el tner se elimina de forma mecanica mediante la actuacin de unos
cepillos y se devuelve a su recipiente, en la segunda el cable de la corona carga
el tambor para repeler y por tanto eliminar el t6ner. En la figura 9.4 se muestra
un detalle de los elementos ms importantes que se encuentran en este tipo de
impresoras.

En lugar de utilizar un rayo lser, existen impresoras que utiiizan un conjunto


de diodos emisores de luz (le&) dispuestos formando una tira para incidir sobre
el tambor. Una impresora con una resolucin de 300 puntos por pulgada (ppp)
dispondr de 300 le& por pulgada. A este tipo de impresoras se las conoce
como impresoras de leds, que suelen ser ms econ6micas que las lsers, pero
cuya resolucin horizontal sin embargo es fija Las impresoras LCD trabajan de
ORA-MA CAP~TULO
9. DlSPOSiTiVOS DE COPIA IMPRESA 269

Tambor
fotosensible
Papel
Hilo /

de fusin

Hilo de
la corona

Figura 9.4: Mecanismo de impresin de una impresora lser

una forma similar, utilizando un panel de cristal lquido como la fuente de luz
en vez de utilizar la matriz de leds.

9.5.2 Impresoras lser en color

Cualquier color se puede obtener con una mezcla de azul claro, morado,
amarillo y negro (colores tambin llamados CMYK). Las impresoras lser en
color realizan cuatro fases en el proceso electro-fotogrfico. situando cada vez
un t6ner en la pgina o construyendo la imagen de cuatro colores en una su-
perficie intermedia de transferencia. Las prestaciones no son tan buenas co-
mo las de las impresoras en blanco y negro, llegando a imprimir entre 3 y 5
pginas por minuto. Las nuevas impresoras tienden a procesar los cuatro tners
simultdeamente para ganar velocidad, para eiio se dispone de 4 tambores y de
4 vectores de leds, uno para cada color. Los datos se envan simultneamente a
las cuatro cabezas y se van imprimiendo primero el color morado, luego el azul
claro, despus el amarillo y por ltimo el negro. Otra de las grandes ventajas
de estas impresoras es que el tner se pega al papel, y no es absorbido por ste
270 ESTRUCTURA DE COMPUTADORESY PERl&JCOS QRA-MA

como ocurre en las impresom de inyeccin de tinta, por lo que se puede impri-
mir en multitnd de superficies sin que debido a la humedad se amgue el papel.
Se puede decir que stas van a ser las impresoras del futuro, siendo tan usuales
como las fotocopiadoras.

9.5.3 Lenguajes de descripcin de pginas

Una impresora lser necesita tener toda la informacin sobre la pagina antes
de empezar a imprimir. Para enviar las imgenes, el mtodo ms sencillo, pero
menos prctico, es transferir la misma como un mapa de puntos. La impresora
simplemente se dedicar a transferir estos puntos sobre el papel, por lo que no
puede haber un procesado intermedio de la informacin para mejorar la imagen.
Si se utiliza este mtodo, drsticamente se reduce la portabilidad que tiene la
pagina impresa entre diferentes impresoras. No es practico describir el resultado
deseado a nivel de bit, ya que diferentes impresoras trabajan con resoluciones
diferentes, desde menos de 70 ppp a ms de 2000 ppp y tambin con tamaos de
pginas diferentes, por lo que el mismo mapa de bits no quedar representado
de igual manera en el papel.

Sin embargo, si se conocen ms datos sobre la imagen a imprimir, se puede


incrementar la calidad de la misma. Pinsese que una imagen en un monitor
tiene aproximadamente 760.000 puntos, mientras que en un folio a resolucin
de 600 ppp tendr mas de 33 millones de puntos. Es por tanto necesario proveer
algn mtodo para aumentar la calidad de las imgenes impresas.

Inicialmente se enviaba texto a la impresora junto con algunos caracteres de


control para definir los tipos en negrita, subrayado, condensado o extendido. La
fuentes las incorporaba la impresora y los grficos se construan lnea a lnea de
forma muy lenta. La transmisin de documentos era sencilla, pero sin embargo
nunca se escriba la pagina exactamente igual a como se vea en la pantalla, ni
todas las impresoras producan paginas iguales.

Tambin existen un conjunto de impresoras, las llamadas "impresoibs win-


dows" que no tienen procesador, y que por tanto en el lugar de origen se debe
crear ya el mapa de bits.
Hoy en da lo habitual es enviar la descripcin de la pagina utilizando un len-
guajeespecial de programacin de altonivel, llamado lenguaje de descripcin de
phginas (PDL). El lenguaje define por medio de vectores, formas geomtricas,
fuentes y caracteres la informacin que se desea imprimir. El procesador interno
de la impresora (llamado RPI - Rmter Zmge Processor) se encarga de conver-
tir esta descripcin en una imagen de mapa de bits (raster), definida ya como
un conjunto de puntoslpxeles en un formato de filas y columnas. Dependiendo
de las caracten'sticas de la impresora se generar un mapa de bits u otro. La
impresora puede imprimir las lneas y curvas tan finas como su resolucin lo
permita. La idea que se persigue es que una misma pgina pueda enviarse a
dispositivos diferentes. Para los caracteres, aunque tambin son b e a s y curvas,
se utiliza un formato de fuente predeterminada, como los formatos Tiue-ljpe
O Ijpe-l. Adems de un emplazamiento preciso de los caracteres, tambi6n se
pueden escalar y rotar, de forma que enviando poca informacin se pueden pro-
ducir diferentes estilos y tamafios. A este proceso se le wnoce en terminologa
inglesa con el nombre de rendering.

Uno de los lenguajes PDL ms extendidos es el Postcript desarrollado por


Adobe Sytems Incorporated. Las impresoras que aceptan la impresin de do-
cumentos descritos a partir de este lenguaje tienen una memoria ROM donde
se almacenan 10s diversos tipos de fuentes y todas las definiciones propias del
PostScxip. Los procesadores de textos y otros programas de diseo asistido por
ordenador generan el c6digo fuente PostScript. El Nivel 1 de PostScript permite
que todas las impresoras escriban figuras w n el mismo tamao y posicin pero
con mayor o menor calidad dependiendo de la resolucin de la impresora. El
nivel 2 de PostScript permite utilizar colores y comprime los datos antes de ser
enviados a la impresora

Otro lenguaje de descripcin de pginas muy utilizado actualmente es el


PCL (Pvinter Control L~nguage),diseado por Hewlett-Packard para comunicar
PCs con sus impresoras lser. Inicialmente se dise para las impresoras de
matriz de puntos, pero con el PCL 5 ya se incluyeron caracteristicm anfilogas
al lenguaje PostScript, permitiendo descripciones vectoriales, el escalado de las
fuentes y la compresin de datos. Con el PCL 5e se permite la comunicacin
bidireccional para que la impresora enve informacin de estado. Actualmente
se utiliza PCL 6 que supone un gran incremento en las prestaciones de impresin
de phginas, ya que se utilizan algoritmos de compresin de datos que reducen la
cantidad de informacin que se debe enviar a la impresora.
Otra alternativa que existe para enviar paginas supone usar GDI (Gmphical
Device Interface),
- donde el -procesador en el origen
- realiza la renderizacin de
la pgina, con lo que las impresoras son ms simples pero se incrementa el
esfuerzo que se realiza en el origen para enviar la pgina. Las impresoras que
utilizan el sistema de impresin del Sistema Operativo Wmdows (Windows Pnnt
System) penniten la rendenzacin de la imagen a medida que se va imprimiendo.

A partir de los aos noventa fue cuando empezaron a comercializarse las


impresoras de inyeccin de tinta. Se empez por la impresora tricolor que pronto
fue desbancada por el modelo de cuatro colores. La ventaja que tienen sobre las
lser es que son ms econmicas, ya que el mantenimiento de los cartuchos es
mucho ms caro y precisan de papel especial para lograr calidades aceptables.

En las impresoras basadas en un cristal piezo-elctrico, la tinta pasa a travs


de un peque& agujero para producir una comente de alta velocidad de pequeos
puntos de tinta. En la figura 9.5 se muestra un diagrama de bloques de la estruc-
&a de una impresora de inyeccin de tinta. El tamao y el espaciado de estos
puntos es constante, y se logra haciendo vibrar el compartimento (como si fuera
un altavoz) a una frecuencia ultrasnica mediante un cristal montado al final de
la cavidad. La frecuencia de la vibracin suele ser de 100 kHz, el dimetro del
agujero de 0'06 mm y el espacio que existe entre dos puntos de tinta consecuti-
vos de 0,15 mm.

A cada punto de tinta, despus de abandonar la cavidad, se le aplica una des-


carga cuando pasa a travs de un electrodo cargador localizado junto al expulsor.
Los puntos son desviados verticalmente por un segundo electrodo y golpean el
papel. La posicin horizontal se controla moviendo todo el sistema de inyec-
cin. El grado de deflexin vertical lo determina la cantidad de carga del punto
de tinta. Si no estn cargados no existe deflexin y estos puntos son recogidos
en un recipiente cercano al papel.

Las ventajas de este mtodo son que se puede variar el grado de flexin del
cristal para producir puntos de tinta ms grandes o ms pequeos. Como no es
necesario calentar la tinta, sta puede ser de mayor calidad y mejor absorbida
por el papel.
ORA-MA P. DISPOSlTlVOSDE COPIA IMPRESA 273
~~ph'lJI.0

Electmdo Planos da
de carga deflexldn

Figura 9.5: Zrnp~esomde inyeccibn de tiata

Estos sistemas de flujo continuo estn siendo rApidamente desplazados por


los sistemas bajo demanda (DOD Dmp on Demand). En ellos se utiliza un
elemento piezoel&tnco que slo expulsa puntos de tinta cuando es necesario
y por lo tanto no existe la necesidad de utilizar el recolector. Si se utilua una
pila de expulsores en vez de uno solo. se puede producir una linea vertical sin la
necesidad de los deflectores, incrementando la velocidad de impresin.

Las ltimas impresoras de inyeccin de tinta tienen cabezales con 128 agujas
para el negro y 64 para cada uno de los colores azul, morado y amarillo (Cyan,
Magenta, Yellow (CMY)),obteniendo una resolucin de 720 x 720 ppp. Adems
si se hacen dos pasadas, como la precisin de los cabezales es excelente, se
pueden lograr resoluciones de hasta 1440 x 720 ppp.

Los caracteres se forman mediante matrices de puntos. Para una impresi6n


de alta calidad se necesitan unos mil puntos por c h t e r . Si el expulsor gene-
ra lo5 puntos por segundo (frecuencia & 100 kHz), se puede imprimir a una
velocidad de 100 caracteres por segundo.
274 ESTRUCTURA DE COMPUTADORES Y PBRIFRIcos ORA-MA

9.7 IMPRESORAS DE BURBUJAS

Las impresoras de burbujas fueron desarroliadas por Hewlett-Packard y Ca-


non. Su funcionamiento es muy similar al de las impresoras de inyeccin, se
diferencia en que en lugar de controlar los puntos de tinta mediante un elemento
piezoel&trico, se utilizan medios trmicos. Un pequeio calentador en el tubo
capilar de la cabeza de impresin vaporiza un poco de tinta produciendo una
burbuja de gas. La presin que produce al expandirse dentro del tubo empuja
un punto de tinta hacia el papel. El vaco creado dentro del tubo es llenado con
tinta nueva del depsito. Existen normalmente entre 300 y 600 agujas, cada una
con un dimetro de 70 micras (como el de un cabello humano), que expulsan
gotas de tinta de un ditnetro de 50 a 60 micras. Con esta knica se logran ve-
locidades de hasta varios cientos de caracteres por segundo. Los problemas de
las impresoras de burbujas son que la tinta debe resistir el calor y que se debe
esperar cierto tiempo a que se enfrie la tinta, por lo que se reduce la velocidad
de impresin.

El cabezal recone el papel horizontalmente y va formando la imagen im-


primiendo tiras de la misma. Las impresoras actuales permiten resoluciones de
hasta 1200 ppp y tienen una velocidad de 3 a 4 pgiis por minuto (ppm) en co-
lor y de 4 a 8 ppm en blanco y negro. con lo que se acercan a las velocidades de
las impresoras lser en color. Esto se logra proyectando la tinta a una frecuencia
aproximada de 12 MHz e imprimiendo columnas de media pulgada.

9.8 EL COLOR EN LAS IMPRESORAS DE INYECCI~N


Y DE BURBUJAS

Las impresoras utilizan los colores azul claro, morado y amarillo para pro-
ducir los colores. Para producir el blanco no se imprime ningn color. Existen
impresoras de inyeccin que adems incluyen un cartucho de tinta negra para
imprimir en blanco y negro, pudiendo intercambiar este modo de funcionamien-
to con el de impresin en color.

La calidad de la impresin la determinan la resolucin de la impresora y el


nBmero de niveles de color que se pueden imprimir por pcel. Para realizar di-
@'IRA-MA c~PfTlJl.0
9. DISFOSlTIVOSDE COPIA DIPRESA 275

bujos es mejor tener muchos niveles de colores para poder obtener fotografas
fidedignas, mientras que para aplicaciones omaticas prima la resolucin. El
modo ms simple de imprimir en color es utilizar puntos con colores puros, sin
ser posible la utilizacin de niveles intermedios. Si la impresora permite unir
varios puntos de color, se imprimira 6~camente en morado, amarillo, rojo, ver-
&, azul, negro y blanco, produciendo una calidad insnficiente para la mayora
de aplicaciones. La solucin adoptada consiste en la utilizacin de un tamaf~o
de punto variable, basado en una celda que contiene varios puntos elementales,
de forma que combinando las proporciones de los puntos con los colores puros
se Uega a producir sensacin de color (Aalffonning).

Otra estrategia para producir color consiste en la incorporacin de cabezaies


que ptoducen 256 tonos diferentes por color, pudiendo por tanto imprimir hasta
16.7 millones de colores. Esta tscnica se 1Iama impresin de tono continuo.
Sin embargo lo habitual son las impresoras que proporcionan nicamente varios
tonos por punto (entre 4 y 16). proporcionando una paleta ms completa de
colores slidos y tonos combinados ms suaves. &tos dispositivos se llaman
impresoras contone.

Recientemente se han introducido impresoras con seis colores (seis cami-


chos diferentes) dadiendo el color azul cielo claro y el morado claro, que pro-
ducen mis luminosidad en las hojas impresas. Las futuras tendencias apuestan
por reducir el tamao de las burbujas de tinta para poder proyectar ms cantidad
sobre un nico punto en el papel, de forma que se pueda conseguir mayor gama
de colores slidos. ActualmenteHewlett-Packard utiliza impresoras que pueden
proyectar hasta 29 puntos de tinta por punto (ms de 3500 colores slidos por
punto).

La tinta que se utiliza en las impresoras a color debe secarse ripidamente


para evitar que se mezclen unos colores con otros. Se utiliza una tinta especial
que se seca en dcimas de segundo, pero debido a que se basa en agua la hu-
medad arruga el papel ligeramente, por lo que la tinta de las impresoras lser
proporciona mejor calidad. Actualmente se investiga para poder utilizar cuai-
quier superficie de impresin, sin embargo la calidad fotogrfica nicamente se
consigue con papel especial que no es muy econmico.
9.9 TRAZADORES

Existe un tipo de impresoras especial apropiada para la realizacin de grcos


vectoriales, que utilizan arquitectos e ingenieros en sus aplicaciones de diseo
asistido por computador (CAD) para cubrir sus necesidades de impresin. Es-
te tipo de grficos se caracterizan por estar formados por ineas continuas cuyo
trazado puede ser realizado fcilmente con la utilizacin de plumillas o rotula-
dores de varios colores. Las impresoras que utilizan esta tcnica se clasifican
en funcin del tamao del papel que soportan y de su capacidad para utilizar
varias plumillas para producir colores. Estas impresoras reciben el nombre de
trazadores o plotrers.

Los trazadores poseen motores separados que mueven la plumilla de forma


independiente sobre los dos ejes, incorporando tambin algn medio para le-
vantar y bajar la plumilla. Para los dibujos de pequeo tamao, la plumilla se
desplaza a lo largo del papel, estando ste fijo, mientras que para los dibujos
grandes, un rodillo de friccin mueve el papel hacia delante o hacia atrs de
forma relativa a la posicin del cabezal para cubrir toda la pgina.

En los trazadores en color, se pueden intercambiar las plumillas automtica-


mente, teniendo que realizar varias pasadas sobre la misma hoja para producir
una copia en color.

La calidad, el tiempo de impresin y el tiempo necesario para cambiar las


plumillas son parmetros que marcan la calidad del trazador. El tiempo de res-
puesta (velocidad y aceleracin) desempea un papel importante en el tiempo
total del dibujo. La velocidad es crtica en el dibujo de lneas largas y en el re-
lleno de polgonos de grandes dimensiones, mientras que la aceleracin es ms
crtica en el dibujo de curvas y pequeas lneas no conectadas.

Hoy en da se estn sustituyendo los trazadores de plumilla por los de in-


yeccin de tinta, donde primero es necesario transformar el formato recibido,
normalmente en un lenguaje especfico de descripcin de grficos vectoriales
como puede ser el HP-GL o el HP-GL2, a un mapa de bits. Tienen la ventaja de
que pueden simular mltiples plumillas de mltiples colores y anchos, sin em-
bargo la calidad no es tan buena. Son como si fueran impresoras de inyeccin
pero con soporte para papel grande.
ORA-MA CAPfTUI.0 9. DISPOSITlMS DE COPIA IMPRESA 277

9.10 OTROS TIPOS DE IMPRESORAS

En esta seccin se describen impresoras menos comunes, por su restringido


dmbito de aplicacin o simplemente porque resultan bastante caras y con menos
prestaciones que las habituales.

9.10.1 Impresoras de tinta slida


Este tipo de impresoras utiliza pequeos bastoncillos de tinta solida que se
calienta para ser repartida sobre un tambor que se encarga de solidificarlaposte-
riormente sobre el papel. Son ms econmicas que las impresoras lser, utilizan
cualquier tipo de papel y cuestan menos de mantener, sin embargo la calidad no
es tan buena. La resolucin varia desde los 300 ppp hasta un mximo de 850
por 450 ppp. La velocidad de impresin en color es del orden de 4 pginas por
minuto.

9.10.2 Impresoras de subiimacin de tinte (Dys-sublimation)


Estas impresoras se utilizan para aplicaciones grlicas y fotogrficas que pre-
cisan de una alta calidad y resolucin. La tinta se calienta hasta que se obtiene
un gas que se expande sbre el punto de tinta. Dependiendo dela temperatu-
ra con la que se caliente se puede controlar la cantidad de tinta que se inyecta,
permitiendo por lo tanto aplicar el color de una forma continua en lugar de por
puntos como lo hacen la6 impresoras de inyeccin.

La tinta se almacena en folios del mismo tamao del que se quiere imprimir
y la imagen se realiza impregnando el folio en blanco cada vez con un color
distinto (amarillo, azul claro, morado o negro), empezando por el amari110 y
terminando por el negro. Estas impresoras n e c e ~ i t & ~ a ~especial
el para poder
crear los colores de forma precisa y las velocidades de impresin son inferiores
a una pgina por minuto.

Actualmente hay impresoras de inyeccin que tambi6n vaporizan la tinta,


calentando los inyectores hasta los 500 "C. Estos dispositivos alcanzan una re-
solucin de 1200 ppp.
278 ESTRUCTURA DE COMPUTAWRES Y PE&RICOS ORA-MA

9.10.3 Impresoras de color trmicas (Thenno Autocrome)


El proceso de impresin es ms complejo que el de las impresoras de inyec-
cin o las lser. Se utiliza en las cmaras fotogrficas digitales y utiliza un papel
especial que contiene tres sustratos de pigmentos (azulclaro, horado y a&&-
110) sensibles a diferentes temperaturas. La impresora tiene cabezales trmicos
y ultravioleta por los cuales el papel se pasa tres veces. En la primera pasada se
calienta el papel con la temperatura adecuada para activar el pigmento amarillo
y a continuacin se fija utilizando el cabezal ultravioleta. Despus se utiliza el
mismo proceso para el color morado y el azul, con lo que resulta una impresin
con colores bastante duraderos.

9.10.4 Impresoras de cera trmicas (Thermal Wax)


Se utilizan para imprimir transparencias. Utilizan rodillos con colores, del
mismo tamao que el papel, que contienen pelculas plsticas recubiertas de cera
coloreada. La impresora acta demtiendo los puntos de tinta (de forma binaria)
sobre un papel trmico especial.

La resolucin y la velocidad no son muy altas, tpicamente alcanzan los 300


ppp y una velocidad de una pgina por minuto.

Normalmente el procesador puede transmitir los datos a una frecuencia que


supera la velocidad con la que los pueden aceptar las impresoras. Para que no
se pierdan los datos debe haber un mtodo de detener la transmisin hasta que
la impresora est lista para seguir aceptando ms datos. Este mtodo se conoce
como control de flujo. Adems de los cables que envan los datos, debe haber
una conexin en la direccin inversa que indique que la impresora est ocupada.

La mayora de las impresoras escriben todos los caracteres que forman una
lnea de forma consecutiva teniendo que esperar por tanto a que se reciba total-
mente la siguiente lnea para poder imprimirla. En consecuencia es necesario
almacenar de forma temporal los caracteres a medida que se van recibiendo en
QRA-MA cAP~TUW9 DISPOSITIVOSDE COPIA IMPRGSA 279

el dispositivo. Cuando llega un carcter la impresora activa la lnea de ocupa-


do durante un corto espacio de tiempo hasta que almacena el dato en el b@er.
Cuando ya se ha recibido la lnea completa, la impresora est ocupada durante
un tiempo mucho ms largo hasta que la termina de imprimir.

Para ganar rapidez en la recepci6n de datos, la mayora de las impresoras


incluyen un bu$er doble, el primero recibe los datos hasta que la lnea est com-
pleta, y entonces la transfiere al segundo W c r . La informacin en este bffer
sirve para controlar el mecanismo de impresin. Al mismo tiempo, el primero
queda libre y dispuesto a recibir ms datos. Si los datos no llegan demasiado
rpidos, se produce una impresin continua, En la prWca, como la memo-
ria es bastante econmica, las impresoras incluyen bufers grandes wpaces de
almacenar una pagina completa.

9.12 CONCLUSIONES

Como se habr6 podido observw con la lectura de este captulo, los aspectos
tecnolgicos tambin influyen notablemente en el desarrollo de nuevos tipos de
impresoras can mayores prestaciones. En un par de doadas se ha pasado de las
ruidosas impresoras de h a s y de margarita alas potentes impresoras de inyec-
ci6n de tinta y a las impresoras laser. Resulta necesario advertir que cuando se
analicen las prestaciones de los dispositivos objeto de este capitulo, no se de-
ben considerar de forma absoluta los parmetros de resolucin y velocidad que
marcan la calidad de la impresora, ya que seguramente se estaran utilizando
valores obsoletos. Es d s interesante realizar una comparacin entre los dispo-
sitivos, ya que las cantidades relativas se alteran menomiente con los avances
teenol6gicos.

La impresin de pginas o documentos de cualquier tipo es una tarea co-


tidiana que acompaia a la utilizacin de los sistemas informticos. Debido a
ello han aparecido multitud de clases diferentes de impresoras tiles para apli-
caciones muy diversas, Sin embargo, actualmente se puede decir que los dos
aspectos que marcan las diferencias entre las impresoras son la posibilidad de
&primir en color y la cantidad de pginas por minuto que es cap& de imprimir
el dispositivo. Cuando se precisa una alta produccin de documentos impresos,
se u& impresoras lser en blanco y n e b compartidaspor multitud de pues-
tos. Las impresoras lser en color todavfa presentan una velocidad y un coste
que no las hace operativas en estos entomos. Tanto en el mbito del usuario
domstico o incluso en algunos despachos se prefiere la incorporaci6n de una
impresora de inyeccin de tinta en color por puesto de trabajo. Estas impresoras
son baratas y silenciosas, aunque todava presentan el problema del alto coste
del folio impreso en color.

En el capitulo se han considerado otras impresoras mucho ms especficas


utilizadas en aplicaciones muy particulares. El propsito ha sido el de mostrar
la gran cantidad de perifncos de impresin que existen para preparar al lector
para la llegada de nuevos dispositivos ms complejos.

9.13 CUESTIONES

9.1 Explicar brevemente los fundamentos de la impresidn Isel:

9.2 Explicar las ventajas y desventajas de la impresidn de documentos utili-


zando dispositivosde mapa de bits.

9.3 1QuC ventajas se obtienen & utilizar un lenguaje & descripcidn & pginas
para enviar los datos a la impresom?

9.4 Indicar las diferencias que existen entre una impresora ekctrosttica y una
impresom Mser:

9.5 En qu se diferencia un tmzndor de inyeccidn de tinta de una impresora


de inyeccin de tinta?

9.6 Cubl es el papel que desempeia el rayo kser en las impresoras ldser?

9.7 1Cul es la utilidad del hilo cargador en una impresora Mser?


9.8 1En quC casos es nids eficiente la utilivrcidn de un trozadorfinte a una
impresora de mapa de bits?

9.9 Enumerar las ventajas y las desventajas de la intnniuccibn de los ienguajes


de descripcidn de pginas.

Computer Peripherais. Barry M. Cook, Neil H. White. 3e ed. Edward


Aniold. ISBN 0-340-60658-4. 1995.
An Introdudson to Mlcrocomputer Systems. Architectilre & Interfa-
dng. John Fulckr. Addison Wesley Publishers Ltd. ISBN 0-201-41623-9.
1989.
La visin es el sentido que aporta una mayor cantidad de informacin al ser
humano. Por tanto, es interesante que el computador produzca seales lumi-
nosas como resultado del procesamiento de la informacin. Los transductores
pticos son los perifricos de salida de datos que convierten la informacin di-
gital en luz.

Los transductores pticos ms sencillos son los leds (light emitting diodes).
La mayora de los computadores disponen de algunos leds para mostrar infor-
macin bsica del sistema: la alimentacin de la CPU, alimentacin del monitor
o la utilizacin de la disquetera. Sin duda los transductores pticos ms popu-
lares en los computadores domsticos son los tubos de rayos catdicos o CRT's
(Cathode Ray Tubes),conocidos por su utilizacin en los monitores de TV.En la
actualidad se utilizan mucho otros transductores ~ticos,como son los cristales
de cuarzo lquido y las pantallas de plasma, debido principalmente a los avances
impulsados por la introduccin de los ordenadores porttiles.

Los transductores pticos tienen en comn que emiten luz para mostrar in-
formacin digital. Este principio bsico se consigue con sencillez en el caso de
los leds, pero no se logra de forma tan inmediata en el caso de la pantalla grfica
de los computadores. Este dispositivo necesita una circuitera especial que co-
difique la informacin digital que se desea mostrar en las seales elctricas ne-
cesarias para el transductor ptico.
Los leds esin formados por una unin p-n de f6sforo de galio (Gap) que
cuando son atravesados por una corriente elctdca emiten luz. La comente
tpica que suele atravesar un led es del orden de unos pocos miamperios y
la cada de te11si6n entre sus extremos vara entre 0'5 y 3 voltios. La luz se
emite desde los extremos de la uni6n y se refleja hacia el exterior por medio de
un metal en el ctodo. Los leds se suelen empaquetar en plsticos coloreados
formando lentes.

Varios leds se pueden agrupar para representar informacin numrica o alfa-


numrica. Estas agrupaciones toman el nombre de dsphys, siendo los displays
de 7 segmentos los ms populares para representar c6digos decimales. Estos
dispositivos utilizan siete leds en forma de barra llamados segmentos, tal como
muestra la figura 10.1.

Figura 10.1: Dispiay de 7 segmentos

Los displays de 7 segmentos suelen incluir lentes para aumentar la luz de los
distintos segmentos. Este tipo de pantallas es adecuado para aplicaciones que re-
quieren un nmero limitado de caracteres, por ejemplo para representar nmeros
en los equipos de prueba y medida. Habilitando combinaciones adecuadas de
segmentos se pueden representar los nmeros. El ordenador suministra la infor-
macin del carcter a visualizar en cdigo decimal codificado en binario 6 BCD,
surgiendo la necesidad de implementar un decodiicador de BCD a 7 segmentos
para representar los caracteres.

Un alfabeto completo, con nmeros y otros smbolos, se puede representar


con un display de 16 segmentos, pero &tos no son excesivamente populares,
habiendo sido desplazados por las pantallas de matrices de leds, que pueden
conseguir juegos de caracteres mucho ms extensos. Normalmente se compo-
nen de 9 Mas y de 7 columnas, pero requieren una lgica m& compleja para
representar los caracteres.

Los transductores pticos utilizados mayoritariamente en los computadores


son las pantallas de rayos catdicos o CRT. La figura 10.2 muestra un esquema
del corte transversal de un CRT tpico. El funcionamiento de los CRTs se basa
en la propiedad del fsforo de emitir luz cuando es bombardeado con electrones.

Grid d e control
\
A~~.~ t o o a l , d r
I -

Tubo d e vacio

Figura 10.2: Esquema de unu pantalla de rayos catdicos o CRT

Para producir una imagen los haces de electrones inician el bombardeo en la


parte superior de la pantalla, recorrindola rapidamente de izquierda a derecha
dibujando una lnea horizontal (observando la pantalla desde la parte exterior
frontal). Al llegar al final del borde derecho se retorna a la posicin original
izquierda una lnea mis abajo y se vuelve a recorrer toda la inea, repitiendo
este proceso hasta que se recorre toda la pantalla El movimiento y la intensidad
de los haces se controlan mediante la informacin suministrada por la tarjeta de
video. La intensidad del haz de electrones en cada punto es la que controla la
luminosidad del pxel en la pantalla. El proceso de bombardeo de la pantalla
ocurre de forma suficientemente rpida como para que la pantaila completa se
dibuje varias veces por segundo y no produzca efectos de parpadeo.

En el interior de un tubo de vaco se calienta un catodo, a una temperatura


de unos 800" C, de fomia que emite un haz de electrones que incide sobre la
pantalla de fsforo. Delante del catodo se sita la rejilla de control que acta
sobre la intensidad del haz. Al aplicar un potencial negativo a la rejilla, sta
repele los electrones del haz (puesto que tambin estn cargados negativamente)
disminuyendo su intensidad. Si se aplica una tensin de -20 a -100 V se puede
llegar a detener el haz completamente.

Despus de la rejilla de control se encuentran un conjunto de nodos carga-


dos positivamente. El primer nodo (cargado a unos 400 V) atrae al haz y lo
acelera hacia la pantalla. El segundo est conectado con la p e interior de la
pantalla y sirve para acelerar ms an el haz. Estos nodos estn cargados a un
potencial entre 15 k v y 25 kv. En medio de estos dos existe otro nodo, llamado
nodo focaiizador, que tiene un potencial vatiable, entre O y 400V. y es til para
enfocar el haz de modo que converja sobre un pequeo punto en la pantalla.

El haz debe orientarse para que llegue a cualquier punto de la pantalla. Esta
orientacin se logra por medios electrostticos o por medios magdticos. Los
primeros utilizan dos planos para la deflexin horizontal y dos para la vertical,
formndose un campo electrostttico que atrae el haz hacia un plano y lo repele
hacia el otro. Este sistema se utiliza en los instrumentos de medida, puesto que
es fcii desviar el haz rpidamente. Los segundos utilizan cuatro bobinas que se
encuenhan fuera del tubo y que generan un campo magntico. Estos ltimos se
utilizan en aplicaciones gricas donde la longitud del tubo debe ser reducida y
no se precisa de una velocidad de deflexin muy alta.

El rapido refresco de la pantalla (50 a 100 veces por segundo) consigue en-
gaar al ojo humano, produciendo la impresin de una imagen fija. Dependien-
do del tipo de fsforo, la imagen persiste iluminada un mayor o menor tiempo,
compensando el parpadeo. Sin embargo, si la persistencia es demasiado gran-
de, cuando se rehsca de nuevo La pantalla con otra imagen se pueden producir
sombras no deseadas debido a la retencin de las imgenes previas.
ORA-MA CAPflWJ.0 10. TERMINALES DE VbBO 287

La generacin de las seales que controlan el reconido del haz. llamadas


seales de barrido horizontal y barrido vertical, y de la seal que define la in-
tensidad del haz, se realiza mediante una circuitera especial que se encuentra
dentro del monitor. Estas seriales a su vez utilizan las seales de la tarjeta de
video, la cual accede a la informacin digital que se desea representar en panta-
lla (tpicamente localizada en una zona especial de memoria). La intensidad de
los puntos o pineles sobre la pantalla queda determinada por la seal de vdeo
que se traduce en un voltaje aplicado a la malla de control. Para que el CRT
pueda generar las seales de barrido tambin se le deben de pasar las seales de
sincronismo, tanto vertical como horizontal.

El funcionamiento de los tubos de rayos cat6diws de color es muy similar


al de los monocromos. En este caso se usan 3 haces de electrones para producir
los colores primarios en la pantalla, rojo, verde y azul (de las siglas en ingls
de estos colores Red, Green y Blue proviene el nombre de monitores RGB).En
estos monitores fsforos de diferente color se agrupan en bloques de tres sobre
la superficie de la pantalla formando un patrn determinado. A cada bloque se
le llama llot (punto) y existen diversas formas de agruparse, tal como se muestra
en la figura 10.3. Una separacin tpica entre puntos en el caso de 3 puntos
circulares es de 0'25mm.

Puntos circulares en Malla de apertura Mdscara de ranuras


formacin triangular

Figura 10.3: %tios tipos de agrupaciones delfdsfom RGB en los monitores de


color

Cada haz apunta a su correspondiente color y su intensidad est controlada


por una seal diferente suministrada por la tarjeta de vdeo. Los colores se
forman regulando la intensidad de los haces sobre los coIores primarios.

Para crear una imagen precisa, es necesario asegurar que el haz de electrones
de cada color incide nicamente sobre el fsforo adecuado para ese color. Para
288 ESTRUCTURA DE COMPUTADORESY P E ~ R I C O S QRA-MA

ello se utiliza una pequea lmina de metal agujereada, llamada mhscara de


sombras (shndow mask), que hace que los haces de electrones pasen a travs de
los agujeros para evitar que incidan sobre los fsforos que no les corresponden.

Existe otro sistema similar, denominado malla de apertura (aperture grill),


en el que en lugar de una mscara de sombras se utilizan cientos de ras de
metal que atraviesan la superficie de la pantalla verticalmente. Los fsforos
se imprimen en la pantalla tambin en tiras, cada una de un color, de forma
que el haz de un color slo puede incidir sobre el fsforo de ese color. Las
ventajas que tiene &tesegundo mtodo son que se permite pasar mayor parte
del haz de electrones, con lo que se consiguen imgenes ms briilantes y una
pantalla plana verticalmente, con lo que se evitan distorsiones. Este sistema
es el utilizado por los monitores Trinitron de Sony. La desventaja que tiene
este tipo de pantallas es que para evitar que las tiras de metal vibren se utilizan
una serie de finos hilos dispuestos horizontalmente, no apreciables en la imagen
si no se observa muy de cerca Puede ocurrir que la mscara de sombras se
magnetice, dando lugar a colores incorrectos en la imagen. Con la intencin
de evitar este problema, cada vez que se conecta el monitor se le aplica un
campo alterno de desmagnetizacin. A este proceso se le llama degaussing y las
pantallas suelen incluir la posibilidad de realizar esta desmagnetizacindurante
su funcionamiento normal mediante el uso de un pulsador colocado para tal fin.

Los monitores CRTs se utilizan tanto en pantallas que representen caracteres


alfanum6ricos como en monitores grcos. De esta ltima clase existen dos
tipos de monitores grticos, dependiendo de cmo se controle el movimiento
del haz de electrones sobre la superiiciede la pantalla:
a GraBcos veetoriales: En este caso es posible desplazar el haz de elec-
trones a cualquier zona de la pantalla con total libertad. La imagen a
visualim se traza repetidamente hasta que se necesita una nueva imagen.
S610 las partes de la pantalla necesarias para formar la imagen son acti-
vadas por el haz de electrones. Este tipo de pantallas poco comunes se
utiliza para aplicaciones grticas.
Grficas m t e La ~ imagen se construye punto a punto por medio de una
serie de lneas que se trazan sobre la pantalla, empezando por el borde
superior izquierdo y movindose hacia abajo hasta la esquina inferior de-
recha. En este esquema el movimiento del haz de electrones es fijo y est
controlado por un circuito de barrido, tal y como se ha explicado en la seo
mRA-MA CAP~TULO10. TERMINALES DE V~DEO 289

cin anterior. El haz recubre la pantalla lo suficientemente rhpido como


para que la imagen tenga una apariencia estacionaria y sin parpadeo. To-
da la pantalla es alcanzada por el haz continuamente, aunque dependiendo
del tiio de imagen a visualizar el haz no tiene la suficiente intensidad co-
mo para excitar el fsforo.

10.2.1 Seal de vdeo PAL


La representacin de una imagen de televisin en blanco y negro se consi-
gue asignando una cierta luminanua Y, o nivel de gris, a cada punto de luz.
En Europa los CRT raster tienen 625 lneas, correspondientes con el estndar
de televisi611EPAL (Eumpean Phase Alternating Line). Estas pantallas repre-
sentan las imhgenes de forma entrelazada, es decir, primero se trazan las lneas
pares del monitor y a continuacin las impares, en lugar de la representacin
secuencial de las 625 lneas. Se produce un refresco de cada imagen 25 veces
por segundo, con lo que el cambio de cuadro (par o impar) se produce 50 ve-
ces por segundo. Por tanto la seal de sincronismo vertical tiene una frecuencia
de 50 Hz. El entrelazado se usa en los monitores de televisin, pero no en los
monitores de alta resolucin de los ordenadores.

La duracin del trazado de una lnea horizontal es de 64 ps. Este tiempo es


la suma de un margen anterior de 1'5 ps, un pulso de sincronismo horizontal
de 4'7 ps, un margen posterior de 5'8 ps y 52 ps de imagen de la lnea, lo que
da una frecuencia de barrido horizontal de 15'625 KHz. Los niveles de tensin
son 0'020V para el nivel de sincronismo horizontal, 0'327V para el nivel negro
y 1'041V para el blanco, tal como se muestra en la figura 10.4.

El sincronismo vertical se genera cada 312'5 lneas con una duracin de 2'5
lneas, introducindose pulsos para mantener el sincronismo horizontal durante
los cuales el haz se inhibe.

Las cmaras y los monitores RGB utilizan una codificacin similar para
mantener la compatibilidad con la seal PAL en blanco y negro, con este fin,
a partir de las seales RGB se calcula la luminancia Y como una media pon-
derada de la intensidad de los colores que se sigue transmitiendo como la seal
PAL en escala de grises. De manera adicional se transmite la seal R - Y y
B - Y, durante el prtico posterior de la lnea PAL con una portadora de 4'43
MHz. De esta manera se pueden recomponer las seales R, G, y B.
290 ESTRUCTURA DB COMPUTAWR6SY PER&UCOS ORA-MA

Sincronismo Llnea 2 4 'ha6 Tiempo


Vertical

Slncmnismo
Horizontal
Figurn 10.4: Evolucidn de la seAal de vieo PAL

Los receptores de televisi6n pueden adaptarse para usarse como pantallas de


ordenador, pero tienen bastantes limitaciones en comparaci6n con las pantallas
propias de ios ordenadores (VDT o Video Display ~ e k n a l sque
) las
siguientes ventajas:
El tamao del punto del haz de electrones, cuando incide sobre la pan-
talla de Wsforo, es considerablemente menor (normalmente 0'25 mm de
dimetro), por lo que puede aumentar la resolucin de la pantalla
Usan una circuitera de video de un ancho de banda especial mayor (el
ancho de banda es la frecuencia mxima de la seiial anal6gica que puede
soportar el monitor), que permite resoluciones mayores.
En el caso de monitores en color, se usan tres seales separadas para con-
trolar los distintos haces de electrones y dos seales de sincronismo en
vez de una seflal de video compuesto. Es por eilo por lo que a este tipo de
pantallas se les reconoce como monitores RGB.
En vez de estar limitados a las frecuencias fijas de televisin de 15'625
KHz horizontales y 50 Hz verticales, los monitores multisync o multifre-
cuencia permiten variar estas frecuencias sobre un alto rango (45 - 110 Ha:
verticales). Esto se traduce en una mayor resolucin, mayor frecuencia de
refresco y por lo tanto menos parpadeo.

Las tendencias actuales incluyen la representacin de los caracteres negros


sobre fondo blanco, el giro de las pantallas 90' para representar mejor un folio
A4 y el incremento de la resolucin sobre 1600 x 1200 para las aplicaciones
gr&ticas.

10.4 CONTROLADORES DE PANTALLA

En un computador se almacena informacin (grifica o alfanumrica) que


se desea representar por la terminal de vdeo. Para generar la seal de vdeo
y las seales de sincronismo de entrada al monitor es necesaria una circuitena
especial que genere estas seales. Los dispositivos que implementan esta fun-
cionalidad son los controladores de pantalla.

Un controlador de pantalla debe tener en cuenta 3 aspectos principalmente:

1. El acceso a la memoria de vdeo


2. La generacin de la seal de video
3. La generacin de las seales de sincronismo

10.4.1 Controladores de pantalla alfanumrica


Los CRT se pueden utilizar como pantallas alfanumricas para representar
caracteres. La informacin a representar en la pantalla se almacena en una me-
moria RAM, llamada memoria de vdeo, que contiene los cdigos ASCJi de los
caracteres a visualizar. La pantalla tiene un formato de n filas por m columnas.
Los caracteres, cuando son visualizados, se colocan en una fila y una columna
determinada de la pantalla. Para visualizar nuevos caracteres ASCJi, simple-
mente habr que escribir en el rea de memoria asignada al CRT los cdigos
ASCII de dichos caracteres.
292 ESTRUCTURA DE COMPUTADORES Y PE~~FRICDS ORA-MA

Acceso a la memoria de vdeo

Existe una correspondenciaentre las posiciones de la memoria de vdeo don-


de se aimacena un cdigo ASCii y la zona de la pantalla donde aparece visuali-
zado el carcter correspondiente a ese cdigo. Los mtodos de direccionamiento
de la memoria de video definen esta correspondencia. La memoria de vdeo se
direcciona usando dos mtodos, tal como se ejempliica en la figura 10.5 para
un monitor con 24 filas y 80 columnas:

Direccionamiento Direccionamiento
lineal por filas y columnas

Figura 10.5: Ejemplo de dimccionumiento en una pantalla alfanum&rica

1. Direccionamiento lineal: Ei carcter que se ubica en la primera iia y


columna de la pantalla ocupa la posicin O y el ltimo de la primera lnea
la posicin 79. El primer caricter de la segunda lnea se corresponde con
la posici6n 80 y as hasta el itimo de la fila 24. La ventaja de este mtodo
es que como todas las celdas son consecutivas, no se malgasta memoria.
Sin embargo, es necesario un mtodo complejo para averiguar la posicidn
que ocupa un carcter en la memoria de vdeo dada su posici6n en la
pantalla.
2. Direceionamiento por fflas y por columnas: Se asegura que cada fila
comienza en memoria en una posicin mltiplo de una potencia de 2.
Para una pantalla de 80x25 se pueden utilizar 5 bits para indicar la fila
y 7 bits para indicar la columna. Si se concatenan estos bits se obtiene
que direcciones de 12 bits son suficientes para acceder a cada celda. El
problema que tiene este mtodo es que se malgasta mucha memoria.
Como ya se ha descrito, la memoria que almacena la informacin que se
muestra por pantalla es la memoria de vdeo. Esta memoria de video esta in-
cluida en los controladores de pantalla, tanto alfanumrica como grica, y se
implementan utilizando ciertos tipos de tecnologa especiales:

a M oM 0 Es:
un tipo especial de memoria dinmica RAM
(DRAM) de doble puerto. Requiere una menor frecuencia de refresco y
por tanto tiene un funcionamiento m& ptimo que la DRAM habitual.

&tended Data Ou$uf DRAM (EM)DRAM): Es un tipo especial de


DRAM que incluye un cauce segmentado en el puerto de datos, mejoran-
do & esta manera el acceso a la memoria en modo pgina descrito en la
seccin 1.4.2. La segmentacin consiste en dividir en etapas una tarea
situando registros intermedios entre etapas. De esta manera se consigue
una aceleraci6n en la ejecucin de las tareas, tal como se describe en la
secci6n 12.2.

Synchrunous DRAM (SDRAM): Es un tipo & memoria DRAM con


seal de reloj que acelera el acceso en modo pggina.

Tanto la CPU como el controlador de CRT acceden simultneamente a la


memoria de vdeo. El primero, para decidir qu caracteres se van a representar
sobre la pantalla, y el segundo para realizar el refresco de la misma. Si no se
utilizan memorias de doble puerto es necesario proveer de un mecanismo para
arbitrar el acceso a la memoria de vdeo si no utilizamos memorias de doble
puerto. Para ello se usan v d o s mtodos:

a Usar un controlador de DMA para manejar transferencias de bloques entre


la CPU y la memoria de vdeo y entre la memoria de vdeo y el controlador
(vase el captulo 4).

m La CPU y el controlador comparten la memoria. Cada ciclo de reloj se


divide en dos fases: en la primera accede la CPU y en la segunda el con-
trolador.
a La CPU slo accede a la memoria mientras se est realizando el retorno
horizontal o el vertical, que es cuando el controlador no escribe en la
pantalla y por tanto no tiene que leer la informacin de la memoria.
294 ESTRUCNRA DE COMPUTADORES Y PKUPfWCOS @RAMA

Generacin de la seaal de vdeo

Cada carcter est representado por una matnz de puntos, llamada celda
de cartcter de dimensi6n m x n, que indica la forma con la que aparecen los
caracteres por la pantalla. Esta informaci6n se guarda en memoria ROM, en
una tabla llamada generador de caracteres. Si se desea cambiar la forma de
los caracteres, bastar con sustituir la ROM que guardan los patrones de bit del
c h t e r de un tipo de letra determinado por otro.

En la figura 10.6 se muestra el aimacenamiento en memoria de un carcter


que utiliza una matriz de 12 x 9 bits. Cada bit de la celda de carcter se corres-
ponde con un dot @unto)& la pantalla, que se ilumina si el bit correspondiente
contiene un '1' y no se ilumina en caso contrario. Para representar el carcter
por la pantalla se van leyendo del generador de caracteres las filas que lo cons-
tituyen y al mismo tiempo se van serializando los datos para ser enviados al
circuito de control de video.

Figura 10.6: Patrn de 12jlas x 9 colunuias para la letra A

Para representar los caracteres en una pantalla raster,el controlador de video


lee el cdigo ASCII de una a completa de caracteres de la memoria de vdeo.
A continuaci6n va generando la seal de vdeo a partir de la informacin que
va obteniendo del generador de caracteres. La visualizacin de cada fila de
caracteres se realiza generando en primer lugar la seilal de vdeo para la primera
lnea de todos los caracteres, a continuaci6n se genera la seal de la segunda
lnea y as sucesivamentehasta completar todas las lneas de la celda de c&r.
Para refrescar toda la pantalla se tendrt que repetir la operaci6n anterior con
todas las mas de caracteres de la memoria de video.
ORA-MA cAF'fTUL0 10. TERMINALES DE V ~ E O295

Como se puede observar, ste es un proceso repetitivo cuya velocidad de-


pende de la velocidad con que se leen los puntos de la celda de carcter. Es
necesario un reloj, llamado reloj de punto (dot clock), que marca la frecuencia
con la que se puede enviar la seal de vdeo de los pxeles que forman el carcter
a la pantalla. A partir de este reloj, dividiendo su frecuencia mediante una ca-
dena de contadores, se pueden obtener todas las frecuencias necesarias para el
proceso de representacin de los caracteres. Por tanto se tiene:

Frecuencia de carcter: Velocidad con la que se representa una lnea


completa de celda de un carcter. Si los caracteres estn representados en
una matriz de 12 x 9 puntos, esta frecuencia ser 9 veces menor que la
frecuencia de punto.
Frecuencia de lnea: Velocidad con la que se representa una lnea com-
pleta en la pantalla. Hay que tener en cuenta que se debe contabilizar el
tiempo que tarda el haz en realizar el retorno horizontal y en trazar los
mrgenes, que suele ser normalmente el 20% del tiempo que se tarda en
trazar una lnea. Para una pantalla de 80 x 25 lneas, esta frecuencia ser
80 + 16 veces menor que la frecuencia de carcter.
Frecuencia de fila de caracteres: Velocidad con la que se representa una
fila completa de caracteres. Esta frecuencia en el caso del ejemplo de la
matriz de 12x9 puntos ser 12 veces menor que la frecuencia de lnea.
Frecuencia de cuadro (pantalla completa): Frecuencia con la que se
representa toda la pantalla, incluyendo como en la frecuencia de lnea, el
tiempo que tarda el haz en pasar por los mrgenes inferior y superior y
en hacer el retorno. Este tiempo se aproxima al 10% del tiempo que se
tarda en escribir las lneas. Por lo tanto la frecuencia de cuadro ser 25 +
3 veces menor que la frecuencia de fila de caracteres.

La estructura bsica del controlador de pantalla alfanumrica se implementa


mediante una cadena de contadores. El contador de fila y de carcter selecciona
de la memoria de vdeo el carcter que se va a visualizar. El cdigo ASCII del
carcter sirve para acceder al generador de caracteres donde se encuentra la cel-
da de carcter que define la forma que tendr sobre la pantalla. El contador de las
lneas de celda selecciona una de las filas de la celda del carcter actual que es
enviada al registro de desplazamiento. El reloj de punto va desplazando los bits
del registro de forma continua para u generando la seal de vdeo. Este proceso
se repite para todas las ineas elementales de las celdas de todos los caracteres
&una fila y para todas las filas de la pantalla. Cuando se termina con estas filas
se repite todo el pmmo. La figura 10.7 muestra de forma esquemticaesta dis-
posicin encadenada de contadores en el caso de que se utilice direccionamiento
por @as y por columnas.

Generador de

Memoria de Vldeo

Figura 10.7: Estructum de contadores alfandricos de un contmladorde pan-


talla aIfanudrica

Durante un b d d o horimntal completo, se refresca la parte visible de la


lnea, se cubre el margen derecho, se retorna el haz y se cubre el margen iz-
quierdo. Las d d o n e s relativas de estas fases suelen ser del 80%, 4%, 8% y
8% respectivamentedel tiempo que se tarda en trazar los puntos visibles en una
linea. Lo mismo ocurre con el barrido vertical, pero en este caso suele ser el
10%del tiempo que se tarda en hazar una pantalla completa. En el controlador,
por tanto, deber haber una serie de comparadores para que en funcin de los
valores de los contadores habiliten o deshabiliten la seal de video (inactivo en
los mrgenes y en el retorno) y generen las seiales de sincronismo.

10.4.2 Controladoresde pantaila grica


El principal objetivo de las pantallas grficas es el de producir dibujos en
lugar de caracteres alfanumricos. Por lo tanto ser deseable una alta resolucin,
una amplia gama de colores y un refresco bastante rpido. Valores tpicos para
las pantallas grficas pueden ser una resoluci6n de lo00 x lo00 y 256 colores
simultaneos de una paleta de 65.536. El rpido r e h c o de la pantalla requiere
para la memoria de vdeu el uso de RAM dinmica de alta velocidad.

Las pantallas @cas no se suelen programar a nivel de bit, sino que se dis-
pone de una serie de primitivas grficas o macros que permiten dibujar ineas,
recinguios, crculos y otra serie de formas geomtricas. Los circuitos integra-
dos controladores grficos empezaron a desmolamea partir & los aos ochenta
y hoy en da son parte fundamental en los controladores de pantalla grica.

En el controlador de pantalla alfanumt?rica,los cdigos de los caracteres a


visualizar se almacenan en la memoria de pantalla. Esta informacin se usa
repetitivamente, tantas veces como lneas elementales tiene un carcter, para
representar una fila de caracteres. Las posibilidades grficas de estos controla-
dores son por tanto muy limitadas.

Si se desea controlar cada punto de la pantalla por separado es necesario un


controlador grico. Se utilizan controladoresen los que al suprimir el generador
ROM de caracteres, el usuario puede modificar la pantalla a nivel de punto. La
informacin que describe el estado de cada pxel se guarda en una memoria
RAM que se denomina 'plano de bits'. La memoria de video no almacena el
c6digo ASCII y no existe un generador de caracteres, sino que la infomiaci6n
extrada de la memoria de video se almacena directamente en el registro de
desplazamiento para ser visualizada por la pantalla.
Tabla 10.1: Tabla conrpa~tivade las pantalias gdJicas estdndar

Si se almacena en el plano de bits un bit para cada pxel, se podrd repre


sentar una imagen en blanco y negro. Si se almacenan cuatro. se dispondrn de
16 niveles de gris o de 16 wlores. Dependiendo del estndar utilizado se utili-
zar un nmero mayor o menor de bits. En la tabla 10.1 se comparan diversas
tarjetas de video consideradas como estndar. Las siglas de MDA correspon-
den a ( M o n o c m Display Adapter), HGA a (Hercules Graphic Card),CGA a
(Color Graphics Adapter),EGA (Enhanced GraphicsAupter) y VGA a (Video
Graphics Adapter).

Normalmente el plano de bits almacena 8 bits por pxel. que se utilizan para
acceder a una tabla en memoria, llamada paleta de colores, donde cada entrada
tiene 12 bits de infomtci6n (cuatro para cada color primano). que son tiles
para controlar la intensidad de los 3 haces de electrones del Cr. Los bits de
informaci6n son previamente dirigidos a 3 convertidores digital-anal6gicos lla-
mados DACRAM, que se encargan de generar la seial de vdeo que actuar
sobre la rejilla de control de los caones de electrones. La figura 10.8 mues-
tra esta disposicin con 8 bits por pxel y una paleta de colores de 12 bits. El
nmero de planos de bits determina el nmero de colores simultneos que se
observan en la pantalla. De manera adicional, el nmero de bits de la paleta de
colores indica el nmero de colores disponibles de los cuales se eligen los que
se visualizan de forma simultnea.

Con el estndar CGA se pueden representar hasta 16 colores, puesto que


se tienen 4 sefiales: Rojo, Verde, Azul e Intensidad. El estndar EGA usa 6
i
ORA-MA 10. TERMINALES DE V~DEO 299
CAP~TIJLO

Paleta de colores

12 bits
11000010 1011

Figum 10.8: Acceso a la paleta de colores en pantalla grdJca

seiales: R, r, G. g, B y b, dando como resultado 2==64 colores diferentes. En


los monitores VGA se utiliza una paleta de colores con 6 bits para cada can
(de un total de 3) con lo que se distinguen hasta 2(6+6+6)=262144colores.

Si se desean cambiar los colores que se visualizan en el monitor, se puede


utilizar otra paleta de colores, o bien se pueden cambiar entradas individuales
en la tabla para definir colores propios.

En las tajetas grficas el contador de lneas elementales abarcar toda la


pantalla, no teniendo sentido ya hablar del contador de caracteres. En estos con-
troladores, el direccionamiento lineal de la memoria de vdeo es imprescindible
para no desperdiciar memoria, por lo que se debe incluir un contador de direc-
ciones de memoria que funcione en paralelo con los contadores que generan el
sincronismo. Este contador se incrementa cada vez que se accede a la memo-
ria, a la frecuencia de punto. El incremento se inhibe cuando no se muestra
informaci6n por la pantalla, es decir durante los retornos y los mrgenes.

10.5 OTRAS PANTALLAS

Los CRTs son las pantallas que ms se utilizan en los computadores debido
a la alta calidad de las idgenes que pueden producir (nmero de colores, re-
3M) ESTRUCTURA DE COMPUTAWRBS Y PEl&RIcOS ORA-MA

solucin y velocidad de refresco). Entre las desventajas ms importantes de los


tubos de rayos catdicos estn el alto consumo y el tamao, lo que limita su uso
en los computadores portitiles. Hoy en da se estn introduciendo otras tecno-
logas, impulsadas fuertemente por el desarro110de los computadores porttiles.
En esta seccin se va a revisar la tecnologa de este nuevo tipo de pantallas.

10.5.1 Pantallas de cristal liquido

Los cristales lquidos, descubiertos a inales del siglo XM, son sustancias
casi transparentes, que presentan propiedadea combinadas de los slidos y los
lquidos. La luz que atraviesa los cristales lquidos se polariza en el sentido
del cristal, siendo sta una propiedad de los materiales slidos. Posteriormen-
te se descubri6 que mediante campos electrostticos cambiaba su alineamiento
molecular, y de esta manera la polarizacin de la luz que los atraviesa.

La mayora de los cristales lquidos son compuestos orgnicos formados por


l q a s molculas, que en su estado natural tienen sus ejes alineados en paralelo
de manera aproximada. Es posible controlar el alineamiento de estas molculas
si se aplica un campo elctrico. En este principio se basan las pantallas de cristal
lquido o LCDs (Liquid Cristal Display).

Un LCD consiste en 2 filtros de polarizacin lineales con sus lneas dispues-


tas perpendicularmente tal como se muestra en la figura 10.9. Al incidir la luz
natural (que tiene un eje de polarizacin aleatorio) sobre el primer plano slo
pasara la luz polarizada en la direccin del primer plano. El segundo plano
de polarizacin bloqueara el paso de la luz totalmente, ya que su eje de po-
larizacin es perpendicular al segundo. El cristal lquido situado entre ambos
planos de polarizacin puede orientar su eje de polarizacin mediante la apli-
cacin de un campo elctrico. De esta manera se polariza la luz que atraviesa
el primer plano en el sentido adecuado para que se pueda atravesar el segundo
plano. Pegados en el interior del cristal existen unos e1ectmb.q de un material
transparente conductor que polarizan una zona del cristal lquido. Para cada
pxel deber haber un control individual de los electrodos.

Los LCDs se pueden usar tanto en forma reflectiva como transmitiva En


la primera se necesita luz ambiental para producir los caracteres legibles. Se
utiliza un espejo en la parte posterior de la pantalla para reflejar la luz. En modo
transmitivo la pantalla debe ser iluminada desde la parte posterior.
ORA-MA CAP~TULO10. TERMINALESDE v b m 301

Polarizador Polarizador

Luz
incidente

Electrodo \
Cristal llquido

Figura 10.9: Estructura de una pantalla de cristal lquido

Este tipo de pantallas ofrece las ventajas de su tamao reducido, no necesi-


tan una fuente de alto voltaje para funcionar, la pantalla es plana y el acceso es
lineal (ya que cada pxel se puede direccionar directamente en t6rminos de filas
y de columnas). Si se aaden filtros para colorear la luz es posible construir pan-
tallas de matrices de puntos, siendo 6stos incluso apropiados para aplicaciones
de televisin.

10.5.2 Pantallas de transistores de pelcula fina


Este tipo de pantallas LCD utilizan la tecnologa TFT (Thin-FilmTransiror)
o de matriz activa en la que se aade una matriz extra de transistores al panel
LCD (un transistor para cada color RGB de cada pixel). Estos transistores me-
joran el tiempo de respuesta y el contraste de un LCD normal. Las TFTs pueden
ser mucho ms delgadas y luminosas que los LCDs comunes, siendo hoy en da
las pantallas ms utilizadas como monitores de computadores porttiles.

10.5.3 Pantallas de plasma


Una de las mayores desventajas de los LCDs es que tienen muy restringido
el ngulo de visin. En las pantallas de plasma cada pxel es como un tubo de
ne6n en miniatura consistente en un nodo y un citodo con un gas de plasma
32 ESTRUCTURA DE COMPUTAWRBS Y PB&RICOS ORA-MA

entre ellos que suele ser una mezcla de ne6n y de argn/xenn. Si se aplica un
voltaje entre los electrodos, el gas se ioniza y emite luz.

Los paneles de plasma incorporan toda la circuiteda de interconexin para


que puedan ser controlados directamente por la salida estndar de un monitor
RGB.Las pantallas actuales llevan control sobre la luminosidad de los puntos
pudiendo representar varios niveles de gris.

Las ventajas de estas pantallas son la gran luminosidad, la ausencia de par-


padeo y que son muy compactas. Su principal desventaja es el gran consumo de
comente que tienen (sobre los 200V).

10.6 CUESTIONES

10.1 Describir de manera breve los principios de funcionamientodel tubo de


rayos catdicos. CCul es la difereneta e n t i un tubo de rayos catddicos mono-
cromo y uno en color? Explicar de quk manem se consigue componer seales
de colores.

10.2 La sealde vieo PALfue originalmente establecidtapara transmitir sea-


les de televisin en blanco y negro. De quC manera se introdujo la seal PAL
en color manteniendo la compatibilidad de las seales?

10.3 Enumemr los mCtodos por los que se arbiim el acceso de la CPU y del
controlador de la pantalla de rayos catdicos a la memoda de vieo.

10.4 Un CRTfunciona con 3 seales: vdeo, sincronizacidn horizontal y sin-


cronizacin vertical. Dibujar un esquema de un CRT indicando para qu se
utilizan y dnde actilan cada una de estas seriales.

10.5 En una aplicacin CAD es interesante disponer de una pantalla con una
buena resolucin y de un monitor que no canse demasiado la vista Si se supone
que la resolucin de la pantalla es de lOOOxlOOO y que se tiene un monitor
Eo,RA-MA CAPlTUL0 10. TERMINALES DE V ~ E O3a3

no entrelazado de 100 Hz de frecuencia de refresco vem'cal. j Qu frecuencia


elemental de punto (dot-clock) tiene que ofrecer la controladora grqfica para
poder hacer funcionar al monitor con estos supuestos? NOTA: Considhse
que el tiempo que tarda el haz en hacer el retorno horfzontal y en recorrer los
mdrgenes es el 20% del tiempo que se tarda en recorrer una lnea. Para el
retorno y los mrgenes verticales se supondrb que el tiempo es del orden del
10% del tiempo que se tarda en recorrer todas las lneas de la pantnlkr.

10.6 Qu elementos de un controlador grdJico se pueden modijcar para re-


dircir el parpadeo? lnciuir tambin los relacionados con el monitor.

10.7 Por qu es peligroso manipular los monitores?

10.8 Explicar la relacin que existe entre la paleta de colores y el nlnero de


planos de bit de que dispone un controlador grfico.

10.9 En un controlador de vldeo, jqu es el dot-clock o tambin llamado reloj


de punto?

10.10 En el diseo de un driverpam la controladora de vfdeose quiere que se


refresque la pantalla a wfrecuencia de 70 veces por segundo. Adems se va
a utilizar una resolucin de 1024 x 768puntos con la posibilidad de visualizar
216 colores simultneos de un rango de 224. Calcular la frecuencia de punto
con la que se deberb enviar la informacin de vfdeo al monitor; la memoria de
vfdeonecesaria y el tamao de la paleta de colores.

10.11 Qu es e1 generador de caracteres de un controlador alfanumrico?

10.12 Qu son laspantallas de cristal liquido? Describir losprimpios bsicos


en los que se basa sujiuacionamiento.
304 ESTRUClURA DE COMPUTAWRES Y PERIFRICOS ORA-MA

10.7 BIBLIOGRAFA
Barry M. Cwk,Neil H. White. Compurer Peripherals. 3%ed. Edward
Amold. ISBN 0-340-60658-4. 1995.
e John Fulcher. An Introducrion ro Microcomputer Systems. Architecture
& Interjacing. Addison Wesley Publishers Ltd. ISBN 0-201-41623-9.
1989.
e Hans-Peter Messmer. The Indispensable PC Hardware Book. 3%ed.
Addison Wesley Longman, Inc. 1997. ISBN 0-201-40399-4.
ALMACENAMIENTO MASNO

. .
Los tnimeros ca~itulosdel texto se centraron en el funcionamiento interno
del computador y en el proceso de ejecuci6n de las instrucciones almacenadas
en memoria principal. Sin embargo, normalmente esta memoria del computador
es voltil y tanto el sistema operativo, como los programas y los datos, desapa-
recen al interrumpirse la alimentacin del sistema. Para evitar este problema,
es necesario que el sistema operativo y los programas estn almacenados en al-
guna memoria no voltil a la que pueda acceder el procesador para cargarlos
en memoria principal. Este espacio de memoria constituye el almacenamien-
to secundario, y permite salvar de forma masiva gran cantidad de programas y
datos.

Con la invencin de la memoria virtual, parte de la capacidad del almace-


namiento secundario se utiliza para guardar pginas de memoria virtud que
fonnan parte de los programas en ejecucibn. De esta manera, el almacenamien-
to secundario debe tener capacidad para almacenar gran cantidad de &tos a un
coste reducido y ser lo suficientemente rpido como para no degradar el rendi-
miento al acceder a estas pfiginas.

A lo largo de este captulo se van a describir las caractersticas fundamen-


tales de los dispositivos ms representativos utilizados en el almacenamiento
secundario. Todos los dispositivos tienen en comn la utilizacin de medios
306 BSTRUCrURA DE COMPUTADORES Y PERIP&ICOS @RAMA

magnticos u pticos para el almacenamiento de informacin digital, codifica-


da en base a conjuntos & 1's y 0's. Para almacenar un 1 o un O se utiliza una
pequea posicin del medio magntico u ptico, que se modifica para poder
diferenciar su contenido. Los dispositivos de almacenamiento secundario ms
comunes son los discos, tanto magnticos como pticos, y las cintas, que empe-
zaron como una evolucin de la tecnologa de audio. Hoy en da se comparten
los dispositivos para ambos propsitos, utilizndose Compact Disc y cintas de
audio digital (DAT) para almacenar archivos.

El material magntico est formado por un gran nmero de pequeas reas,


compuestas por billones de itomos, con un campo magntico propio. Si es-
tos campos se orientan de manera aleatoria, sus efectos se compensan y ma-
croscpicamente el material no parece magnetizado. Bajo la influencia de un
campo magn6tico externo fuerte, todas los campos internos se orientan en la
misma direccin y sentido, presentado el mataial un estado de magneW6n.
Una vez que desaparece el campo externo el matxial magntico conserva su
estado, ya que este proceso tiene un cierto grado de hist6resis.

La grabacin magntica consiste en un proceso que magnetiza posiciones


del material con campos diferentes. Para generar el campo magntico externo
se emplea un cabezal formado por un ncleo de fenita, al que se le arrolla una
bobina. Si por la bobina pasa una comente constante de 10-20 mA se forma un
campo magntico constante en el ncleo, que orienta los campos del material
magntico. Un cambio en el sentido de paso de la corriente en la bobina hace
que el sentido del campo magntico se invierta, creando una zona de material
magnetizada inversamente. El material magn6tico se divide en posiciones lla-
madas celdas de bit, donde todas las partculas estn magnetizadas en el mismo
sentido. Dependiendo del cdigo de grabacin utilizado, se usan una o varias
celdas de bit para cada uno de los bits de informacin que se desean almace-
nar. Para poder determinar los lmites de estas celdas de bit, es necesaria la
existencia de mecanismos de sinmnizacin, ya que pueden existir varias celdas
consecutivas con la misma magnetizacin.
ORA-MA CAP~TLXO11. ALMACENAMIENTO MASNO 3UI

Cuando las celdas se magnetizan con polos Norte y Sur sobre la superficie
magntica, el proceso de denomina grabacin horizontal. Tambin es posible
encontrar mtodos de grabacin vertical o perpendicular, que crean celdas a
travs de todo el medio con el polo Norte en una superficie y el polo Sur en
otra. Con este mtodo se consiguen celdas 30 veces ms estrechas. Sin embargo
la grabacin horizontal es ms simple y se puede realizar por ambas caras. La
grabacin vertical se utiliza en los discos magneto-pticos.

Cuanto ms pequeas sean las celdas mayor ser la densidad de informacin


obtenida, sin embargo, si se hacen demasiado pequeas se anularn unas con
otras perdiendo la magnetizacin. El tamao del rea en el que se expande el
campo magntico creado por el cabezal determina cul es el tamao de la cel-
da de bit. Este factor depende de la distancia entre el cabezal y la superficie
magntica, as como de la tecnologa utilizada en el cabezal. Los cabezales ms
comunes son los de ncleo de femta, y los MR, formados por materiales magne-
toresistivos. Los cabezales MR se basan en materiales que presentan variaciones
- magntico
de su resistencia elctrica en presencia de un campo - externo. Pueden
detectar pequeas reas magnetizadas, ya que poseen una gran sensibilidad, y
permiten aumentar considerablemente la densidad de grabacin. Este tipo de
cabezal es el ms utilizado actualmente.

El proceso de lectura utiliza el mismo cabezal, pero en este caso sin apli-
- comente a la bobina que
car ninguna - rodea el ncleo. Al mover el soporte
magntico por debajo del cabezal, se producen variaciones en el flujo magntico
que atraviesa el ncleo de femta, debidas a las diferentes magnetizaciones
- de las
celdas de bit. Estas variaciones generan una comente inducida en la bobina que
se utiliza para determinar la informacin almacenada. Si se mide la tensin en
los extremos de la bobina se observan pulsos de voltaje (100pV - 100mV) cada
vez que se produce un cambio en el flujo magntico que pasa por el ncleo. Este
cambio en el flujo se da al pasar de una zona con un sentido de magnetizacin
a otra zona con sentido distinto. En la figura 11.1 se muestra el esquema de
lectura m a i ~ t i c a .

A medida que- las celdas se van haciendo ms -pequeas,


- el proceso de lectu-
ra presenta el problema de que los pulsos de tensin producidos por cambios de
flujo consecutivos interfieren entre si, siendo por tanto difcil determinar cundo
empieza y cundo termina una celda. Si se basa la deteccin de las celdas en
la deteccin de los pulsos de tensin, pueden ocurrir que la deformacin en la
Bobina de
lectura/escritura

Cabezal

Celdas de1 bit

inducida

almacenada

Figura 11.1: LRctura magntica

seal producida por la interferencia con los pulsos producidos por transiciones
cercanas, no sean detectados por un sensor de nivel. Para evitar esta degrada-
cin e incrementar la densidad de grabacin, se utiliza la tcnica PRML (Partial
Response Maximum Likelihood). Esta tcnica en lugar de detectar pulsos indi-
viduales para determinar los cambios de flujo, emplea algoritmos de procesado
digital para manipular la seal analgica y averiguar la secuencia ms parecida
de bits que representa. El mtodo se divide en dos pasos:

PR (partial response): La seaal analgica procedente del cabezal es ecua-


lizada mediante un filtro -programable,
- y a continuacin se muestrea me-
diante un conversor analgico digital.

ML (rnaximum likelihood): Convierte la seiial digital a datos, para ello


utiliza un detector de Viterbi que comprueba todas las posibles combina-
ciones de datos que pueden encajar, para buscar entre todas eiias la que
presenta un menor error.
ORA-&% ~APfnno11. ALMACNAMiEiWOMASIVO 309

este mtodo de lechua permite inmmentar ms de un 30% la densidad de gra-


bacin, y junto con los cabezales MR f o m la tecnologa utilizada en los discos
duros actuales.

11.3 CDIGOS DE GRABACI~NMAGMTICA

La informacin digital se almacena codificada en una secuencia de celdas de


bit magnetizadas en ambas direcciones. La codificacin m6s simple utiliza una
celda para representar cada bit. En la prctica se utilizan c6digos de grabacin
ms sofisticados que traducen los datos digitales (secuencias de 1's y O's) a
una secuencia de celdas magnezadas en direccin Norte o en direccin Sur,
formando los datos magnticos.

Para realizar las lecturas se muestrea la superkie magntica a una velo-


cidad predetemiinada, detectando de este modo la orientacin de las celdas.
Aunque la longitud de las celdas y la velocidad con la que se mueve la super-
ficie magn6tica suele ser bastante precisa en todos los dispositivos, pequefas
variaciones de estas variables hacen que no se pueda asegurar que las celdas se
vayan a leer correctamente. Si el circuito que muestrea las celdas va demasiado
rapido o la superficie magn6tica va demasiado lenta, algunas celdas magn6ticas
sern muestreadas dos veces. Para resolver este problema, adems de utilizar un
dispositivo temporizador preciso, tambin se extrae informacin de reloj de la
superficie magntica para poder resincronizar el dispositivo anterior. As, cada
vez que se detecta un cambio de flujo magn&tico,se resincroniza el reloj. Tam-
bin hay que asegurar que se produzcan cambios de flujo regularmente en las
celdas, independientemente de la secuencia de bits que se quiera almacenar. Por
lo tanto no sera posible representar directamente los dos estados de la magneti-
zacin como 1's y O's, sino que se tendr que aplicar alguna solucin alternativa,
ya que una secuencia de muchos 1's o muchos O's seguidos no produce cambios
de flujo. Posibles soluciones a este problema son:

a Usar una codificacin que garantice los cambios de flujo regularmente. A


este tipo de cdigos se les denomina ciidigos autoreloj.
a Utizar una pista especial & celdas que van en paralelo con las pistas
de datos que contengan una secuencia de cambios de flujo utilizada para
resincronizar los circuitos de temporizacin. Para leer esta pista se utiliza
un cabezal adicional. Este mdtodo presenta los siguientes inconvenientes:
1. Se produce un incremento del coste al utilizar un cabezal m6s.
2. Esta nueva pista ocupa espacio que podria ser utilizado por otra pista
de datos.
3. La superficie se puede deformar, con lo que existir un pequeo re-
traso en la informacin de reloj con respecto a los datos de una pista
interna que puede llegar a inducir ag~~error.

Normaimente se utiliza el primer mdtodo para almacenar la informacin.


Algunos mtodos de codicacin requieren una celda para representar cada bit,
mientras que otros requieren ms. Algunos de elios tambidn se utilizan en la
transmisin de datos, mientras que otros ms complejos slo se utilizan para la
grabacin magndtica.

Cdigos no autoreloj
e No retorno a cero (NRZ): Es el mdtodo ms simple. Un 1 se representa
por una celda magnetizada en sentido Norte y un O por una celda magne-
tizada en sentido Sur.
o No retorno a cero invertido (NRZI): Un 1 se representa invirtiendo la
direccin del flujo. Un O se representa no cambiando la direccin del
mismo.

Cdigos autoreloj
o Codilcacin de fase (PE):Para cada bit se necesita producir dos cambios
de flujo, por lo que con las mismas celdas de bit, representa la mitad de
datos que en los dos ejemplos anteriores. Se almacena un 1 mediante
un flujo con sentido Sur seguido de un flujo con sentido Norte y un O se
representa de forma contraria.
e Modulacin en Frecuencia (FM):Siempre existe un cambio de flujo al
comienzo de cada bit. Para almacenar un 1 se utiliza otra celda adicional
para producir un cambio de flujo. Los O's se graban a una frecuencia y los
1's al doble de esa frecuencia.
Modulacin de frecuencia modificada (MFM):Es la misma que el cdigo
FM excepto en que el cambio de flujo al principio de cada codificacin de
bit se produce nicamente si el bit actual y el anterior son O's. Con ello se
garantiza que slo se necesita un cambio de flujo para cada bit.

Carrera de distancia Limitada(Run Lenght Limited 6 RU):


Est cons-
tituida por un conjunto de cdigos que deinen el nmero de celdas mximo
y mnimo (m), que debe haber entre dos cambios de flujo. Como estos
cambios de flujo se utilizan para sincronizar el reloj de lectura, cuanto
mayor sea este nmero ms tiempo transcurrir entre dos sincronizacio-
nes sucesivas, y por lo tanto los dispositivos debern ser ms precisos. La
distancia mxima indica el nmero mximo de celdas iguales que penni-
ten que los cambios de flujo sean lo suficientemente frecuentes como para
que el cdigo sea autoreloj. La distancia mnima permite una codifica-
cin de alta densidad, ya que las celdas pueden ser ms pequeas al haber
siempre como mnimo varias celdas iguales seguidas.

Dentro de este tipo se encuentra la grabacin por grupos codificados (GCR),


tal como se muestra en la tabla 11.1, que agmpa los bits a grabar en pe-
queas secuencias y le asigna un cdigo a cada una de ellas asegurando
que se produce al menos un cambio de flujo. El nuevo cdigo se graba
usando un cdigo eficiente como el NZRI. Este cdigo tiene una distancia
mnimade l(101 6010)yunadistanciamximade8(0111111110),es
por tanto un RLLlIs.Adems, como slo se utilizan 16 de los 32 posi-
bles cdigos de 5 bits, se puede utilizar la infonnacin redundante para
detectar errores.

El cdigo RLL ms utilizado es el RLL2,,, que agrupa los bits a codificar


en secuencias de 2,3 6 4 bits y les asigna un cdigo que duplica el nmero
de bits. La secuencia se describe como una secuencia de cdigos-S (es-
pacios) y de cdigos-R (inversiones). Este cdigo garantiza que siempre
habr al menos 2 cdigos-S entre dos cdigos-R y que no hay ms de 7
cdigos-S entre dos cdigos-R. Como se necesitan tres cdigos R/S co-
mo mnimo para producir un cambio de flujo, en cada celda magntica
se podrn representar tres cdigos. As, aunque se doble el nmero de
cdigos para representar un bit, a la hora de almacenarlos es posible agru-
parlos en secuencias de 3 cdigos, resultando una densidad de 1.5 bits por
celda magntica. El c6digo RLLzS7se muestra en la tabla 11.2.
312 ESTRUCTURA DE COMPUTAWRBS Y PBN&UMS ORA-MA

OCR

1101 01101
1110 o1110
1111 o1111

Tabla 11.1: Cdigo GCR

RLL
10 SRSS
11 RSSS

010 RSSRSS
O11 SSRSSS
O010 SSRSSRSS
0011 SSSSRSSS

Tabla 11.2: Cdigo RLL2,,


ORA-MA CAPITULO I l . ALMACENAMIENTO MASNO 313

La figura 11.2 compara la densidad de grabacin de los cdigos descritos


anteriormente. Cuantos ms bits puedan ser representados con un nico cambio
de flujo, mejor ser el cdigo.~a~ que tener en cuenta que la celda magntica
tiene un tamao mnimo que limita la densidad. As, los cdigos PE y FM per-
miten una codificacin de0.5 bits por celda, los NRZ,NRZI )>MM almacenan
1 bit y el cdigo RLL2,,, que es el que mayor densidad de grabacin permite,
alcanzar 1 .S bits por celda magntica.

Figura 11.2: Cddigos de grabacidn magn6zica

Los discos magnticos son los dispositivosmscomnmente utilizados en el


- -
ahacmarniento secundario. Se caracterizan por ~odertener un acceso aleatorio
a la informacin, tiempos de acceso pequeos, una gran capacidad de almace-
namiento y un bajo coste.

Un disco est formado por uno o varios platos que giran simultneamente
movidos por el mismo motor, teniendo cada plato sus pmpios cabezaies de lec-
tudescritura, tal como se muestra en la figura 11.3. La informacin se almacena
distribuida en pistas conc6ntrcas. grabadas sobre el material magn6ticm en una
o en las dos caras de cada plato que hace de sustrato. Para acceder a los datos
314 ESTRUCURA DE COMPUTADORESY ~ C O S (EIRA-MA

almacenados, existe un brazo de acceso sobre el que se montan los cabezales.


El posicionamiento de los cabezales se realiza gracias a un codicador y un
engranaje, que convierte el movimiento de rotacin del motor paso a paso en
movimiento lineal del brazo. Para acceder a los datos, el movimiento lineal del
brazo y el de rotaci6n del disco, sitan el cabezal sobre los datos almacenados
en cualquier pista. En el peor de los casos, para acceder a un determinado dato,
el cabezal necesitar6 esperar una vuelta entera del disco y mover linealmentepor
completo el brazo de acceso. En los discos flexibles el tiempo de una rotaci6n
es como mnimo de 170 ms y el movimiento lineal del brazo necesita unos 200
ms, como estos dos movimientos se realizan en paralelo el tiempo de espera es
aproximadamente de 200 ms.

Cabezales
ni- / n

Figura 11.3: Estructura de un disco

Cada pista se divide en sectores formando una estructura de tarta, tal como
se muestra en la figura 11.4. Cuando el disco est formado por varios platos, al
conjunto de pistas que tienen el mismo nmero se le denomina cilindro. No toda
la superficie del disco se utiliza para almacenar datos, s610 se usa la parte m&
exterior, ya que debido a la velocidad angular constante del disco, los patrones
magnBticos de la superficie del interior quedaran muy comprimidos. A su vez,
cada sector contiene un conjunto de bloques de tamao fijo donde se almace-
na la informacin. Cada bloque dentro del disco se distingue por su posicin
especificada mediante un nmero de bloque, sector, cilindro y cabezal.
Figura 11.4: Divisin del disco

11.4.1 Discos flexibles


Este tipo de disco est formado por un nico plato de plstico flexible recu-
bierto de material magntico.
- El cabezal est en contacto con la superficie del
disco, lo que permite que los campos magnticos necesarios para inkducir una
comente en el cabezal sean ms pequeos. De esta manera es posible obtener
celdas magnticas de un tamao menor y una mayor densdad de-grabaci6n. Sin
embargo, el desgaste de la superficie del disco es mayor, lo que acorta su vida.
Para no degradar en exceso la supercie, el disco no esa continuamente giran-
do, sino que s610 lo hace cuando se accede a los datos. El disco se protege de
daos mediante una funda plhtica rgida que lo envuelve. El plistico dispone
de cuatro zonas agujereadas:

Una rectangulm en la parte baja para acceder al matxial magntico. En


algunos casos, esta zona se protege con una chapa metlica, que al intro-
ducirse en el lector se retira y deja el material magnco al descubierto,
como en el caso del disco de 3.5".

Una zona central circular que permite al motor girar el disco.


Una zona pequea en la parte superior izquierda que indica la densidad.
La lma zona es un pequeo agujero enmascarable en la parte superior
derecha, que indica si se puede escribiisobre el disco.
316 ESTRUCNRA DE COMPUTADORES Y PERW~IUCOS ORA-MA

Nombre 380k 5.25" 1.2M 5.25" 720k 3.5" 1.44M 3.5" 2.88M 3.5"
TPI 48 96 135 135 135
BPI 5.876 9.869 8.717 17.434 34.868
Denaldad DD doble HD alta DD doble HD atta ED eatm - alta
Tabla 11.3: ClasQicacin de los discos por densidades

Los discos flexibles se pueden agrupar segn tres caractersticas: tamao,


nmero de caras y densidad. Atendiendo a su tamao los discos se agrupan
en 8,5.25 y 3.5 pulgadas, aunque los dos primeros gnipos hoy en da estn en
desuso. En la figura 11.5 se muestran los discos de 5.25" y 3.5". Atendiendo
al nmero de caras, se distingue entre discos utilizables por ambas caras o so-
lamente por una. La densidad del disco consiste en la cantidad de datos que
pueden almacenarse en una determinada cantidad de espacio, y depende de dos
factores: la densidad de pistas que puede tener el disco, que mide la cantidad de
pistas que pueden ser empaquetadas en una pulgada de radio del plato, y la can-
tidad de bits en cada pulgada de pista. Hay que destacar que este itimo factor
no es constante a lo largo de todas las pistas del disco, puesto que las pistas ms
internas tienen una longitud menor y su densidad de bits por unidad de longitud
debe ser mayor. El producto de estos dos factores nos da la cantidad de bits
que pueden almacenarse por unidad de rea. Este factor se suele aplicar para
especificar la capacidad de los discos duros. Por otro lado, los discos flexibles
se suelen clasificar por dos factores separados, como son la densidad de pistas,
medida en pistas por pulgada V I), y la densidad de bits, medida en bits por
pulgada (BPI). En la tabla 11.3 se muestra una clasificacin de discos de 5.25"
y 3.5" segn su densidad: doble, alta o extra-alta.

Figura 11.5: DiscosjiexibIes de 5.25 y 3.5pulgadas

Los discos flexibles de 3.5" y 5.25" de alta densidad poseen 80 pistas. El


nmeto de sectores vara con el modelo, pero alcanza como mximo los 18 por
pista en el caso de 3.5" alta densidad. La anchura de las pistas tambin vaca
entre los 0.330 mm del 5.25" baja densidad y los 0.115 mm del 3.5" alta den-
sidad. El cdigo de grabacin utilizado es FM o MFM, aunque la modulacin
FM esta obsoleta debido a que ofrece una densidad de grabacin igual a la mitad
de la permitida por la codificacin MFM. Por cuestiones de compatibilidad los
controladores de disco flexible actuales suelen soportar las dos codificaciones.

Los discos duros estn formados por vanos platos que esth continuamente
girando y poseen una capacidad y velocidad superiores a la del disco flexible.
AdemBs, para alcanzar altas densidades de grabacin, el equipamiento mecnico
y el control del disco es ms preciso.

Es el disco duro por excelencia. Los platos estn formados por un material
metlico, normalmente aluminio, ya que su ligereza reduce la inercia del disco.
El metal se recubre con xido de nquel o cobalto que permite altos niveles de
densidad de grabacin. Suelen tener un tamao de 3.5",para que el tiempo
de posicionado del cabezal sobre la pista sea pequeo, al ser el radio del disco
pequeo.

En estos discos el cabezal no est en contacto con la superficie del disco,


sino que vuela por encima del mismo a una distancia que vara dependiendo del
tipo de cabezal y de su forma.

Al girar el disco se produce una comente de aire entre su superficie y el


cabezal que a modo de colchn lo mantiene elevado a una distancia que vara
dependiendo de la aerodinmica del cabezal. Otro factor que influye es la pre-
sin del aire, y por lo tanto a mayor altura sobre el nivel del mar la presin
disminuye y el cabezal se acercara ms. La distancia tpica para los cabezales
de ferrita es de 1pm. Cuando el disco para, el cabezal ateniza sobre el disco.
Para evitar que se daen los datos se elige alguna pista no utilizada como zona
de parada del cabezal. Este proceso se denomina parking y la pista especial
elegida se denomina la zona de aterrizaje.
318 ESTXUCWXADE COMPUTADORES Y PFRLF&UCOS ORA-MA I

Para proteger el disco de los peligros que representan las impurezas y el


polvo, se selia totalmente y la entrada de aVe se reguia mediante un filtro.

La velocidad a la que giran los discos es superior a 7200 rpm, con un circuito
de control que la regula para reducir sus variaciones a menos del 0.1%. Esto
supone una velocidad 10 veces superior a la de los discos flexibles.

Por ltimo, hay que destacar que el nmero de platos vara de 2 a 8, y la


capacidad puede alcanzar varias decenas de GigaBytes.

11.4.3 Organizacin de los discos magnticos


El disco se divide en pistas, y cada una de stas en un nmero fijo de sec-
tores donde se conforman las celdas magn6ticas. Al utilizar esta coniguraci6nn,
aparece el problema de que las pistas interiores del disco son de longitud me-
nor, pero como todas contienen los mismos sectores, la densidad de celdas es
mucho mayor en las pistas internas. sta es la causa de que la parte interna no
se utilice, ya que las celdas seran demasiado pequeas. Normalmente un disco
flexible contiene cerca de 100 pistas con 8, 18 6 30 sectores y un disco duro
alrededor de las 1000 pistas con unos 35 6 63 sectores. El espacio entre pistas
es varias veces mayor que la anchura de la misma para facilitar su localizacin.

Para evitar el problema de los sectores internos, se utiliza una tcnica que
divide el disco en varias zonas (zonning), teniendo cada zona un nmero de
sectores constante, tal como se muestra en la figura 11.6. En la zona interna,
como hay menos sectores, las celdas magnticas tendrn el mismo tamao que
las de la zona extema. La zona externa tendr ms sectores, y como la velocidad
angular es la misma, stos se leern mucho ms rpido. Es interesante poner en
esa zona los bloques ms utilizados para aumentar el rendimiento.

El tiempo que se tarda en @ansferirun bloque de datos desde el disco al


controlador de disco se divide en el tiempo de transferencia de los datos y el
tiempo de acceso, que es el tiempo que tarda el cabezal en posicionarse justo
encima del bloque que se desea leer. El tiempo de acceso se divide a su vez
en el tiempo de bsqueda, tiempo que tarda el cabezal en posicionarse sobre la
pista adecuada y el tiempo de latencia, tiempo que espera el cabezal a que el
sector requerido se posicione debajo de l.
ORA-MA cAF'flIJL-Ol l. ALMACENAMIENTO MASNO 319

Los mejores tiempos de acceso se lograrn al acceder sucesivamente a blo-


ques localizados en sectores consecutivos dentro de la misma pista, puesto que
se anula el tiempo de acceso. Sin embargo, algunos controladores no tienen
tiempo suficiente para leer dos sectores consecutivos, ya que mientras procesan
los datos del primero el segundo ya ha pasado bajo el cabezal. En este caso
la latencia es la peor posible, puesto que se debe esperar a que el disco d6 la
vuelta completa. La solucin a este problema es numerar los sectores de forma
intercalada a lo largo de una pista (interleaving). Esta estructura se muestra en
la figura 11.6. Esta tcnica ha quedado hoy en desuso debido a la alta velocidad
que presentan las controladoras actuales.

Zonning lnterleaving O lnterleaving 5

Figura 11.6: Formatos con interleaving y zonning

Antes de utilizar un disco es necesario formatearlo, tanto a bajo nivel como


a alto nivel. El formato de bajo nivel es el proceso de creacin de las pistas sec-
tores y cilindros. Para definirlos sobre el disco se graban marcas de direccin,
de datos, de sincronizacin y de informacin que identifica el controlador. Estas
marcas servirn como plantilla para el almacenamiento posterior de datos. Cada
pista contendr informacin e identificacin de los datos que estn guardados
(informacin sobre la pista y el sector que ocupan), as como informacin para
sincronizar los circuitos de lectura (marcas y huecos). El formateo de alto nivel
crea la organizacin lgica de los datos sobre el disco de acuerdo con los requi-
sitos del sistema operativo. Hay que destacar que los discos flexibles no suelen
estar formateados a bajo nivel al adquirirlos y es necesario darles formato antes
de ser usados con alguna aplicacin del sistema operativo. Por otro lado los dis-
cos duros s suelen comercializarse formateados a bajo nivel, siendo necesario
solamente el formato lgico.

Un ejemplo de formato a bajo nivel para discos flexibles es el estndar de


IBM 3740 que permite estructuras de 125,256,512,1024 2048 bytes por sec-
ter, teniendo tambi6n una cantidad variable de sectores por pista. Este formato
se usa para una codificacin de simple densidad.

En la figura 11.7 se muestra un ejemplo para una pista con 26 sectores y


128 bytestsector. Los nmeros de la parte superior representan la longitud del
campo en bytes.

4 0 6 1 2 6 2M1 2M1 247

GAP5 SYNC MI GAP1 SECTOR ... SECTOR GAP4

FF 00 FF 1 28 FF
-..
-e2E---
-- -<--
_<--

7 11 6
.... 131 Z
.Z

SYNC IOENTIFICAWR GAP2 SYNC DATOS GAP3


W

r e- -
**-- 1
FF 00
,
,
, .,FF

Figum 11.7: Formato IBM 3740

Cada pista comienza cuando se detecta la marca ndice. Existen unos cam-
pos, llamados huecos, (gaps), que se usan para separar los campos de infor-
macidn de la pista y que compensan las tolerancias mecaaicas y elctricas que
puedan existir en el posicionamiento de la cabeza y las pequefiar variaciones
en la velocidad de rotacin del disco. Tambiin permiten la actualizacin de un
campo de infomaci6n sin afectar a los campos adyacentes, ya que el inicio de
cada cama0* - -
puede variar ligeramente. En cada hueco se tiene un nmero varia-
ble de bytes puestos a uno, seguidos siempre por 6 bytes con ceros, que sirven
para sincronizar el circuito separador de datos.

En cada sector hay:

m Un campo de identificaci6n. que contiene una marca identificador, el nt-


mero de cilindro, el nSunero de cabeza, el nmero de sector, la longitud
del sector y 2 bytes para guardar el CRC (Cyclic Redundant Check). El
CRC es un c6digo para detectar errores en los datos aimacenados que se
@RA-MA ~ A P f i U l . 0 1l. ALMACENAMIENTO MASNO 321

obtiene como resultado de dividir los datos por un polinomio de un valor


determinado G ( x ) ,como por ejemplo X16 + XIZ+ X 5 1. +
Un campo de datos que contiene la marca de datos, 128 octetos de datos
de u s u h o y 2 bytes para guardar el CRC.

En el disco existen cuatro tipos de octetos especiales llamados marcas. Las


distintas marcas tienen patrones de bit nicos para distinguirlas de los datos:

MI (marca ndice - definido en hexadecimal como FC): Al principio de


cada pista.

MiD (marca identificador - definido en hexadecimal como FE): En el


primer octeto del campo identificador del sector. Indica si el sector es
fsicamente correcto o esta corrupto.

MD (marca de datos): En el primer octeto del campo de datos. Puede ser


de dos tipos, Mil (definido en hexadecimal como G)
y MDB (definido en
hexadecimal como F8) indicando si los datos que vienen a continuacin
son vlidos o si por el contrario han sido borrados.

Una vez se formatea un disco a bajo nivel, slo es posible alterar el campo
de datos y su CRC asociado. En cada sector se incluyen 2 bits de informacin
en forma de CRC.Al leer los datos, se vuelve a calcular el CRC y se comprueba
si es el mismo.

Una lectura tpica de disco comprende varios pasos:

1. El controlador de disco busca la marca de direccin de identificacin para


encontrar la pista y el sector adecuado.

2. Se comprueba el CRC para comprobar que la informacin de identifica-


cin del sector es correcta.

3. Se busca la marca de datos para ver el nmero de bytes por bloque y se


comprueba su CRC.

4. Se leen los datos.


322 ESTRUCTURA DE COMPUTADORES Y PH@RICOS ORA-MA

Un fao en cualquiera de los CRC iniciar una rutina de comprobaci6n &


enores que reintentara nuevas lecturas sobre el disco. Si se vuelve a fallar, la
cabecera del sector se marca como errnea y el sector ya no po&6 volver a ser
utilizado.

La cintas magnticas se caracterizan porque son dispositivos de acceso se-


cuencial. Para encontrar un bloque en particular es necesario rebobinar o avan-
zar la cinta hasta su posicin adecuada, teniendo un elevado tiempo de acceso,
lo que limita su aplicabilidad. La principal ventaja es el bajo coste por bit de
informaci6n almacenado. Decenas de megabytes de datos se pueden almace-
nar en una sola cinta, por lo que se utilizan para realizar copias de seguridad o
intercambiar software entre sistemas. Las formas de acceso pueden ser:

1. Acceso Stop-Srart, donde se leen o escriben los bloques individualmente.


Para conseguir una tasa de transferencia adecuada, la cinta se debe mover
rapidamente sobre los cabezales. Las limitacionesde inercia de las r6pidas
aceleraciones y deceleraciones se solucionan manteniendo un buffer de
cinta entre los carretes y los cabezales.
2. Acceso continuo (streamming): Varios bloques se leen sucesivamente. En
ellos no existen problemas de inercia, lo nico que hay que hacer es rebo-
binar la cinta hasta la posicin correcta cuando sta se para.

Las cintas magnticas funcionan de manera similar a las cintas de audio,


pero deben operar mucho ms rpido. Se necesitan tres caractersticas funda-
mentales:

1. Se requieren mecanismos especiales para tensar las cintas y prevenir que


sta se atesque o se rompa.
2. El mecanismo de arrastre debe ser muy preciso para poder situarse en el
punto adecuado, puesto que los datos esth muy juntos entre s.
3. El mecanismo & arrastre debe conseguir poner rpidamente a la cinta a
la velocidad mxima desde un estado de reposo.
El cabezal de escritura es de tipo electromagndtico y el cabezal lector se
monta sobre el cabezal de escritura (de hecho el mismo cabezal se puede usar
para reaza~las dos operaciones). Los datos se almacenan en pistas paralelas
sobre la longitud de la cinta, con densidades que varan desde los 800 a los 6250
bits por pulgada.

A continuaci6n se describen los formatos de cinta ms populares:

Cintas con carretes

La cinta tiene media pulgada de ancho y un grosor de 200pm. El espesor


de la cubierta magnttica es de 100pm. Hay dos tipos bsicos de cintas con
carretes dependiendo de si se utilizan mediante acceso Stop-Start o continuo.
En el primer caso, para obtener una velocidad de acceso aceptable, la cinta debe
moverse, acelenuse y desacelerarse ripidamente sobre el cabezal. Debido a
la inercia que presentan los carretes se mantienen bgers de cinta no tensada
entre el carrete y el cabezal contenida en una columna de vaco. Cuando se
produce una parada de la cinta el freno hace que la posicin de la cinta sobre
el cabezal no vare debido a la inercia, y los bt@ers de cinta permiten un ligero
desplazamiento de los carretes. Los sensores pticos aplicados sobre los tubos
de vaco aseguran que la longitud del buffer permanece constante. El esquema
de este tipo de cinta se muestra en la figura 11.8.

En el segundo caso el problema de la inercia no es tan grave debido a que se


accede a un gran ncimero de bloques antes de que sea necesario parar la cinta.
&te tipo de cintas son mucho ms simples, ya que no es necesaria la colum-
na de vaco ni los d o s . Los datos se almacenan en una serie de pistas que
transcurren paralelas a la cinta. Los primeros modelos utilizaban 9 pistas, pero
ahora es ms comn tener 18 e incluso ms. Con 9 pistas en el caso de lectu-
ras en paralelo se utilizan 8 para datos y 1 para paridad, teniendo por tanto la
necesidad de disponer de 9 cabezales. El problema de la lectura paralela es que
la cinta debe tener el hgulo adecuado en todos los cabezales, para no producir
una desincronizaci6n entre las lecturas de distintos cabezales. En la lectura serie
todos los datos se guardan de forma secuencial en cada una de las pistas. En este
caso la grabaci6n se realiza en una direcci6n para las pistas pares y en la otra
direccin para las impares, evitando tener que rebobinar la cinta para acceder a
una pista consecutiva.
Columna de
va010

Figura 11.8: Cinta con carretes

Los cdigos de grabacin mhs usuales son el NRZI (se utiliza con paridad
impar para asegurar que hay al menos una inversin en cada bit), el NRZI Mo-
dificado y el de grabacin por codificacin de fase (PE).

El formato de un bloque se muestra en la figura 11.9:

BOT IBG Cabezal atos Cola IBG Cabezal ... IBG EOT

Figura 11.9: Formato de bloque

1. BOT y EOT son los campos de comienzo de cinta y de fin de cinta


2. En el cabezal existe informacin para identificar el bloque y el tipo del
mismo
3. En la cola se guarda el CRC de los datos

4. IBG (ZnterblockGap) mantiene la cinta en blanco para dar tiempo a calcu-


lar el CRC anterior, para no solapar bloques en el proceso de escritura y
para poder detectar los bloques en el proceso de rebobinado o de avance.
ORA-MA CAP~TULO1 t. ALMACENAMIENTO MASNO 325

Cartucho de cinta

Las cintas de ordenador fueron reemplazadas por los cartuchos, los cuales
incluyen la cinta y los dos carretes, con lo que su uso es mucho ms cmodo.
Los drivers contienen cabezales separados de lectura y de escritura para poder
leer inmediatamente lo que se est escribiendo y as poder detectar cuanto antes
un posible error. Al cartucho de datos se le conoce como el cartucho de 114 de
pulgada, y existen tamaos estndar de 5.25 y de 3.5 pulgadas pero que operan
de la misma forma. La longitud de la cinta oscila entre los 200 y los 1000 pies,
y tiene una anchura de 114 de pulgada. Para mover la cinta existe un cinturn
de goma que est en contacto con la cinta y al mover el mecanismo accionador,
el cinturn de goma mueve los carretes y desplaza la cinta. Este mecanismo
es muy simple y produce una velocidad lineal constante independientemente de
la cantidad de cinta que se encuentre en cada carrete. Para este tipo de cintas
existen muchos estndares de cdigos de grabacin y de densidades de pista. El
esquema se muestra en la figura 11.10.

Pueda de 7
+ Mecanisr
acceso accionador Proteccin
Detector
. .. contra
ae iin escritura
de cinta

Figura 11.10: Cartucho de cinta

Cinta de vdeo de 8 mm

Con los mtodos de grabacin anteriores, para generar velocidades de acceso


grandes es necesario pasar la cinta por delante del cabezal a gran velocidad.
En el caso de'las cintas de vdeo y las DAT, se considera un nuevo mktodo
helicoidal de lectura/escritura,en el que la cinta se mueve lentamente y se m i l a
en diagonal al cabezal que gira a una velocidad de unas 2000 rpm. De esta
forma, el cabezal se pone en contacto con una pequea banda diagonal de la
cinta de unos 5" produciendo pequeaas pistas diagonales. El cabezal giratorio
al mover la cinta hace necesaria la utilizacin de al menos dos cabezales de
lecturaescntura para que siempre haya alguno de ellos en contacto con la cinta.
La capacidad oscila entre los 2 y los 5 Gb. El cabezal se muestra con detalle en

Cabezal de
lectura/ewiN

Figura 11.11: Cabezal de lectura

Cintas de audio digital

Ms conocidas por cintas DAT (Digital Audio Tape). Aparecieron como


soporte de audio con calidad digital. El formato es similar al anterior pero con
un cartucho ms pequeao, que se conoce como cinta de 4 mm, aunque realmente
es de 3'81 mm de ancho. Tambin utiliza un mtodo de grabacin helicoidal
parecido al anterior, pero con un ngulo de contacto entre cinta y carrete menor.
En la figura 11.12 se muestra el metodo de lectura de este tipo de cintas. El
formato de grabacin utilizado es el DDS (Digital Data Stomge) definido por
Sony y HP en 1988, con el cual se obtienen las siguientes capacidades:
- -

ORA-MA CAPfTULO 1l. ALMACENAMIENTO MASIVO 327

1-1 Cinta

Figura 11.12: Cinta DAT

11.6 DISCO PTICO

El disco ptico es un soporte de almacenamiento de datos que en su origen


era de slo lectura. Este formato apareci como un aplicacin de los CD de
audio al almacenamiento de datos. Como en el caso del CD de audio existe una
sola pista en espiral sobre una de las caras, aunque el formato de grabacin es
distinto. Los discos pticos utilizan como medio de codificacin de los datos
la reflexin de un haz de luz emitida por un diodo lser infrarrojo sobre una
superficie ptica, como se muestra en la figura 11.13. La cabeza lectora en este
caso est compuesta por un espejo y una lente, que focaliza el haz del lser sobre
un determinado punto del disco. Durante el proceso de lectura el disco gira y
la cabeza lectora se mueve radialmente, para acceder a las diferentes partes del
disco.

Los datos digitales se escriben sobre el disco mediante la aplicacin de pozos


sobre el material. Cuando el lser se focaliza, mediante el espejo y la lente
de la cabeza lectora, sobre un punto del disco, se refleja una cierta cantidad
de luz. Esta cantidad de luz reflejada depende de si el punto donde incidi el
328 ESTRU- DE COMPUTADORES Y PKIU&RICOS @RAMA

Cabezal m6vil
n

i Fotodetector

Figura 11.13: Esquema de funcionamiento del disco dptico

haz presenta un pozo o no, ya que los pozos reflejan el haz de luz de forma
dispersa. A continuacin, mediante una serie de espejos y lentes, se focaliza
la luz reflejada hacia un fotodetector. que la transforma en una seilal elctrica
Como las kflexiones de luz provenien& de pozos presentan un gran dispersin
del haz, la intensidad de luz reflejada recogida en el fotodetector ser menor y
la diferencia de seal elctrica pi&ite la c&ificaci6n de 1's y O's. Existen do*
tipos principalmente de dispositivos 6pticos: el CD-ROM y el DVD.

11.6.1 CD-ROM (Compact Disc Read Only Memory)


Fue el primer disco ptico comercial aplicado al almacenamiento de datos.
En los primero ejemplares de este tipo de dispositivos, y a diferencia de los
discos magnticos, el movimiento de giro del disco es variable. Con esta ca-
racterstica se pretende conseguir una velocidad lineal de lectura constante en
todos los puntos, ya sean interiores o exteriores. Esta propiedad de los CD-
ROM es una herencia del CD de audio, en los cuales se necesita conseguir una
lectura de datos constante por unidad de tiempo sin que influya la posicin de
los datos en el disco. La velocidad del motor de giro se controla mediante un
microcontrolador, dependiendo de la posicin que ocupa la cabeza lectora, sin-
- -

ORA-MA CAP~'ULO I l . ALMACENAMIENTO MASNO 329

cronizndose la velocidad del motor con los datos recibidos. As, los primeros
CD-ROM funcionan a la misma velocidad que los CD de audio. con velocidades
de rotacin que varan entre 210 a 539 revoluciones por minuto (rpm), depen-
diendo de la localizacin del cabezal. Con estas velocidades de giro se consigue
una tasa de transferencia de 150 KB/s. Posteriormente empezaron a aparecer
lectores que multiplican la velocidad de rotacin aumentando la tasa de trans-
ferencia. El problema de este tipo de lectores comenz al superar velocidades
multiplicadas por 12, ya que en el diseo de estos lectores mucho ms rpidos,
se trataba de mantener la velocidad lineal constante. Con velocidades de rota-
cin variables en el rango de 210 rpm a 539 no se presentan graves problemas,
pero el diseo se complica cuando es necesario variar la velocidad de rotacin
entre 5,040 a 12,936 rpm. Esta aceleracin y desaceleracin de la velocidad de
rotacin es uno de los factores que ms degradan el acceso aleatorio a estos dis-
positivos, ya que no puede realizarse de forma bmsca. Con el aumento gradual
de la velocidad de los lectores, se ha tenido que volver al diseo de velocidades
de transferencia variables, en los que la variacin de la velocidad de rotacin
no es lo suficiente como para mantener una velocidad lineal constante. Actual-
mente, la velocidad de transferencia anunciada en los lectores indica la mxima
velocidad que pueden alcanzar en las zonas externas del disco.

Mientras que en el nivel ms bajo todos los CD graban la informacin de la


misma manera, hay muchos tipos de datos distintos que pueden ser almacenados
en un CD. Como ejemplo se tienen los CD de audio donde se almacenan bits y
bytes, como en un CD-ROM, pero la forma de situar esta informacin en el disco
es distinta. Esta manera de organizar los 1's y O's en el disco es el formato. Estos
formatos son equivalentes a las estructuras lgicas y sistemas de ficheros usados
en los discos duros. Hay varios tipos distintos de formatos que se describen a
continuacin:

e Audio digital (CD-DA (CD Digital Audio)) . Almacenan msica con for-
mato digital en estreo, muestreada a 44.1 Khz. Cada muestra tiene 16
bits, por lo tanto cada segundo estreo ocupa (44,100*2*2) bytes. Los
datos se almacenan en bloques, llamados tambin sectores, que contienen
2,352 bytes de datos e informacin adicional sobre nmero de bytes usa-
dos para deteccin de errores. Son necesarios 75 bloques por segundo de
sonido en un CD estndar de 74 minutos y la capacidad total del disco es
de unos 747 Mbytes.
324 ESTRUCTURA DE CU-RES Y P&RICOS QRA-MA

CD de datos (CD-ROM, ISO 9660). El estndar original fue desarrollado


por Philips y Sony en 1983, a partir del CD de audio. Pero esta primera es-
pecificacin no fue lo suficientementeconcreta como para evitar mltiples
versiones, por lo que fue revisada y consensuada por un mayor nmem de
fabricantes en 1985 bajo el nombre High Sierra F o m t , y finalizada poco
despu6s bajo el estandar ISO 9660. Bajo este estndar hay dos modos
definidos:
- Modo 1: ste es el formato de datos ms extendido y usado en los
CD de datos. Estn organizados de forma similar al CD de audio,
con la salvedad de que de los 2,352 bytes de datos en cada bloque,
2,048 son para datos reales y el resto para cdigos de deteccin y co-
rreccin de errores. Esto es debido a que la informacin digital debe
protegerse mucho mejor contra posibles errores. Hay 75 bloques por
segundo con 74 minutos de duracin total, lo que da una capacidad
aproximadamente de unos 650 Mbytes. Al comienzo del CD hay
una tabla o ndice de contenidos que muestra los datos almacenados
en el disco, y ofrece informacin de dnde localizarlos.
-
Modo 2: Utiiizan el mismo formato que en el Modo 1 pero se omi-
te la deteccih y correccin de errores. Este disco se utiliza para
almacenar datos que no son muy susceptibles a ermres, como son
los gr6icos y el video. Adems, diferentes clases de datos pueden
mezclarse en el mismo disco. sta es la razn de que a menudo se
le conozca como CD-ROM con arquitectura extendida (CD-ROM
m).
CD-interactivo (CD-1). En 1986, Philips y Sony de nuevo, crearon el CD-
interactivo. Este nuevo concepto de CD-ROM, no muy utilizado, pre-
tenda convertirse en un estndar multimedia en el que se pudieran crear
discos que incluyeran texto, grficos, audio, vdeo y programas. Para ello,
se basaba en el estndar CD-ROM XA,pero con un formato algo diferen-
te.

Video CD (VCD). Utiliza el estndar de compresin MPEG-1 para al-


macenar vdeo sobre el mismo formato utilizado por los CD de audio,
almacenando unos 74 minutos de vdeo. El problema es su poca calidad
debido a que MPEG-1 no proporciona unas buenas prestaciones.
Foto CD.Desarrollado a principios de 1990 por Kodak y Philips, es una
extensin del CD-ROM XA, para almacenar imgenes fotogrficas.
ORA-MA CAP~TULOI l . ALMACENAMlENTOMASIVO 331

Como ya se ha mencionado, los CD-ROM son dispositivos de slo lectura.


Pero a partir de ellos, se han desarrollado nuevos soportes compatibles, Ilama-
dos CD-R y CD-RW, que s permiten la grabacin. El CD-R (CD-Recordable)
es un CD grabable una nica vez. En su fabricacin se utiliza un disco reflec-
tante muy delgado, normalmente de oro o plata, cubierto de una capa de tinte
inicialmente transparente. Para realizar los pozos sobre esta capa se utiliza un
lser que deforma el tinte, hacindolo ms oscuro y menos reflectivo. El proce-
so de grabacin mediante Iser resulta muy lento y poco efectivo para realizar
mltiples copias de un mismo CD. La lectura es similar a la de un CD-ROM.

El CD-RW (CD-ReWritable)es un CD regrabable unas mil veces. Este dis-


positivo utiliza la tecnologa de cambio de fase para variar sus propiedades re-
flectante~. El disco est cubierto por un material cristalino que refleja la luz,
pero mediante un Iser de cierta intensidad la estructura del material cambia a
estado amorfo no reflectivo. Un Iser de intensidad media devuelve la estructura
cristalina y para la lectura se usa un haz de baja intensidad.

11.6.2 DVD (Digitul Versatile Disc)


Este dispositivo de ms reciente aparicin en el mercado intenta servir de
soporte universal para el almacenamiento de informacin informtica y datos
multimedia, reemplazando al CD de audio, los soportes de vdeo juegos, cintas
de vdeo, disco lser de vdeo y CD-ROM.

El proceso de lectura es bsicamente el mismo que en el caso de los CD-


ROM, tiene las mismas dimensiones y es tambin de slo lectura. Las mayores
diferencias son una capacidad de almacenamiento y una velocidad de transfe-
rencia muy superiores. Tambin presenta formatos de grabacin distintos y la
utilizacin de las dos caras para almacenar informacin. El incremento de la
capacidad se basa en la reduccin del tamao de los pozos y el espaciado en-
tre pistas. Para conseguir una mayor resolucin en la deteccin se usa un lser
con una longitud de onda menor (6351650 nm), en comparacin con el Iser
infrarrojo de (780 nm) utilizado en el CD-ROM. Adems, existe la posibilidad
de que en una misma cara se siten dos capas de informacin separadas por un
material semi-reflectivo. El lector puede acceder a cada una de ellas focalizando
a diferentes profundidades.
Atendiendo al formato es oosible encontrar tres tioos de diswsitivos DVD:
DVD-video, DVD-audio y ~k-ROM. El primer y elkgundo t& fueron desa-
.
rrollados buscando un sowrte de video v audio de alta calidad res~ectivamente.
con especificaciones provenientes de la industria cinematogrica y discogrca.
Sin embargo, el tercer tipo fue impulsado por la industria informtica buscando
un formato ms rpido y de mayor capacidad que el CD-ROM. El DVD-ROM
en sus especiicacionesengloba al DVD-vdeo y al DVD-audio, siendo un lector
DVD-ROM capaz de leer todos los formatos, mientras que no sucede lo mismo
de forma contraria. Dentro de la familia DVD-ROM, es posible encontrar, al
igual que sucede con el CD-ROM, versiones grabables, una sola vez DVD-R
o mltiples veces DVD-RAM. Las caractersticas bsicas de cada uno de estos
formatos son:
El DVD-vdeo es capaz de almacenar unos 133 minutos de vdeo compn-
mido en MPEG-2 por cada cara, adems de 5 canales de sonido (Digital
DoUry Surmun).
El DVD-audio tiene un formato de m6sica en PCM (Pulse Code Modu-
lation) con 96 Kbz de frecuencia de muestre0 y 24 bits de resoluci6n
superando el actual CD de audio con 44.1 1rHz y 16 bits.
El DVD-ROM presenta las siguientes capacidades:
-DVD-5: 4.7 GB Una c d n a capa.
-DVD-9: 8.5 GB Dos caras/Dos capas.
-DVD-10: 9.4 GB Dos carasRTna capa.
-DVD-18: 17 GB Dos caraslDos capas.

El almacenamiento ptico presenta una serie de ventajas y desventajas fren-


te a las grabaciones magn6ticas. Dentro de las ventajas podemos destacar la
gran robustez, pues se trata de dispositivos que no se ven alterados por cam-
pos magnticos y la superficie de lectura est protegida por materiales plsticos
transparentes que evitan su deterioro. No presenta la degradaci6n de los discos
flexibles producida por el contacto con el cabezal, al ser un proceso de lectura
ptico. No se deteriora con la presencia de impurezas, ya que el cabezal no est
tan pr6ximo a la superficie como en el caso de los discos duros. Aunque estas
impurezas pueden provocar errores de lectura Entre las desventajas es posible
en<ontnir tambien una capacidad de almacenamiento y una velocidad de acceso
infixior a la de los discos duros magn6ticos.
@RA-MA CAPfTULO 1 l . ALMACENAMIENTO MASiVO 333

Las unidades de disco magneto-pticas leen y escriben la informacin sobre


el disco mediante una combinacin de principios pticos y magnticos. Utilizan
lser para leer, mientras que utilizan campos magnticos combinados con la ac-
cin del Iser para escribir la informacin. La combinacin de ambos principios
para escribir se realiza aplicando una cabeza magntica en una cara del disco y
-
simultneamente un Iser sobre la cara ovuesta. El material wsee sobre la su-
pericie dominios magnticos que se alinean verticalmente. El campo magntico
de los dominios del material decrece en intensidad con un aumento de la temve
ratura. Al alcanzar la temperatura del material un cierto nivel, ste pierde todas
sus propiedades magnticas. Esta temperatura es cercana a los 300' C y se de-
nomina temperatura de Curie. La utilizacin de un lser permite alcanzar esta
temperatura sobre una pequea rea del material. Este dominio desmagnetiza-
do durante el proceso de enfriamiento se ve afectado por un campo magntico
externo, que induce una nueva polarizacin del campo magntico del dominio.
De esta forma el Iser controla el tamao y la zona del material, mientras que el
campo externo controla la polaridad inducida. Una vez almacenada la informa-
cin, sta no se ver afectada por campos externos a temperatura ambiente. Un
esquema del proceso de escritura se muestra en la figura 11.14.

En la lectura se usa un Iser de menor potencia que hace que el material


no alcance temperaturas elevadas y no vare la magnetizacin. El haz del Iser
incide sobre el material y es reflejado. Esta luz reflejada tiene un ngulo de
polarizacin, modificado dependiendo de la direccin de la magnetizacin del
dominio. Este propiedad se denomina efecto Keer, y diferencia los dos posibles
ngulos de polarizacin que aparecen al reflejar la luz, en los dos tipos de sentido
de magnetizacin.

Estos discos presentan la ventaja de que pueden ser regrabados varios millo-
nes de veces, a diferencia de los discos pticos tradicionales, y alcanzan tiempos
de acceso inferiores a 25ms, con capacidades de hasta 5Gb con discos de tamao
5.25" y 640Mb para la serie de 3.5".
3% BSTRUCTURA DECOMPUTADORES Y PEN&IcaS @RAMA

Figura 11.14: Escritura de un dispositivo magneto-6ptico

11.8 CONCLUSIONES

Los dispositivos de aimacenamiento secundarios permiten a l m a n a r pro-


gramas y datos de forma no vol6til. Los dispositivos m8s comunes actuaimen-
te, utilizan mtodos pticos o magnticos para almacenar la informacin. Los
m6todos magnticos ms utilizados son los discos, tanto flexibles como duros, y
las cintas. Estos dispositivos se basan en deteccin de la orientacin del campo
magntico registrada sobre pequeas celdas de bit del material. Los dispositiios
pticos como los CD-ROM y DVD utilizan la reflexin de un haz de luz sobre el
disco para detectar la informacin. Los dispositivos ms utilizados actuaimente
como almacenamiento secundario son los discos duros, ya que presentan una
capacidad y velocidad de acceso mayores. Los dispositivos pticos, por otro
lado, presentan la ventaja de que son un mtodo ms robusto al no ser afectados
por campos magnticosextemos, y su tiempo de vida es mayor, por lo que sue-
len ser ampliamente utilizados para realizar copias de seguridad y como formato
para la dishbucin de software.

-
ORA-MA CAP~TULO11. ALMACENAMIENTO MASIVO 335

11.9 CUESTIONES

11.1 ,jQudproblema presenta la excesiva reduccidn del tamao de las celdas


& bit a la hora de leer la informacin magnJtica?

11.2 Que ventajas tienen los cdigos autoreloj?

113 Cod@ar mediante los diversos cdigos vistos en el captulo la secuencia


de 1's y O's: 101110010100.

11.4 iPara qusinte el formato a bajo nivel y a alto nivel de los discos magnticos?

115 Qu utilidadpresenrael mtodo de zonning en los discos duros?

11.6 Enumerar las ventajas y desventajas de usar cintas magnticas como


mtodo de almacemiento secundario.

11.7 Por qu la velocidad de rotacin en los CD-ROM es variable?

11.8 Enumerar las ventajas y desventajas de los discos pticos frente a los
magnticos.

11.9 Para qu utilizan los discos magneto-dpticos el ldser en la grabacidn de


dotos?

Computer Peripherais. Barry M. Cook, Neil H. White. 3" ed. Edward


Amold. ISBN 0-340-60658-4. 1995.
The Indispensable PC Hardware Book. Hans-Peter Messmer: 3" ed.
Addison Wesley Longman, Inc. 1997. ISBN 0-201-40399-4.
CAPTULO12

ARQUITECTURAS AVANZADAS

En los captulos anteriores se ha descrito la estructura de los computadores


y perifricos ms utilizados. Las tecnologas implicadas en el diseo de estos
sistemas van mejorando muy rpidamente y h a ~ e nobsoletos los computado-
res y penfricos en plazos muy cortos. Sin embargo, la estructura bsica del
computador personal sigue el modelo de mquina Von Neumann de bsqueda y
ejecucin secuencial de instrucciones.

A partir del modelo bsico Von Neumann se pueden realizar modificaciones


que, siguiendo bsicamente el modelo de computacin de una mquina secuen-
cid, mejoren el rendimiento significativamente. La mejora ms significativa
consiste en dividir la ejecucin de instrucciones en etapas ms sencillas que se
ejecutan de forma encadenada. De esta manera se construyen los cauces seg-
mentados, aproximacin similar a una cadena de montaje, donde la ejecucin
de una instruccin est dividida en etapas.

Es senciilo darse cuenta de que el modelo de bsqueda y ejecucin secuen-


cial de instrucciones Von Neumann puede ser poco eficiente, a pesar de la uti-
lizacin de los cauces segmentados. Hay tareas con un inherente grado de pa-
ralelismo que podran realizarse ms rpidamente. De hecho las CPUs de los
computadores personales modernos incorporan algn grado de paralelismo aun-
que sigan globalmente el esquema de la mquina Von Neumann original.
338 ESTRUCTURADE COMPUTADOR~SY PERI&RICOS m-MA

La fomia ms clara de implementar paralelismo consiste en que varios ele-


mentos de proceso (tambikn llamados EPs) efecten simultneamente las tareas
que inicialmente realizaba un solo procesador. Inicialmente cabe pensar que se
acelerar la ejecucin de las instrucciones, ya que si con un procesador se rea-
lizan X clculos por unidad de tiempo, con 2 procesadores o EPs se realizarn
2X clculos. Este razonamiento es claramente falso, ya que las operaciones
en paralelo con los datos no son siempre independientes. Hay veces en que la
ejecucin secuencial es necesaria al existir una dependencia de datos. De la
misma manera puede ocurrir que en funcin del resultado de ciertas operacio-
nes se tenga que ejecutar una parte del cdigo u otra, con lo que no es posible
predecir qu partes del programa se van a ejecutar. Adicionalmente el resultado
de las diversas operaciones debe comunicarse entre los diversos EPs, lo cual va
a consumir un tiempo que depender de la distribucin de los EPs en una red de
interconexi6i1, adems de los retrasos introducidos por la propia red. La mejora
en el rendimiento no es transparente al usuario, ya que ste debe conocer las
caractersticas de la red para paralelizar el cdigo de manera eficiente.

Por ltimo cabe destacar c6mo la aproximacin de simplemente replicnu los


elementos de proceso no es la ms adecuada. Ms EPs significa m6s coste y el
rendimiento no tiene por qu aumentar de manera proporcional a la inversin
realizada.

En este captulo se van a presentar computadores que, utilizando de algu-


na manera apkximaciones son ms eficientGque la simple mqu-&a
Von Neumann. En primer lugar se presentar la segmentacin como una apro-
ximacin que, siguiendo la misma filoso~ade bsqueda y ejecucin secuencia1
que la mquina Von Neumann, aumenta el numero de instrucciones ejecutadas
por segundo. A continuacin se introducir una clasicacin de los computado-
res que utilizan las denominadas Arqmitectwas Avanzadas.Posteriormente se
realizar una descripcin de las caractehticas principales de estas arquitecturas
y se introducir el concepto de aceleracin o speedup, concepto 6til para evaluar
el rendimiento en computadores avanzados.
ORA-MA CAP~TULO12. A R O L J I T E ~ R A SAVANZADAS 339

La segmentacin consiste en dividir la ejecucin de una tarea en etapas. De


esta manera, una tarea se completa cuando se han realizado todas las etapas en
las que se subdvide de manera ordenada.

Cuando se segmenta
- una tarea (es decir, se divide una tarea en etapas) se
realiza un cauce segmentado. Es importante que cada etapa tenga capacidad de
almacenamientode los tesultados parciales producidos en ella. Con estos requi-
sitos el cauce segmentado puede sSimultne&ente realizar varias tareas, ya que
cada etapa podr funcionar en paralelo almacenando sus resultados parciales.
Tras la finalizacin de cada etapa se transmitir el resultado a la etapa siguiente
para as poder completar la tarea.

Existen varios tipos de segmentacin. Cuando la ejecuci6n de instniccio-


nes se divide en diversas etapas se denomina segmentacin de instrucciones
o cauce segmentado de instrucciones. De manera anloga hay operaciones
aritmticas que son divisibles en etapas, almacenando el resultado de las ope-
raciones parciales. Cuando se segmentan las unidades funcionales de la unidad
aritmetica, se realiza una segmentacin aritmtica o cauce segmentado de
datos.

La ejecucin de cada instniccin se puede dividir en una serie de etapas es-


pecializadas, de manera que la suma de la ejecucin de todas las etapas da como
resultado la ejecucin de la instruccin. La instruccin va atravesando el cau-
ce de instrucciones y en cada etapa se van haciendo las operaciones necesarias.
Claramente no todas las instrucciones utilizan todas las etapas, pero en cualquier
caso todas las instrucciones atraviesan el cauce. Si una instniccin no necesita
realizar las operaciones implementadas en una etapa, simplemente atraviesa esa
etapa sin realizarse ninguna operacin.

En una mquina Von Neumann tradicional, hasta que no se termina de forma


completa la ejecucin de una instruccin no se inicia la ejecucin de la sfguiente.
Un ejemplo de procesador con diversas etapas se muestra en la figura 12.1. En la
figura 12.1 (A) se observa la situacin de la instruccin 1 2 ea T=7 y en la figura
12.1 (E)se muestra la evolucin temporal de las instrucciones Il y 12 por las
diversas etapas del procesador secuencial. En este caso slo se est ejecutando
340 ESTRUCTRA DE COMPUTADORES Y PERIPRICOS ORA-MA

una instrucci6n cada vez en el procesador, y hasta que no se acaba de ejecutar


de forma completa una instrucci6n. no se ejecuta la siguiente.

. ....,.....
3 pj
~1n4s 1
w3 c o i % ~ > ~
0-
-
I
-12-, _ _ , a _ _ ,
..... ....
.........

1 2 3 4 5 6 7 8
Etapas Tiempo

Figura 12.1: (A) Esquema de un procesador secuencia1 (B) Evolucidn teillpoml

En el caso de que las etapas estn bien denidas y se pueda almacenar infor-
macin entre ellas, se pueden empezar otras instrucciones sin haber terminado
de ejecutar una instmcci6n. De hecho. en cada etapa se podra estar ejecutando
una instruccin en el caso ideal, llegndose a la mxima paralekaci6n posible.
Esta arquitectura es la que se conoce como cauce segmentado de instrucciones,
y se utiliza de forma masiva en cualquier procesador moderno. Un ejemplo de
esta arquitectura se puede observar en la figura 12.2 (A), y la evolucin temporal
a la que dara paso en la figura 12.2 (B).

Etapas
Procesador Segmentado

1 2 3 4 5 8 7 8
Tiempo
Etapas

Figura 12.2: (A) Cauce segmntado cle instrucciones (B) Evoluci6n temporal

De hecho puede darse el caso de que coexistan vanos cauces especializados


en el mismo procesador (por ejemplo, operaciones enteras o en coma flotante).
Una vez que se decodifica la instmcci6n en funci6n del tipo de instruccin se
enva al cauce adecuado.
@RAMA CAP~TULO12. ARQWTECTURASAVANZADAS 341

La divisin en etapas de la unidad de ejecucin de instrucciones puede acele-


rar de forma global la ejecucin de instrucciones. Los problemas que plantea la
segmentacin de instrucciones son fcilmente identificables. Puede ocurrir que
en un programa una instruccin en una etapa necesite datos todava no dispo-
nibles, ya que la instruccin anterior no los ha generado todava (no han salido
del cauce). Esto ocurrira, por ejemplo, en la figura 12.2 si la instruccin 13 ne-
cesitara datos modificados por la instruccin 12. Este problema no existe con la
aproximacin secuencial de la figura 12.1. Para evitar este problema en los cau-
ces segmentados deben existir mecanismos que avancen los datos entre etapas y
detecten este tipo de inconsistencias, paralizando el cauce si es necesario. Este
tipo de problemas en el diseo de cauces segmentados se conocen como riesgos
y se pueden agrupar en 3 tipos.

1. Riesgo por dependencia de datos: Es el tipo de dependencia de datos


descrito anteriormente. Aparece cuando los datos necesarios para ejecu-
tar una instruccin dependen de una instruccin anterior. De esta manera,
ambas instrucciones podran estar en el cauce de manera solapada y la
segunda instruccin tomar el valor de los datos antes de que fueran modi-
ficados por la primera instruccin. Es necesario por tanto detener el cauce
hasta que los datos correctos estn disponibles, adelantndolos intema-
mente entre etapas.
2. Riesgo estructural: Surge cuando es necesaria una misma unidad fun-
cional del cauce para ejecutar dos instrucciones distintas. Hasta que no
se libere la unidad, acabando de ejecutar una etapa de la instruccin, no
es posible que la ocupe otra instruccin. El cauce se detiene hasta que
desaparece este riesgo. Un ejemplo sera una CPU con una sola unidad de
divisin en coma flotante, operacin costosa que requiere ms ciclos de
reloj que otras etapas. Las instrucciones atravesarn el cauce segmentado
y en el caso de que se tenga que realizar una divisin, sta ser enviada a
la unidad especializada de divisin en coma flotante. Si las instrucciones
que van a continuacin no dependen del resultado de la divisin stas se
podrn ejecutar en paralelo en otras unidades del cauce segmentado, fina-
lizando incluso antes que la divisin. En el caso de que las instrucciones
posteriores sean tambin divisiones en punto flotante, el cauce tambin
se paralizar, no porque haya dependencia de datos, sino porque hay una
sola unidad de divisin en punto flotante y 6sta est ocupada.
342 BSTRUCNRA DE COMPUTADORES Y PWUIJ~RICOS ORA-MA

3. Riesgo de control: Estos riesgos aparecen cuanda se va a ejecutar una


instruccin que modifica el contador de programa (por ejemplo, en las
instrucciones de salto). Puede ocurrir que no se sepa Ia direccin del sal-
to hasta que no se ejecuten completamente instrucciones contenidas en el
cauce. De esta manera, cuando entra en el cauce una instruccin de salto,
no se permite que entren ms instrucciones o se ejecutan condicionalmen-
te hasta que se comprueba si el salto ha sido correcto. Existen CPUs que
disponen de unidades de prediccin de saltos que aumentan el rendimien-
to evitando las detenciones en un alto porcentaje de casos.

Es posible tambikn clasificar las arquitecturas segmentadas en funcin de


si pueden realizar slo una o ms de una operaci6n distinta. En el caso de
que el cauce segmentado slo realice una taka cada vez se denomina cauce
esitico. Si -por el contrario se -puede realizar ms de una tarea simultneamente
se denomina cauce dinmico.Este segundo tipo de cauce segmentado cambia
su funcionalidad cuando se puede seleccionar el camino de los datos dentro del
cauce. La operacin realizada sobre los datos ser6 distinta, dependiendo de las
etapas que hayan atravesado.

Un ejemplo de este tipo de cauces podra ser un cauce de 3 etapas A, B


y C. Si una dato atraviesa las etapas A, B y C se realiza una operacin sobre
ellos. Si por el contrario los datos pasan de la etapa A a la C directamente, la
transformacin inal ser distinta al no haber pasado por la etapa B. En este caso
los datos a los que se aplica la transformacin A-B-C tardan ms en salir del
cauce que los datos transformados por las etapas A-C.

En el caso de los cauces dinmicos se va a disponer de datos que no van


a recorrer de forma completa y secuencia1 el cauce segmentado. Es por tanto
importante evitar que se produzca la confluencia en una misma etapa de datos
que no han atravesado las mismas etapas, y por tanto no van a la misma veloci-
dad, caso denominado coiisin. El diseo de la unidad de control de los cauces
segmentados debe garantizar que se evitan las colisiones entre diferentes datos.

La eficiencia de un cauce segmentado es transparente al usuario, el cual


no debe utilizat ninguna k5cnica de programacin especial de1 procesador. El
compilador se encargar6 de generar un cdigo eficiente que produzca la menor
cantidad posible de detenciones en el cauce segmentado debido a los riesgos.
ORA-MA CAP~TULO12. ARQUITECTURAS AVANZADAS 343

12.3 CLASIFICACINDE LAS ARQUITECTURAS


AVANZADAS

La segmentacin hace aumentar el rendimiento de los computadores, aun-


que en e1 fondo se sigue la misma estrategia de bsqueda/ejecucin secuencial.
Los computadores modernos de grandes prestaciones utilizan diversas tcnicas
de procesamiento paralelo, lo cual ha dado lugar a una clasificacin de las es-
trategias seguidas en estos computadores. La $mera clasificacin ampliamente
aceptada fue la clasificacin de Flynn, que ha sido utilizada durante ms de 30
aos. Sin embargo, el rpido de&roll de las tecnologas ha hecho borrosas
- -

las fronteras entre los grupos definidos por Flynn. De la misma manera alguno
de los gmpos de la clasificacin de Flynn no est claramente definido y varios
autores discrepan sobre la catalogacin de un grupo de mquinas en una clase u
otra.

Estas dificultades para encajar algunas de las mquinas existentes en la cla-


sificacin de Flynn ha propiciado la aparicin de otras clasificaciones. Un ejem-
plo es la presentada en Zargham en su libro Computer Architecture. Single and
Parallel Systems.

12.3.1 Clasificacin de Flynn


Las ideas presentadas en los captulos anteriores reflejan el modelo ms sim-
ple de arquitectura de un computador. En todo computador se puede distinguir
entre el flujo de instrucciones, que es la secuencia de instrucciones que va eje-
cutando un procesador, y el flujo de datos a procesar.

En 1966 M. J. Flynn defini una clasificacin de las arquitecturas de los


computadores en funcin de cmo se procesaba el flujo de instrucciones y el
flujo de datos:

m Arquitectura SlSD (Single Instruction Single Data): Son las arquitecturas


en las que hay un solo flujo de instrucciones que se van ejecutando de
manera secuencial, y van procesando un nico flujo de datos tal como se
muestra en la figura 12.3 a). La mquina Von Neumann puede conside-
rarse perteneciente a este grupo.
Arquitectura SIMD (Single Instrucdon Multiple Data): En este caso el
flujo de instruccioneses nico, existiendo varios fluios de datos. Un eiem-
plide esta arquitectura puede ser el de las mquinas matriciales en las que
hay una sola unidad de control Y mlti~lesunidades de datos, tal como se
muestra en la figura 12.3 b). Todas l k unidades de proceso ejecutan la
misma instruccin, siendo el flujo de datos mltiple.
A r q u i W a MISD (Multiple Znrtruction Single Data): En esta arquitec-
tura se realizan mltiples instrucciones simultneamente sobre el mismo
flujo de datos, tal como se muestra en la figura 12.3 c). Varios autores con-
s i d m como impracticable una mquina de este tipo. Sin embargo, otros
autores incluyen en este grupo las mquinas con encauzamiento de datos,
como son las vectoriales y las sistlicas, mquinas que se describirn en
la clasificacin de Zargham.
Arquitectura MIMD (Multiple Instruction Multiple Data): Es el caso de
un sistema con un flujo de instrucciones y datos mltiple, tal como se
muestra en la figura 12.3 d). Ejemplo de esta arquitectura son los multi-
procesadores, donde cada procesador tiene una fuente de instrucciones y
una fuente de datos. La comunicacin entre estos elementos de proceso
y el flujo de datos dependd de la topologa de interconexin entre los
mismos.

a) SlSD b) SIMD C) MlSD

Figum 12.3: Clasiffcacidnde Flynn

12.3.2 Clasificacin de Zargham


La clasificacin de Hynn ha demostrado ser til durante ms de 30 aos. A
pesar de esto, los r4pidos avances en tecnologa de computadores han dado lugar
ORA-MA CAPfl'UUll2. ARQ- AVANZADAS 345

a arquitecturas que no pueden ser clasificadas de una manera clara en ninguno


de los grupos de Fiynn. Zargham propone una clasificacin de las arquitecturas
paralelas ms fina, heredada de los grupos de Flynn. Algunos de estos grupos
de mquinas se describirn con mds detalle en las siguientes secciones.

Mnltiprocesadom: Un multiprocesador es una mquina paralela


formada por varios mimprocesadores que comparten memoria y
otros recursos. La figura 12.4 a) muestra un esquema de la estructura
de un multiprocesador, que se describ wn m& detalle en la seccin
12.4.
Muiticomputadores: La estructura es similar a la de los multipro-
cesadores, salvo que en este caso la memoria es local a cada proce-
sador, tal como se muestra en la figura 12.4 b). Se describe este tipo
de mquinas con ms detalle en la seccin 12.4.
M u l t i - m u i t i p ~ o m :Esta arquitectura consiste en un multi-
computador en el que cada nodo es un multiprocesador.

I
Red de interconexin
I

Memoria
-----
I I
1 - - - - - J

a) Multiprocesador b) Multicomputador

Figum 12.4: Esquema de un Multipmcesador y un Multicomputador

Mquinas de flujo de datos: En este tipo de mquinas una instruc-


ci6n se ejecuta cuando los datos necesarios para la instrucci6n estn
listos. La disponibilidad de los datos se consigue canalizandolos re-
sultados de la ejecucin de instruccionesanteriores hacia las instruc-
ciones que esperan su ejecucin. Las instnicciones de una mquina
de flujo de datos son autocontenidas, ya que ellas mismas contienen
las variables y operandos en vez de direccionar una memoria global.
Este comportamiento permite un alto grado de concurrencia, ya que
la ejecucin de una instrucci6n no afecta a otras que estbn listas para
ser ejecutadas. La figura 12.5 muestra la estructura gennca de una
mquina de flujo de datos. Las instrucciones y los datos se alma-
cenan de forma conjunta en memoria. Cuando una inst~cci6nesta
lista para ser ejecutada se enva a un EP.Cuando esta instrucci6n se
ha ejecutado los resultados se distribuyen hacia las instruccionesque
los necesitan para que puedan ser ejecutadas.

Red de distribucl6n Memoria de Red de arbitraje


Instnrccl6n+ Datos

Figura 12.5: Esquema de una mquina deflujo & datos

Procesadores rnatridalea: La figura 12.6 representa la estructura


gen6rica de un urocesador matricial. Estos procesadores estn for-
mados por un pkesador escalar (procesado; secuencial) y un con-
iunto de vrocesadores idgnticos dotados con memoria local. Cuando
unidad de control decodiica la instrucci6n. la enva al procesador
escalar o bien a todos los procesadores simultbeamente, dependien-
do del tipo de instruccin. Si la instruccin es mahcial se procesan
mltiples datos simultneamente.
C3RA-MA cAPfTUL0 12. AROUTWXLRAS AVANZADAS 347

instrucciones 1 linstruccion7
vectoriaies
47$ J,

Figura 12.6: Esquema de un pmcesador marricial

3. Arquitecturas MISD
m Procesadores vectoriales: Un procesador vectorial es una mquina
optimizada para la ejecucin de instrucciones que involucren la uti-
lizacin de vectores. Normaimente consta de una unidad escalar
segmentada ms una unidad vectorial segmentada que optimiza el
tiempo de ejecucin en el caso de operaciones sistemticas con vec-
tores. La unidad de control decodifica las instrucciones y las enva al
cauce escalar o vectorial en funci6n del tipo de instnicci6n. La figura
12.7 muestra la estructura genrica de un procesador vectorial.

Instrucciones
escalares
1 1 instrucciones
\1 'vectoriaies
4
J

lb

Figura 12.7: Esquema de un pmcesador vectorial

Matrices sistlicas: En este tipo de arquitectura se tiene un nmero


de EPs dispuestos en un cauce segmentado de datos (por ejemplo,
lineal o bidimensional, tal como se muestra en la figura 12.8). Cada
EP dispone de una pequefia capacidad de almacenamiento y habi-
tualmente s610 se comunica con sus vecinos, realizando todos los
EPs la misma operaci6n simuitlieamente. S610 los EPs de los bor-
des de la matriz pueden realizar funciones distintas de ErS. LQSda-
tos fluyen de forma sncrona a travs del cauce, obteri6ndose los
resultados inales cuando los datos han atravesado completamente el
cauce. Estas arquitectum son extremadamente regulares y adecua-
das para su implementaci6n en circuitos de muy alta escala de inte-
graci6n. Son especialmente tiles en problemas muy especializados
que involucren vectoFes, matrices y ciilculos de manera recursiva. Su
principal desventaja es su falta de flexibilidad.

Figum 12.8: Matriz sist6lica bidimensional

e Mquinas MIMD-SIMDy MIMD-MISD: El paralelismo tiene dos


- -
vertientes bsicas: varalelismo de datos v ~aralelismo
* de instruccio-
nes. Es posible realizar mquinas que en primer lugar utilicen el
paralelismo de instrucciones tpico de un mquina MIMD como un
multiprocesador. A continuaci6n el resultado puede ser la entrada de
una matriz SIMD o de una arquitectura segmentada MISD que uti-
licen el paralelismo de datos. En cualquier caso estas son mquinas
catalogadas como hibridas al combinar diversos tipos de procesa-
miento paralelo.
5. Arquikciuras especiales
Redes neuronales: Este tipo de arquitecturas, ttiles para problemas
especiales, se compone de un gran nmero de EPs conectados for-
mando una red. El nombre proviene de la similitud con las redes
neuronales biolgicas. Todas las entradas de una neurona o EP se
multiplican por un coeficiente y se suman, para determinar de es-
ta manera el umbral de activacin de las salidas de la neurona. El
valor de los coeficientes puede variar de manera adaptativa y fijarse
con un proceso de aprendizaje de la red. En este caso el elemen-
to ms importante no es el EP o neurona, sino la forma de la red
de interconexin. Una aplicacin tpica de las redes nemnales es
el reconocimiento de patrones. La red fija sus coeficientes identi-
ficando una serie de patrones ya definidos. Al final del proceso de
aprendizaje la red deber clasifiw patrones para los que no ha sido
previamente preparada. La figura 12.9 muestra un esquema de una
red neuronal.

Figura 12.9: Diagrama de una red neurona1

12.4 MULTIPROCESADORES Y MULTICOMPUTADORES

En las arquitecturas definidas por Fiynn como MIMD cada pmesador ejecu-
ta su propio flujo de instniccionessobre su propio flujo de datos. La arquitectura
multipmesador consiste en dotar al computador de varios procesadores, com-
partiendo &tos la memoria y recursos del sistema. El programador debe dividir
las tareas de forma eficiente a lo largo de la red de procesadores para aprovechar
al mximo el paralelismo. Anlogamente en los multicomputadoresla tarea glo-
bal se ha dividido entre varios computadores conectados a travks de una red de
interconexin. Las ventajas obtenidas del paralelismo de la divisin del tiem-
po de proceso entre varios procesadores o computadores pueden perderse en la
comunicacin a travs de la red de interconexin. Es w r tanto necesario aue
la red de interconexin entre los elementos que milizan-los clculos no degrade
las prestaciones globales del multiprocesador o multicomputador.

12.4.1 Redes de interconexin


Una red de interconexin entre diversos nodos consta de enlaces (fsicamente
cables o canales) y conmutadores que conectan unas salidas con unas entradas.
Los nodos de la red pueden ser procesadores, mdulos de memoria, unidades
de Entrada~Salida,etc. Se pueden clasificar las topologas de red en dos gm-
pos: estticas y dinmicas. Las redes esthticas mantienen unas conexiones fijas
entre nodos, mientras que las dinmicas pueden reconfigurar la conexin entre
los nodos. Un aspecto interesante en las redes de interconexin es el nmero
de conexiones de cada nodo de proceso, lo cual determina la capacidad de co-
municacin de un nodo con sus vecinos. Las redes con una gran complejidad y
potencia de clculo sern las que tengan una gnin conectividad entre sus nodos.
Estas redes por el contrario presentarn como desventaja la mayor dificultad pa-
ra encaminar o rutar los datos a travs de la red y el mayor coste de fabricacin.

Redes estticas

Las redes estticas se pueden clasificar a su vez en funcin del nmero de


enlaces bidireccionales que parten de un nodo, obtenindose los siguientes gru-
pos:
1. Cuando los nodos tienen un solo enlace se tiene un estnictura de bus com-
partido, tal como se ha descrito en el capitulo 6. Es la red de interconexin
ms econmica y en la que se pueden aadir y suprimir elementos con ms
facilidad. La desventaja fundamental de este tipo de red es que el propio
bus es un cuello de botella en las comunicaciones. Adicionalmente, se
necesita un arbitraje de bus para determinar entre qu nodos se realizan
- las transacciones. Este tipo de redes se muestra en la figura 12.10 a).
@RA-MA c A P ~ ~ U L12.
O ARO- AVANZADAS 351

2. Las redes lineales y los aniiios son ejemplos de redes de interconexin


con dos enlaces por nodo, tal como se muestra en la figura 12.10 b) y
c). Las redes lineales son estructuras simples que tienen como principal
desventaja que la comunicaci6n entre el primer y ltimo elemento puede
ser excesivamente lenta. Esta comunicacin puede ser m8s r6pida con un
anillo bidireccional.

...
a) Bus compartido b) Red lineal c) Anillo

Figura 12.10: Topologrr de red estticas de 1 y 2 enlaces por nodo

3. Un ejemplo de red de interconexin con 3 enlaces por nodo es el rbol


binario que se muestra en la figura 12.11 a). Desde cada nodo se puede
acceder a 3 nodos, salvo el nodo superior, denominado raz, desde el cual
s610 se puede acceder a 2 nodos. Los dos nodos inferiores se denominan
hiJos, y los nodos superiores padres. Este tipo de redes de intercone-
xin tiene como ventajas que son fcilmente expandibles y que los datos
pueden ser encaminados con facilidad de un nodo origen a su destino,
evitando transmisiones innecesarias.
4. Una red de interconexi6ncon 4 enlaces por nodo es la malla bidimensional
de i x j nodos que se muestra en la figura 12.11 b). En esta topologa es
tambikn sencillo transmitir datos entre nodos evitando transmisiones inne-
c e d a s . Las malias bidimensionales son especialmente adecuadas para
problemas que requieren clculos en una rejilla de puntos, como puede
ser la resolucin de ecuaciones diferenciales. Un caso especial de rna-
llas bidimensionales son aquellas en las que los extremos tambin estn
conectados con el extremo opuesto. De esta manera se constniyen las co-
nocidas como redes de illiac, redes donde todos los nodos tienen 4 enlaces
y por tanto no hay extremos.
352 ESTRUCTRA DE COMPUTADORES Y ~ C O S (ARA-MA

J. Otro tipo de redes son las genricas redes n-cubos tambikn conocidas co-
mo hipercubos de orden n. En un hipercubo de orden n cada nodo tiene n
enlaces que lo comunican con n nodos vecinos. Si se utilizan n bits para
identificar a cada nodo, entonces cada nodo se comunicar con aquellos
nodos cuyo identificador se diferencie en un solo bit. De esta manera es
posible un encaminado eficiente de la informacin manteniendo redes de
gran potencia y complejidad. La figura 12.11 c) muestra la topologa de
un hipercubo de orden 3.

b) Malla bidimensional c) Hipercubo de orden 3

Figura 12.11: Topologlas de red estticas de 3 y ms enlaces por nodo

Redes dinmicas

En este tipo de redes, adems de los enlaces y los nodos, aparecen los con-
mutadores de interconexin como elementos que deinen la topologa de la red.
Los conmutadores de interconexin son unos circuitos que, en funcin de unas
seales de control, conectan un conjunto de salidas con un conjunto de entra-
das. De esta manera los enlaces entre nodos son reconigurables simplemente
cambiando las seales de control del conmutador de interconexin.

Dentro de la redes de interconexi6n dinmicas se puede realizar una primera


clasificaci6n en tres gmpos:

1. Red de barcas txuzmhw En este tipo de redes los conmutadores de in-


terconexi6n pueden conectar cualquier entrada con cualquier salida, de
esta manera todos los nodos pueden conectarse entre si. La figura 12.12
a) muestra el tipo de conmutadores de interconexin utilizados en estas re-
des. Se puede realizar un esquema de este tipo de redes como un nmero
n & enlaces verticales cruzados con un nmero n de enlaces horizonta-
les. Con esta configuracin se obtiene un nmero de na puntos de cruce,
estableciendo la conexin entre dos nodos eligiendoel punto de cruce ade-
cuado como conectado. Este tipo de redes es ideal cuando n es pequeo,
siendo excesivamente complejas cuando n es grande.
2. Red Monoetapa: Tambien conectan cualquier entrada con cualquier sa-
lida, pero para ello es necesario que los algoritmos de rutado dirijan el
flujo de datos atravesando la red ms de una vez. esta es ia forma en que
se pueden establecer las conexiones adecuadas en los conmutadores de
conexin. La figura 12.12 b) muestra este tipo de redes, ms econmicas
que las de barras cruzadas pero con menos prestaciones.
3. Red Multietapa: Las redes multietapa disponen de varias etapas de con-
mutadores que pueden ser reconfigurados dinmicamente, estando conec-
tadas por redes de interconexin fijas. Hay muchos patrones distintos de
interconexin entre etapas y las prestaciones de estas redes aumentan con
la complejidad de los conmutadores. La figura 12.12 c) muestra la arqui-
tectura gen6rica de este tipo de redes.

Conmutadores
a) Red de barras cruzadas b) Red monoetapa c) Red multietapa

Figura 12.12: Topologsde red dindmicas

Una forma de abotdar la realizacin de tareas de forma paralela es mediante


la utilizacin de los multiprocesadores. Una de las opciones posibles consiste
354 ESTRUCTURA DE COMPIJTAWRESY PElU&ICOS ORA-MA

en que varios procesadores ejecuten diversas partes de la tarea global en para-


lelo, compartiendo una memoria global. Si todos los procesadores trabajan en
paralelo de forma simultnea, la ejecucin de la tarea se acelerd lo mximo po-
sible. Claramente esto no es siempre posible debido a las dependencias de datos
y la secuencialidad inherente de muchas tareas. Habituaimente el programador
describir el programa en un lenguaje que permita directivas de compilacin
paralelas. El compilador se encargar de distribuir la carga de tareas a cada pro-
cesador y optimizar la comunicacin entre ellos. Si todos los p e s a d o r e s son
iguales se dice que el sistema es homogneo. En caso de que haya varios tipos
de pesadores se dice que el sistema es heterogneo.

En funcin de la intemlacin que exista entre los procesadores compartien-


do recursos, o nivel de acoplamiento,se pueden definir dos clases de sistemas
multiprocesador.

1. Acoplamientodbil: Se comparten pocos recursos adems de la memoria


del sistema. Cada procesador tiene una memoria local accesible por el
resto de procesadores, tal como muestra la figura 12.13 a). El tiempo
de acceso para la memoria local ser mucho menor que para el resto de
memoria distribuida por el resto de procesadores.
2. Acoplamiento fuerte: La memoria compartida no es local a los procesa-
dores y se encuentra accesible a trav6s de la red de interconexin. Todos
los pr&esadores del sistema pueden utilizar sus recursos y wdos los pro-
cesadores acceden de la misma manera. En la figura 12.13 b) se muestra
la arquitectura de un sistema m~lti~rocesador fu&ente acoplado.

En la prctica el nivel de prestaciones deseado complica las exigencias para


. .
la comunicacin entre los ~rocesadms.Cuando se tienen muchos ~rocesadores
rpidos compitiendo por acceder a la memoria comn a travs del bus, los con-
fiictos pueden degradar seriamente el sistema. Es por esto por lo que se les suele
dotar de una memoria local rpida o cache, apareciendo entonces problemas de
coherencia de datos entre las diversas copias de datos en las caches de los pro-
cesadores. Si un procesador modifica un dato en su propia cache las copias del
mismo dato existentes en el resto de caches ya no sern vlidas. Para solucio-
nar estos conictos el sistema debe estar dotado con un protocolo de coherencia
de zaches que garantice la integridad de los datos. Algnnas veces la resolucin
de este problema se aborda por software, mediante compiladores que eviten la
@RAMA 12. ARQUITECTURAS AVANZADAS 355
~~pflUI.0

MEMORIA COMPARTIDA
- J L Y -

1 Red de interconexin 1
II
Red de interconexi6n MEMORIA COMPARTIDA

Figura 12.13: Multiprocesador a) dkbilmente acoplado y b ) fuertemente aco-


plado

. -
incoherencia de datos comuartidos entre caches. Si embargo la mavora de las
veces hay mecanismos hardware que garantizan la coherencia de caches que do-
tan de total transuarencia al software. Los diversos urotocolos de coherencia de
caches se basan en dos metodologas bhsicas:

1. Protocolos de sondeo. Se basan en que cada procesador espa las tran-


sacciones que realiza el resto de procesadores entre memoria y las caches
locales. De esta manera cada procesador observa las transacciones de los
dems que podran introducir incoherencia con su propia cache e invali-
da sus copias si es necesario. Este tipo de protocolos es adecuado en los
sistemas multiprocesador basados en bus con un solo nivel de jerarqua.
2. Protocolos basados en directorio. En el caso de que la red de interco-
nexin sea ms compleja que un solo bus o mantenga una jerarqua de
buses, es complicado que todos los procesadores se espen mutuamente
cuando se realizan transacciones de memoria. En este caso la mejor solu-
cin es crear un directorio comn donde se guarda la validez de las lneas
de cache de todos los procesadores.

A partir de los algoritmos tpicos de coherencia de cache en monoprocesado-


res (write-through o write-back) se heredan algoritmos similares para multipro-
cesadores, tanto en protocolos basados en sondeo como en protocolos basados
en directorio. En cualquier caso existen muchas aproximaciones distintas cuyo
rendimiento es ms ptimo dependiendo del nmero de procesadores y del tipo
de la memoria cache de &tos.
Los multicomputado~esson redes de computadores en los que cada ele-
mento de proceso tiene su propio espacio de memoria que no resulta accesible
por otros procesadores. El motivo principal para el desarrollo de multiwmputa-
dores es el de superar las limitaciones en la escalabilidad de los muitiprocesado-
res. Estas limitaciones se deben a que en sistemas multiprocesador basados en
bus el rendimiento se puede degradar
- rpidamente
. si se aumenta el nmero de
procesadores debido a que aumenta la competencia por usar el bus y ste puede
no satisfacer las nuevas necesidades de ancho de banda Para sistemas multipro-
cesadores con un nmero grande de procesadores sera necesaria una t o p o ~ g i a
de red ms compleja, lo cual dificultarla escalabiidad del sistema

El hecho de que en un multicomputador cada procesador disponga de sus


propios recursos y memoria hace que adquiera la entidad de computador, de ah
el nombre de multiconrputador. De nuevo si los procesadores de los computa-
dores son iguales el sistema se dice que es homogneo, y si no lo son se dice
que es heterogneo.

Un elemento clave en la definicin de un multicomputadores la red de inter-


conexin entre los computadores o la topologa de red. Cada computador tendr
un nmero de enlaces, formando una red de interconexin, como las descritas
en la seccin 12.4.1. Muchas redes distintas han sido utilizadas en multicom-
putadores, dependiendo la eficiencia de la red del nimero de computadores y
de la tarea desempeada (necesidades de comunicacin entre procesos). Al no
compartirse el espacio de memoria la comunicacin entre procesos se arbitra
mediante tcnicas de paso de mensajes.

125 EL RENDIMIENTO
Las palabras rendimiento y mejora han sido utilizadas hasta ahora de una
manera bastante intuitiva en el presente texto, permitiendo hacer comparaciones
de sistemas paralelos entre s o entre estos sistemas y la mquina Von Neumann.
Para estos conceptos existen unas definiciones matemticas que permiten com-
parar computadoresentre s sin ambigtiedades. Una de las medidas consideradas
ms populares, como los MIPS definidos en la seccin 2.10.1, no son en reali-
dad fiables de las prestaciones de un computador. En esta seccin se introducen
algunas ideas que van a ser tiles al estudiante para realizar comparacionesentre
computadores.

12.5.1 Sistemas con m solo procesador


En procesadores secuenciales se define el rendimiento a partir del tiempo
de ejecuci6n de un programa en segundos. De esta forma el ordenador que
realiza un programa en poco tiempo tiene un alto rendimiento y a la inversa.
El rendimiento R, para la tarea X que tiene un tiempo de ejecuci6n T, vendri
definido por:

El rendimiento en la ejecuci6n de un programa en un cierto computador se


medir6 en S-l.

Otro parmetro interesante para medir la velocidad de un computador se-


cuencial puede ser la velocidad del reloj del procesador expresada como la du-
racin del ciclo en segundos (CLK). De esta manera el tiempo de CPU para un
programa (ScPu) podra expresarse en funcin de la duraci6n del ciclo CLK y
del nmero de ciclos de un programa N:

TCpO= CLK . N

Aniogamente es posible expresar la misma cantidad en funcin de la fre-


cuencia de reloj Y .

De la ecuacin 12.3 se concluye que la manera de disminuir el tiempo de


ejecucin en una mquina Von Neumann es, o bien reduciendo el nmero de
ciclos de reloj del programa, o bien aumentando la h n c i a de reloj (cabe
hacer notar que se estn obviando aspectos tales como que si se aumenta la
frecuencia de reloj la memoria tambibn debe ser ms rpida, o en su defecto
incluir ms ciclos de espera en los accesos a memoria. con lo que N aumentar).
El nmero total de ciclos de reloj del pro- ser la suma del nmero de
ciclos de cada instruccin tantas veces como aparezca dicha instruccin. Por
tanto, cuantos menos ciclos tarde en ejecutarse una instruccin, el tiempo de
CPU ser menor.

Cada instruccin utiliza en su ejecucin un nmero de ciclos en un procesa-


dor que no tiene por qu ser el mismo que la misma instruccin en otro pro-
sador. Ms aiui, el.juego
- de instrucciones cambia de un procesador a otro, y una
instruccin mquina en un procesador puede no tener equivalente en otroi ser
equivalente a un conjunto de varias instrucciones. El problema es mayor cuan-
do se utiliza esta cantidad para hacer comparaciones, ya que los MIPS v d a n
entre programas en un mismo computador~dependendel &pertono de instruc-
ciones (lo cual hace dificil la comparacin entre computadores con repertorios
diferentes), e incluso pueden va& inversamente al Adimiento. ~e &a ma-
nera se concluye que no es adecuado evaluar el rendimiento de procesadores
secuenciales realizando una comparacin de MIPS.

Se puede definir el promedio de ciclos de reloj por instruccin o CPI, como el


nmero medio de ciclos que tarda en ejecutarse una instruccin en un procesador
al ejecutarse un programa. Utilizando esta ecuacin y la ecuacin 12.2 se puede
expresar el tiempo de CPU para ejecutar una tarea como

TCPu= I . CPI CLK e

donde I es el nmero de instrucciones del programa. Aniogamente,

I CPI
TCPU= u

Esta ecuacin da la relacin entre los tres factores clave para obtener el ren-
dimiento de un procesador secuencial.
ORA-MA S ARO- AVANZADAS 359
cAPTULO 12.

12.5.2 Mquinas paralelas


Para evaluar la mejora de la implemeniacin de una tarea en una mquina
paralela, frente a la ejecucin de la misma tarea en una mquina secuencial, se
define la magnitud conocida como aceleracin o speedup.

tiempo de ejecucidn en la mquina secuencial


acelemcidn =
tiempo de ejecucidn en la mquina paralela

Una tarea tarda en ejecutarse en un miquina secuencial un tiempo Tsy un


tiempo Tpen una mquina paralela. En el caso ideal de que la tarea se reparta
perfectamente entre los N elementos de proceso iguales (procesadores o com-
putadores) se tendr que Tp= 9, con lo cual la aceleracin ser N. ste es el
caso ideal conocido como aceleracin perfecta que en casos reales se ve degra-
dada por factores como la serializacin de la tarea, la dependencia de datos, la
comunicacin entre elementos de proceso y cuellos de botella de Entradalsalida.

En una tarea genkrica habri partes paralelizables, y por tanto susceptibles


a una mejora importante en su ejecucin en una mquina paralela, y partes so-
metidas a una inevitable eiecucin secuencial. Si s es el tiempo de eiecucin
en una mquina secuenciaidel cdigo secuencial, y p es el tien& de ejecucin
del cdigo restante paralelizable en una mquina secuencial, Ahmdal defini en

S+P
acelemcidn = -
S++

donde N es el nmero de procesadores. Ciaramente slo en el caso en que S-O


la aceleracin puede ser prfecta e igual a N. Esta expresin de la aceleracin
se suele expresar nomializada con s + p = 1, con lo que la aceleracin tendr
un valor m h o cuando N + m de lis,conclusin conocida como cuello de
botella secuencial.

1
aceleracin = -
S++
l 3 M BSTRUCVRA DE COMPUTADORES Y PERU?&ZOS ORA-MA

La ecuacin anterior muestra la evolucin de la aceleracin en funcin del


nmero de elementos de proceso para una carga fija Guftafson mostr6 en 1988
que para ciertos problemas el tiempo de ejecucin paralelo p crece junto con el
nmero de procesadores. De esta manera la medida de la aceleracin expresada
en la ecuacin 12.8 suele denominarse aceleracinde ancho fijo y la ecuacin
12.9 o ley de Guftafson aceierad6n de ancho d a d o . En este caso S y p
representan el tiempo serie y paralelo utilizado por N elementos de proceso,
conN > 1.

s+p. N
aceleracin de ancho escalado =
S+P

Como se asume que s + p = 1, se obtiene que

acekraci6n de ancho escalado = N - s .(N - 1)

En cualqnier caso todas estas medidas de la aceleracin de un computador


se refieren al tiempo de ejecucin de una tarea concreta en funcin del nmero
de elementos de proceso. En ningn caso se tiene una magnitud absoluta que
permita asegurar qu mquina tendr siempre ms prestaciones que otra.

Diversos computadores pueden estar ms orientados a tareas concretas de


clculo en punto flotante, clculo vectorial o aplicaciones de clculo intensivo
diferencial. En cualquier caso la adecuacin para un tipo concreto de tareas no
garantiza que para otro tipo de programas las prestaciones sean similares.

Se han escogido una serie de programas de p ~ e b oaBencharks que evalan


las prestaciones de los computadores. As, dependiendo de las aplicaciones que
el usuario vaya a ejecutar mayoritariamente,el programa de prueba ser alguna
aplicacin tpica lo ms parecida posible a la aplicacin final de esta mquina.

Estos programas de pmeba pueden ser tiles para evaluar de forma compa-
rativa mquinas que van a destinarse a la misma aplicacin; clculo cientiw,
ingeniera, bases de datos, etc. La asociacin sin nimo de lucro SPEC (Stan-
&ni Peqormance Evaluation Corpomtion) dispone de una amplio catlogo de
programas y aplicaciones que pueden ser tiles para evaluar: grandes aplica-
ciones industriales, arquitecturas secuenciales y paralelas de memoria compar-
tidatdistnbuida, estaciones de trabajo y computadores paralelos de altas presta-
ciones.

En cualquier caso la eleccin del computador con las mejores prestaciones


para una aplicacin concreta depende del coste permitido. Hoy en da la tenden-
cia hacia la utilizacin de multiprocesadores en aplicaciones se explica porque
son arquitecturas con una escalabilidad razonable con una pequea inversin
econmica, lo cual permite que la potencia de la mquina sea proporcional al
dinero disponible. Posteriores ampliaciones son posibles slo con aadir ms
procesadores en funcin de la inversin que se quiera realizar.

12.6 CUESTIONES

12.1 El diseo de un cauce segmentado impone la divisin de una tarea en


etapas, almacenando en estas etapm i n t e d i a s el resultado parcial de cada
etapa. Este esquerna parece que va a ralentizar la ejecucidn de una sola tarea,
ya que ademds del tiempo de ejecucin en cada etapa es necesario cumplir unos
tiempos mfnimos para realizar el almacenamien60 entre etapas. Indicar de qu
manera la segmentacin mejora el tiempo de ejecucin de instrucciones.

12.2 Diserlar un multiplicador segmentado de ndmems binarws poscrivos a


parrir de la matriz de multiplicacin combinacional basada en el mtodo del
Ipiz y papel que se muestra en la&ura 3.I5.

123 Describir en qu casos aparecen los riesgos en los cauces segmentdos.


iDe qu m e r a pueden evitarse?

12.4 2En qu se bma la taxon~miade Hynn? Describir laspeprincipales d@-


cultades de esta clasi$mci6n.

12.5 Qu ventajas y desventajas presentan las matrices sistlicas? ,j Cudndo


es adecuado su uso y en qu casos no es aconsejable?
362 ESTRUCTURA DE COMPUTADORES Y PERE&UCOS ORA-MA

12.6 Enumerar los dgerentes tipos de redes estticas indicando s w ventajas y


desventajas ascomo en qu casos es adecuado el w o de cada tipo.

12.7 Por qu aparecen problemas de coherencia de cache en los m%ltiproce-


sadores? Existe el mismo problema en los multicomputadores? Enumerar las
metodologias bsicas para realizar protocolos de coherencia de caches, indi-
cando sus ventajas y desventajas.

12$ Realizar un aniisis de las principales caractersticas de los multiproce-


sadoresfrenie a los multicomputadores.

12.9 Indicar las razones que desaconsejan la utilizacidn de un p a r h t r o tan


popular como los MIPS para evaluar el rendimiento e n m computadores.

12.10 La ley de Ahmdal expresa la aceleracidn de ejecucidn de una tarea en


una mquina paralela en funcidn del tiempo de ejecucidn de la misma tarea
m un mquina secuencial, del tiempo de ejecuci6n en la mquina paralela y
del nibnero de procesadores. Analizar la expresidn suministrada por Ahmdul
indicando en qu casos se obtendtia la mejor y peor acelemcidn posible. Por
quefue necesario introducir la ley de Guftafson en 19881 Analiza esta nueva
expresin.

Computer Aichitecture. Single and Parallel Systems. MeMi R. Zarg-


ham. Editorial Prentice Hall. USA, 1996. ISBN 0-13-529497-5.

Computer Arcbiteciure. A Quantitative Approaeh. John L Hennessy


y David A. Patterson. Morgan Kaufmann publishers INC. USA, 1996.
ISBN 1-55860-327-7.
Computer AmM- Pipelined and Parallel Pmcesmr Design. Mi-
chael J. Flynn. Editorial Jones and Bartlett. UK,1995. ISBN 0-86720-
204-1.
ORA-MA CAP~TULO
12. ARQUITECTURAS AVANZADAS 363

Computer Architecture. Design and Performance. Barry Wikinson.


Editorial Prentice Hall. USA, 1996. ISBN 0-13-518200-X.
High Performance Computer Arehitecture. Harold S. Stone. Editorial
Addison Wesley. USA, 1993. ISBN 0-201-52688-3.
m Advanced Computer Architecture. Richard Y Kain. Editorial Prentice
Hall. USA, 1996. ISBN 0-13-353673-4.
centralizado-paralelo, 198
del bus, 196
Acceso distribuido por autoseleccin,
directo a memoria, 176. 179, 199
181 distribuido por deteccin de co-
Stop-Start, 322,323 lisin, 199
transparente, 179 rbol
Aceleracin binario, 351
de ancho escalado, 360 de Wallace, 116
de ancho fijo, 360 Arquitectura
Algoritmo Harvard, 85.88
aleatorio, 142 MIMD, 344,345
de Booth, vkase Multiplicacin MIMD-MISD, 348
entera con signo MIMD-SIMD, 348
de reemplazo, 135, 142 MISD, 344,347
Almacenamiento SIMD, 344,346
masivo, 130, 133, 305 SISD, 343
secundario, 131,305,313 Von Neumann, 4,32
ALU (Arithmetic Logic Unit),vase Arquitecturas
Unidad aritmtico lgica avanzadas, 337
Ancho hbridas, 348
de banda, 186
Anillos, 351
Arbitraje
daisy-chain, 198 Baudio, 217
366 ESTRUCTRA DE COMPUTADORES Y m C O S @RAMA

Benchmark, 360 Campo


BiCMOS, 22 de condicin, 49
Biestable SR, 242 de direccin, 47
Bit de cdigo de operacin, 46
de sucio, 154 Canal de EIS, 179
de viido, 149 Cartucho de cinta, 325
de comienzo, 217 Cauce segmentado, 339
de condicin, v4ase Registro de CCD (ChurgeCoupled Device),255
estado CD-DA (CD Digital Audw), 329
de fin,217 CD-1 (CDinteractivo), 330
de paridad, 217 CD-R (CD-Recordabk),331
de referencia, 154 CD-ROM, 328
Bloque de memoria, 136 CD-RW (CD-ReWritable),331
BPI, 316 Celda de bit, 307
BTL, 187 CGA (Color Gmphics Adapter),
Bus,6,185 298
de alimentaci6n, 14,189 Ciclo
de control, 14,189 de escritura, 66,212
de datos, 14, 189 de lectura, 55, 192.194
de direcciones, 14,189 Cinta
de expansin, 191 de video de 8 mm, 325
del procesador, 191 cintas
del sistema, 191 wn carretes, 323
local, 191 DAT, 326
PCI, 203 magnticas, 322
serie universal, 220 Ciuitos integrados, 21
w m de memoria, 24
CISC, 86
C Clasicacin
Cabezal de Hynn, 343
de niiclw de ferrita, 306 de Zargham, 344
MR,307 CMOS, vase Tecnologa CMOS
Cache, vase Memoria cache Cdigo
copy-back,136 autoreloj, 309,310
write-back,136,154 break, 247
write-thmugh, 135 CRC, 320
asociativa por conjuntos, 140 de grabacin magntica, 309
totalmente asociativa, 136 M, 310
make, 246 Decodificacinde la instruccin, 60
mquina, 16 Degaussing, vase Desmagnetiza-
MFM, 311 cin
no autoreloj, 310 Densidad de grabacin, 307, 309,
NRZ,310 313
NRZI, 310 Desmagnezacin, 288
PE, 310 Desplazamiento
RLL,311 aritmtico, 102
scan, 246 circuiar, 102
Coherencia de caches, 354 16gico. 101
Coma flotante, 122 Digitalizadorde imagenes, 253
Computador elemental, 50 Diodo emisor de luz, 284
Concentrador, 222
Direccin virtual, 149
Conector DB25.226
Direccionamiento
Conexin
lineal, 292
daisy-chain,188,198,210,230
en estrella, 222 por filas y por columnas, 292
multipunto, 217 DMA (Direct Memory Access),
null-modem, 220 vase Acceso Directo a Me-
punto a punto, 216 mona
Controlador Directorio de la cache, 141
de cache, 135 Disco
de DMA,176 ptico, 327
de pantalla, 291 duro, 317
de pantalla aifanum&ica, 291 flexible, 315
de pantalla grfica, 297 magntico, 318
de teclado, 245 magneto-ptico, 333
USB, 224 Winchester, 317
Copcocesador, 167 Displnys, 284
CPI, 84.358 Divisin, 119
@U (Central Process Unit), vase con restauracin, 120
Unidad central de proceso de nmeros enteros sin signo,
CRC, vase Cdigo CRC 119
CRT (CathodeRay T d e ) ,vase Tu- en coma flotante, 125
bo de rayos catdicos sin restauracin, 121
DRAM,vase Memoria DRAM
Driver, 187
DACRAM, 298 DVD (Digital Versatile Disc), 331
mensaje, 233
orden, 232
WS reseleccin, 232
aislada, 172 Fetch, vdase Lectura de la instnic-
mapeada en memoria, 171 cin
WS (Entradalsalida), 165 Filtro RC, 242
EDVAC, 4 Fhgs de condicin, vase Registro
EHPROMM vase Memoria E E de estado
PROM Formato de grabacin, 326
Efecto Keer, 333 Frames, vase Marcas de pgina
EiA(Enhanced Gmphics Adapter), Frecuencia
298 de reloj, 5
Enlace exterior, 215 bartido horizontal, 289
Enmascaramiento, 175 carcter, 295
Ensambiador, 16,34 cuadro, 295
EPROM, vase Memoria EPROM la de caracteres, 295
Equipo lnea, 295
terminal de datos, 218 Puncin de mapa, 135
transmisor de datos, 218
m 1
de proteccin, 171 GDI (Graphical Device Interface),
de paridad, 218 272
de rotura, 218 Grabacin magnCtica, 306
de sobrepasamiento, 218 Gdticos
de trama,218 raster, 288
Esdner, vkase Digitalizador de vectorides, 288
imgenes
Escrutinio, 173
Espacio de dlleocionamiento, 129 HOA (Hemuks Gnrphic Cani),298
viraial,148,154,157 Hipercubo, 352
Estndar IEEE1284,228
Excepciones, 72
Impresora, 261
contone, 275
Fallo de pagina, 139,142 de burbuja, 274
Fase de de caracteres, 264
arbitraje, 196,232 de impacto, 263
estado, 233 de inyecci6n de tinta, 272
ORA-MA ~NDICEALFABCTICO 369

de lneas, 263
de leds, 268
de margarita, 261 Lpiz ptico, 250
de matriz de puntos, 264 LCD (Liquid Cristal Display), vase
de sublimacin de tinta, 277 Pantalla de cristal lquido
de tinta slida, 277 Lectura
de transferencia directa, 266 de la instruccin, 60
electrosttica, 264 de los operandos, 60
lser, 267 LED Light Emitting Diode, vase
en color, 269 Diodo emisor de luz
trmica Lenguaje de
de cera, 278 alto nivel, 16
de color, 278 descripcin de pgina, 270
windows, 270 Ley de
Inconsistencia de memoria, 143 Ahmdal, 359
Iniciador, 230 Guftafson, 360
Instruccin mquina, 15,32 Lnea de
Intel iX86, 85 cache, 136
Interfaz, 216 Longitud de palabra, 51
Centronics, 226 LRU (Last Recently Used), 142
EPP, 228
paralelo, 226
SCSI, 228 Maestro de bus, 190
serie, 217 Main memory, vase Memoria prin-
Znterleaving, 147, 319 cipal
Interrupcin, 73 Malla
Interrupciones, 199 bidimensional, 351
Daisy-Chain, 200 de apertura, 288
mediante exploracin secuen- de control, 287
cial, 200 Mapeado
mediante lneas individuales, asociativo por conjuntos, 140
199 directo, 137
Interruptor, 240 totalmente asociativo, 141
Mquina de flujo de datos, 364
J
Marcos de pgina, 148
Jerarqua Mscara
de buses, 190 binaria de condicin, vase
de memoria, 129 Campo de condicin
370 ESTRUCTURA DE COMPUTADORES Y PERW~ICOS ORA-MA

de sombras, 288 Mdem, 218


Matrices sistlicas, 347 Modo de dkcionamiento
Matriz de multiplicaci6n combina- directo, 39
cional, 112 indexado, 43
MDA ( M o n o c m Display Adap- indirecto, 43
ter), 298 inmediato, 38
Memoria mediante registro, 40
cache, 135 relativo a registro, 40
de control, 77 Muiti-multiprocesador, 345
de video, 292 Multicomputador, 345,356
DRAM, 25 Multiplicaci6n, 111
EDO DRAM, 293 de alta velocidad, 115
EEPROM, 27 en coma flotante, 125
EPROM, 27 entera con signo, 117
fsica, 148 entera sin signo, 112
FLASH, 27 entera sin signo combinacional,
interpelada, 147 112
jerrquica, vdase Jerarqua de entera sin signo secuencial, 113
memoria Multiprocesador, 345,353
16gica, 148
principal, 129
PROM, 27 Nivel fsico del bus, 187
RON, 26 Null modem, 220
SDRAM, 293 Nmero
segrnentada, 154 de bloque, 138
SRAM, 25 de phgina, 149, 156
SRAM sincrona, 25 de pitgina vimial, 149
vimial, 148 de segmento, 155
VRAM, 293
Microiistmcci6n, 77
o
Mimoprograma, 78 OCR (Reconocedor ptico de
Microprogramaci6n Carctews), 253
horizontal, 79 Operaci6n
vertical, 79 aritmtica, 96,100,106
MiPS, 84,356 de cambio de signo, 104
MMU (Menwry Management Ufiit), de desplazamiento, 98,101
vhse Unidad de gesti6n de de extensin de signo, 104
memoria en coma flotante, 124
lgica, 96, 100, 103 Polling, vase Escrutinio
Operando, 8,96 Postscript, 271'
Overiay, 131,150 Rincipio de localidad
espacial, 133
P
temporal, 133
Pigina, 132,148 PRML (Partial Response Maximum
PAL, viase seral de video PAL Likelihood), 308
Pantallas Procesador de E/S, 215
alfanum&icas, 291 Procesadores
de cristai liquido, 300 matriciales, 346
de plasma, 301 segmentados, d a s e Segmenta-
de rayos catdicos, 285 ci6n
de transistores de peicula fina, vectonales, 347
301 Profundidad de bit, 256
grficas, 297 Programa
sensibles al tacto, 251 de canal, 179
Papel reentrante, 151
continuo, 265 PROM, v6ase Memoria PROM
dielktrico, 266 Protocolos
Paralelismo, 338, 348 basados en directorio, 355
PC (Program Counter), &ase Re- de sondeo, 355
gstro contador & progra- Pmeba de estado, 173
ma Puerto
PCi, viase Bus PCI de saIida, 243
E L (Prhter Control Language), Pulsador, 240
271
PCM (Pulse Code Modulation), 332 R
Perifricos, 2,6, 15 Rack, 187
Peticin Rango dinmico, 256
de bus, 189,198 Ratn, 247
de interrupcin, 189, 199 ptico, 249
Pila, 36 electromecnico, 248
Pxel, 286 optomecnico, 248
Planos de deflexin, 286 Rayo lser, 327
Plotter, 276 Rebotes, 241
Plumillas, 276 Red
PMS (Processor Memory Switch), 3 de barras cruzadas, 352
Poltica de acceso, 130 de interconexin, 350
372 BSTRUCNRA DE COMPUTADORES Y PERl&WCOS ORA-MA

dinmica, 352 Robo de ciclo, 178


estticas, 350 Rollover, 246
illiac, 351 ROM, vase Memoria ROM
lineales, 351 RS232, vkase Interfaz serie
monoetapa, 353 RTL (Register Tmnsfer kvel), 3
muitietapa, 353 Ruido, 187
neuronal, 349 Rutina de tratamiento,72
Reflexiones, 202
Refresco de la pantalla, 286
Registro Scanner, vase Digitalizador de
acumulador. 9,52 imagenes
base, 42 Seal
contador de programa, 8,52 de barrido horizontal, 287
de control, 166 de barrido vertical, 287
de datos, 166 de peticin, 217
de enmascaramiento, 175 de reconocimiento, 194,217
de estado, 9,36,52,95,98, 166 de video PAL, 289
de instruccin,8,51 Sector, 314
de interfaz con el bus, 53 Segmentacin, 339
de prop6sito general, 9,52 paginada, 156
de tabla de ptginas, 152 Segmento, 154
interno, 8,50 Sensor
puntero a pila, 70 de ultrasonidos, 251
universal, 101 de infnirrojos, 251
Rejilla de control, 286 Sincronismo
Relocalimin, 151 horizontal, 287
Rdering, 271 vertical, 287
Rendimiento, 84,356 Sincmnimcin, 172
Repertorio de instrucciones, 32 por interrupcin, 173
Resolucin, 255 por prueba de estado, 173
Resta, 106 Sistema
en coma flotante, 124 bajo demanda, 273
entera, 109 operativo, 16
Riesgo Slots, 187
de control, 342 Solenoide, 265
estructural, 341 SRAM, vase Memoria SRAM
por dependencia de datos, 341 SRAM shcrona, vase Memoria
RISC, 86 SRAM s h m n a
Subnitina, 69 de acierto, 134
Subsistema de entradalsalida,165 de ciclo, 130
Suma, 106 de f d o , 134
BCD, 110 de transferencia, 144
en coma flotante, 124 TLB (Tmslafion Loobide BYger)),
entera, 106 152
Sumador TPI,316
con acarreo adelantado, 107 Trackballs,247
elemental binwio, 106 Traducci6n de las direcciones, 149
restador, 109 Transductores pticos, 283
SVGA (Super Video Graphics Transferencia
Adaprer), 298 asncrona, 193
en bloque, 195
full-duplex, 219
Tner, 264 half-duplex,219
Tabla programada, 173
de ptiginas, 149 red-media-write, 196
de segmentos, 155 snmna, 192
Tableta digitalizadora, 252 Transmisin
Tag, 141 balanceada, 224
Tambor fotosensible, 267 Tmp, 72
Tambores, 261 Trazador, 276
Tarjeta de video, 298 TTL, vase Tecnologa
Tasa Tubo de rayos catdicos, 283,285
de aciertos, 134
de fallos, 134
Tecla, 240
Teclados, 243 UC (Centml Unif),vase Unidad de
Tecnologa control
CMOS. 22 Unidad
de circuitos integrados, 3 witm6tico 16gica. 95
de computadores, 20 central de proceso, 5,6
m,22 de control, 7,50,54
Teletipo, 261 de control cableada, 76
Temperatura de Curie, 333 de control microprogmada, 77'
Terminales de vdeo, 290 de gesti6n de memoria, 149
Tiempo Unidad de gestin de memoria, 84,
de acceso, 130 149
USB Universal Serial Bus, vase VDT (Video Disphy Teminals),
Bus serie universal 290
VGA(VideoGraphics Adapter),298
v VLSI (kry Large Scale of Integra-
fion),3
VCD(Vdeo CD), 330 V M E , vase Bus V M E
CEWEiB
Esta edicin se tMmin6 de Un* en julio de 2001.Publicada
por ALFAOMEGA GRUPO EDITOR,S.A. de C.V. Apartado
'ostal 73-267,0331 1. Mxico, D.F. La impresin y encuader-
nacin se iralizaronen OUEBBCOR W0i. BOGOTA. S.A...
C& 15 No. 3 9 A M , S&@ de Bogot+D.C.-Colombia.
Vistenos en Internet:

Los mejores libros de computacin

You might also like